about summary refs log tree commit diff
path: root/day13
blob: e6855b90c370e0316a0c420a92429c589613c348 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
                                                      /------------------------------------------------------------------------------------------\    
                                /---------------------+---------------------------------------------\                                            |    
           /--------------------+---------------------+--------------------------------\            |                      /------------\        |    
           |                    |                 /---+--------------------------------+------------+----------------------+------------+--------+---\
           |/-------------------+-----------------+---+\                /--------------+---------\  |                      |            |        |   |
    /------++-----------\       |                 |   ||      /---------+\             |         |  |                      |            |        |   |
    |      ||           |       |          /------+---++------+---------++-------------+---------+--+-----\                |            |        |   |
    |      ||           |       |          |      |/--++------+---------++-------\   /-+--------\|  |     |                |            |        |   |
    |      ||   /-------+-------+----------+\     ||  ||      |         ||       |   | |        ||  |     |                |            |        |   |
    |    /-++---+-------+-----\ |/---------++-----++--++------+---------++-------+---+-+--------++--+-----+-----------\    |            |        |   |
    |    | ||   |       |     | ||     /---++-----++--++------+---------++-------+---+-+\       ||  |     |           |    |            |        |   |
    |    | ||   |       |     | ||     |   ||     ||  ||      |         ||/------+---+-++-------++--+-----+-----------+----+-\          |        |   |
    |    | ||   |       |     | ||     |   ||    /++--++------+---------+++------+---+-++-------++--+-----+--\        |    | |          |        |   |
   /+----+-++---+-------+-----+-++-----+---++----+++--++->----+---------+++------+-\ | ||       ||  |     |  |        |    | |          |        |   |
   ||    | ||   |/------+-----+-++-----+---++----+++--++------+---------+++------+-+-+-++-------++--+-----+--+-------\|    | |          |        |   |
   ||    | ||   ||      |     | ||     |   ||    |||  ||      |         |||      | | | ||    /--++--+-----+--+-------++----+-+---\      |        |   |
   ||    | ||   ||      |     | ||     | /-++----+++--++----\ |         |||      | | | ||    |  ||  |     |  |       ||    | |   |      |        |   |
   || /--+-++---++------+-----+-++-----+-+-++----+++--++----+-+---------+++---\  | | | ||    |  ||  |     |  |       ||    | |   |      |        |   |
   || |  \-++---++------+-----/ ||     | | ||    |||/-++----+-+---------+++---+--+-+-+-++----+--++--+-----+-\|       ||    | |   |  /---+--------+--\|
   || |    ||   ||      |       ||    /+-+-++----++++-++----+-+---------+++---+--+-+-+-++----+--++--+-----+\||     /-++----+-+-\ |  |   |        |  ||
   || |    ||   ||      |       ||  /-++-+-++----++++-++----+-+---------+++---+--+-+-+-++----+--++--+-----++++-\   | ||    | | | |  |   |        |  ||
   || |    ||   ||      |       ||  | || | ||    |||| ||    | |         ||\---+--+-+-+-++----+--++--+-----++++-+---+-++----+-/ | |  |   |        |  ||
   || |    ||   ||      |       ||  | || | ||    |||| ||    |/+---------++----+--+-+-+-++----+--++--+---\ |||| |   | ||    |   | |  |  /+-------\|  ||
   || |    ||   ||      |       ||  | || | ||    |||| ||    |||         ||    |/-+-+-+-++----+--++--+---+-++++-+---+-++-\  |   | |  |  ||       ||  ||
   || |    ||   ||      |       ||  | || | ||/---++++-++----+++---------++----++-+-+-+-++----+--++--+---+-++++-+---+-++-+\ |   | |  |  ||       ||  ||
   || |    ||   ||  /---+-------++--+-++-+-+++---++++-++----+++---------++----++-+-+-+-++----+--++--+---+-++++-+---+-++-++-+-\ | |  |  ||       ||  ||
  /++-+----++---++--+---+--\    ||  | || | |||   |||| ||    |||         ||    || | | | ||    |/-++--+---+-++++-+---+-++-++-+-+-+-+--+--++\      ||  ||
  ||| |    ||   ||  |   |  |    ||  | || | \++---++++-++----+++---------++----++-+-+-+-++----++-++--+---+-/||| |/--+-++-++-+-+-+-+--+--+++---\  ||  ||
  ||| |/---++---++--+---+--+----++\ | || |  ||   |||| ||    |||         \+----++-+-+-+-++----++-+/  |   |  ||| ||  | || || | | | |  |  |||   |  ||  ||
  ||| ||   ||  /++--+---+--+----+++-+-++-+--++---++++-++----+++----------+----++-+-+-+\||    || |   |   |  ||| ||/-+-++-++-+-+-+-+--+--+++---+--++-\||
  ||| ||   ||  |||  |   |  |    ||| | || |  ||   |||| ||    |||      /---+----++-+-+-++++----++-+---+---+--+++-+++-+-++-++-+-+-+-+--+-<+++---+\ || |||
  ||| ||/--++--+++-\|   |  |    ||| | || |  ||   |||\-++----+++------+---+----++-+-+-++++----++-+---+---+--+/| ||| \-++-++-+-+-/ |  |  |||   || || |||
  ||| |||  ||/-+++-++-\ | /+----+++-+-++-+--++---+++--++----+++------+---+----++-+-+-++++----++-+---+---+--+-+-+++---++-++\| |   |  |  |||   || || |||
  ||| |||  ||| ||| || | | ||    ||| | || |  ||   |||  || /--+++------+---+----++-+\| ||||    || |   |   |  | | |||   || |||| |   |  |  |||   || || |||
  ||| |||  ||| ||| || | | ||    ||| | || |  ||   |\+--++-+--+++------+---+----++-+++-++++----++-+---+---+--+-+-+++---++-++++-+---+--+--+++->-++-++-++/
  ||| |||  ||| ||| || | | ||    ||| | || |/-++---+-+--++-+--+++->----+---+----++-+++-++++----++-+---+---+--+-+-+++---++-++++-+---+\ |  |||   || || || 
  ||| |||  ||| ||| || | | ||    ||| | || ||/++---+-+--++-+--+++------+---+----++-+++-++++----++-+---+---+--+-+-+++---++-++++-+---++-+--+++---++\|| || 
  |\+-+++--+++-+++-++-+-+-++----+++-+-++-+++++---+-+--++-+--+++------+---+----++-++/ ||||    || |   |   |  | | |||   || |||| |   || |  |||   ||||| || 
  | | |||  ||| ||\-++-+-+-++----+++-+-++-+++++---+-+--++-+--+++------+---+----++-++--++++----++-+---+---+--+-+-+++---/| |||| |   || |  |||   ||||| || 
  | | |||  ||| ||/-++-+-+-++----+++\| || \++++---+-+--++-+--/||      |   |    || ||  ||||    || |   |   |  | | |||    | |||| |   || |  |||   ||||| || 
  | | |||  ||| ||| || | | ||    ||||| ||/-++++---+-+--++-+---++------+---+----++-++--++++----++-+---+---+--+-+\|||    | |||| |   || |  |||   ||||| || 
  | | |||  ||| |||/++-+-+-++--\ ||||| ||| ||||  /+-+--++-+---++------+---+----++-++--++++--\ || |   |   |  | |||||    | |||| |   || |  |||   ||||| || 
  | | |||  ||| |||||| | | ||  | ||||| ||| ||||  || |  || |   ||      |   |    |\-++--++++--+-++-+---+---+--+-+++++----+-/||| |   || |  |||   ||||| || 
  | | |||  ||| |||||^ | | ||  | ||||| ||| ||||  || |  \+-+---++------+---+----+--++--++++--+-++-+---+---+--+-+++++----+--+++-+---++-+--+++---++++/ || 
  |/+-+++--+++-++++++-+-+-++--+-+++++-+++-++++--++-+---+-+---++------+---+----+--++--++++--+-++-+---+---+\ | |||||    |  ||| |   || |  |||   ||||  || 
  ||| |||  ||| |||||| | | ||  | |||||/+++-++++--++-+---+-+---++------+---+----+--++--++++--+-++-+---+---++-+-+++++\   |  ||| |   || |  |||   ||||  || 
  ||| |||  ||| |||||| | | ||  | \++++++++-++++--++-+---+-+---++------+---+----+--++--++++--+-++-+---/   || | ||||||   |  ||| |   || |  |||   ||||  || 
