2022 Day 14 Python

This commit is contained in:
Luke Hubmayer-Werner 2022-12-14 16:36:13 +10:30
parent 7b696b5f32
commit b56b19720b
2 changed files with 229 additions and 0 deletions

66
2022/day14.py Normal file
View File

@ -0,0 +1,66 @@
from helpers import *
lines = read_day(day).split('\n')
sample_lines = '''
498,4 -> 498,6 -> 496,6
503,4 -> 502,4 -> 502,9 -> 494,9'''.strip().split('\n')
AIR = ord('.')
ROCK = ord('#')
SAND_SOURCE = ord('+')
SAND_REST = ord('o')
SAND_ORIGIN = (500, 0)
FALL_DIRS = np.array([[0,1], [-1,1], [1,1]], dtype=dtype)
def apply_sand_fall(map: ArrayLike) -> bool:
falling_sand_pos = np.array(SAND_ORIGIN, dtype=dtype)
MAX_Y = map.shape[1] - 1
while falling_sand_pos[1] < MAX_Y:
for dir in FALL_DIRS:
if map[*(falling_sand_pos + dir)] == AIR:
falling_sand_pos += dir
break
else:
if falling_sand_pos[1] == 0:
return False
# resting place
# print('Resting at', falling_sand_pos)
map[*falling_sand_pos] = SAND_REST
return True
return False
def sim(lines: list[str], solid_floor=False) -> ArrayLike:
nums = [[int(x) for x in numbers_pattern.findall(line)] for line in lines]
max_x = max([max(n[::2]) for n in nums])
max_y = max([max(n[1::2]) for n in nums])
print(f'Max X: {max_x}, Max Y: {max_y}')
dim_x = max_x + max_y # assume it can pile out diagonally all the way
map = np.full((dim_x,max_y+4), AIR, dtype=np.uint8)
for n in nums:
for x0,y0,x1,y1 in zip(n[::2], n[1::2], n[2::2], n[3::2]):
map[min(x0,x1):max(x0,x1)+1, min(y0,y1):max(y0,y1)+1] = ROCK
if solid_floor:
map[:,max_y+2] = ROCK
map[SAND_ORIGIN] = SAND_SOURCE
while apply_sand_fall(map):
pass
return map
def visualize_map(map: ArrayLike):
X, Y = np.nonzero(map == SAND_REST)
x0 = max(min(X) - 2, 0)
x1 = min(max(X) + 3, map.shape[0])
y0 = max(min(Y) - 2, 0)
y1 = min(max(Y) + 3, map.shape[1])
for row in map[x0:x1, y0:y1].T:
print(''.join((chr(x) for x in row)))
map_1 = sim(lines) # 885
map_2 = sim(lines, True) # 28690 (+1)
print(f'Part 1: {(map_1==SAND_REST).sum()}')
print(f'Part 2: {(map_2==SAND_REST).sum()+(map_2==SAND_SOURCE).sum()}')
if input('Print Part 1 visualization? [y/N]: ').lower() == 'y':
visualize_map(map_1)
print()
if input('Print Part 2 visualization? [y/N]: ').lower() == 'y':
visualize_map(map_2)

163
2022/input/14 Normal file
View File

