???.....................???????????????........???..............???...???????????????????????????????????????
???....................???.......???........???...........???....???............
???...................???.........???........???.........???.....???............
???...................???.........???.........???.......???......?????????????????????......
???...................???.........???..........???.....???.......???............
???...................???.........???...........???...???........???............
???....................???.......???.............???.???.........???............
??????????????????..........???????????????...............???..........???????????????????????????????????????