/-+++-+++--+++-++++++-+-+-++--+--++++++++-++++--++-+---+-+---++------+---+----+--++--++++--+-++-+--\    || | ||||||   |  ||| |   || |  |||   ||||  || 
| ||| |||  v|| \+++++-+-+-++--+--++++++++-++++--++-+---+-+---++------+---+----+--++--+/||  | || |  |    || | ||||||   |  ||| |   || |  |||   ||||  || 
| ||| |||  |||  ||||| |/+-++--+--++++++++-++++--++-+---+-+---++------+---+----+--++--+-++-\| || | /+----++-+-++++++---+--+++-+--\|| |  |||   ||||  || 
| ||| |||  |||  ||||| ||| ||  |  \+++++++-++++--++-+---+-+---++------+---+----+--++--+-++-++-++-+-++----++-+-++++++---/  ||| |  ||| |  |||   ||||  || 
| ||\-+++--+++--+++++-++//++--+---+++++++-++++--++-+---+-+---++--\   |   |  /-+--++--+-++-++-++-+-++--\ || | ||||||      ||| |  ||| |  |||   ||^|  || 
| ||  |||  \++--+++++-++-+++--+---+++++++-++++--++-+---+-+---++--+---+---+--+-+--++--+-/| || || | ||  | || | ||||||      ||| |  ||| |  |||   ||||  || 
| ||  |||   ||/-+++++-++-+++--+---+++++++-++++-\|| |   | \---++--+---+---+--+-+--+/  |  | || || | ||  | || | ||||||      ||\-+--+++-+--+/|   ||||  || 
| ||  \++---+++-+++++-++-+++--+---+++++++-++++-+++-+---+-----++--+---+---+--+-/  |   |  | || || | ||  | || | ||||||      ||/-+--+++-+--+-+---++++-\|| 
| ||   ||   ||| ||||| || |||  |   ||||||| |||| ||| |   |     ||  |   |/--+--+----+-\ |  | || || | ||  | || | ||||\+------+++-+--+++-+--+-+---++++-+/| 
| ||   ||   ||| ||||| || |||  |   ||||||| |||| ||| |   |     ||  |   ||  |/-+----+-+-+--+-++-++-+-++--+-++-+-++++-+------+++-+--+++\|  | |   |||| | | 
| ||   ||   ||| ||||| || ||| /+---+++++++-++++-+++-+---+-----++--+---++--++-+----+-+-+\ | || || | ||  | || | |||| |      ||| |  |||||  | |   |||| | | 
| ||   ||  /+++-+++++-++-+++-++---+++++++-++++-+++-+---+-----++--+---++--++-+----+-+-++-+-++-++-+\||  | || | |||| | /----+++-+\ |||||  | |   |||| | | 
| ||   ||/-++++-+++++-++-+++-++-\ ||||||| |||| |||/+---+-----++--+---++--++-+----+-+-++-+-++\\+-++++--+-++-+-++++-+-+----+++-++-+/|||  | |   |||| | | 
| ||   ||| |||| ||\++-++-+++-+/ | ||||||| |||| |||||   | /---++--+--\||  || |    | | || | ||| | ||||  | || | |||| | |    ||| || | |||  | |   |||| | | 
| ||   ||| |||| || || || ||| |  | ||||||| |||| |||||   | |   ||  |  |||  || |    | | \+-+-+++-+-/|||  | || | |||| | ^    ||| || | ||\--+-+---++++-+-/ 
| ||   ||| |||| || || || ||| |  | |||||||/++++-+++++---+-+---++--+--+++--++-+----+-+--+-+-+++-+--+++--+-++-+-++++-+-+----+++-++-+\||   | |   |||| |   
| ||   ||| |||| || || || ||| |  | |||||||||||| |||||   | |   ||  |  |||  || |    | |  | | ||| |  |||  | || | |||| | |    ||| || ||||   | |   |||| |   
| ||   ||| |||| || || || ||| | /+-++++++++++++-+++++---+-+---++--+--+++--++-+----+-+--+-+-+++-+--+++--+-++-+-++++-+-+----+++-++-++++--\| |   |||| |   
| ||   |\+-++++-++-/| || ||| | || |||||||||||| |||||   | |   ||/-+--+++--++-+----+-+--+-+-+++-+--+++--+-++-+-++++-+-+--\ ||| || ||||  || |   |||| |   
| ||   | | |||| ||  | || ||| | || |||||\++++++-+++++---+-+---+++-+--+++--++-+----+-+--+-/ ||| |  |||  | || | |||| | |  | ||| || ||||  || |   |||| |   
| ||   | | |||| ||  | || \++-+-++-+++++-++++++-+++++---+-+---+++-/  |||  || |    | |  |   ||| |  |||  | || | |||| | |  | ||| || ||||  || |   |||| |   
| ||   | | |||| ||  | ||  \+-+-++-+++++-++++++-+++++---+-+---+++----+++--++-+----+-+--+---+++-+--+++--+-++-+-++++-+-+--+-+/| || ||||  || |   |||| |   
| ||   | | |||\-++--+-++---+-+-++-+++++-++++++-/||||   | |   |||    |||  || |    | |  |   ||| |  |||  | || | |||| | |  | | | || ||||  || |   |||| |   
| ||   | | ||\--++--+-/|   | | || ||||| ||||||  ||||   | |   |||   /+++--++-+----+-+--+---+++-+--+++--+-++-+-++++-+\|  | | | || ||||  || |   |||| |   
| || /-+-+-++---++--+--+---+-+-++-+++++-++++++--++++---+-+---+++---++++--++-+----+-+--+---+++-+--+++-\| || | |||\-+++--+-+-+-++-++++--++-+---/||| |   
| || | | | ||   ||  |  | /-+-+-++-+++++-++++++--++++---+-+---+++---++++--++-+----+-+-\|   ||| |  ||| || || | |v|  |||  | | | || ||||  || |    ||| |   
| || | | | ||/--++--+--+-+-+-+-++-+++++\||||||  ||||   | |   |||   ||||  || |    | | ||   ||| |  ||| || || | |||  |||  | | | || ||||  || |    ||| |   
| || |/+-+-+++--++--+--+-+-+-+-++-++++++++++++--++++---+-+\ /+++---++++--++-+----+-+-++---+++-+--+++-++-++-+-+++--+++--+-+-+-++-++++--++-+---\||| |   
| || ||| | |||  ||  |  | | | \-++-++++++++++++--++++---+-++-++++---++++--++-+----+-+-+/   ||| |  ||| || || | |||  |||  | | | || ||||  || |   |||| |   
| || ||| | \++--++--+--+-+-+---++-++++++++++++--++++---+-++-++++---++++--++-+----+-+-+----+++-+--/|| || || | |||  |||  | | | || ||||  || |   |||| |   
| || ||| |  ||  ||  |/-+-+-+---++-++++++++++++--++++---+-++-++++---++++--++-+----+-+-+---\||| |   || || || | |||  |||  | | | || ||||  || |   |||| |   
| || ||| |  ||  ||  || | | |   || ||||||||||||  ||\+---+-++-++++---++++--++-+----+-+-+---+++/ |   || || || | |||  |||  | | | || ||||  || |   |||| |   
| || ||| |  ||  ||  || | | |   || |||\++++++++--++-+---+-++-++++---++++--++-+----+-+-+---+++--+---++-++-++-+-+++--/||  | | | || ||||  || |   |||| |   
| || ||| |  ||  ||  || | | |   || ||| ||||||||  || \---+-++-++++---++++--++-+----/ | |/--+++--+---++-++-++-+-+++---++--+-+-+-++-++++--++\|   |||| |   
| || ||| \--++--++--++-+-+-+---+/ ||| |||||\++--++-----+-++-++++---++++--++-+------+-++--+++--+---++-++-++-+-+++---++--+-+-+-++-++++--++++---++/| |   
| || |||    ||  ||  || | | |   |  ||| ||||| ||  ||     | || ||||   ||||  || |  /---+-++--+++--+---++-++-++-+-+++---++-\| | | || ||||  ||||   || | |   
| || |||    |\--++--++-+-+-+---+--+++-+/||| ||  ||     | || ||||   ||||  || |  |   | ||  |||  |   || || || | |||   || || | | || ||||  ||||   || | |   
| || |||    |   || /++-+-+-+---+--+++-+-+++-++--++-----+-++-++++---++++\ || |/-+---+-++--+++--+---++-++-++-+-+++---++-++-+-+-++-++++--++++-\ || | |   
| || |||    |   || ||| | | |   |  ||| |/+++-++--++-----+-++-++++---+++++-++-++-+---+-++--+++--+\  || || || | |||   || || | | || ||||  ||||/+-++-+-+\  
| || |||    |   || ||| | | |   |  ||| ||||| ||  ||     | || |v|| /-+++++-++-++-+---+-++--+++--++--++-++-++-+-+++---++-++-+-+-++-++++\ |||||| || | ||  
| || |||    |   || ||| | | |   |  ||| ||||| ||  ||     | || |||| | ||||| || || |  /+-++--+++--++--++-++-++-+-+++---++\|| | | || ||||| |||||| || | ||  
| || |||    |   || ||| | | |   |  ||| ||||| ||  ||   /-+-++-++++-+-+++++-++-++-+--++-++--+++--++--++-++-++-+-+++---+++++-+-+-++-+++++\|||||| || | ||  
| || |||    |   || ||| | | |   |  ||| ||||| ||  ||   | | || |||| | ||||| ||/++-+--++-++--+++--++--++-++-++-+-+++---+++++-+-+-++\|||||||||||| || | ||  
| || |||    |   || ||| | | |   |  ||| ||||| ||  ||   | | || \+++-+-+++++-+++++-+--++-++--+++--++--++-++-++-+-+++---+++++-+-+-+++++++++++++++-/| | ||  
| \+-+++----+---++-+++-+-+-/   v  ||| ||||| ||  ||   | | ||  ||| | |||\+-+++++-+--+/ ||  |||  ||  || || || | |||   ||||| | | |||||||||||||||  | | ||  
|  | |||    |/--++-+++-+-+-----+--+++-+++++-++--++---+-+-++--+++-+-+++-+-+++++-+--+--++--+++--++-\|| || || | |||   ||||| | | |||||||||||||||  | | ||  
|  | |||    ||  || ||| | |     |  ||| ||||| |\--++---+-+-++--+++-+-+++-+-+++++-+--+--++--+++--++-+++-++-++-+-+++---+++++-/ | |||||||||||||||  | | ||  
|  | |||    || /++-+++-+-+-----+--+++-+++++-+-\ ||   | | ||  ||| | ||| | ||||| |  |  ||  |||  || ||| || || | |||   |||||   | |||||||||||||||  | | ||  
|  | |||    || ||| ||| | |     |  ||| ||||| | | ||   | | ||  ||| | ||| | ||||| |  |  ||  |||  || ||| || || | |||   |\+++---+-+/|||||||||||||  | | ||  
|  | |||    || ||| ||| | |     |  ||| ||||| | | ||   | | ||  ||| | ||| | ||||| |  |  ||  |||  || ||| || || | |||   | |||   | | |||||||||||||  | | ||  
|  | |||    || ||| ||| \-+-----+--+++-+++++-+-+-++---+-+-++--+++-+-+++-+-+++++-+--+--++--+/|  || ||| || || | |||   | |||   | | |||||||||||||  | | ||  
|  | |||    || ||| |||   |     |  ||| ||||| | | ||   | | \+--+++-+-+/| | ||||| |  |  ||  | |  || ||| || || | |||   | |||   | | |||||||||||||  | | ||  
|  | |||    \+-+++-+++---+-----+--+++-+++++-+-+-++---+-/  |  ||| | | | | ||||| |  |  ||/-+-+--++-+++-++\|| | |||   | |||   | | |||||||||||||  | | ||  
|  | |||     | ||| |||   |     |  ||| ||||| | | |\---+----+--+++-+-+-+-+-+++++-+--+--+++-+-+--++-+++-+++++-+-/||   | |||   | | ||||||||\++++--+-/ ||  
|  | |||     | ||| |||   |     |  ||| ||||| | | |    |    |  ||| | | | | ||||| |  |  ||| | |/-++-+++-+++++-+--++---+-+++--\| | |||||||| ||||  |   ||  
|  \-+++-----+-+++-+++---+-----+--+++-+++++-+-+-+----+----+--+++-+-+-+-+-+++++-+--+--+++-+-++-++-+++-++++/ |/-++---+-+++--++-+-++++++++-++++--+---++\ 
|    ^||     | |||/+++---+-----+--+++-+++++-+-+-+----+----+--+++-+-+-+-+-+++++-+-\|  ||| | || || ||| ||||  || ||   | |||  || | |||||||| ||||  |   ||| 
|    |||     | |||||||   |     |  ||| ||||| | | |    |    |  ||| | | | | ||\++-+-++--+++-+-++-++-+++-++++--++-++---+-+++--++-+-/||||||| ||||  |   ||| 
|    |||     | |||||||   |     |  ||\-+++++-+-+-+----+----+--+++-+-+-+-+-++-++-+-++--+++-+-++-++-+++-++++--++-+/   | |||  || |  ||||||| ||||  |   ||| 
|    ||\-----+-+++++++---+-----+--/|  ||||| | | |    |    |  ||| | | | | ||/++-+-++--+++-+-++-++\||| ||||  || |    | |||  || |  ||||||| ||||  |   ||| 
|    ||      | |||||||   \-----+---+--+++++-+-+-+----+----+--+++-+-+-+-+-+++++-+-++--/|| | || |||||| ||||  || |    | |||  || |  ||||||| ||||  |   ||| 
|    ||      | ||||||\---------+---+--+++++-+-+-+----+----+--+++-+-+-+-+-+++++-+-++---++-/ || |||||| ||||  || |    | |||  || |  ||||||| ||||  |   ||| 
|    ||      | |\++++----------+---+--+++++-/ | |    |    |  |\+-+-+-+-+-/|||| | ||   ||   || |||||| ||||  || |    | |||  || |  ||||||| ||||  v   ||| 
|    ||      | | ||||          |   |  ||\++---+-+----+----+--+-+-+-+-+-+--++++-+-++---++---++-++++++-++++--++-/    | |||  || |  ||||||| ||||  |   ||| 
|    ||      | | ||||          |   |  || ||   | |    |    |  | \-+-+-+-+--++++-+-++---++---++-++++++-++++--++------+-++/  || |  ||||||| ||||  |   ||| 
|    ||      | | ||||          \---+--++-++---+-+----+----+--+---+-+-+-+--++++-+-++---++---++-++++++-++++--++------+-++---++-+--++++++/ ||||  |   ||| 
|    ||      | \-++++--------------+--++-++---/ |    |    |  |   | | | |  |||| | ||   |\---++-++++++-++/|  ||      | ||   || |  ||||||  ||||  |   ||| 
|    ||      |   ||||              |  || ||     |    |    |  |   | | | |  |||| | ||   |/---++-++++++-++-+--++----\ | ||   || |  ||||||  ||||  |   ||| 
|    ||      |   ||||              |  || ||   /-+----+----+--+---+-+-+-+--++++-+-++---++---++-++++++-++-+--++----+-+-++--\|| |  ||||||  ||||  |   ||| 
|    ||      |   ||||              |  || \+---+-+----+----+--+---+-+-+-+--++++-+-++---++---++-++++++-++-+--++----+-+-++--+++-+--+/||||  ||||  |   ||| 
|    ||      |   |||\--------------+--++--+---+-+----+----+--+---+-+-+-+--++++-+-++---++---++-++++++-++-+--++----+-+-++--+++-/  | ||||  ||||  |   ||| 
|    ||      |   |||   /-----------+--++--+---+-+----+----+--+---+-+-+-+--++++-+-++--\||   || |||||| || |  ||    | | ||  |||    | ||||  ||||  |   ||| 
|    ||      |   |||   |           |  \+--+---+-+----+----+--+---+-+-+-+--++++-+-++--+++---++-++++++-++-+--/|    | | ||  |||    | ||||  ||||  |   ||| 
|    |\------+---+++---+-----------+---+--+---+-+----+----/  |   | | | |  |||| | ||  |||   || |||||| || |   |    | | ||  |||    | ||||  ||||  |   ||| 
|    |       |   |||   |           |   |  |   | |    |       \---+-+-+-+--++++-+-++--+++---++-++++++-++-/   |    | | ||  |||    | ||||  ||||  |   ||| 
|    |       |   |||   |           |   |  |/--+-+----+-----------+-+-+-+--++++-+-++--+++---++-++++++-++-----+----+-+-++--+++-\  | ||||  ||||  |   ||| 
|    |       |   ||\---+-----------+---+--++--+-+----+-----------+-+-+-/  |||| | ||  |||   || |||||| ||     |    | | ||  ||| |  | ||||  ||||  |   ||| 
|    |       |   ||    |        /--+---+--++\ | |    |           | \-+----++++-+-++--+++---++-++++++-++-----+----+-/ ||  ||| |  | ||||  ||||  |   ||| 
|    |       |   ||    |        |  |   |  ||| | |    |           |   |    |||| | ||  |||   || |||||| ||     |    |   ||  ||| |  | ||||  ||||  |   ||| 
|    |       |   ||    |        |  |   |  ||| | |    |           |   |    |||| | ||  |||   |\-++++++-++-----+----+---++--+/| |  | ||||  ||\+--+---+/| 
|    |       |   ||    \--------+--+---+--+++-+-+----+-----------+---+----++++-+-++--/||   |  \+++++-++-----+----+---++--+-+-+--+-++++--+/ |  |   | | 
|    |       |   ||             |  |   |  \++-+-+----+-----------+---+----++++-+-++---++---+---+++++-++-----+----+---++--+-+-+--+-/|||  |  |  |   | | 
|    |     /-+---++--------\    |  |   |   || | |    |           |   |    ||\+-+-++---++---+---+++++-+/     |    |   ||  | | |  |  |||  |  |  |   | | 
|    |     | |   ||        |    |  |   |   || | |    |           \---+----++-+-+-++---++---+---+++++-+------+----+->-++--+-+-+--+--+/|  |  |  |   | | 
|    |     | |   ||        |    |  |   |   || | |    |               |    || \-+-++---++---+---+++++-+------+----+---++--+-+-+--+--+-+--+--/  |   | | 
|    |     | |   \+--------+----+--/   |   \+-+-+----+---------------+----++---+-++---++---+---+++++-+------+----+---++--+-+-/  |  | |  |     |   | | 
\----+-----+-+----+--------+----+------+----+-+-+----+---------------+----++---+-++---++---+---++++/ |      |    |   ||  | |    |  | |  |     |   | | 
     |     | |    |        |    |      |    | | |    |       /-------+----++---+-++---++---+---++++--+---\  |    |   ||  | |    |  | |  |     |   | | 
     |     | |    |        |    |      \----+-+-+----+-------+-------+----++---+-++---++---+---/|||  |   |  |    |   ||  | |    |  | |  |     |   | | 
     |     | |    |        |    |           | | |    |       |       |    ||   | ||   ||   |    |||  |   |  \----+---++--+-+----+--+-+--+-----+---+-/ 
     |     | |    |        |    |           | | |    |       |       |    ||   | |\---++---+----+++--+---+-------+---/|  | \----+--+-+--+-----+---/   
     |     | |    |        |    |           | | |    |       |       \----++---+-+----++---+----+++--+---+-------+----+--+------+--+-+--+-----/       
     |     | |    |        |    |           | | |    |       |            \+---+-+----++---+----+++--+---+-------+----+--+------+--/ |  |             
     |     | |    |        |    |           | | \----+-------+-------------+---+-+----++---/    |||  |   |       |    |  |      |    |  |             
     |     \-+----+--<-----/    |           | |      |       |             |   | |    \+--------+++--+---+-------+----+--+------+----+--/             
     |       |    \-------------+-----------+-+------+-------+-------------+---+-/     \--------+++--+---+-------/    |  |      |    |                
     |       |                  \-----------/ |      |       |             |   \----------------+++--+---+------------/  |      |    |                
     |       |                                |      \-------+-------------+--------------------+++--+---+---------------+------+----/                
     |       |                                |              |             \--------------------/|\--+---+---------------+------/                     
     |       v                                \--------------+-----------------------------------+---+---+---------------/                            
     \-------+-----------------------------------------------+-----------------------------------+---/   |                                            
             |                                               \-----------------------------------+-------/                                            
             \--------------------------------------------------------------------------------<--/