@ -0,0 +1,163 @@
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
533,137 -> 533,135 -> 533,137 -> 535,137 -> 535,131 -> 535,137 -> 537,137 -> 537,128 -> 537,137 -> 539,137 -> 539,130 -> 539,137 -> 541,137 -> 541,135 -> 541,137 -> 543,137 -> 543,135 -> 543,137
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
533,137 -> 533,135 -> 533,137 -> 535,137 -> 535,131 -> 535,137 -> 537,137 -> 537,128 -> 537,137 -> 539,137 -> 539,130 -> 539,137 -> 541,137 -> 541,135 -> 541,137 -> 543,137 -> 543,135 -> 543,137
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
491,32 -> 495,32
502,89 -> 502,79 -> 502,89 -> 504,89 -> 504,84 -> 504,89 -> 506,89 -> 506,85 -> 506,89 -> 508,89 -> 508,86 -> 508,89 -> 510,89 -> 510,88 -> 510,89 -> 512,89 -> 512,85 -> 512,89
515,103 -> 515,107 -> 512,107 -> 512,115 -> 523,115 -> 523,107 -> 520,107 -> 520,103
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
556,167 -> 556,168 -> 566,168 -> 566,167
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
483,23 -> 498,23
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
485,38 -> 489,38
502,89 -> 502,79 -> 502,89 -> 504,89 -> 504,84 -> 504,89 -> 506,89 -> 506,85 -> 506,89 -> 508,89 -> 508,86 -> 508,89 -> 510,89 -> 510,88 -> 510,89 -> 512,89 -> 512,85 -> 512,89
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
557,171 -> 557,172 -> 573,172 -> 573,171
480,47 -> 480,50 -> 472,50 -> 472,56 -> 489,56 -> 489,50 -> 483,50 -> 483,47
500,74 -> 504,74
533,137 -> 533,135 -> 533,137 -> 535,137 -> 535,131 -> 535,137 -> 537,137 -> 537,128 -> 537,137 -> 539,137 -> 539,130 -> 539,137 -> 541,137 -> 541,135 -> 541,137 -> 543,137 -> 543,135 -> 543,137
497,26 -> 501,26
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
497,76 -> 501,76
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
491,76 -> 495,76
502,89 -> 502,79 -> 502,89 -> 504,89 -> 504,84 -> 504,89 -> 506,89 -> 506,85 -> 506,89 -> 508,89 -> 508,86 -> 508,89 -> 510,89 -> 510,88 -> 510,89 -> 512,89 -> 512,85 -> 512,89
502,89 -> 502,79 -> 502,89 -> 504,89 -> 504,84 -> 504,89 -> 506,89 -> 506,85 -> 506,89 -> 508,89 -> 508,86 -> 508,89 -> 510,89 -> 510,88 -> 510,89 -> 512,89 -> 512,85 -> 512,89
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
533,137 -> 533,135 -> 533,137 -> 535,137 -> 535,131 -> 535,137 -> 537,137 -> 537,128 -> 537,137 -> 539,137 -> 539,130 -> 539,137 -> 541,137 -> 541,135 -> 541,137 -> 543,137 -> 543,135 -> 543,137
515,103 -> 515,107 -> 512,107 -> 512,115 -> 523,115 -> 523,107 -> 520,107 -> 520,103
556,167 -> 556,168 -> 566,168 -> 566,167
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
502,89 -> 502,79 -> 502,89 -> 504,89 -> 504,84 -> 504,89 -> 506,89 -> 506,85 -> 506,89 -> 508,89 -> 508,86 -> 508,89 -> 510,89 -> 510,88 -> 510,89 -> 512,89 -> 512,85 -> 512,89
494,35 -> 498,35
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
497,38 -> 501,38
533,137 -> 533,135 -> 533,137 -> 535,137 -> 535,131 -> 535,137 -> 537,137 -> 537,128 -> 537,137 -> 539,137 -> 539,130 -> 539,137 -> 541,137 -> 541,135 -> 541,137 -> 543,137 -> 543,135 -> 543,137
488,35 -> 492,35
502,89 -> 502,79 -> 502,89 -> 504,89 -> 504,84 -> 504,89 -> 506,89 -> 506,85 -> 506,89 -> 508,89 -> 508,86 -> 508,89 -> 510,89 -> 510,88 -> 510,89 -> 512,89 -> 512,85 -> 512,89
522,122 -> 527,122
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
480,47 -> 480,50 -> 472,50 -> 472,56 -> 489,56 -> 489,50 -> 483,50 -> 483,47
533,137 -> 533,135 -> 533,137 -> 535,137 -> 535,131 -> 535,137 -> 537,137 -> 537,128 -> 537,137 -> 539,137 -> 539,130 -> 539,137 -> 541,137 -> 541,135 -> 541,137 -> 543,137 -> 543,135 -> 543,137
503,76 -> 507,76
511,92 -> 511,95 -> 507,95 -> 507,100 -> 517,100 -> 517,95 -> 514,95 -> 514,92
502,89 -> 502,79 -> 502,89 -> 504,89 -> 504,84 -> 504,89 -> 506,89 -> 506,85 -> 506,89 -> 508,89 -> 508,86 -> 508,89 -> 510,89 -> 510,88 -> 510,89 -> 512,89 -> 512,85 -> 512,89
515,103 -> 515,107 -> 512,107 -> 512,115 -> 523,115 -> 523,107 -> 520,107 -> 520,103
533,137 -> 533,135 -> 533,137 -> 535,137 -> 535,131 -> 535,137 -> 537,137 -> 537,128 -> 537,137 -> 539,137 -> 539,130 -> 539,137 -> 541,137 -> 541,135 -> 541,137 -> 543,137 -> 543,135 -> 543,137
488,59 -> 488,61 -> 485,61 -> 485,69 -> 498,69 -> 498,61 -> 493,61 -> 493,59
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
519,124 -> 524,124
502,89 -> 502,79 -> 502,89 -> 504,89 -> 504,84 -> 504,89 -> 506,89 -> 506,85 -> 506,89 -> 508,89 -> 508,86 -> 508,89 -> 510,89 -> 510,88 -> 510,89 -> 512,89 -> 512,85 -> 512,89
502,89 -> 502,79 -> 502,89 -> 504,89 -> 504,84 -> 504,89 -> 506,89 -> 506,85 -> 506,89 -> 508,89 -> 508,86 -> 508,89 -> 510,89 -> 510,88 -> 510,89 -> 512,89 -> 512,85 -> 512,89
494,74 -> 498,74
525,120 -> 530,120
480,47 -> 480,50 -> 472,50 -> 472,56 -> 489,56 -> 489,50 -> 483,50 -> 483,47
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
502,89 -> 502,79 -> 502,89 -> 504,89 -> 504,84 -> 504,89 -> 506,89 -> 506,85 -> 506,89 -> 508,89 -> 508,86 -> 508,89 -> 510,89 -> 510,88 -> 510,89 -> 512,89 -> 512,85 -> 512,89
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
480,47 -> 480,50 -> 472,50 -> 472,56 -> 489,56 -> 489,50 -> 483,50 -> 483,47
502,89 -> 502,79 -> 502,89 -> 504,89 -> 504,84 -> 504,89 -> 506,89 -> 506,85 -> 506,89 -> 508,89 -> 508,86 -> 508,89 -> 510,89 -> 510,88 -> 510,89 -> 512,89 -> 512,85 -> 512,89
509,38 -> 513,38
533,124 -> 538,124
488,59 -> 488,61 -> 485,61 -> 485,69 -> 498,69 -> 498,61 -> 493,61 -> 493,59
480,47 -> 480,50 -> 472,50 -> 472,56 -> 489,56 -> 489,50 -> 483,50 -> 483,47
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
533,137 -> 533,135 -> 533,137 -> 535,137 -> 535,131 -> 535,137 -> 537,137 -> 537,128 -> 537,137 -> 539,137 -> 539,130 -> 539,137 -> 541,137 -> 541,135 -> 541,137 -> 543,137 -> 543,135 -> 543,137
533,137 -> 533,135 -> 533,137 -> 535,137 -> 535,131 -> 535,137 -> 537,137 -> 537,128 -> 537,137 -> 539,137 -> 539,130 -> 539,137 -> 541,137 -> 541,135 -> 541,137 -> 543,137 -> 543,135 -> 543,137
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
488,59 -> 488,61 -> 485,61 -> 485,69 -> 498,69 -> 498,61 -> 493,61 -> 493,59
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
494,29 -> 498,29
482,43 -> 482,44 -> 487,44
515,103 -> 515,107 -> 512,107 -> 512,115 -> 523,115 -> 523,107 -> 520,107 -> 520,103
533,137 -> 533,135 -> 533,137 -> 535,137 -> 535,131 -> 535,137 -> 537,137 -> 537,128 -> 537,137 -> 539,137 -> 539,130 -> 539,137 -> 541,137 -> 541,135 -> 541,137 -> 543,137 -> 543,135 -> 543,137
521,118 -> 526,118
502,89 -> 502,79 -> 502,89 -> 504,89 -> 504,84 -> 504,89 -> 506,89 -> 506,85 -> 506,89 -> 508,89 -> 508,86 -> 508,89 -> 510,89 -> 510,88 -> 510,89 -> 512,89 -> 512,85 -> 512,89
502,89 -> 502,79 -> 502,89 -> 504,89 -> 504,84 -> 504,89 -> 506,89 -> 506,85 -> 506,89 -> 508,89 -> 508,86 -> 508,89 -> 510,89 -> 510,88 -> 510,89 -> 512,89 -> 512,85 -> 512,89
515,103 -> 515,107 -> 512,107 -> 512,115 -> 523,115 -> 523,107 -> 520,107 -> 520,103
515,122 -> 520,122
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
502,89 -> 502,79 -> 502,89 -> 504,89 -> 504,84 -> 504,89 -> 506,89 -> 506,85 -> 506,89 -> 508,89 -> 508,86 -> 508,89 -> 510,89 -> 510,88 -> 510,89 -> 512,89 -> 512,85 -> 512,89
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
533,137 -> 533,135 -> 533,137 -> 535,137 -> 535,131 -> 535,137 -> 537,137 -> 537,128 -> 537,137 -> 539,137 -> 539,130 -> 539,137 -> 541,137 -> 541,135 -> 541,137 -> 543,137 -> 543,135 -> 543,137
557,171 -> 557,172 -> 573,172 -> 573,171
533,137 -> 533,135 -> 533,137 -> 535,137 -> 535,131 -> 535,137 -> 537,137 -> 537,128 -> 537,137 -> 539,137 -> 539,130 -> 539,137 -> 541,137 -> 541,135 -> 541,137 -> 543,137 -> 543,135 -> 543,137
488,59 -> 488,61 -> 485,61 -> 485,69 -> 498,69 -> 498,61 -> 493,61 -> 493,59
511,92 -> 511,95 -> 507,95 -> 507,100 -> 517,100 -> 517,95 -> 514,95 -> 514,92
480,47 -> 480,50 -> 472,50 -> 472,56 -> 489,56 -> 489,50 -> 483,50 -> 483,47
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
518,120 -> 523,120
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
488,59 -> 488,61 -> 485,61 -> 485,69 -> 498,69 -> 498,61 -> 493,61 -> 493,59
533,137 -> 533,135 -> 533,137 -> 535,137 -> 535,131 -> 535,137 -> 537,137 -> 537,128 -> 537,137 -> 539,137 -> 539,130 -> 539,137 -> 541,137 -> 541,135 -> 541,137 -> 543,137 -> 543,135 -> 543,137
533,137 -> 533,135 -> 533,137 -> 535,137 -> 535,131 -> 535,137 -> 537,137 -> 537,128 -> 537,137 -> 539,137 -> 539,130 -> 539,137 -> 541,137 -> 541,135 -> 541,137 -> 543,137 -> 543,135 -> 543,137
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
498,19 -> 502,19
501,16 -> 505,16
511,92 -> 511,95 -> 507,95 -> 507,100 -> 517,100 -> 517,95 -> 514,95 -> 514,92
488,59 -> 488,61 -> 485,61 -> 485,69 -> 498,69 -> 498,61 -> 493,61 -> 493,59
515,103 -> 515,107 -> 512,107 -> 512,115 -> 523,115 -> 523,107 -> 520,107 -> 520,103
482,43 -> 482,44 -> 487,44
502,89 -> 502,79 -> 502,89 -> 504,89 -> 504,84 -> 504,89 -> 506,89 -> 506,85 -> 506,89 -> 508,89 -> 508,86 -> 508,89 -> 510,89 -> 510,88 -> 510,89 -> 512,89 -> 512,85 -> 512,89
480,47 -> 480,50 -> 472,50 -> 472,56 -> 489,56 -> 489,50 -> 483,50 -> 483,47
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
503,38 -> 507,38
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
506,35 -> 510,35
556,167 -> 556,168 -> 566,168 -> 566,167
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
504,19 -> 508,19
492,19 -> 496,19
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
500,35 -> 504,35
495,16 -> 499,16
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
502,89 -> 502,79 -> 502,89 -> 504,89 -> 504,84 -> 504,89 -> 506,89 -> 506,85 -> 506,89 -> 508,89 -> 508,86 -> 508,89 -> 510,89 -> 510,88 -> 510,89 -> 512,89 -> 512,85 -> 512,89
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
500,29 -> 504,29
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
511,92 -> 511,95 -> 507,95 -> 507,100 -> 517,100 -> 517,95 -> 514,95 -> 514,92
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
511,92 -> 511,95 -> 507,95 -> 507,100 -> 517,100 -> 517,95 -> 514,95 -> 514,92
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
512,124 -> 517,124
557,171 -> 557,172 -> 573,172 -> 573,171
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
511,92 -> 511,95 -> 507,95 -> 507,100 -> 517,100 -> 517,95 -> 514,95 -> 514,92
529,122 -> 534,122
533,137 -> 533,135 -> 533,137 -> 535,137 -> 535,131 -> 535,137 -> 537,137 -> 537,128 -> 537,137 -> 539,137 -> 539,130 -> 539,137 -> 541,137 -> 541,135 -> 541,137 -> 543,137 -> 543,135 -> 543,137
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
503,32 -> 507,32
491,38 -> 495,38
497,32 -> 501,32
526,124 -> 531,124
515,103 -> 515,107 -> 512,107 -> 512,115 -> 523,115 -> 523,107 -> 520,107 -> 520,103
533,137 -> 533,135 -> 533,137 -> 535,137 -> 535,131 -> 535,137 -> 537,137 -> 537,128 -> 537,137 -> 539,137 -> 539,130 -> 539,137 -> 541,137 -> 541,135 -> 541,137 -> 543,137 -> 543,135 -> 543,137
511,92 -> 511,95 -> 507,95 -> 507,100 -> 517,100 -> 517,95 -> 514,95 -> 514,92
544,163 -> 544,161 -> 544,163 -> 546,163 -> 546,153 -> 546,163 -> 548,163 -> 548,158 -> 548,163 -> 550,163 -> 550,159 -> 550,163 -> 552,163 -> 552,161 -> 552,163 -> 554,163 -> 554,159 -> 554,163 -> 556,163 -> 556,158 -> 556,163 -> 558,163 -> 558,156 -> 558,163 -> 560,163 -> 560,156 -> 560,163
534,150 -> 534,145 -> 534,150 -> 536,150 -> 536,147 -> 536,150 -> 538,150 -> 538,146 -> 538,150 -> 540,150 -> 540,146 -> 540,150 -> 542,150 -> 542,146 -> 542,150 -> 544,150 -> 544,144 -> 544,150 -> 546,150 -> 546,141 -> 546,150 -> 548,150 -> 548,143 -> 548,150 -> 550,150 -> 550,143 -> 550,150 -> 552,150 -> 552,141 -> 552,150
497,72 -> 501,72
498,13 -> 502,13
533,137 -> 533,135 -> 533,137 -> 535,137 -> 535,131 -> 535,137 -> 537,137 -> 537,128 -> 537,137 -> 539,137 -> 539,130 -> 539,137 -> 541,137 -> 541,135 -> 541,137 -> 543,137 -> 543,135 -> 543,137
488,59 -> 488,61 -> 485,61 -> 485,69 -> 498,69 -> 498,61 -> 493,61 -> 493,59
502,89 -> 502,79 -> 502,89 -> 504,89 -> 504,84 -> 504,89 -> 506,89 -> 506,85 -> 506,89 -> 508,89 -> 508,86 -> 508,89 -> 510,89 -> 510,88 -> 510,89 -> 512,89 -> 512,85 -> 512,89