::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888====++++++++++++::::888866666666888888888888::::====::::8888666688888888::::====++++::::66668888::::8888::::::::====++++::::::::====++++++++++++::::888866666666888888888888::::====::::8888666688888888::::====++++::::66668888::::8888::::::::====++++::::::::====++++++++++++::::888866666666888888888888::::====::::8888666688888888::::====++++::::66668888::::8888::::::::====++++::::::::====++++++++++++::::888866666666888888888888::::====::::8888666688888888::::====++++::::66668888::::8888::::::::====++++::::::::====++++++++++++::::888866666666888888888888::::====::::8888666688888888::::====++++::::66668888::::8888::::::::====++++::::::::====++++++++++++::::888866666666888888888888::::====::::8888666688888888::::====++++::::66668888::::8888::::::::====++++::::::::====++++++++++++::::888866666666888888888888::::====::::8888666688888888::::====++++::::66668888::::8888::::::::====++++::::::::====++++++++++++::::888866666666888888888888::::====::::8888666688888888::::====++++::::66668888::::8888::::::::====++++::::::::++++============::::888866668888::::8888::::====++++8888888866668888::::::::::::====++++888888888888::::====::::====++++========++++============::::888866668888::::8888::::====++++8888888866668888::::::::::::====++++888888888888::::====::::====++++========++++============::::888866668888::::8888::::====++++8888888866668888::::::::::::====++++888888888888::::====::::====++++========++++============::::888866668888::::8888::::====++++8888888866668888::::::::::::====++++888888888888::::====::::====++++========++++============::::888866668888::::8888::::====++++8888888866668888::::::::::::====++++888888888888::::====::::====++++========++++============::::888866668888::::8888::::====++++8888888866668888::::::::::::====++++888888888888::::====::::====++++========++++============::::888866668888::::8888::::====++++8888888866668888::::::::::::====++++888888888888::::====::::====++++========++++============::::888866668888::::8888::::====++++8888888866668888::::::::::::====++++888888888888::::====::::====++++============::::::::====::::8888666688888888::::====++++::::88886666666688888888::::::::====++++888888888888::::::::========++++++++++++====::::::::====::::8888666688888888::::====++++::::88886666666688888888::::::::====++++888888888888::::::::========++++++++++++====::::::::====::::8888666688888888::::====++++::::88886666666688888888::::::::====++++888888888888::::::::========++++++++++++====::::::::====::::8888666688888888::::====++++::::88886666666688888888::::::::====++++888888888888::::::::========++++++++++++====::::::::====::::8888666688888888::::====++++::::88886666666688888888::::::::====++++888888888888::::::::========++++++++++++====::::::::====::::8888666688888888::::====++++::::88886666666688888888::::::::====++++888888888888::::::::========++++++++++++====::::::::====::::8888666688888888::::====++++::::88886666666688888888::::::::====++++888888888888::::::::========++++++++++++====::::::::====::::8888666688888888::::====++++::::88886666666688888888::::::::====++++888888888888::::::::========++++++++++++::::88888888====::::888888888888::::====++++====::::888866668888::::8888::::========++++::::8888::::====::::====++++============::::88888888====::::888888888888::::====++++====::::888866668888::::8888::::========++++::::8888::::====::::====++++============::::88888888====::::888888888888::::====++++====::::888866668888::::8888::::========++++::::8888::::====::::====++++============::::88888888====::::888888888888::::====++++====::::888866668888::::8888::::========++++::::8888::::====::::====++++============::::88888888====::::888888888888::::====++++====::::888866668888::::8888::::========++++::::8888::::====::::====++++============::::88888888====::::888888888888::::====++++====::::888866668888::::8888::::========++++::::8888::::====::::====++++============::::88888888====::::888888888888::::====++++====::::888866668888::::8888::::========++++::::8888::::====::::====++++============::::88888888====::::888888888888::::====++++====::::888866668888::::8888::::========++++::::8888::::====::::====++++============888866668888::::====::::::::::::====++++========::::88888888888888888888::::::::====++++::::::::================++++====::::::::888866668888::::====::::::::::::====++++========::::88888888888888888888::::::::====++++::::::::================++++====::::::::888866668888::::====::::::::::::====++++========::::88888888888888888888::::::::====++++::::::::================++++====::::::::888866668888::::====::::::::::::====++++========::::88888888888888888888::::::::====++++::::::::================++++====::::::::888866668888::::====::::::::::::====++++========::::88888888888888888888::::::::====++++::::::::================++++====::::::::888866668888::::====::::::::::::====++++========::::88888888888888888888::::::::====++++::::::::================++++====::::::::888866668888::::====::::::::::::====++++========::::88888888888888888888::::::::====++++::::::::================++++====::::::::888866668888::::====::::::::::::====++++========::::88888888888888888888::::::::====++++::::::::================++++====::::::::66668888::::====::::============++++====::::====::::88888888::::88888888::::::::====++++============++++++++++++============888866668888::::====::::============++++====::::====::::88888888::::88888888::::::::====++++============++++++++++++============888866668888::::====::::============++++====::::====::::88888888::::88888888::::::::====++++============++++++++++++============888866668888::::====::::============++++====::::====::::88888888::::88888888::::::::====++++============++++++++++++============888866668888::::====::::============++++====::::====::::88888888::::88888888::::::::====++++============++++++++++++============888866668888::::====::::============++++====::::====::::88888888::::88888888::::::::====++++============++++++++++++============888866668888::::====::::============++++====::::====::::88888888::::88888888::::::::====++++============++++++++++++============888866668888::::====::::============++++====::::====::::88888888::::88888888::::::::====++++============++++++++++++============8888::::::::====::::8888::::====++++====::::8888::::====::::888888888888::::::::====++++========++++++++============++++====::::8888::::::::====::::8888::::====++++====::::8888::::====::::888888888888::::::::====++++========++++++++============++++====::::8888::::::::====::::8888::::====++++====::::8888::::====::::888888888888::::::::====++++========++++++++============++++====::::8888::::::::====::::8888::::====++++====::::8888::::====::::888888888888::::::::====++++========++++++++============++++====::::8888::::::::====::::8888::::====++++====::::8888::::====::::888888888888::::::::====++++========++++++++============++++====::::8888::::::::====::::8888::::====++++====::::8888::::====::::888888888888::::::::====++++========++++++++============++++====::::8888::::::::====::::8888::::====++++====::::8888::::====::::888888888888::::::::====++++========++++++++============++++====::::8888::::::::====::::8888::::====++++====::::8888::::====::::888888888888::::::::====++++========++++++++============++++====::::88888888::::====::::8888::::====++++====::::66668888::::====::::8888::::::::====++++++++++++++++============::::::::====++++====::::8888::::====::::8888::::====++++====::::66668888::::====::::8888::::::::====++++++++++++++++============::::::::====++++====::::8888::::====::::8888::::====++++====::::66668888::::====::::8888::::::::====++++++++++++++++============::::::::====++++====::::8888::::====::::8888::::====++++====::::66668888::::====::::8888::::::::====++++++++++++++++============::::::::====++++====::::8888::::====::::8888::::====++++====::::66668888::::====::::8888::::::::====++++++++++++++++============::::::::====++++====::::8888::::====::::8888::::====++++====::::66668888::::====::::8888::::::::====++++++++++++++++============::::::::====++++====::::8888::::====::::8888::::====++++====::::66668888::::====::::8888::::::::====++++++++++++++++============::::::::====++++====::::8888::::====::::8888::::====++++====::::66668888::::====::::8888::::::::====++++++++++++++++============::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::====::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++============::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++============::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++============::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++============::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++============::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++============::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++============::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++============::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++============::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++============::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++============::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++============::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++============::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++============::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++============::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++================888866668888::::::::====++++====::::88888888::::====++++++++++++====::::88888888666666668888::::8888::::====++++====::::========888866668888::::::::====++++====::::88888888::::====++++++++++++====::::88888888666666668888::::8888::::====++++====::::========888866668888::::::::====++++====::::88888888::::====++++++++++++====::::88888888666666668888::::8888::::====++++====::::========888866668888::::::::====++++====::::88888888::::====++++++++++++====::::88888888666666668888::::8888::::====++++====::::========888866668888::::::::====++++====::::88888888::::====++++++++++++====::::88888888666666668888::::8888::::====++++====::::========888866668888::::::::====++++====::::88888888::::====++++++++++++====::::88888888666666668888::::8888::::====++++====::::========888866668888::::::::====++++====::::88888888::::====++++++++++++====::::88888888666666668888::::8888::::====++++====::::========888866668888::::::::====++++====::::88888888::::====++++++++++++====::::88888888666666668888::::8888::::====++++====::::====::::8888666688888888::::====++++========::::::::================++++++++====::::666666668888888888888888::::========++++::::====::::8888666688888888::::====++++========::::::::================++++++++====::::666666668888888888888888::::========++++::::====::::8888666688888888::::====++++========::::::::================++++++++====::::666666668888888888888888::::========++++::::====::::8888666688888888::::====++++========::::::::================++++++++====::::666666668888888888888888::::========++++::::====::::8888666688888888::::====++++========::::::::================++++++++====::::666666668888888888888888::::========++++::::====::::8888666688888888::::====++++========::::::::================++++++++====::::666666668888888888888888::::========++++::::====::::8888666688888888::::====++++========::::::::================++++++++====::::666666668888888888888888::::========++++::::====::::8888666688888888::::====++++========::::::::================++++++++====::::666666668888888888888888::::========++++::::====::::::::8888888888888888::::====++++============::::::::::::::::====++++++++::::666666668888888888888888::::::::====++++::::====::::::::8888888888888888::::====++++============::::::::::::::::====++++++++::::666666668888888888888888::::::::====++++::::====::::::::8888888888888888::::====++++============::::::::::::::::====++++++++::::666666668888888888888888::::::::====++++::::====::::::::8888888888888888::::====++++============::::::::::::::::====++++++++::::666666668888888888888888::::::::====++++::::====::::::::8888888888888888::::====++++============::::::::::::::::====++++++++::::666666668888888888888888::::::::====++++::::====::::::::8888888888888888::::====++++============::::::::::::::::====++++++++::::666666668888888888888888::::::::====++++::::====::::::::8888888888888888::::====++++============::::::::::::::::====++++++++::::666666668888888888888888::::::::====++++::::====::::::::8888888888888888::::====++++============::::::::::::::::====++++++++::::666666668888888888888888::::::::====++++::::::::====::::::::8888::::8888============++++++++::::8888666666668888::::========++++::::666666668888888888888888::::========++++::::====::::::::8888::::8888============++++++++::::8888666666668888::::========++++::::666666668888888888888888::::========++++::::====::::::::8888::::8888============++++++++::::8888666666668888::::========++++::::666666668888888888888888::::========++++::::====::::::::8888::::8888============++++++++::::8888666666668888::::========++++::::666666668888888888888888::::========++++::::====::::::::8888::::8888============++++++++::::8888666666668888::::========++++::::666666668888888888888888::::========++++::::====::::::::8888::::8888============++++++++::::8888666666668888::::========++++::::666666668888888888888888::::========++++::::====::::::::8888::::8888============++++++++::::8888666666668888::::========++++::::666666668888888888888888::::========++++::::====::::::::8888::::8888============++++++++::::8888666666668888::::========++++::::666666668888888888888888::::========++++8888::::========::::====::::::::====++++::::::::8888666666668888::::8888::::========++++88886666666688888888====::::========++++8888::::========::::====::::::::====++++::::::::8888666666668888::::8888::::========++++88886666666688888888====::::========++++8888::::========::::====::::::::====++++::::::::8888666666668888::::8888::::========++++88886666666688888888====::::========++++8888::::========::::====::::::::====++++::::::::8888666666668888::::8888::::========++++88886666666688888888====::::========++++8888::::========::::====::::::::====++++::::::::8888666666668888::::8888::::========++++88886666666688888888====::::========++++8888::::========::::====::::::::====++++::::::::8888666666668888::::8888::::========++++88886666666688888888====::::========++++8888::::========::::====::::::::====++++::::::::8888666666668888::::8888::::========++++88886666666688888888====::::========++++8888::::========::::====::::::::====++++::::::::8888666666668888::::8888::::========++++88886666666688888888====::::========++++::::8888::::::::++++++++========++++::::888888886666666688888888888888888888::::====++++::::888866668888::::8888::::========++++::::8888::::::::++++++++========++++::::888888886666666688888888888888888888::::====++++::::888866668888::::8888::::========++++::::8888::::::::++++++++========++++::::888888886666666688888888888888888888::::====++++::::888866668888::::8888::::========++++::::8888::::::::++++++++========++++::::888888886666666688888888888888888888::::====++++::::888866668888::::8888::::========++++::::8888::::::::++++++++========++++::::888888886666666688888888888888888888::::====++++::::888866668888::::8888::::========++++::::8888::::::::++++++++========++++::::888888886666666688888888888888888888::::====++++::::888866668888::::8888::::========++++::::8888::::::::++++++++========++++::::888888886666666688888888888888888888::::====++++::::888866668888::::8888::::========++++::::8888::::::::++++++++========++++::::888888886666666688888888888888888888::::====++++::::888866668888::::8888::::========++++============++++========++++++++====::::88886666666688888888::::666666668888::::====++++888888888888888888888888::::========++++============++++========++++++++====::::88886666666688888888::::666666668888::::====++++888888888888888888888888::::========++++============++++========++++++++====::::88886666666688888888::::666666668888::::====++++888888888888888888888888::::========++++============++++========++++++++====::::88886666666688888888::::666666668888::::====++++888888888888888888888888::::========++++============++++========++++++++====::::88886666666688888888::::666666668888::::====++++888888888888888888888888::::========++++============++++========++++++++====::::88886666666688888888::::666666668888::::====++++888888888888888888888888::::========++++============++++========++++++++====::::88886666666688888888::::666666668888::::====++++888888888888888888888888::::========++++============++++========++++++++====::::88886666666688888888::::666666668888::::====++++888888888888888888888888::::========++++++++====++++====::::::::::::====::::====::::88888888::::8888888866668888::::::::====++++::::88888888::::8888::::::::====++++====++++====++++====::::::::::::====::::====::::88888888::::8888888866668888::::::::====++++::::88888888::::8888::::::::====++++====++++====++++====::::::::::::====::::====::::88888888::::8888888866668888::::::::====++++::::88888888::::8888::::::::====++++====++++====++++====::::::::::::====::::====::::88888888::::8888888866668888::::::::====++++::::88888888::::8888::::::::====++++====++++====++++====::::::::::::====::::====::::88888888::::8888888866668888::::::::====++++::::88888888::::8888::::::::====++++====++++====++++====::::::::::::====::::====::::88888888::::8888888866668888::::::::====++++::::88888888::::8888::::::::====++++====++++====++++====::::::::::::====::::====::::88888888::::8888888866668888::::::::====++++::::88888888::::8888::::::::====++++====++++====++++====::::::::::::====::::====::::88888888::::8888888866668888::::::::====++++::::88888888::::8888::::::::====++++====::::++++++++========88888888::::8888::::====::::::::====::::8888::::::::========++++====::::8888::::====::::============++++====::::++++++++========88888888::::8888::::====::::::::====::::8888::::::::========++++====::::8888::::====::::============++++====::::++++++++========88888888::::8888::::====::::::::====::::8888::::::::========++++====::::8888::::====::::============++++====::::++++++++========88888888::::8888::::====::::::::====::::8888::::::::========++++====::::8888::::====::::============++++====::::++++++++========88888888::::8888::::====::::::::====::::8888::::::::========++++====::::8888::::====::::============++++====::::++++++++========88888888::::8888::::====::::::::====::::8888::::::::========++++====::::8888::::====::::============++++====::::++++++++========88888888::::8888::::====::::::::====::::8888::::::::========++++====::::8888::::====::::============++++====::::++++++++========88888888::::8888::::====::::::::====::::8888::::::::========++++====::::8888::::====::::============++++============++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::8888::::++++++++::::66666666::::88888888====::::====::::====++++++++++++============++++============++++++++++++============::::8888::::++++++++::::66666666::::88888888====::::====::::====++++++++++++============++++============++++++++++++============::::8888::::++++++++::::66666666::::88888888====::::====::::====++++++++++++============++++============++++++++++++============::::8888::::++++++++::::66666666::::88888888====::::====::::====++++++++++++============++++============++++++++++++============::::8888::::++++++++::::66666666::::88888888====::::====::::====++++++++++++============++++============++++++++++++============::::8888::::++++++++::::66666666::::88888888====::::====::::====++++++++++++============++++============++++++++++++============::::8888::::++++++++::::66666666::::88888888====::::====::::====++++++++++++============++++============++++++++++++============::::8888::::++++++++::::66666666::::88888888====::::====::::====++++++++++++============++++============++++++++++++============::::8888::::++++====::::6666888888888888::::::::::::========++++====::::::::::::::::::::====++++++++++++================::::::::::::8888::::++++====::::6666888888888888::::::::::::========++++====::::::::::::::::::::====++++++++++++================::::::::::::8888::::++++====::::6666888888888888::::::::::::========++++====::::::::::::::::::::====++++++++++++================::::::::::::8888::::++++====::::6666888888888888::::::::::::========++++====::::::::::::::::::::====++++++++++++================::::::::::::8888::::++++====::::6666888888888888::::::::::::========++++====::::::::::::::::::::====++++++++++++================::::::::::::8888::::++++====::::6666888888888888::::::::::::========++++====::::::::::::::::::::====++++++++++++================::::::::::::8888::::++++====::::6666888888888888::::::::::::========++++====::::::::::::::::::::====++++++++++++================::::::::::::8888::::++++====::::6666888888888888::::::::::::========++++====::::::::::::::::::::====++++++++++++================::::::::::::::::====++++========66666666888888888888::::====++++++++====::::88888888888888888888::::::::====++++====::::::::::::::::88888888::::====++++========66666666888888888888::::====++++++++====::::88888888888888888888::::::::====++++====::::::::::::::::88888888::::====++++========66666666888888888888::::====++++++++====::::88888888888888888888::::::::====++++====::::::::::::::::88888888::::====++++========66666666888888888888::::====++++++++====::::88888888888888888888::::::::====++++====::::::::::::::::88888888::::====++++========66666666888888888888::::====++++++++====::::88888888888888888888::::::::====++++====::::::::::::::::88888888::::====++++========66666666888888888888::::====++++++++====::::88888888888888888888::::::::====++++====::::::::::::::::88888888::::====++++========66666666888888888888::::====++++++++====::::88888888888888888888::::::::====++++====::::::::::::::::88888888::::====++++========66666666888888888888::::====++++++++====::::88888888888888888888::::::::====++++====::::::::::::::::888888888888::::====++++========::::8888::::8888====++++========::::8888::::666666668888::::::::====++++====::::::::8888::::8888666666668888::::====++++========::::8888::::8888====++++========::::8888::::666666668888::::::::====++++====::::::::8888::::8888666666668888::::====++++========::::8888::::8888====++++========::::8888::::666666668888::::::::====++++====::::::::8888::::8888666666668888::::====++++========::::8888::::8888====++++========::::8888::::666666668888::::::::====++++====::::::::8888::::8888666666668888::::====++++========::::8888::::8888====++++========::::8888::::666666668888::::::::====++++====::::::::8888::::8888666666668888::::====++++========::::8888::::8888====++++========::::8888::::666666668888::::::::====++++====::::::::8888::::8888666666668888::::====++++========::::8888::::8888====++++========::::8888::::666666668888::::::::====++++====::::::::8888::::8888666666668888::::====++++========::::8888::::8888====++++========::::8888::::666666668888::::::::====++++====::::::::8888::::888866666666::::========++++====::::::::88888888::::====++++::::8888::::8888888866668888::::8888::::::::====::::8888888866666666666666668888::::========++++====::::::::88888888::::====++++::::8888::::8888888866668888::::8888::::::::====::::8888888866666666666666668888::::========++++====::::::::88888888::::====++++::::8888::::8888888866668888::::8888::::::::====::::8888888866666666666666668888::::========++++====::::::::88888888::::====++++::::8888::::8888888866668888::::8888::::::::====::::8888888866666666666666668888::::========++++====::::::::88888888::::====++++::::8888::::8888888866668888::::8888::::::::====::::8888888866666666666666668888::::========++++====::::::::88888888::::====++++::::8888::::8888888866668888::::8888::::::::====::::8888888866666666666666668888::::========++++====::::::::88888888::::====++++::::8888::::8888888866668888::::8888::::::::====::::8888888866666666666666668888::::========++++====::::::::88888888::::====++++::::8888::::8888888866668888::::8888::::::::====::::8888888866666666666666668888====::::::::====++++++++====::::::::::::::::====++++::::8888888866666666888888888888::::====::::8888::::888888888888::::8888::::====::::::::====++++++++====::::::::::::::::====++++::::8888888866666666888888888888::::====::::8888::::888888888888::::8888::::====::::::::====++++++++====::::::::::::::::====++++::::8888888866666666888888888888::::====::::8888::::888888888888::::8888::::====::::::::====++++++++====::::::::::::::::====++++::::8888888866666666888888888888::::====::::8888::::888888888888::::8888::::====::::::::====++++++++====::::::::::::::::====++++::::8888888866666666888888888888::::====::::8888::::888888888888::::8888::::====::::::::====++++++++====::::::::::::::::====++++::::8888888866666666888888888888::::====::::8888::::888888888888::::8888::::====::::::::====++++++++====::::::::::::::::====++++::::8888888866666666888888888888::::====::::8888::::888888888888::::8888::::====::::::::====++++++++====::::::::::::::::====++++::::8888888866666666888888888888::::====::::8888::::888888888888::::8888::::::::::::8888::::========++++============================::::888866666666888888888888::::++++====::::::::::::::::::::::::::::====::::::::8888::::========++++============================::::888866666666888888888888::::++++====::::::::::::::::::::::::::::====::::::::8888::::========++++============================::::888866666666888888888888::::++++====::::::::::::::::::::::::::::====::::::::8888::::========++++============================::::888866666666888888888888::::++++====::::::::::::::::::::::::::::====::::::::8888::::========++++============================::::888866666666888888888888::::++++====::::::::::::::::::::::::::::====::::::::8888::::========++++============================::::888866666666888888888888::::++++====::::::::::::::::::::::::::::====::::::::8888::::========++++============================::::888866666666888888888888::::++++====::::::::::::::::::::::::::::====::::::::8888::::========++++============================::::888866666666888888888888::::++++====::::::::::::::::::::::::::::========8888666666668888::::====++++::::::::::::::::::::::::====::::8888666688888888::::::::====================++++============::::====8888666666668888::::====++++::::::::::::::::::::::::====::::8888666688888888::::::::====================++++============::::====8888666666668888::::====++++::::::::::::::::::::::::====::::8888666688888888::::::::====================++++============::::====8888666666668888::::====++++::::::::::::::::::::::::====::::8888666688888888::::::::====================++++============::::====8888666666668888::::====++++::::::::::::::::::::::::====::::8888666688888888::::::::====================++++============::::====8888666666668888::::====++++::::::::::::::::::::::::====::::8888666688888888::::::::====================++++============::::====8888666666668888::::====++++::::::::::::::::::::::::====::::8888666688888888::::::::====================++++============::::====8888666666668888::::====++++::::::::::::::::::::::::====::::8888666688888888::::::::====================++++============::::88886666888888888888::::====::::88888888888888888888::::::::====::::::::::::::::========::::::::::::::::========++++::::::::::::88886666888888888888::::====::::88888888888888888888::::::::====::::::::::::::::========::::::::::::::::========++++::::::::::::88886666888888888888::::====::::88888888888888888888::::::::====::::::::::::::::========::::::::::::::::========++++::::::::::::88886666888888888888::::====::::88888888888888888888::::::::====::::::::::::::::========::::::::::::::::========++++::::::::::::88886666888888888888::::====::::88888888888888888888::::::::====::::::::::::::::========::::::::::::::::========++++::::::::::::88886666888888888888::::====::::88888888888888888888::::::::====::::::::::::::::========::::::::::::::::========++++::::::::::::88886666888888888888::::====::::88888888888888888888::::::::====::::::::::::::::========::::::::::::::::========++++::::::::::::88886666888888888888::::====::::88888888888888888888::::::::====::::::::::::::::========::::::::::::::::========++++::::::::::::88888888::::8888::::====::::8888666666666666666688888888::::============::::====::::::::888888888888::::::::====++++====::::888888888888::::8888::::====::::8888666666666666666688888888::::============::::====::::::::888888888888::::::::====++++====::::888888888888::::8888::::====::::8888666666666666666688888888::::============::::====::::::::888888888888::::::::====++++====::::888888888888::::8888::::====::::8888666666666666666688888888::::============::::====::::::::888888888888::::::::====++++====::::888888888888::::8888::::====::::8888666666666666666688888888::::============::::====::::::::888888888888::::::::====++++====::::888888888888::::8888::::====::::8888666666666666666688888888::::============::::====::::::::888888888888::::::::====++++====::::888888888888::::8888::::====::::8888666666666666666688888888::::============::::====::::::::888888888888::::::::====++++====::::888888888888::::8888::::====::::8888666666666666666688888888::::============::::====::::::::888888888888::::::::====++++====::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::::::::::::::====::::8888666666668888888888888888::::====::::::::::::====++++::::8888888866668888::::============++++::::8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888::::============++++::::888866668888::::88888888::::====::::88888888::::::::====++++88886666888888888888::::::::====++++====8888====++++++++++++::::888866666666888888888888::::====::::8888666688888888::::====++++::::66668888::::8888::::::::====++++::::::::====++++++++++++::::888866666666888888888888::::====::::8888666688888888::::====++++::::66668888::::8888::::::::====++++::::::::====++++++++++++::::888866666666888888888888::::====::::8888666688888888::::====++++::::66668888::::8888::::::::====++++::::::::====++++++++++++::::888866666666888888888888::::====::::8888666688888888::::====++++::::66668888::::8888::::::::====++++::::::::====++++++++++++::::888866666666888888888888::::====::::8888666688888888::::====++++::::66668888::::8888::::::::====++++::::::::====++++++++++++::::888866666666888888888888::::====::::8888666688888888::::====++++::::66668888::::8888::::::::====++++::::::::====++++++++++++::::888866666666888888888888::::====::::8888666688888888::::====++++::::66668888::::8888::::::::====++++::::::::====++++++++++++::::888866666666888888888888::::====::::8888666688888888::::====++++::::66668888::::8888::::::::====++++::::::::++++============::::888866668888::::8888::::====++++8888888866668888::::::::::::====++++888888888888::::====::::====++++========++++============::::888866668888::::8888::::====++++8888888866668888::::::::::::====++++888888888888::::====::::====++++========++++============::::888866668888::::8888::::====++++8888888866668888::::::::::::====++++888888888888::::====::::====++++========++++============::::888866668888::::8888::::====++++8888888866668888::::::::::::====++++888888888888::::====::::====++++========++++============::::888866668888::::8888::::====++++8888888866668888::::::::::::====++++888888888888::::====::::====++++========++++============::::888866668888::::8888::::====++++8888888866668888::::::::::::====++++888888888888::::====::::====++++========++++============::::888866668888::::8888::::====++++8888888866668888::::::::::::====++++888888888888::::====::::====++++========++++============::::888866668888::::8888::::====++++8888888866668888::::::::::::====++++888888888888::::====::::====++++============::::::::====::::8888666688888888::::====++++::::88886666666688888888::::::::====++++888888888888::::::::========++++++++++++====::::::::====::::8888666688888888::::====++++::::88886666666688888888::::::::====++++888888888888::::::::========++++++++++++====::::::::====::::8888666688888888::::====++++::::88886666666688888888::::::::====++++888888888888::::::::========++++++++++++====::::::::====::::8888666688888888::::====++++::::88886666666688888888::::::::====++++888888888888::::::::========++++++++++++====::::::::====::::8888666688888888::::====++++::::88886666666688888888::::::::====++++888888888888::::::::========++++++++++++====::::::::====::::8888666688888888::::====++++::::88886666666688888888::::::::====++++888888888888::::::::========++++++++++++====::::::::====::::8888666688888888::::====++++::::88886666666688888888::::::::====++++888888888888::::::::========++++++++++++====::::::::====::::8888666688888888::::====++++::::88886666666688888888::::::::====++++888888888888::::::::========++++++++++++::::88888888====::::888888888888::::====++++====::::888866668888::::8888::::========++++::::8888::::====::::====++++============::::88888888====::::888888888888::::====++++====::::888866668888::::8888::::========++++::::8888::::====::::====++++============::::88888888====::::888888888888::::====++++====::::888866668888::::8888::::========++++::::8888::::====::::====++++============::::88888888====::::888888888888::::====++++====::::888866668888::::8888::::========++++::::8888::::====::::====++++============::::88888888====::::888888888888::::====++++====::::888866668888::::8888::::========++++::::8888::::====::::====++++============::::88888888====::::888888888888::::====++++====::::888866668888::::8888::::========++++::::8888::::====::::====++++============::::88888888====::::888888888888::::====++++====::::888866668888::::8888::::========++++::::8888::::====::::====++++============::::88888888====::::888888888888::::====++++====::::888866668888::::8888::::========++++::::8888::::====::::====++++============888866668888::::====::::::::::::====++++========::::88888888888888888888::::::::====++++::::::::================++++====::::::::888866668888::::====::::::::::::====++++========::::88888888888888888888::::::::====++++::::::::================++++====::::::::888866668888::::====::::::::::::====++++========::::88888888888888888888::::::::====++++::::::::================++++====::::::::888866668888::::====::::::::::::====++++========::::88888888888888888888::::::::====++++::::::::================++++====::::::::888866668888::::====::::::::::::====++++========::::88888888888888888888::::::::====++++::::::::================++++====::::::::888866668888::::====::::::::::::====++++========::::88888888888888888888::::::::====++++::::::::================++++====::::::::888866668888::::====::::::::::::====++++========::::88888888888888888888::::::::====++++::::::::================++++====::::::::888866668888::::====::::::::::::====++++========::::88888888888888888888::::::::====++++::::::::================++++====::::::::66668888::::====::::============++++====::::====::::88888888::::88888888::::::::====++++============++++++++++++============888866668888::::====::::============++++====::::====::::88888888::::88888888::::::::====++++============++++++++++++============888866668888::::====::::============++++====::::====::::88888888::::88888888::::::::====++++============++++++++++++============888866668888::::====::::============++++====::::====::::88888888::::88888888::::::::====++++============++++++++++++============888866668888::::====::::============++++====::::====::::88888888::::88888888::::::::====++++============++++++++++++============888866668888::::====::::============++++====::::====::::88888888::::88888888::::::::====++++============++++++++++++============888866668888::::====::::============++++====::::====::::88888888::::88888888::::::::====++++============++++++++++++============888866668888::::====::::============++++====::::====::::88888888::::88888888::::::::====++++============++++++++++++============8888::::::::====::::8888::::====++++====::::8888::::====::::888888888888::::::::====++++========++++++++============++++====::::8888::::::::====::::8888::::====++++====::::8888::::====::::888888888888::::::::====++++========++++++++============++++====::::8888::::::::====::::8888::::====++++====::::8888::::====::::888888888888::::::::====++++========++++++++============++++====::::8888::::::::====::::8888::::====++++====::::8888::::====::::888888888888::::::::====++++========++++++++============++++====::::8888::::::::====::::8888::::====++++====::::8888::::====::::888888888888::::::::====++++========++++++++============++++====::::8888::::::::====::::8888::::====++++====::::8888::::====::::888888888888::::::::====++++========++++++++============++++====::::8888::::::::====::::8888::::====++++====::::8888::::====::::888888888888::::::::====++++========++++++++============++++====::::8888::::::::====::::8888::::====++++====::::8888::::====::::888888888888::::::::====++++========++++++++============++++====::::88888888::::====::::8888::::====++++====::::66668888::::====::::8888::::::::====++++++++++++++++============::::::::====++++====::::8888::::====::::8888::::====++++====::::66668888::::====::::8888::::::::====++++++++++++++++============::::::::====++++====::::8888::::====::::8888::::====++++====::::66668888::::====::::8888::::::::====++++++++++++++++============::::::::====++++====::::8888::::====::::8888::::====++++====::::66668888::::====::::8888::::::::====++++++++++++++++============::::::::====++++====::::8888::::====::::8888::::====++++====::::66668888::::====::::8888::::::::====++++++++++++++++============::::::::====++++====::::8888::::====::::8888::::====++++====::::66668888::::====::::8888::::::::====++++++++++++++++============::::::::====++++====::::8888::::====::::8888::::====++++====::::66668888::::====::::8888::::::::====++++++++++++++++============::::::::====++++====::::8888::::====::::8888::::====++++====::::66668888::::====::::8888::::::::====++++++++++++++++============::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::::::====::::888866668888====++++====::::88886666====::::====::::::::====++++================::::====::::::::::::====++++====::::====::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++============::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++============::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++============::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++============::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++============::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++============::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++============::::8888666666668888::::++++============8888::::::::++++========++++====::::::::::::::::8888888888888888========++++================888866668888::::::::====++++====::::88888888::::====++++++++++++====::::88888888666666668888::::8888::::====++++====::::========888866668888::::::::====++++====::::88888888::::====++++++++++++====::::88888888666666668888::::8888::::====++++====::::========888866668888::::::::====++++====::::88888888::::====++++++++++++====::::88888888666666668888::::8888::::====++++====::::========888866668888::::::::====++++====::::88888888::::====++++++++++++====::::88888888666666668888::::8888::::====++++====::::========888866668888::::::::====++++====::::88888888::::====++++++++++++====::::88888888666666668888::::8888::::====++++====::::========888866668888::::::::====++++====::::88888888::::====++++++++++++====::::88888888666666668888::::8888::::====++++====::::========888866668888::::::::====++++====::::88888888::::====++++++++++++====::::88888888666666668888::::8888::::====++++====::::========888866668888::::::::====++++====::::88888888::::====++++++++++++====::::88888888666666668888::::8888::::====++++====::::====::::8888666688888888::::====++++========::::::::================++++++++====::::666666668888888888888888::::========++++::::====::::8888666688888888::::====++++========::::::::================++++++++====::::666666668888888888888888::::========++++::::====::::8888666688888888::::====++++========::::::::================++++++++====::::666666668888888888888888::::========++++::::====::::8888666688888888::::====++++========::::::::================++++++++====::::666666668888888888888888::::========++++::::====::::8888666688888888::::====++++========::::::::================++++++++====::::666666668888888888888888::::========++++::::====::::8888666688888888::::====++++========::::::::================++++++++====::::666666668888888888888888::::========++++::::====::::8888666688888888::::====++++========::::::::================++++++++====::::666666668888888888888888::::========++++::::====::::8888666688888888::::====++++========::::::::================++++++++====::::666666668888888888888888::::========++++::::====::::::::8888888888888888::::====++++============::::::::::::::::====++++++++::::666666668888888888888888::::::::====++++::::====::::::::8888888888888888::::====++++============::::::::::::::::====++++++++::::666666668888888888888888::::::::====++++::::====::::::::8888888888888888::::====++++============::::::::::::::::====++++++++::::666666668888888888888888::::::::====++++::::====::::::::8888888888888888::::====++++============::::::::::::::::====++++++++::::666666668888888888888888::::::::====++++::::====::::::::8888888888888888::::====++++============::::::::::::::::====++++++++::::666666668888888888888888::::::::====++++::::====::::::::8888888888888888::::====++++============::::::::::::::::====++++++++::::666666668888888888888888::::::::====++++::::====::::::::8888888888888888::::====++++============::::::::::::::::====++++++++::::666666668888888888888888::::::::====++++::::====::::::::8888888888888888::::====++++============::::::::::::::::====++++++++::::666666668888888888888888::::::::====++++::::::::====::::::::8888::::8888============++++++++::::8888666666668888::::========++++::::666666668888888888888888::::========++++::::====::::::::8888::::8888============++++++++::::8888666666668888::::========++++::::666666668888888888888888::::========++++::::====::::::::8888::::8888============++++++++::::8888666666668888::::========++++::::666666668888888888888888::::========++++::::====::::::::8888::::8888============++++++++::::8888666666668888::::========++++::::666666668888888888888888::::========++++::::====::::::::8888::::8888============++++++++::::8888666666668888::::========++++::::666666668888888888888888::::========++++::::====::::::::8888::::8888============++++++++::::8888666666668888::::========++++::::666666668888888888888888::::========++++::::====::::::::8888::::8888============++++++++::::8888666666668888::::========++++::::666666668888888888888888::::========++++::::====::::::::8888::::8888============++++++++::::8888666666668888::::========++++::::666666668888888888888888::::========++++8888::::========::::====::::::::====++++::::::::8888666666668888::::8888::::========++++88886666666688888888====::::========++++8888::::========::::====::::::::====++++::::::::8888666666668888::::8888::::========++++88886666666688888888====::::========++++8888::::========::::====::::::::====++++::::::::8888666666668888::::8888::::========++++88886666666688888888====::::========++++8888::::========::::====::::::::====++++::::::::8888666666668888::::8888::::========++++88886666666688888888====::::========++++8888::::========::::====::::::::====++++::::::::8888666666668888::::8888::::========++++88886666666688888888====::::========++++8888::::========::::====::::::::====++++::::::::8888666666668888::::8888::::========++++88886666666688888888====::::========++++8888::::========::::====::::::::====++++::::::::8888666666668888::::8888::::========++++88886666666688888888====::::========++++8888::::========::::====::::::::====++++::::::::8888666666668888::::8888::::========++++88886666666688888888====::::========++++::::8888::::::::++++++++========++++::::888888886666666688888888888888888888::::====++++::::888866668888::::8888::::========++++::::8888::::::::++++++++========++++::::888888886666666688888888888888888888::::====++++::::888866668888::::8888::::========++++::::8888::::::::++++++++========++++::::888888886666666688888888888888888888::::====++++::::888866668888::::8888::::========++++::::8888::::::::++++++++========++++::::888888886666666688888888888888888888::::====++++::::888866668888::::8888::::========++++::::8888::::::::++++++++========++++::::888888886666666688888888888888888888::::====++++::::888866668888::::8888::::========++++::::8888::::::::++++++++========++++::::888888886666666688888888888888888888::::====++++::::888866668888::::8888::::========++++::::8888::::::::++++++++========++++::::888888886666666688888888888888888888::::====++++::::888866668888::::8888::::========++++::::8888::::::::++++++++========++++::::888888886666666688888888888888888888::::====++++::::888866668888::::8888::::========++++============++++========++++++++====::::88886666666688888888::::666666668888::::====++++888888888888888888888888::::========++++============++++========++++++++====::::88886666666688888888::::666666668888::::====++++888888888888888888888888::::========++++============++++========++++++++====::::88886666666688888888::::666666668888::::====++++888888888888888888888888::::========++++============++++========++++++++====::::88886666666688888888::::666666668888::::====++++888888888888888888888888::::========++++============++++========++++++++====::::88886666666688888888::::666666668888::::====++++888888888888888888888888::::========++++============++++========++++++++====::::88886666666688888888::::666666668888::::====++++888888888888888888888888::::========++++============++++========++++++++====::::88886666666688888888::::666666668888::::====++++888888888888888888888888::::========++++============++++========++++++++====::::88886666666688888888::::666666668888::::====++++888888888888888888888888::::========++++++++====++++====::::::::::::====::::====::::88888888::::8888888866668888::::::::====++++::::88888888::::8888::::::::====++++====++++====++++====::::::::::::====::::====::::88888888::::8888888866668888::::::::====++++::::88888888::::8888::::::::====++++====++++====++++====::::::::::::====::::====::::88888888::::8888888866668888::::::::====++++::::88888888::::8888::::::::====++++====++++====++++====::::::::::::====::::====::::88888888::::8888888866668888::::::::====++++::::88888888::::8888::::::::====++++====++++====++++====::::::::::::====::::====::::88888888::::8888888866668888::::::::====++++::::88888888::::8888::::::::====++++====++++====++++====::::::::::::====::::====::::88888888::::8888888866668888::::::::====++++::::88888888::::8888::::::::====++++====++++====++++====::::::::::::====::::====::::88888888::::8888888866668888::::::::====++++::::88888888::::8888::::::::====++++====++++====++++====::::::::::::====::::====::::88888888::::8888888866668888::::::::====++++::::88888888::::8888::::::::====++++====::::++++++++========88888888::::8888::::====::::::::====::::8888::::::::========++++====::::8888::::====::::============++++====::::++++++++========88888888::::8888::::====::::::::====::::8888::::::::========++++====::::8888::::====::::============++++====::::++++++++========88888888::::8888::::====::::::::====::::8888::::::::========++++====::::8888::::====::::============++++====::::++++++++========88888888::::8888::::====::::::::====::::8888::::::::========++++====::::8888::::====::::============++++====::::++++++++========88888888::::8888::::====::::::::====::::8888::::::::========++++====::::8888::::====::::============++++====::::++++++++========88888888::::8888::::====::::::::====::::8888::::::::========++++====::::8888::::====::::============++++====::::++++++++========88888888::::8888::::====::::::::====::::8888::::::::========++++====::::8888::::====::::============++++====::::++++++++========88888888::::8888::::====::::::::====::::8888::::::::========++++====::::8888::::====::::============++++============++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::========++++====::::88886666888888888888::::============::::::::========++++++++++++========::::::::============++++++++====::::8888::::++++++++::::66666666::::88888888====::::====::::====++++++++++++============++++============++++++++++++============::::8888::::++++++++::::66666666::::88888888====::::====::::====++++++++++++============++++============++++++++++++============::::8888::::++++++++::::66666666::::88888888====::::====::::====++++++++++++============++++============++++++++++++============::::8888::::++++++++::::66666666::::88888888====::::====::::====++++++++++++============++++============++++++++++++============::::8888::::++++++++::::66666666::::88888888====::::====::::====++++++++++++============++++============++++++++++++============::::8888::::++++++++::::66666666::::88888888====::::====::::====++++++++++++============++++============++++++++++++============::::8888::::++++++++::::66666666::::88888888====::::====::::====++++++++++++============++++============++++++++++++============::::8888::::++++++++::::66666666::::88888888====::::====::::====++++++++++++============++++============++++++++++++============::::8888::::++++====::::6666888888888888::::::::::::========++++====::::::::::::::::::::====++++++++++++================::::::::::::8888::::++++====::::6666888888888888::::::::::::========++++====::::::::::::::::::::====++++++++++++================::::::::::::8888::::++++====::::6666888888888888::::::::::::========++++====::::::::::::::::::::====++++++++++++================::::::::::::8888::::++++====::::6666888888888888::::::::::::========++++====::::::::::::::::::::====++++++++++++================::::::::::::8888::::++++====::::6666888888888888::::::::::::========++++====::::::::::::::::::::====++++++++++++================::::::::::::8888::::++++====::::6666888888888888::::::::::::========++++====::::::::::::::::::::====++++++++++++================::::::::::::8888::::++++====::::6666888888888888::::::::::::========++++====::::::::::::::::::::====++++++++++++================::::::::::::8888::::++++====::::6666888888888888::::::::::::========++++====::::::::::::::::::::====++++++++++++================::::::::::::::::====++++========66666666888888888888::::====++++++++====::::88888888888888888888::::::::====++++====::::::::::::::::88888888::::====++++========66666666888888888888::::====++++++++====::::88888888888888888888::::::::====++++====::::::::::::::::88888888::::====++++========66666666888888888888::::====++++++++====::::88888888888888888888::::::::====++++====::::::::::::::::88888888::::====++++========66666666888888888888::::====++++++++====::::88888888888888888888::::::::====++++====::::::::::::::::88888888::::====++++========66666666888888888888::::====++++++++====::::88888888888888888888::::::::====++++====::::::::::::::::88888888::::====++++========66666666888888888888::::====++++++++====::::88888888888888888888::::::::====++++====::::::::::::::::88888888::::====++++========66666666888888888888::::====++++++++====::::88888888888888888888::::::::====++++====::::::::::::::::88888888::::====++++========66666666888888888888::::====++++++++====::::88888888888888888888::::::::====++++====::::::::::::::::888888888888::::====++++========::::8888::::8888====++++========::::8888::::666666668888::::::::====++++====::::::::8888::::8888666666668888::::====++++========::::8888::::8888====++++========::::8888::::666666668888::::::::====++++====::::::::8888::::8888666666668888::::====++++========::::8888::::8888====++++========::::8888::::666666668888::::::::====++++====::::::::8888::::8888666666668888::::====++++========::::8888::::8888====++++========::::8888::::666666668888::::::::====++++====::::::::8888::::8888666666668888::::====++++========::::8888::::8888====++++========::::8888::::666666668888::::::::====++++====::::::::8888::::8888666666668888::::====++++========::::8888::::8888====++++========::::8888::::666666668888::::::::====++++====::::::::8888::::8888666666668888::::====++++========::::8888::::8888====++++========::::8888::::666666668888::::::::====++++====::::::::8888::::8888666666668888::::====++++========::::8888::::8888====++++========::::8888::::666666668888::::::::====++++====::::::::8888::::888866666666