├── README.md ├── day3 ├── sample3 ├── sample ├── sample2 ├── day3.py └── input ├── day9 ├── sample3 ├── sample2 ├── sample4 ├── sample ├── __pycache__ │ └── intcode.cpython-37.pyc ├── day9.py ├── input └── intcode.py ├── day7 ├── sample ├── sample2 ├── sample3 ├── input ├── day7.py └── day5.py ├── day8 ├── out.png ├── day8.py └── input ├── day6 ├── sample ├── day6.py └── input ├── day2 ├── input ├── day2.py └── day2_part2.py ├── day1 ├── day1.hs ├── day1.py ├── day1.pl └── input ├── day4 ├── day4.py └── day4_part2.py └── day5 ├── input └── day5.py /README.md: -------------------------------------------------------------------------------- 1 | # advent-of-code-2019 2 | -------------------------------------------------------------------------------- /day3/sample3: -------------------------------------------------------------------------------- 1 | R8,U5,L5,D3 2 | U7,R6,D4,L4 -------------------------------------------------------------------------------- /day9/sample3: -------------------------------------------------------------------------------- 1 | 104,1125899906842624,99 2 | -------------------------------------------------------------------------------- /day9/sample2: -------------------------------------------------------------------------------- 1 | 1102,34915192,34915192,7,4,7,99,0 2 | -------------------------------------------------------------------------------- /day7/sample: -------------------------------------------------------------------------------- 1 | 3,15,3,16,1002,16,10,16,1,16,15,15,4,15,99,0,0 -------------------------------------------------------------------------------- /day9/sample4: -------------------------------------------------------------------------------- 1 | 109,1,203,11,209,8,204,1,99,10,0,42,0 2 | -------------------------------------------------------------------------------- /day9/sample: -------------------------------------------------------------------------------- 1 | 109,1,204,-1,1001,100,1,100,1008,100,16,101,1006,101,0,99 2 | -------------------------------------------------------------------------------- /day3/sample: -------------------------------------------------------------------------------- 1 | R75,D30,R83,U83,L12,D49,R71,U7,L72 2 | U62,R66,U55,R34,D71,R55,D58,R83 -------------------------------------------------------------------------------- /day8/out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aarroyoc/advent-of-code-2019/master/day8/out.png -------------------------------------------------------------------------------- /day3/sample2: -------------------------------------------------------------------------------- 1 | R98,U47,R26,D63,R33,U87,L62,D20,R33,U53,R51 2 | U98,R91,D20,R16,D67,R40,U7,R15,U6,R7 -------------------------------------------------------------------------------- /day7/sample2: -------------------------------------------------------------------------------- 1 | 3,26,1001,26,-4,26,3,27,1002,27,2,27,1,27,26,27,4,27,1001,28,-1,28,1005,28,6,99,0,0,5 -------------------------------------------------------------------------------- /day6/sample: -------------------------------------------------------------------------------- 1 | COM)B 2 | B)C 3 | C)D 4 | D)E 5 | E)F 6 | B)G 7 | G)H 8 | D)I 9 | E)J 10 | J)K 11 | K)L -------------------------------------------------------------------------------- /day9/__pycache__/intcode.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aarroyoc/advent-of-code-2019/master/day9/__pycache__/intcode.cpython-37.pyc -------------------------------------------------------------------------------- /day9/day9.py: -------------------------------------------------------------------------------- 1 | from intcode import main 2 | 3 | if __name__ == "__main__": 4 | machine = main("input", inputs=[]) 5 | for output in machine: 6 | print(output) 7 | -------------------------------------------------------------------------------- /day7/sample3: -------------------------------------------------------------------------------- 1 | 3,52,1001,52,-5,52,3,53,1,52,56,54,1007,54,5,55,1005,55,26,1001,54,-5,54,1105,1,12,1,53,54,53,1008,54,0,55,1001,55,1,55,2,53,55,53,4,53,1001,56,-1,56,1005,56,6,99,0,0,0,0,10 -------------------------------------------------------------------------------- /day2/input: -------------------------------------------------------------------------------- 1 | 1,12,2,3,1,1,2,3,1,3,4,3,1,5,0,3,2,1,10,19,1,6,19,23,1,10,23,27,2,27,13,31,1,31,6,35,2,6,35,39,1,39,5,43,1,6,43,47,2,6,47,51,1,51,5,55,2,55,9,59,1,6,59,63,1,9,63,67,1,67,10,71,2,9,71,75,1,6,75,79,1,5,79,83,2,83,10,87,1,87,5,91,1,91,9,95,1,6,95,99,2,99,10,103,1,103,5,107,2,107,6,111,1,111,5,115,1,9,115,119,2,119,10,123,1,6,123,127,2,13,127,131,1,131,6,135,1,135,10,139,1,13,139,143,1,143,13,147,1,5,147,151,1,151,2,155,1,155,5,0,99,2,0,14,0 2 | -------------------------------------------------------------------------------- /day2/day2.py: -------------------------------------------------------------------------------- 1 | def main(): 2 | with open("input") as f: 3 | text = f.read() 4 | data = list(map(int, text.split(","))) 5 | 6 | pc = 0 7 | while True: 8 | if data[pc] == 1: 9 | data[data[pc+3]] = data[data[pc+1]]+data[data[pc+2]] 10 | pc += 4 11 | elif data[pc] == 2: 12 | data[data[pc+3]] = data[data[pc+1]]*data[data[pc+2]] 13 | pc += 4 14 | elif data[pc] == 99: 15 | break 16 | print(data[0]) 17 | 18 | main() 19 | -------------------------------------------------------------------------------- /day1/day1.hs: -------------------------------------------------------------------------------- 1 | main :: IO () 2 | main = do 3 | file <- readFile "input" 4 | let numbers = map (read::String->Int) (lines file) 5 | let fuelNumbers = map fuel2 numbers 6 | putStrLn (show $ sum fuelNumbers) 7 | 8 | fuel :: Int -> Int 9 | fuel x = 10 | let 11 | y = x `div` 3 12 | z = y-2 13 | in 14 | if z > 0 then z else 0 15 | 16 | fuel2 :: Int -> Int 17 | fuel2 x = 18 | let 19 | y = fuel x 20 | in 21 | if y > 0 then 22 | fuel2 y + y 23 | else 24 | y -------------------------------------------------------------------------------- /day1/day1.py: -------------------------------------------------------------------------------- 1 | import math 2 | 3 | def operation1(x): 4 | x = int(x) 5 | x /= 3 6 | x = math.floor(x) 7 | x -= 2 8 | return x 9 | 10 | def operation2(x): 11 | out = 0 12 | x = int(x) 13 | while x > 0: 14 | x = int(x) 15 | x /= 3 16 | x = math.floor(x) 17 | x -= 2 18 | if x > 0: 19 | out += x 20 | return out 21 | 22 | 23 | with open("input") as f: 24 | lines = f.readlines() 25 | numbers = [operation1(x) for x in lines] 26 | output = sum(numbers) 27 | print(f"{output}") 28 | -------------------------------------------------------------------------------- /day8/day8.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from PIL import Image 3 | 4 | def main(): 5 | with open("input") as f: 6 | image = np.array(list(map(int, f.read()))) 7 | # 100 capas 8 | image = np.reshape(image, (-1, 25*6)) 9 | zeros = np.sum(image[:,] == 0, axis=1) 10 | layer = np.argmin(zeros) 11 | output = np.sum(image[layer] == 1)*np.sum(image[layer] == 2) 12 | print(f"Output: {output}") 13 | final = np.ones((25*6), dtype=np.int32) 14 | final *= 2 15 | for i in range(25*6): 16 | x = np.where(image[:,i] != 2) 17 | final[i] = image[x,i][0][0] 18 | 19 | im = Image.new("1", (25,6)) 20 | for j in range(6): 21 | for i in range(25): 22 | im.putpixel((i,j), int(final[i+j*25])) 23 | im.save("out.png") 24 | 25 | main() -------------------------------------------------------------------------------- /day1/day1.pl: -------------------------------------------------------------------------------- 1 | file_to_lines(Path, Lines) :- 2 | open(Path, read, File), 3 | read_string(File, _, F), 4 | split_string(F, "\n", "\n", Lines). 5 | 6 | string_to_number(S,N) :- atom_codes(S, C), number_codes(N, C). 7 | map_to_numbers(XS, YS) :- maplist(string_to_number, XS, YS). 8 | 9 | fuel(In, Out) :- 10 | X is div(In,3), 11 | Y is X-2, 12 | Y > 0, 13 | Out is Y. 14 | 15 | fuel(_In, Out) :- 16 | Out is 0. 17 | 18 | fuel2(In, Out) :- 19 | fuel(In, X), 20 | X > 0, 21 | fuel2(X, Y), 22 | Out is X + Y. 23 | 24 | fuel2(In, Out) :- 25 | fuel(In, X), 26 | X =< 0, 27 | Out is X. 28 | 29 | 30 | 31 | main :- 32 | file_to_lines("input", Lines), 33 | map_to_numbers(Lines, Numbers), 34 | maplist(fuel2, Numbers, Out), 35 | sum_list(Out, Sum), 36 | write(Sum). 37 | 38 | 39 | :- main. -------------------------------------------------------------------------------- /day2/day2_part2.py: -------------------------------------------------------------------------------- 1 | def main(): 2 | for i in range(100): 3 | for j in range(100): 4 | with open("input") as f: 5 | text = f.read() 6 | data = list(map(int, text.split(","))) 7 | data[1] = i 8 | data[2] = j 9 | pc = 0 10 | while True: 11 | if data[pc] == 1: 12 | data[data[pc+3]] = data[data[pc+1]]+data[data[pc+2]] 13 | pc += 4 14 | elif data[pc] == 2: 15 | data[data[pc+3]] = data[data[pc+1]]*data[data[pc+2]] 16 | pc += 4 17 | elif data[pc] == 99: 18 | break 19 | if data[0] == 19690720: 20 | print("I", i) 21 | print("J", j) 22 | print("Output: ", 100*i + j ) 23 | 24 | main() 25 | -------------------------------------------------------------------------------- /day4/day4.py: -------------------------------------------------------------------------------- 1 | min = 382345 2 | max = 843167 3 | 4 | def consecutive(password): 5 | repeat = False 6 | a = int(password[0]) 7 | b = int(password[1]) 8 | c = int(password[2]) 9 | d = int(password[3]) 10 | e = int(password[4]) 11 | f = int(password[5]) 12 | if a <= b: 13 | if a == b: 14 | repeat = True 15 | if b <= c: 16 | if b == c: 17 | repeat = True 18 | if c <= d: 19 | if c == d: 20 | repeat = True 21 | if d <= e: 22 | if d == e: 23 | repeat = True 24 | if e <= f: 25 | if e == f: 26 | repeat = True 27 | return repeat 28 | return False 29 | n = 0 30 | for password in range(min, max+1): 31 | if consecutive(str(password)): 32 | n += 1 33 | print(f"Password: {n}") -------------------------------------------------------------------------------- /day6/day6.py: -------------------------------------------------------------------------------- 1 | from collections import defaultdict 2 | import networkx as nx 3 | 4 | orbits = defaultdict(lambda: list()) 5 | 6 | def orbit_count(key): 7 | n_orbits = 0 8 | n_orbits += len(orbits[key]) 9 | for subkey in orbits[key]: 10 | if subkey in orbits.keys(): 11 | n_orbits += orbit_count(subkey) 12 | return n_orbits 13 | 14 | def main(): 15 | 16 | with open("input") as f: 17 | lines = f.readlines() 18 | for line in lines: 19 | s = line.strip().split(")") 20 | a = s[0] 21 | b = s[1] 22 | orbits[b].append(a) 23 | 24 | n_orbits = 0 25 | for key in orbits.keys(): 26 | n_orbits += orbit_count(key) 27 | print(f"KEY: {key} Orbits: {n_orbits}") 28 | print(f"Num Orbits: {n_orbits}") 29 | 30 | # Part 2 31 | G = nx.from_dict_of_lists(orbits) 32 | sp = nx.shortest_path_length(G, source="SAN", target="YOU") 33 | print("Distance", sp-2) 34 | 35 | 36 | 37 | main() -------------------------------------------------------------------------------- /day7/input: -------------------------------------------------------------------------------- 1 | 3,8,1001,8,10,8,105,1,0,0,21,38,63,72,85,110,191,272,353,434,99999,3,9,102,4,9,9,101,2,9,9,102,3,9,9,4,9,99,3,9,1001,9,4,9,102,2,9,9,1001,9,5,9,1002,9,5,9,101,3,9,9,4,9,99,3,9,1001,9,2,9,4,9,99,3,9,1001,9,3,9,102,2,9,9,4,9,99,3,9,101,2,9,9,102,2,9,9,1001,9,2,9,1002,9,4,9,101,2,9,9,4,9,99,3,9,1002,9,2,9,4,9,3,9,102,2,9,9,4,9,3,9,101,2,9,9,4,9,3,9,101,2,9,9,4,9,3,9,101,1,9,9,4,9,3,9,101,2,9,9,4,9,3,9,1002,9,2,9,4,9,3,9,101,2,9,9,4,9,3,9,101,1,9,9,4,9,3,9,1002,9,2,9,4,9,99,3,9,1001,9,1,9,4,9,3,9,102,2,9,9,4,9,3,9,1001,9,2,9,4,9,3,9,102,2,9,9,4,9,3,9,1001,9,2,9,4,9,3,9,101,2,9,9,4,9,3,9,1002,9,2,9,4,9,3,9,1001,9,2,9,4,9,3,9,1001,9,2,9,4,9,3,9,1001,9,1,9,4,9,99,3,9,1001,9,1,9,4,9,3,9,1001,9,1,9,4,9,3,9,1001,9,2,9,4,9,3,9,102,2,9,9,4,9,3,9,1002,9,2,9,4,9,3,9,102,2,9,9,4,9,3,9,1002,9,2,9,4,9,3,9,1002,9,2,9,4,9,3,9,101,2,9,9,4,9,3,9,101,2,9,9,4,9,99,3,9,1001,9,2,9,4,9,3,9,1002,9,2,9,4,9,3,9,101,1,9,9,4,9,3,9,102,2,9,9,4,9,3,9,1001,9,2,9,4,9,3,9,1002,9,2,9,4,9,3,9,102,2,9,9,4,9,3,9,1001,9,2,9,4,9,3,9,1002,9,2,9,4,9,3,9,102,2,9,9,4,9,99,3,9,1002,9,2,9,4,9,3,9,101,1,9,9,4,9,3,9,101,2,9,9,4,9,3,9,101,1,9,9,4,9,3,9,101,2,9,9,4,9,3,9,102,2,9,9,4,9,3,9,101,2,9,9,4,9,3,9,1002,9,2,9,4,9,3,9,1002,9,2,9,4,9,3,9,101,2,9,9,4,9,99 -------------------------------------------------------------------------------- /day1/input: -------------------------------------------------------------------------------- 1 | 144365 2 | 124674 3 | 99039 4 | 132924 5 | 126960 6 | 103950 7 | 78451 8 | 123596 9 | 119950 10 | 116772 11 | 134137 12 | 50247 13 | 99543 14 | 147151 15 | 103063 16 | 59247 17 | 59281 18 | 141531 19 | 104417 20 | 75105 21 | 57868 22 | 149148 23 | 76973 24 | 87424 25 | 135220 26 | 141885 27 | 106241 28 | 128482 29 | 54020 30 | 67575 31 | 97719 32 | 110237 33 | 137361 34 | 70772 35 | 103397 36 | 117471 37 | 99611 38 | 142905 39 | 135345 40 | 122338 41 | 62708 42 | 103663 43 | 146189 44 | 81657 45 | 126628 46 | 133113 47 | 135399 48 | 52731 49 | 116597 50 | 61749 51 | 61519 52 | 56234 53 | 64306 54 | 127237 55 | 133320 56 | 79782 57 | 132431 58 | 142449 59 | 91926 60 | 146277 61 | 55314 62 | 111507 63 | 126347 64 | 124086 65 | 120868 66 | 127433 67 | 126838 68 | 77814 69 | 144388 70 | 86786 71 | 134780 72 | 109082 73 | 101772 74 | 140013 75 | 100282 76 | 115632 77 | 73057 78 | 139318 79 | 85633 80 | 67693 81 | 55545 82 | 53545 83 | 125871 84 | 115201 85 | 105202 86 | 148104 87 | 68677 88 | 64761 89 | 54368 90 | 110380 91 | 102082 92 | 106684 93 | 89933 94 | 71703 95 | 147332 96 | 99699 97 | 98447 98 | 96963 99 | 148686 100 | 92651 -------------------------------------------------------------------------------- /day4/day4_part2.py: -------------------------------------------------------------------------------- 1 | minx = 382345 2 | maxx = 843167 3 | 4 | def valid(password): 5 | p = str(password) 6 | a = p[0] 7 | b = p[1] 8 | c = p[2] 9 | d = p[3] 10 | e = p[4] 11 | f = p[5] 12 | repeat = 0 13 | repeat_group = False 14 | 15 | if a <= b: 16 | if a == b: 17 | repeat += 1 18 | if b <= c: 19 | if b == c: 20 | repeat += 1 21 | else: 22 | if repeat == 1: 23 | repeat_group = True 24 | repeat = 0 25 | if c <= d: 26 | if c == d: 27 | repeat += 1 28 | else: 29 | if repeat == 1: 30 | repeat_group = True 31 | repeat = 0 32 | if d <= e: 33 | if d == e: 34 | repeat += 1 35 | else: 36 | if repeat == 1: 37 | repeat_group = True 38 | repeat = 0 39 | if e <= f: 40 | if e == f: 41 | repeat += 1 42 | else: 43 | if repeat == 1: 44 | repeat_group = True 45 | repeat = 0 46 | if repeat == 1: 47 | repeat_group = True 48 | return True and repeat_group 49 | return False 50 | 51 | if __name__ == "__main__": 52 | n = 0 53 | for password in range(minx, maxx+1): 54 | if valid(password): 55 | n += 1 56 | 57 | print(f"Passwords: {n}") 58 | -------------------------------------------------------------------------------- /day7/day7.py: -------------------------------------------------------------------------------- 1 | from itertools import permutations 2 | from day5 import main 3 | 4 | if __name__ == "__main__": 5 | n = 0 6 | FILE = "input" 7 | for permutation in permutations(range(5,10)): 8 | print(permutation) 9 | input1 = list() 10 | input2 = list() 11 | input3 = list() 12 | input4 = list() 13 | input5 = list() 14 | 15 | machine1 = None 16 | machine2 = None 17 | machine3 = None 18 | machine4 = None 19 | machine5 = None 20 | 21 | input1.append(0) 22 | 23 | while True: 24 | try: 25 | if machine1 == None: 26 | input1.append(permutation[0]) 27 | machine1 = main(FILE, inputs=input1) 28 | output1 = machine1.__next__() 29 | input2.append(output1) 30 | if machine2 == None: 31 | input2.append(permutation[1]) 32 | machine2 = main(FILE, inputs=input2) 33 | output2 = machine2.__next__() 34 | input3.append(output2) 35 | if machine3 == None: 36 | input3.append(permutation[2]) 37 | machine3 = main(FILE, inputs=input3) 38 | output3 = machine3.__next__() 39 | input4.append(output3) 40 | if machine4 == None: 41 | input4.append(permutation[3]) 42 | machine4 = main(FILE, inputs=input4) 43 | output4 = machine4.__next__() 44 | input5.append(output4) 45 | if machine5 == None: 46 | input5.append(permutation[4]) 47 | machine5 = main(FILE, inputs=input5) 48 | output5 = machine5.__next__() 49 | input1.append(output5) 50 | except: 51 | n = max(output5, n) 52 | break 53 | 54 | print(f"MAX: {n}") 55 | 56 | -------------------------------------------------------------------------------- /day5/input: -------------------------------------------------------------------------------- 1 | 3,225,1,225,6,6,1100,1,238,225,104,0,1002,43,69,224,101,-483,224,224,4,224,1002,223,8,223,1001,224,5,224,1,224,223,223,1101,67,60,225,1102,5,59,225,1101,7,16,225,1102,49,72,225,101,93,39,224,101,-98,224,224,4,224,102,8,223,223,1001,224,6,224,1,224,223,223,1102,35,82,225,2,166,36,224,101,-4260,224,224,4,224,102,8,223,223,101,5,224,224,1,223,224,223,102,66,48,224,1001,224,-4752,224,4,224,102,8,223,223,1001,224,2,224,1,223,224,223,1001,73,20,224,1001,224,-55,224,4,224,102,8,223,223,101,7,224,224,1,223,224,223,1102,18,41,224,1001,224,-738,224,4,224,102,8,223,223,101,6,224,224,1,224,223,223,1101,68,71,225,1102,5,66,225,1101,27,5,225,1101,54,63,224,1001,224,-117,224,4,224,102,8,223,223,1001,224,2,224,1,223,224,223,1,170,174,224,101,-71,224,224,4,224,1002,223,8,223,1001,224,4,224,1,223,224,223,4,223,99,0,0,0,677,0,0,0,0,0,0,0,0,0,0,0,1105,0,99999,1105,227,247,1105,1,99999,1005,227,99999,1005,0,256,1105,1,99999,1106,227,99999,1106,0,265,1105,1,99999,1006,0,99999,1006,227,274,1105,1,99999,1105,1,280,1105,1,99999,1,225,225,225,1101,294,0,0,105,1,0,1105,1,99999,1106,0,300,1105,1,99999,1,225,225,225,1101,314,0,0,106,0,0,1105,1,99999,1007,226,226,224,1002,223,2,223,1006,224,329,1001,223,1,223,1007,226,677,224,102,2,223,223,1006,224,344,1001,223,1,223,108,677,677,224,102,2,223,223,1005,224,359,1001,223,1,223,1007,677,677,224,1002,223,2,223,1006,224,374,101,1,223,223,8,677,226,224,1002,223,2,223,1006,224,389,101,1,223,223,7,226,226,224,1002,223,2,223,1005,224,404,101,1,223,223,7,677,226,224,102,2,223,223,1005,224,419,1001,223,1,223,8,226,677,224,1002,223,2,223,1005,224,434,101,1,223,223,1008,226,677,224,102,2,223,223,1006,224,449,1001,223,1,223,7,226,677,224,1002,223,2,223,1006,224,464,1001,223,1,223,108,677,226,224,102,2,223,223,1005,224,479,101,1,223,223,108,226,226,224,1002,223,2,223,1006,224,494,101,1,223,223,8,226,226,224,1002,223,2,223,1005,224,509,1001,223,1,223,1107,677,226,224,102,2,223,223,1005,224,524,1001,223,1,223,1107,226,226,224,102,2,223,223,1005,224,539,1001,223,1,223,1108,677,677,224,1002,223,2,223,1006,224,554,101,1,223,223,107,226,677,224,102,2,223,223,1005,224,569,1001,223,1,223,1108,226,677,224,1002,223,2,223,1005,224,584,1001,223,1,223,1107,226,677,224,1002,223,2,223,1005,224,599,1001,223,1,223,1008,226,226,224,1002,223,2,223,1005,224,614,101,1,223,223,107,226,226,224,102,2,223,223,1006,224,629,1001,223,1,223,1008,677,677,224,1002,223,2,223,1006,224,644,101,1,223,223,107,677,677,224,1002,223,2,223,1005,224,659,101,1,223,223,1108,677,226,224,1002,223,2,223,1006,224,674,1001,223,1,223,4,223,99,226 -------------------------------------------------------------------------------- /day5/day5.py: -------------------------------------------------------------------------------- 1 | def parse_opcode(opcode): 2 | opcode = str(opcode) 3 | if len(opcode) > 1: 4 | instruction = int(opcode[-2:]) 5 | try: 6 | mode_a = int(opcode[-3]) 7 | except: 8 | mode_a = 0 9 | try: 10 | mode_b = int(opcode[-4]) 11 | except: 12 | mode_b = 0 13 | try: 14 | mode_c = int(opcode[-5]) 15 | except: 16 | mode_c = 0 17 | else: 18 | instruction = int(opcode) 19 | mode_c = 0 20 | mode_b = 0 21 | mode_a = 0 22 | return (instruction, mode_c, mode_b, mode_a) 23 | 24 | def read(data, pc, mode): 25 | if mode == 1: 26 | return data[pc] 27 | else: 28 | try: 29 | return data[data[pc]] 30 | except: 31 | breakpoint() 32 | 33 | def write(data, pc, mode, value): 34 | data[data[pc]] = value 35 | 36 | def main(): 37 | with open("input") as f: 38 | text = f.read() 39 | data = list(map(int, text.split(","))) 40 | pc = 0 41 | while True: 42 | op, mode_c, mode_b, mode_a = parse_opcode(data[pc]) 43 | if op == 1: 44 | a = read(data, pc+1, mode_a) 45 | b = read(data, pc+2, mode_b) 46 | write(data, pc+3, 0, a+b) 47 | pc += 4 48 | elif op == 2: 49 | a = read(data, pc+1, mode_a) 50 | b = read(data, pc+2, mode_b) 51 | write(data, pc+3, 0, a*b) 52 | pc += 4 53 | elif op == 3: 54 | c = int(input("> ")) 55 | write(data, pc+1, 0, c) 56 | pc += 2 57 | elif op == 4: 58 | c = read(data, pc+1, 0) 59 | print(c) 60 | pc += 2 61 | elif op == 5: 62 | a = read(data, pc+1, mode_a) 63 | b = read(data, pc+2, mode_b) 64 | if a != 0: 65 | pc = b 66 | else: 67 | pc += 3 68 | elif op == 6: 69 | a = read(data, pc+1, mode_a) 70 | b = read(data, pc+2, mode_b) 71 | if a == 0: 72 | pc = b 73 | else: 74 | pc += 3 75 | elif op == 7: 76 | a = read(data, pc+1, mode_a) 77 | b = read(data, pc+2, mode_b) 78 | if a < b: 79 | write(data, pc+3, mode_c, 1) 80 | else: 81 | write(data, pc+3, mode_c, 0) 82 | pc += 4 83 | elif op == 8: 84 | a = read(data, pc+1, mode_a) 85 | b = read(data, pc+2, mode_b) 86 | if a == b: 87 | write(data, pc+3, mode_c, 1) 88 | else: 89 | write(data, pc+3, mode_c, 0) 90 | pc += 4 91 | elif data[pc] == 99: 92 | break 93 | 94 | main() 95 | -------------------------------------------------------------------------------- /day3/day3.py: -------------------------------------------------------------------------------- 1 | from collections import defaultdict 2 | 3 | def main(): 4 | with open("input") as f: 5 | wire1 = f.readline().split(",") 6 | wire2 = f.readline().split(",") 7 | matrix = defaultdict(lambda: 1) 8 | steps1 = defaultdict(lambda: 0) 9 | steps2 = defaultdict(lambda: 0) 10 | 11 | x = 0 12 | y = 0 13 | step = 0 14 | for cmd in wire1: 15 | move = int(cmd[1:]) 16 | if cmd[0] == "R": 17 | for n in range(1,move+1): 18 | matrix[(x+n,y)] *= 3 19 | steps1[(x+n,y)] = step 20 | step += 1 21 | x += move 22 | elif cmd[0] == "U": 23 | for n in range(1, move+1): 24 | matrix[(x, y+n)] *= 3 25 | steps1[(x, y+n)] = step 26 | step += 1 27 | y += move 28 | elif cmd[0] == "L": 29 | for n in range(1, move+1): 30 | matrix[(x-n, y)] *= 3 31 | steps1[(x-n, y)] = step 32 | step += 1 33 | x -= move 34 | elif cmd[0] == "D": 35 | for n in range(1, move+1): 36 | matrix[(x, y-n)] *= 3 37 | steps1[(x, y-n)] = step 38 | step += 1 39 | y -= move 40 | 41 | x = 0 42 | y = 0 43 | step = 0 44 | for cmd in wire2: 45 | move = int(cmd[1:]) 46 | if cmd[0] == "R": 47 | for n in range(1, move+1): 48 | matrix[(x+n,y)] *= 2 49 | steps2[(x+n,y)] = step 50 | step += 1 51 | x += move 52 | elif cmd[0] == "U": 53 | for n in range(1, move+1): 54 | matrix[(x, y+n)] *= 2 55 | steps2[(x, y+n)] = step 56 | step += 1 57 | y += move 58 | elif cmd[0] == "L": 59 | for n in range(1, move+1): 60 | matrix[(x-n, y)] *= 2 61 | steps2[(x-n,y)] = step 62 | step += 1 63 | x -= move 64 | elif cmd[0] == "D": 65 | for n in range(1, move+1): 66 | matrix[(x, y-n)] *= 2 67 | steps2[(x, y-n)] = step 68 | step += 1 69 | y -= move 70 | 71 | min_dist = None 72 | min_step = None 73 | for crosses in matrix: 74 | if matrix[crosses] % 6 == 0: 75 | x,y = crosses 76 | 77 | if min_dist == None or min_dist > abs(x) + abs(y): 78 | min_dist = abs(x) + abs(y) 79 | 80 | if min_step == None or min_step > steps1[crosses]+steps2[crosses]+2: 81 | min_step = steps1[crosses] + steps2[crosses]+2 82 | 83 | print("Min Dist: ", min_dist) 84 | print("Min Step: ", min_step) 85 | 86 | 87 | 88 | 89 | 90 | main() -------------------------------------------------------------------------------- /day3/input: -------------------------------------------------------------------------------- 1 | R990,U475,L435,D978,L801,D835,L377,D836,L157,D84,R329,D342,R931,D522,L724,U891,L508,U274,L146,U844,R686,D441,R192,U992,L781,D119,R436,D286,R787,D85,L801,U417,R619,D710,R42,U261,R296,U697,L354,D843,R613,U880,R789,D134,R636,D738,L939,D459,L338,D905,R811,D950,L44,U992,R845,U771,L563,D76,L69,U839,L57,D311,L615,D931,L437,D201,L879,D1,R978,U415,R548,D398,L560,D112,L894,D668,L708,D104,R622,D768,R901,D746,L793,D26,R357,U216,L216,D33,L653,U782,R989,U678,L7,D649,R860,D281,L988,U362,L525,U652,R620,D376,L983,U759,R828,D669,L297,U207,R68,U77,R255,U269,L661,U310,L309,D490,L55,U471,R260,D912,R691,D62,L63,D581,L289,D366,L862,D360,L485,U946,R937,D470,L792,D614,R936,D963,R611,D151,R908,D195,R615,U768,L166,D314,R640,U47,L161,U872,R50,U694,L917,D149,L92,U244,L337,U479,R755,U746,L196,D759,L936,U61,L744,D774,R53,U439,L185,D504,R769,D696,L285,D396,R791,U21,L35,D877,L9,U398,R447,U101,R590,U862,L351,D210,L935,U938,R131,U758,R99,U192,L20,U142,L946,D981,R998,U214,R174,U710,L719,D879,L411,U839,L381,U924,L221,D397,R380,U715,R139,D367,R253,D973,L9,U624,L426,D885,R200,U940,R214,D75,R717,D2,R578,U161,R421,U326,L561,U311,L701,U259,R836,D920,R35,D432,R610,D63,R664,D39,L119,D47,L605,D228,L364,D14,L226,D365,R796,D233,R476,U145,L926,D907,R681,U267,R844,U735,L948,U344,L629,U31,L383,U694,L666,U158,R841,D27,L150,D950,L335,U275,L184,D157,R504,D602,R605,D185,L215,D420,R700,U809,L139,D937,L248,U693,L56,U92,L914,U743,R445,U417,L504,U23,R332,U865,R747,D553,R595,U845,R693,U915,R81 2 | L1004,U406,L974,D745,R504,D705,R430,D726,R839,D550,L913,D584,R109,U148,L866,U664,R341,U449,L626,D492,R716,U596,L977,D987,L47,U612,L478,U928,L66,D752,R665,U415,R543,U887,R315,D866,R227,D615,R478,U180,R255,D316,L955,U657,R752,U561,R786,U7,R918,D755,R506,U131,L875,D849,R823,D755,L604,U944,R186,D326,L172,U993,L259,D765,R427,D193,R663,U470,L294,D437,R645,U10,L926,D814,L536,D598,R886,D290,L226,U156,R754,D105,L604,D136,L883,U87,R839,D807,R724,U184,L746,D79,R474,U186,R727,U9,L69,U565,R459,D852,R61,U370,L890,D439,L431,U846,R460,U358,R51,D407,R55,U179,L385,D652,R193,D52,L569,U980,L185,U813,R636,D275,L585,U590,R215,U947,R851,D127,L249,U954,L884,D235,R3,U735,R994,D883,L386,D506,L963,D751,L989,U733,L221,U890,L711,D32,L74,U437,L700,D977,L49,U478,R438,D27,R945,D670,L230,U863,L616,U461,R267,D25,L646,D681,R426,D918,L791,U712,L730,U715,L67,U359,R915,D524,L722,U374,L582,U529,L802,D865,L596,D5,R323,U235,R405,D62,R304,U996,L939,U420,L62,D299,R802,D803,L376,U430,L810,D334,L67,U395,L818,U953,L817,D411,L225,U383,R247,D234,L430,U315,L418,U254,L964,D372,R979,D301,R577,U440,R924,D220,L121,D785,L609,U20,R861,U288,R388,D410,L278,D748,L800,U755,L919,D985,L785,U676,R916,D528,L507,D469,L582,D8,L900,U512,L764,D124,L10,U567,L379,D231,R841,D244,R479,U145,L769,D845,R651,U712,L920,U791,R95,D958,L608,D755,R967,U855,R563,D921,L37,U699,L944,U718,R959,D195,L922,U726,R378,U258,R340,D62,L555,D135,L690,U269,L273,D851,L60,D851,R1,D315,R117,D855,L275,D288,R25,U503,R569,D596,L823,U687,L450 -------------------------------------------------------------------------------- /day7/day5.py: -------------------------------------------------------------------------------- 1 | def parse_opcode(opcode): 2 | opcode = str(opcode) 3 | if len(opcode) > 1: 4 | instruction = int(opcode[-2:]) 5 | try: 6 | mode_a = int(opcode[-3]) 7 | except: 8 | mode_a = 0 9 | try: 10 | mode_b = int(opcode[-4]) 11 | except: 12 | mode_b = 0 13 | try: 14 | mode_c = int(opcode[-5]) 15 | except: 16 | mode_c = 0 17 | else: 18 | instruction = int(opcode) 19 | mode_c = 0 20 | mode_b = 0 21 | mode_a = 0 22 | return (instruction, mode_c, mode_b, mode_a) 23 | 24 | def read(data, pc, mode): 25 | if mode == 1: 26 | return data[pc] 27 | else: 28 | try: 29 | return data[data[pc]] 30 | except: 31 | breakpoint() 32 | 33 | def write(data, pc, mode, value): 34 | data[data[pc]] = value 35 | 36 | def main(in_file, inputs): 37 | with open(in_file) as f: 38 | text = f.read() 39 | data = list(map(int, text.split(","))) 40 | pc = 0 41 | outputs = list() 42 | while True: 43 | op, mode_c, mode_b, mode_a = parse_opcode(data[pc]) 44 | if op == 1: 45 | a = read(data, pc+1, mode_a) 46 | b = read(data, pc+2, mode_b) 47 | write(data, pc+3, 0, a+b) 48 | pc += 4 49 | elif op == 2: 50 | a = read(data, pc+1, mode_a) 51 | b = read(data, pc+2, mode_b) 52 | write(data, pc+3, 0, a*b) 53 | pc += 4 54 | elif op == 3: 55 | if len(inputs) > 0: 56 | c = inputs.pop() 57 | else: 58 | c = int(input("> ")) 59 | write(data, pc+1, 0, c) 60 | pc += 2 61 | elif op == 4: 62 | c = read(data, pc+1, 0) 63 | print(c) 64 | yield c 65 | pc += 2 66 | elif op == 5: 67 | a = read(data, pc+1, mode_a) 68 | b = read(data, pc+2, mode_b) 69 | if a != 0: 70 | pc = b 71 | else: 72 | pc += 3 73 | elif op == 6: 74 | a = read(data, pc+1, mode_a) 75 | b = read(data, pc+2, mode_b) 76 | if a == 0: 77 | pc = b 78 | else: 79 | pc += 3 80 | elif op == 7: 81 | a = read(data, pc+1, mode_a) 82 | b = read(data, pc+2, mode_b) 83 | if a < b: 84 | write(data, pc+3, mode_c, 1) 85 | else: 86 | write(data, pc+3, mode_c, 0) 87 | pc += 4 88 | elif op == 8: 89 | a = read(data, pc+1, mode_a) 90 | b = read(data, pc+2, mode_b) 91 | if a == b: 92 | write(data, pc+3, mode_c, 1) 93 | else: 94 | write(data, pc+3, mode_c, 0) 95 | pc += 4 96 | elif data[pc] == 99: 97 | break 98 | return 99 | 100 | if __name__ == "__main__": 101 | main("input") 102 | -------------------------------------------------------------------------------- /day9/input: -------------------------------------------------------------------------------- 1 | 1102,34463338,34463338,63,1007,63,34463338,63,1005,63,53,1102,3,1,1000,109,988,209,12,9,1000,209,6,209,3,203,0,1008,1000,1,63,1005,63,65,1008,1000,2,63,1005,63,904,1008,1000,0,63,1005,63,58,4,25,104,0,99,4,0,104,0,99,4,17,104,0,99,0,0,1102,1,30,1010,1102,1,38,1008,1102,1,0,1020,1102,22,1,1007,1102,26,1,1015,1102,31,1,1013,1102,1,27,1014,1101,0,23,1012,1101,0,37,1006,1102,735,1,1028,1102,1,24,1009,1102,1,28,1019,1102,20,1,1017,1101,34,0,1001,1101,259,0,1026,1101,0,33,1018,1102,1,901,1024,1101,21,0,1016,1101,36,0,1011,1102,730,1,1029,1101,1,0,1021,1102,1,509,1022,1102,39,1,1005,1101,35,0,1000,1102,1,506,1023,1101,0,892,1025,1101,256,0,1027,1101,25,0,1002,1102,1,29,1004,1102,32,1,1003,109,9,1202,-3,1,63,1008,63,39,63,1005,63,205,1001,64,1,64,1106,0,207,4,187,1002,64,2,64,109,-2,1208,-4,35,63,1005,63,227,1001,64,1,64,1105,1,229,4,213,1002,64,2,64,109,5,1206,8,243,4,235,1106,0,247,1001,64,1,64,1002,64,2,64,109,14,2106,0,1,1105,1,265,4,253,1001,64,1,64,1002,64,2,64,109,-25,1201,4,0,63,1008,63,40,63,1005,63,285,1106,0,291,4,271,1001,64,1,64,1002,64,2,64,109,14,2107,37,-7,63,1005,63,313,4,297,1001,64,1,64,1106,0,313,1002,64,2,64,109,-7,21101,40,0,5,1008,1013,37,63,1005,63,333,1105,1,339,4,319,1001,64,1,64,1002,64,2,64,109,-7,1207,0,33,63,1005,63,355,1106,0,361,4,345,1001,64,1,64,1002,64,2,64,109,7,21102,41,1,9,1008,1017,41,63,1005,63,387,4,367,1001,64,1,64,1106,0,387,1002,64,2,64,109,-1,21102,42,1,10,1008,1017,43,63,1005,63,411,1001,64,1,64,1106,0,413,4,393,1002,64,2,64,109,-5,21101,43,0,8,1008,1010,43,63,1005,63,435,4,419,1106,0,439,1001,64,1,64,1002,64,2,64,109,16,1206,3,455,1001,64,1,64,1106,0,457,4,445,1002,64,2,64,109,-8,21107,44,45,7,1005,1017,479,4,463,1001,64,1,64,1106,0,479,1002,64,2,64,109,6,1205,5,497,4,485,1001,64,1,64,1106,0,497,1002,64,2,64,109,1,2105,1,6,1105,1,515,4,503,1001,64,1,64,1002,64,2,64,109,-10,2108,36,-1,63,1005,63,535,1001,64,1,64,1105,1,537,4,521,1002,64,2,64,109,-12,2101,0,6,63,1008,63,32,63,1005,63,561,1001,64,1,64,1105,1,563,4,543,1002,64,2,64,109,25,21108,45,46,-2,1005,1018,583,1001,64,1,64,1105,1,585,4,569,1002,64,2,64,109,-23,2108,34,4,63,1005,63,607,4,591,1001,64,1,64,1106,0,607,1002,64,2,64,109,3,1202,7,1,63,1008,63,22,63,1005,63,633,4,613,1001,64,1,64,1106,0,633,1002,64,2,64,109,12,21108,46,46,3,1005,1015,651,4,639,1106,0,655,1001,64,1,64,1002,64,2,64,109,-5,2102,1,-1,63,1008,63,35,63,1005,63,679,1001,64,1,64,1105,1,681,4,661,1002,64,2,64,109,13,21107,47,46,-7,1005,1013,701,1001,64,1,64,1105,1,703,4,687,1002,64,2,64,109,-2,1205,2,715,1106,0,721,4,709,1001,64,1,64,1002,64,2,64,109,17,2106,0,-7,4,727,1105,1,739,1001,64,1,64,1002,64,2,64,109,-23,2107,38,-6,63,1005,63,759,1001,64,1,64,1106,0,761,4,745,1002,64,2,64,109,-3,1207,-4,40,63,1005,63,779,4,767,1105,1,783,1001,64,1,64,1002,64,2,64,109,-8,2101,0,-1,63,1008,63,35,63,1005,63,809,4,789,1001,64,1,64,1105,1,809,1002,64,2,64,109,-6,2102,1,8,63,1008,63,32,63,1005,63,835,4,815,1001,64,1,64,1106,0,835,1002,64,2,64,109,6,1201,5,0,63,1008,63,37,63,1005,63,857,4,841,1106,0,861,1001,64,1,64,1002,64,2,64,109,2,1208,0,32,63,1005,63,883,4,867,1001,64,1,64,1106,0,883,1002,64,2,64,109,23,2105,1,-2,4,889,1001,64,1,64,1106,0,901,4,64,99,21102,27,1,1,21101,0,915,0,1106,0,922,21201,1,55337,1,204,1,99,109,3,1207,-2,3,63,1005,63,964,21201,-2,-1,1,21101,0,942,0,1105,1,922,21202,1,1,-1,21201,-2,-3,1,21102,957,1,0,1105,1,922,22201,1,-1,-2,1106,0,968,21201,-2,0,-2,109,-3,2105,1,0 2 | -------------------------------------------------------------------------------- /day9/intcode.py: -------------------------------------------------------------------------------- 1 | def parse_opcode(opcode): 2 | opcode = str(opcode) 3 | if len(opcode) > 1: 4 | instruction = int(opcode[-2:]) 5 | try: 6 | mode_a = int(opcode[-3]) 7 | except: 8 | mode_a = 0 9 | try: 10 | mode_b = int(opcode[-4]) 11 | except: 12 | mode_b = 0 13 | try: 14 | mode_c = int(opcode[-5]) 15 | except: 16 | mode_c = 0 17 | else: 18 | instruction = int(opcode) 19 | mode_c = 0 20 | mode_b = 0 21 | mode_a = 0 22 | return (instruction, mode_c, mode_b, mode_a) 23 | 24 | class Memory: 25 | def __init__(self): 26 | self.base = 0 27 | 28 | def set_base(self, base): 29 | self.base += base 30 | 31 | def read(self, data, pc, mode): 32 | if mode == 2: 33 | address = self.base+data[pc] 34 | elif mode == 1: 35 | address = pc 36 | else: 37 | address = data[pc] 38 | 39 | try: 40 | return data[address] 41 | except IndexError: 42 | while address >= len(data): 43 | data.append(0) 44 | return data[address] 45 | 46 | def write(self, data, pc, mode, value): 47 | if mode == 2: 48 | address = self.base+data[pc] 49 | elif mode == 1: 50 | address = pc 51 | else: 52 | address = data[pc] 53 | 54 | try: 55 | data[address] = value 56 | except IndexError: 57 | while address >= len(data): 58 | data.append(0) 59 | data[address] = value 60 | 61 | 62 | def main(in_file, inputs): 63 | with open(in_file) as f: 64 | text = f.read() 65 | data = list(map(int, text.split(","))) 66 | pc = 0 67 | r = Memory() 68 | outputs = list() 69 | while True: 70 | op, mode_c, mode_b, mode_a = parse_opcode(data[pc]) 71 | if op == 1: 72 | a = r.read(data, pc+1, mode_a) 73 | b = r.read(data, pc+2, mode_b) 74 | r.write(data, pc+3, mode_c, a+b) 75 | pc += 4 76 | elif op == 2: 77 | a = r.read(data, pc+1, mode_a) 78 | b = r.read(data, pc+2, mode_b) 79 | r.write(data, pc+3, mode_c, a*b) 80 | pc += 4 81 | elif op == 3: 82 | if len(inputs) > 0: 83 | c = inputs.pop() 84 | else: 85 | c = int(input("> ")) 86 | r.write(data, pc+1, mode_a, c) 87 | pc += 2 88 | elif op == 4: 89 | c = r.read(data, pc+1, mode_a) 90 | yield c 91 | pc += 2 92 | elif op == 5: 93 | a = r.read(data, pc+1, mode_a) 94 | b = r.read(data, pc+2, mode_b) 95 | if a != 0: 96 | pc = b 97 | else: 98 | pc += 3 99 | elif op == 6: 100 | a = r.read(data, pc+1, mode_a) 101 | b = r.read(data, pc+2, mode_b) 102 | if a == 0: 103 | pc = b 104 | else: 105 | pc += 3 106 | elif op == 7: 107 | a = r.read(data, pc+1, mode_a) 108 | b = r.read(data, pc+2, mode_b) 109 | if a < b: 110 | r.write(data, pc+3, mode_c, 1) 111 | else: 112 | r.write(data, pc+3, mode_c, 0) 113 | pc += 4 114 | elif op == 8: 115 | a = r.read(data, pc+1, mode_a) 116 | b = r.read(data, pc+2, mode_b) 117 | if a == b: 118 | r.write(data, pc+3, mode_c, 1) 119 | else: 120 | r.write(data, pc+3, mode_c, 0) 121 | pc += 4 122 | elif op == 9: 123 | a = r.read(data, pc+1, mode_a) 124 | r.set_base(a) 125 | pc += 2 126 | elif data[pc] == 99: 127 | break 128 | return 129 | 130 | if __name__ == "__main__": 131 | main("input") 132 | -------------------------------------------------------------------------------- /day8/input: -------------------------------------------------------------------------------- 1 | 222122222222222221222222020220220222201212222222121120222212202222222222222222202222222222222222210222202222222201222222122022222022022222222222222212222122222222222221222222022222220222211202222222020221222222222222222222222222222222222222222222210222222222222211222222122022222022022222222222222222222022222222222222222222021222221222222202222122121122222202222222222222222222202222222222222222220222212222222202222222222222222222222222222222222212212022222222222221222222222221220222200202222222120220222212222222222222222222212222222222222222200222202222222210222222022022222122122222222222222222222022222222222221222222022221222222220212222122021022222212222222222222222222212222222222222222202222202222222200222222022122222222022222222222222212212022222222222221222222022222221222212222222222220020222222102222222222222222202222222222222222220222212222222212222222122122222122022222222222222222212222222222222222222222120220222222220222222222221122222222022222222222222222222222222222222222212222222222222221222212222122222122222222222222222212212022222222222220222222121220222222202202222022220221222212202222222222222222212222222222222222202222222222222220220202222022222022122222222222222212222122122222222221222222121221222222201202222022121120222212222222222222222222222222220222222222221222212222222210222212022122222022222222222222222212222022122222222220222222022222220222202222222022122022222212112122222222222222202222221222222222220222222222222201221222022022222022222222222222222212211022222222222220222222022220221222222212222222122010222212102122222222222222212222220222222222211222222222222222222222222022222122222222222222222202210122022222222221222222120222222222211212222022121200222222022222222222222222222222220222212222202222212222222221221212122222222022022222222222222212202122122222222220222222020222220222202222222122222121222202112122222222222222222222220222202222222222202222222211221222222102222022122222222222222222202222022222222221222222222220222222202202222222021120222222112122222222222222212222221222202222202222212222222212222202122012222022122222222222222202222122022222212222222222221220220222221212222222020011222222122122222222222222222222220222212222211222202222222211222212021202222222122222222222222202202222022222212221222222021222221222220202222022120012222212012122222222222222202222221222202222222222202222222221222212120002222022222222222222222202222222022222202222222222020221221222212222222122022000222222102122222222222222222222222222202222210222222222222201220222021122222222122222222222222222210222022222212222222222122220222222220012222222122201222202002022222222222222202222222222222222201222202222222211220202120122222222222222222222222212202122022222212220222222220222221222212112222222022021222202202022202222222222012222222222222222210222212222222222222012020022222022122222222222222202222121222222222221222222022220220222210112222122221122222202222222202222222222212222221222222222210222212222222212220202120222222222222222222222222222210120022222202222222222022220222222220002222202022211222222012122202222222222002222221222202222221222212222222221221212122122222022022222222222222222221222222222212220022222121220222222221102222112121101222202202222212222222222112222020212222122220222202222222200220022022112222222022222222222222222222120122222202220222222021221220222202222222022122121222212122222212222212222102222220202202222211222222222222211222022020112222222222222222222222212201121022222202220022222222220220222210122222122122020222222112122212222202222202222220222222022200222202222222210220102121022222022222222222222222222212021222222202222222222022221222222222122222212220201222212202222212222222202012222221222222122200222202222222211222122122212222022022222202222222202202121222222202222021222120220221222201002222212120221222202122222212222212202112222221222222002212222212222222220222022220212222222022222222222222222211122122222202222222222121222220222221212222202221020222212112122202222222212112222122222202002211222212222222220221102121012222222122222202222222202222122122222212222222222122222220222211012222122022022222212102022202022202222202222122222222112210222222222222202222102122212222222022222212222222222212222022222220221021222120221220222221000222112121000222222202222222022222212102222222202222122212222222222222201220212221122222222122222222222222212201022022222220221122222221221220222221211222022222020222212222122212222222112202222120222202112211222202222222221222112020112222022022222202222222222211122022222221220220222221220220222222121222102222210222212002022212222222222212222121212212022222222202222222202221012020212222022222222212222222222212221022222212221220222221220221222222000222122020011222222202222222122212202002222221222222022102222212222222202220202021002222122122222212222222222220221122222202221220222221222222222222212222122121010222222102222212022222122022222120202202012110222222222222220221022122222222222122222202222222212200222222222202222020222221221222222202200222022121200222202112022212022212222222222021220202002111222222222222221220122121202222222222222202202222202212121122222222222120222221220200222220210222102121221222212212221222022212212222222221221202012112222222222222220220002021012222222022221222202222212202120122222200222221222221222221222210011222212021222222222212222202222222022022222021220202122022222202222222220220112221222222122122221222212222222222121022222200221221220020220201222222002222212122200222212122122202122022212112222221221202202212222212222222211222222220222222022122222002222222222201120222222220222220220120221200222211212222112221210222212212220212022012122022222220221212102001222202222222222220112020002222022222220102222222202212020022222201221020222122220222222211111022012220122222222012122202222202222222222122222212222002220202222222221221212021102222122022220002212222202210020122222202221120221121220202222221001022202220111222212112021212222222102112222022202202022020221222222222200220102220222222022022220122202222212222021022222210222120221021222210222222120222212120020222222212022202022112102122222020222212022222222202222222220220202222102202222022222002212222212211222122222200221220222220221221222222001022022021112222202102021212122122122222222220222212202201220202222222212220212021212212222020020022212222212201220222220212222221120010220202222201220222202122002222212112222202122112112212222121220222212002221002222222201222002221002222222220121022212222202211121222222212222221222001222202222210010222112021202222212102120202222222122002222120221222122020222122222222211222222222222210122221122022202222222212021122221202220120222000222221222212002022112022012222202222022222022212012002222122220212022122220112222222200220002022212202122220120022212222202221220222221201220021122121222220222211212122212222220222202022122222022102002222222121210222202022221112222222220221022020012210222221221222212222212220120022222211222221120022220212222210012222012122012222222202222222222202112222222021200212202200221202222222201222012222002211222221022112222222202202220222221220222021020021221211222221111222102020000222222202220202122002102022222221211122102120211002222222212222002120022222212222220022202222212202221222222210221120020201221212222221100222002022121222022202221222222002022002222121212212111211212122222222222222202122002200112220120202222222212211221222222021221222120210221222222220022222022022012222122112020212022022122012222221210102202021200202222222200221202121202210122222122012202222202201122222221120220022222112222221222201211122002121020222012222021202222020212112222122200122121102211002222222200220212220202220012221122012212222202202220122210000222220022010221211222212022022112022212222102002122222222111212202222220222022211202211112202222010221122222202222102122020102212222222221121222201021221221022210221221222201022022012021220222112022121202022222012202222120200002002110200222200222000221022101022222002021021222202222222200220222200101220122122020222201222210112022102021112222002202022202222022212122222122222222020220221102220222020222222212012201012020222222012220222101222122202100222120021120222202222221122022202122212222012002220212022120122002222220200122002201220002200222020220012011022220122120022012012221212121222122221000221021020221221220222211201122012020121222212122121212022000002122222220221102222012221122210222211212212122022210002221121122012221222022122122220012222120021002222201222200222022102022222222022022120212122121122022222020220202011001221222210222200201002122222200122122120102202220202212020222200010221021021120220222222222121222002122201222022002220202022210012002222022210212220020200022211222121221102120212212002221122022202210222110121122210101220020222002220200222212111122112221120222002122221202022120222002222122220212120101201202201222222221102200212212212121121022212210202002221022221022220120020100222201222201121122002121021222022012020222022201022122222122202102001022200022220222121222012021122212212221221222222212222010220122201012221022012002220212222222111222212122112222012202222212122010122022222121210022112010202202201222122210202112012200012120020201122220212020122022221012220222111020220221222201222022002121022222202102220222122212002202222020202112121222200122221222101211202022111210122122220020202210212021122222222012222120221201222220222211222122012220121222202012020212122202122202222120210212210202220122210222020220222101212200002220120220112211202000122022201100222022201111221202222202022122112122001222002202022222122221102102222021211102220220221002200222112221022220200200022222022212122212212111222022221121221021201202220221222202211122122122222222022212021212022021012202222021211012110221201212220222121211212022012220022021121011012202222211020122210122221122110120222200222212100022102021111022222112122212222021102022222022221222121101222212210202210221012220112201222122022121112202012210221222202221221020022100221210222220121222102020201122102212020222122121212122222120201122110121222212222202112222212220111221002120220101212220122012022120200021222120021010221212222220100122112121221222102202120212122012122102220222202202000120211222222202102220122002122222202020221011212222212010220220222122221022211010220220222220010122002020021122002112122212022112122012221122201002222022212012222212110212022201000211112222021121012222222210121020202200220121210100220221222220001122022020222222212212222212122021002102221222211122000202212112210222001201102001102210112120221102112201012102221121201202221021110012222210222222012022112221200022022022122202212000002012222121212012220010200022201212101211202222122201102122020211102220212010221020222102221020022200220201222210211022202022210122022002221222012010212122211221221102201022211102220212110222022110121200222122122002212210122211220220221222221222201220221120222210011222022121111222102022222222012000022002200220222102012110221012212202201211122220021200012121122202122211022221121021212100220120012002222120222202210022022220020122012222222202212100022222211020210102220202211222211202220221122001011211222122122211212221112202122120200011220120212201221110222220202022012021012222012002220212022220222002221120220202110000211012202212020221122211110221222220220100112212222221021222220011222021001120220211222200121022222120101022202202020222002212222102222022212122011220202022220202020211022022220212222220222111112201212010120221210212221122120212221101222202212122212222120222102122122222202101022112202220212202220000200122210222012211122022100200022220222001002220202122121220201021221000002101221122222200112122102122012022112212121222112210212012210022221212002102220212211222100200012001202201012122020020012211022200121122222102220000002210221211222221122222022020201122022102222222102200002022212222000012211121201122211212121222012100121212122222020122102211002022021222210012222221001020220111222222011222022022210122112202022202222201012022212120221202202222221012211202021210022221011221022122020201212201012220122022222112221102011211222102222210010222012122110122222212121212222221012122202222201222202120220022210222110221212002122220222220120221102201202111021222200122222212010012220210222212021022112022011022012202221202112021002122210121002202100101200122210212021202112122000220222221020202012201002201021221201111222101021011222222222210020022002020200122002112122222222202102002210220102122211121201102212212012212202222201222022020122020212211212210221021221011222100002221221012222210100022202121010022222112021202102011102012201220211022022000201122220222020222012022021202102020122010012222102001022022202011220012112201221201222220101022102021210022212122020212122000102102222220202222100200222122201202110220012001122222012020220102112220212100121121202102220221201122221010222210002022202221000122212012222202102201212022210010111002211211211202212202200202222200001212112121222002122221012002121022210222221222120020222212222212121022112222011022222202220222102020012122220020012022111112211102222212202220012020212201022222122002002222002222222122012102221021121121221221222210122222212220110022212222222222202220022212220122120112002121220212212222101200202112000220112001120020112220222211122020120210222120202210220222222210120022122120021022222012220202102200112212220002211002201102212212212222121220212122221212002021122101222202222022021220122222222210101000222202222201100022122222101222102222200202022212022012221201202112211212210022202222011220202221010200112001221222122212012122120120022021221222111222221211222221121222202122121122122012002222002222210112210102002202202011210202210222011222122212222200012211020200202220002111002121001020222022222121222020222222000022222021200122012112210212012001000122200000201022102010200112111222220211112120010201102020222221122212012121121022022120222200101102022210222200111022012120111022012022100222212012022002201221111102200102220212101202220221122111010201112212121020112201222201112020120201221001121120220220222212012222222120021022202102112012102012212222212022120202220000202120211222222222122202022211112201020100202222102020120222101120221101110100221221222210000122120121110222112122002122222101121222201000222122201122202202220222020202012222000220212100020021122201122022212222110022221211101210021021222220200022201022001112022122112222002202121122200111210122021221210210102212211221212222120212202200021212122211202202200121101001221021021221021022222202122022210122012212122212012202102022221222111020111112120221210210020222110200202112111202002020121210012210012102002020000221222200002210020220202221110122121020222102002102100022222121101222102120001112101222202001022222101221102021112200102200222022002220102210111121221220221202020011222102222210020222021022211002202002120112202120111222121002002022112112200200221212000201122110100200212020122012202201122122000212211222011122220200201100111000022010102201221120010110121011120100100011202001101011012210020022201001212022210200111020120211112200111000100 -------------------------------------------------------------------------------- /day6/input: -------------------------------------------------------------------------------- 1 | YQ2)CYG 2 | 63M)X4N 3 | 7YF)LRN 4 | K2B)PVC 5 | 394)195 6 | W68)QNR 7 | XDS)SX7 8 | JWG)789 9 | 6RR)4R1 10 | S9Y)M1X 11 | VDC)R4V 12 | 7G4)4YZ 13 | XK2)K4M 14 | R7M)ZHC 15 | Q14)ZS1 16 | GJF)4RM 17 | YQ2)K4G 18 | T98)2GB 19 | YRP)3Q9 20 | SD7)XRN 21 | DYR)GQZ 22 | 4NV)T6C 23 | 8LL)WLB 24 | 9GX)T7C 25 | 673)Q4F 26 | V2F)B5Q 27 | BZN)RPX 28 | Y2T)X6B 29 | P89)F2S 30 | WFQ)JNL 31 | JJ7)QK7 32 | HYQ)RWS 33 | Q97)V15 34 | NHX)XND 35 | MHP)P5L 36 | PPL)H6G 37 | KVV)535 38 | 8NK)9FG 39 | B6X)6MG 40 | MX2)T8M 41 | 7NC)V6V 42 | ZP1)SN7 43 | FY5)PJX 44 | J9S)H1F 45 | LRZ)VPY 46 | PSG)S74 47 | DGK)N44 48 | QJ1)BRR 49 | 2XM)LVG 50 | ZG1)QNQ 51 | 72L)QJ1 52 | GNQ)XT4 53 | 1XJ)PKH 54 | T3M)ZB7 55 | JQS)B53 56 | CNV)7PL 57 | 4MF)9YJ 58 | 9FG)RKT 59 | WKZ)GNQ 60 | TR5)NNB 61 | 91T)NCN 62 | 1K1)YYJ 63 | 7W7)8MQ 64 | PTB)4FS 65 | X7S)88Q 66 | RRD)17D 67 | PM3)8DL 68 | 5X9)BYV 69 | 1MX)7R4 70 | 6ZT)34D 71 | 514)9Q7 72 | PW8)B6X 73 | DJZ)MWR 74 | JW5)JL1 75 | 8QJ)LYF 76 | JKR)BGW 77 | QDN)BPT 78 | G83)DSM 79 | W2G)R1S 80 | PRH)K9W 81 | S4P)XH3 82 | 4CK)FLF 83 | LN4)CPB 84 | L2J)CPX 85 | B4G)V7Y 86 | 343)1SG 87 | QVS)62F 88 | 9YX)LL1 89 | Q24)S23 90 | BFL)9PN 91 | Q5H)7YF 92 | HT1)9SG 93 | DGJ)Z8Z 94 | NJG)LQN 95 | 6DQ)211 96 | PKL)4NV 97 | 91J)BBK 98 | V8W)TFB 99 | Q4F)644 100 | RYB)SBJ 101 | 1PX)626 102 | PV8)RHN 103 | KZP)861 104 | VCS)V29 105 | ZWV)BGV 106 | XF4)XC8 107 | CZG)3C6 108 | GVL)RWJ 109 | MHC)KM8 110 | RQR)C8L 111 | YQN)T6Z 112 | WQF)8NF 113 | BNF)RZP 114 | MTJ)7W4 115 | 1Z4)QF4 116 | Y7T)FQG 117 | RRP)914 118 | J7D)Q4D 119 | RWH)95J 120 | PYM)XF3 121 | JNF)PD1 122 | RV6)514 123 | 956)3RJ 124 | PSY)NW6 125 | TV5)MPW 126 | SPH)7RY 127 | WSP)8V4 128 | 66Y)B5W 129 | W6M)6T5 130 | MB7)VX5 131 | RX9)9Q5 132 | 731)Y7T 133 | SCR)DXH 134 | F8S)6HP 135 | G34)XRW 136 | QWC)Q57 137 | GPQ)JJH 138 | LTY)RX9 139 | T8M)QXX 140 | 7JN)RGZ 141 | T5V)771 142 | 9ZY)9V7 143 | HCX)2H2 144 | ZQH)4CL 145 | 1TJ)VSH 146 | 3G2)KWX 147 | D3P)5RD 148 | X16)91V 149 | T73)3TN 150 | PCZ)5HG 151 | DRZ)Z9D 152 | M5M)LCY 153 | 5T8)66Y 154 | RW9)HR6 155 | J4V)KTL 156 | JL1)1GC 157 | 7JY)FT8 158 | 4MR)PVT 159 | 1Y3)LC1 160 | VLG)LSP 161 | PQD)FJF 162 | LP7)4CB 163 | BYW)8F8 164 | ZWB)H35 165 | 9RX)CLD 166 | BWY)7XZ 167 | TB1)T3B 168 | NDZ)2D5 169 | R1K)VVM 170 | LC1)8QX 171 | L6L)G5N 172 | 8F7)BF2 173 | 7KD)MYW 174 | N2H)Q1D 175 | W5X)S98 176 | 49M)GD7 177 | MRD)L9Z 178 | QYP)4CT 179 | SH3)VQZ 180 | MHF)FP1 181 | VJN)NFX 182 | Z81)N5R 183 | 41H)8HW 184 | Z5B)CNW 185 | S3S)LP7 186 | P2C)XW7 187 | 5F9)KWT 188 | NL1)KQL 189 | FLV)8QJ 190 | 77L)VCS 191 | 1PC)L1N 192 | S45)JMX 193 | 1S6)K8C 194 | D4D)CTB 195 | 5T4)KCM 196 | SZP)XKL 197 | 3GX)343 198 | PK7)ZDY 199 | V84)ZJ7 200 | JJZ)CH5 201 | 6Q2)4GX 202 | SX7)5F9 203 | 535)BYM 204 | XHM)533 205 | 4R1)B4G 206 | V6V)RRR 207 | 1YY)1TF 208 | G1X)GMY 209 | N28)H96 210 | Z1B)W2S 211 | 9JK)28M 212 | G2R)WGV 213 | KY2)QD3 214 | XKQ)D4D 215 | 5T2)DQ4 216 | QF8)V84 217 | K7L)LRH 218 | H3G)NF4 219 | FWM)NFK 220 | MRJ)96X 221 | PXB)YQY 222 | L9Z)S3S 223 | XW7)R94 224 | G2Q)XK2 225 | SMW)Q5Q 226 | MDK)7HP 227 | T9R)KCF 228 | DLB)SMW 229 | 4FS)2Z5 230 | LYF)1MX 231 | D1P)WRT 232 | 8FX)19X 233 | VP2)66N 234 | VVM)PNP 235 | MDB)XXW 236 | ZBF)ML7 237 | 57K)5T8 238 | 675)QF8 239 | PFK)XSZ 240 | CTB)T69 241 | BBK)WCF 242 | 1JQ)Q7S 243 | Z4H)3R8 244 | 45F)76H 245 | PKS)1W6 246 | MW9)J7M 247 | GM4)4T4 248 | 6LG)977 249 | KVZ)4CK 250 | 9LS)GX5 251 | 5VF)CK3 252 | NLG)P6F 253 | 41N)KV7 254 | RYK)56N 255 | BYJ)64G 256 | 3VZ)K2Z 257 | 2DX)7K8 258 | TKK)3GX 259 | W7N)V7N 260 | GKF)8G1 261 | H1L)VSK 262 | YM9)9RX 263 | DWF)X75 264 | KQ6)5T4 265 | NGL)HS2 266 | XQZ)4KN 267 | J4Y)TWJ 268 | 18H)VJY 269 | LVG)L1G 270 | JX4)54Y 271 | WWC)QH6 272 | G2Z)1XV 273 | RWS)HZ4 274 | 4NF)KLT 275 | NFX)L41 276 | PJ9)6Q2 277 | KGW)J1R 278 | 7TX)KQS 279 | 3RK)98K 280 | 6NZ)7NT 281 | 9S3)DN4 282 | 8F8)2J5 283 | ZNS)5H1 284 | V6G)GXH 285 | 4KN)JND 286 | 2DG)63M 287 | SCR)5XF 288 | R94)G2Q 289 | ZXP)5B9 290 | PBB)ZS5 291 | 44V)DGJ 292 | MQQ)K47 293 | BFM)VH1 294 | QC1)L6L 295 | LMW)R1K 296 | 6BZ)8RT 297 | VSH)CHX 298 | QMB)91J 299 | 54Y)5YC 300 | L41)GQ8 301 | 34D)N8D 302 | FV4)86Q 303 | 6BD)P7R 304 | S3D)7KD 305 | D44)YYX 306 | 9D6)SPH 307 | 1K1)Y6Z 308 | KRN)3RK 309 | N44)5CR 310 | QT7)PZH 311 | WWM)LN4 312 | 7PR)MNH 313 | 861)M5J 314 | LNY)G1J 315 | 677)ZWB 316 | 7R4)62B 317 | DLX)L3P 318 | S74)6MP 319 | PJX)J7D 320 | VRJ)LGH 321 | 9R6)43D 322 | X8J)Z9X 323 | 4C9)DGT 324 | VR4)TX4 325 | 8N8)K3G 326 | M1X)L2J 327 | BQ7)M8G 328 | 6DF)81M 329 | 7DV)PW8 330 | DGF)8JJ 331 | 6S9)38Q 332 | 211)44V 333 | BGV)G5G 334 | JWY)S1X 335 | N9N)CQK 336 | TWJ)DBT 337 | 3C6)VWM 338 | YM9)JL7 339 | WP6)HQQ 340 | HK3)XX6 341 | XND)189 342 | GZ6)151 343 | MHC)JXD 344 | NKY)2HG 345 | S2W)956 346 | XBG)71M 347 | B78)LMW 348 | 91T)3GM 349 | 1YF)ZK7 350 | LGH)9LS 351 | JLF)VFP 352 | VKD)XGR 353 | 17D)1NR 354 | P2R)FFS 355 | 9QG)R7M 356 | 2J5)V1T 357 | 2GB)9R6 358 | 626)4BY 359 | RX7)HCG 360 | QVM)2H3 361 | 3NH)R6Z 362 | 1Z7)W7N 363 | 8LQ)MZJ 364 | 1HC)FP9 365 | MVF)S9Y 366 | QJM)NZX 367 | H4K)MW9 368 | 8LZ)ZL7 369 | LP3)Q24 370 | WQ4)19T 371 | 2H6)QB3 372 | XMM)DY6 373 | 1TC)NWC 374 | KVR)7NQ 375 | SQM)K7L 376 | 2Q6)WRR 377 | 38D)14S 378 | RSB)45F 379 | N5R)GTN 380 | VJY)3WC 381 | RQ8)RLJ 382 | M3C)SZP 383 | LQN)T6S 384 | 3FP)WRX 385 | YQY)JQ9 386 | LYF)6XV 387 | SNJ)D1P 388 | FYZ)8VN 389 | RL3)V44 390 | YTJ)BWY 391 | K48)5YJ 392 | J7M)WQF 393 | DVF)JJZ 394 | N1P)GJF 395 | C5H)LHV 396 | M3Q)B8N 397 | XC8)CX2 398 | ZQS)PKL 399 | 8FV)M25 400 | CM6)7PR 401 | 4HL)BKH 402 | Q7Z)SAN 403 | ZR4)9TY 404 | T5B)WQ4 405 | 27M)518 406 | 56K)WB9 407 | KTL)MWK 408 | CPX)FRG 409 | S49)9DM 410 | 7W4)CQ1 411 | FSX)HCX 412 | N9K)SPV 413 | HRM)42L 414 | 3M2)DBM 415 | CVP)2GK 416 | WSP)15F 417 | 3TT)YKB 418 | YZ8)T5B 419 | 64H)731 420 | P84)7DV 421 | 6Y5)3JX 422 | GS3)XKQ 423 | BF2)S7S 424 | 7TC)SQW 425 | 2WL)R1P 426 | XV4)31N 427 | RPX)NB4 428 | MY2)3NG 429 | 2G4)PBW 430 | PBW)RB9 431 | K7B)MHF 432 | Z8Z)JW5 433 | KLT)7P5 434 | 4BY)N2H 435 | 5LQ)1YF 436 | KM8)7V6 437 | 7Q8)JX4 438 | JMX)QT7 439 | QDY)RYB 440 | 6VJ)BQ7 441 | NQY)5TJ 442 | XB7)4HT 443 | Y4W)FSX 444 | M19)M9L 445 | S2T)58V 446 | 33Z)PSG 447 | FP1)743 448 | WVQ)WFQ 449 | TVT)4VQ 450 | XX6)FM7 451 | 3VX)2LF 452 | WHW)PDT 453 | 4VX)QZR 454 | FJW)M14 455 | 5XZ)PQQ 456 | VMJ)R2D 457 | 6NZ)8LZ 458 | VFP)RWH 459 | WS3)9JB 460 | QTX)PDX 461 | 2H3)SPB 462 | CH1)VMJ 463 | JF6)DCR 464 | NDT)H9W 465 | CQ1)6RS 466 | XT4)T98 467 | MYW)SFC 468 | 8T3)N8R 469 | T6C)CS7 470 | S8V)7BC 471 | HDC)6PR 472 | 25L)4VX 473 | DRS)9Y7 474 | 2J7)KLP 475 | COM)V73 476 | LWD)3CQ 477 | GFN)31V 478 | L1G)SY3 479 | Q8L)BZN 480 | 2HG)2J7 481 | JXD)7JN 482 | 1W6)G83 483 | 5QG)KR8 484 | D2L)V2F 485 | 8G1)8G7 486 | CHX)6QK 487 | CS7)2DG 488 | 9G7)24D 489 | 8Y1)PB8 490 | 5RD)GQ5 491 | V73)C3L 492 | 4BG)9X1 493 | CX2)NJG 494 | RJL)JJ4 495 | ZKL)Y7H 496 | CJR)T5T 497 | 1XJ)Q5H 498 | K9H)QW2 499 | FJY)YS3 500 | 9SG)QVM 501 | 24D)KNM 502 | SV9)NR3 503 | NPB)5VS 504 | 5C2)PFF 505 | QXX)MSF 506 | LB3)DLW 507 | NLN)48L 508 | 21W)77L 509 | N4M)7YM 510 | WQ5)1ZQ 511 | 6RS)YTB 512 | K47)D79 513 | PNP)M6M 514 | 896)BP9 515 | HLJ)YFX 516 | WWH)LP3 517 | 834)366 518 | HF6)CQ6 519 | CH5)1TC 520 | WGJ)KVZ 521 | JB5)855 522 | C66)T4Z 523 | LL1)1Y3 524 | PVT)MBV 525 | B55)W64 526 | 3H9)Z9Y 527 | 89H)Z91 528 | Y5S)B6W 529 | 1F8)7SX 530 | VP6)1L7 531 | KKN)QJ5 532 | LPW)421 533 | JTF)MDF 534 | H4M)3WV 535 | V86)6TC 536 | R4V)2W6 537 | SP2)VCK 538 | NP2)V68 539 | PVC)98Z 540 | B53)GQK 541 | QDN)QTX 542 | NZX)1ZC 543 | 4Q7)Q5K 544 | 6ZJ)V83 545 | DW8)25C 546 | 743)6DQ 547 | GTN)N9N 548 | JWN)N9K 549 | Y7H)3VZ 550 | M6M)LT2 551 | 64H)DGK 552 | 19X)CZG 553 | DWC)P1P 554 | 7NC)Q8L 555 | PCS)Q4B 556 | PNB)Z98 557 | 8SF)XR9 558 | PZF)71D 559 | WPD)QVP 560 | 2Z5)MZT 561 | Q5K)6FN 562 | L41)S3D 563 | VSK)H3M 564 | ZL7)8FV 565 | XRH)JM9 566 | 899)3Z1 567 | 1KB)S2W 568 | RKT)5X9 569 | 59T)TMV 570 | R41)4BG 571 | S4M)VR4 572 | 9QT)R1Q 573 | 3YD)238 574 | Y7S)KFJ 575 | 1LT)KN4 576 | VP6)QYP 577 | 69B)LGV 578 | ZTQ)Y6P 579 | Y93)1G4 580 | 56K)2KH 581 | 31V)9G7 582 | MZJ)V8W 583 | PGW)TF3 584 | J8P)5T2 585 | Y35)9ZJ 586 | 2GK)WS3 587 | T4Z)NDZ 588 | 11Z)RQK 589 | FBD)WWC 590 | PZH)FZQ 591 | 3PP)575 592 | 5GB)2H6 593 | M6D)ZV6 594 | CTB)LDS 595 | WLB)2GC 596 | QHJ)6RR 597 | 9Q5)BFL 598 | Z6M)VRX 599 | SJR)RP8 600 | 5PT)3TT 601 | FM6)N53 602 | Y2V)352 603 | TN5)KGW 604 | CK3)D44 605 | 4QN)7JY 606 | GQ5)H79 607 | N8R)791 608 | JM9)ZVN 609 | 1NS)DWF 610 | JQ4)YH7 611 | 34H)6BZ 612 | XXW)KQ6 613 | 7P5)75Y 614 | CB1)HQF 615 | CQ6)6DT 616 | 43M)RSB 617 | BS5)72L 618 | HYT)BWX 619 | VX5)KVV 620 | FR8)RB6 621 | Y6Z)X11 622 | 7GB)D3P 623 | 5LQ)TC3 624 | Q1M)PCF 625 | WRX)HCP 626 | 977)6P7 627 | 1W2)BKP 628 | S8H)JF7 629 | 98Z)S49 630 | FQJ)V13 631 | 3WC)LTM 632 | HRM)Z4H 633 | 5T3)3PP 634 | JHP)SCL 635 | B7W)PQD 636 | 6QK)T5V 637 | CHG)LWD 638 | 2W6)XVJ 639 | 1NR)Q7Z 640 | SPB)DYR 641 | Q4D)QYX 642 | 4LT)43M 643 | QYX)3QJ 644 | KML)H2D 645 | P4Y)59T 646 | BYM)RYR 647 | 43D)JVR 648 | Q9Y)G1X 649 | QBL)7N6 650 | XDC)5SB 651 | 7YM)PCS 652 | 1DB)TM3 653 | FKF)VBX 654 | XRN)Y32 655 | 2GB)BPZ 656 | YMY)XB7 657 | 7Y2)YTJ 658 | GSZ)12B 659 | C93)9P3 660 | 8PH)Y2T 661 | V83)4QT 662 | BBS)T1V 663 | ZQH)VKD 664 | DYD)T73 665 | YKB)XMY 666 | CC3)BCW 667 | 7V6)P44 668 | XJ9)D8S 669 | HYB)KVR 670 | DCR)XDS 671 | 14S)5LX 672 | 4YZ)N1K 673 | LTX)4MR 674 | 8HN)QBL 675 | WRR)9WQ 676 | WVT)3ZS 677 | L1P)LPJ 678 | V7N)RYK 679 | SYW)M3Q 680 | 8GD)YW4 681 | PG4)S53 682 | LHV)4HL 683 | LYP)X2G 684 | TX5)H47 685 | B19)6LP 686 | L9Z)SNV 687 | PTB)NJV 688 | 3GM)16G 689 | 91V)JDK 690 | S7S)7M2 691 | 7PL)J4V 692 | 44L)Y93 693 | P89)YQN 694 | 8X1)YRP 695 | W1K)69B 696 | K9W)1V2 697 | 4KT)1S6 698 | 3NG)WY3 699 | Q4D)ZQS 700 | 9GX)RJ1 701 | B5W)NKY 702 | 7ZQ)7RC 703 | 1HC)J4R 704 | VQZ)MHC 705 | 5YJ)J3H 706 | 2B3)YCG 707 | 9YX)394 708 | 4NV)LRZ 709 | WXS)BM4 710 | SZV)NGR 711 | D44)PNB 712 | Q37)T2W 713 | PDT)HDC 714 | NWC)TZN 715 | 1LT)5VF 716 | 19T)C71 717 | 44Z)NCH 718 | WY3)N4M 719 | QBR)P89 720 | R1P)W2G 721 | SYM)6ZJ 722 | L3R)J6V 723 | LJX)J8P 724 | 366)PG4 725 | 1L1)DW8 726 | HQ2)4NF 727 | FP9)BFM 728 | 9ZJ)DGW 729 | 575)LTX 730 | DZT)MX3 731 | Y6L)3NH 732 | V63)W5X 733 | FSX)2GF 734 | LDS)PPL 735 | DXH)RJL 736 | CVP)MHP 737 | QKF)TKK 738 | PX7)Y7S 739 | WR6)TN5 740 | XH3)QMB 741 | 7F6)FYZ 742 | BYT)X7S 743 | PQQ)9YX 744 | R6C)N9V 745 | KXN)WSP 746 | 8P9)D6K 747 | Q68)ZR4 748 | JJ7)NHX 749 | P6F)BJR 750 | V2L)BWV 751 | MZT)BS1 752 | RYK)JF6 753 | RSX)4KT 754 | P1P)CB5 755 | 4PM)Y2V 756 | 2TX)7KG 757 | 6XL)JHP 758 | H3M)6Y5 759 | JB2)6K8 760 | M4K)BP4 761 | 7FT)XT8 762 | JBN)5RG 763 | Z9X)QBR 764 | 2KH)Y35 765 | 66N)G2Z 766 | QF4)899 767 | 6Q2)2WP 768 | 2D5)118 769 | J4M)9XZ 770 | LRH)9GM 771 | V44)TV1 772 | Y6P)BS5 773 | SZX)25V 774 | BQJ)D4K 775 | PDY)5QB 776 | NGR)X8J 777 | FTQ)T2S 778 | 71M)493 779 | 5B9)76W 780 | HS2)45J 781 | N8D)7ZT 782 | XKL)WWM 783 | J6V)25L 784 | 8ZG)XWS 785 | LRN)2W2 786 | 189)BYT 787 | Z23)J9Y 788 | 4Y2)NLG 789 | Y7X)SH3 790 | ZB7)Q68 791 | R1Q)MY2 792 | HDC)SKL 793 | VMD)5SG 794 | 29X)V25 795 | SJ6)HRM 796 | MWX)J9S 797 | 1BV)TQZ 798 | PKL)7GB 799 | 8DL)GFN 800 | 5LX)WVQ 801 | 9TY)1DB 802 | MRJ)Y4L 803 | M9L)M1G 804 | PB8)D5N 805 | 7GC)8RN 806 | 9H7)85N 807 | Q1D)YVZ 808 | WK6)1XJ 809 | CB5)DRZ 810 | BP9)KRN 811 | 33W)1Z7 812 | 9K7)4PM 813 | 6DT)G1M 814 | HM8)PXB 815 | KQS)XMM 816 | KCM)YZ8 817 | DBT)3H9 818 | SCL)7Q8 819 | MKC)XPK 820 | ZT8)VC3 821 | 4T4)KP5 822 | M4W)WKZ 823 | JF7)5KD 824 | QMR)1K1 825 | S98)ZXP 826 | K4M)XRH 827 | Z9D)M19 828 | J5M)XF2 829 | 62F)9XB 830 | JDK)7X1 831 | 81M)6W7 832 | QMS)PTB 833 | 7KG)W7Q 834 | XKW)J21 835 | PYD)SJR 836 | 151)PFK 837 | 7N6)B19 838 | XPK)GS3 839 | 2GF)29M 840 | 4QT)834 841 | GQ8)SNP 842 | K71)677 843 | C8L)99R 844 | NF4)5XZ 845 | GMY)PGW 846 | TJH)JNF 847 | 7ZT)8N8 848 | KNM)M85 849 | MC5)WFY 850 | 1PD)MVF 851 | 3Z1)Z6M 852 | 195)F7C 853 | MBV)CB1 854 | 3PC)QF2 855 | J3H)J5M 856 | H9R)PCZ 857 | D8F)NPB 858 | R1G)P84 859 | GVJ)QMS 860 | V83)2WL 861 | 4CB)J4Y 862 | 9Q7)RX7 863 | 46S)SYW 864 | 28M)MRD 865 | 2YN)1NS 866 | XGR)1HC 867 | KWT)CJ9 868 | NMJ)QT4 869 | BP4)9K7 870 | PXB)HDK 871 | 71D)8VG 872 | CK3)ZG1 873 | LQ6)33W 874 | T6S)SNJ 875 | 9JB)WZD 876 | 56N)CVP 877 | FX4)FJW 878 | YS3)4Q7 879 | RF2)BNC 880 | ZFV)T9R 881 | 88Q)PBB 882 | PCF)GSZ 883 | Y35)JJ7 884 | 352)LQ6 885 | PVT)QVS 886 | LCV)LYP 887 | 3TN)82Z 888 | NW6)Q5Z 889 | 9BV)2TL 890 | CYG)9BV 891 | D6W)T3M 892 | PY1)3PS 893 | Y44)G34 894 | XSZ)27C 895 | RYR)GZ6 896 | XF3)6ZT 897 | V29)896 898 | VBX)KKN 899 | WFY)33Z 900 | XF2)HYQ 901 | K4G)ZTQ 902 | J1V)Y44 903 | 5SB)WR1 904 | SNV)FF2 905 | 8KC)MQX 906 | ZS1)8X6 907 | 15F)9KP 908 | 193)JB5 909 | 43M)M95 910 | 1TJ)JQS 911 | SNP)WVT 912 | 3FJ)WGJ 913 | JND)P2C 914 | 8CD)CJ4 915 | VSK)S2Q 916 | J1R)PDY 917 | F2S)XWP 918 | 7RC)3PC 919 | 914)FV4 920 | 9XZ)4C9 921 | QW2)S3M 922 | TM3)PZF 923 | C53)VP6 924 | WRT)2G4 925 | ZDY)Z45 926 | BCW)46X 927 | CGR)1MM 928 | DY6)HV3 929 | YMG)TZ9 930 | 8JJ)NRW 931 | HR6)K6H 932 | 3PS)SYM 933 | 96X)7W7 934 | HKP)TYH 935 | 8HW)LJX 936 | FGK)LPW 937 | 3CQ)Q1M 938 | 5VS)S8H 939 | 5TJ)4MF 940 | RZP)KC3 941 | MNH)7ZQ 942 | QJ5)F8X 943 | 8VN)BNF 944 | ZCW)9S3 945 | 1MM)V2L 946 | BS1)NMJ 947 | JJ4)1VD 948 | 5YC)WPK 949 | MHM)MKC 950 | 4BH)VP2 951 | 4CT)FJY 952 | JL7)HF6 953 | BJR)BQJ 954 | 3DB)XV4 955 | 7HR)3WZ 956 | K3G)BL2 957 | VCK)YMG 958 | 6DF)FY5 959 | Y4W)DGF 960 | KJJ)59Q 961 | 771)WWH 962 | KCF)TW5 963 | YYX)7TX 964 | DGW)PV8 965 | KLP)XTP 966 | Q7K)3VY 967 | 151)J5G 968 | G6X)18H 969 | 8VG)6VJ 970 | 7HP)YY8 971 | FRL)74J 972 | X88)3FP 973 | BKH)HPQ 974 | JNL)4PW 975 | NJV)91T 976 | 45J)BHR 977 | BKP)CXG 978 | 16G)7F6 979 | QZR)SV9 980 | NNB)9QT 981 | 1G4)Z3H 982 | J4R)T53 983 | 7X1)72N 984 | RRR)RL3 985 | 644)DLB 986 | B6W)7Y2 987 | CGT)Z32 988 | H79)QJM 989 | PPF)D6W 990 | QNQ)94Y 991 | J9T)1TJ 992 | X4N)6NZ 993 | 7W4)Z1L 994 | G5N)FR8 995 | HYQ)HLV 996 | F13)7S3 997 | 7R7)C5H 998 | RKF)G2G 999 | M19)F9C 1000 | WZD)F8S 1001 | JLL)MB7 1002 | S5J)TR5 1003 | L1P)G77 1004 | FTQ)VDC 1005 | 2H2)TB1 1006 | MPW)MDK 1007 | GC5)N1P 1008 | 75Y)1L1 1009 | 3PS)4BH 1010 | LSP)44G 1011 | X11)SS7 1012 | 5MB)CH1 1013 | SCY)VMD 1014 | 5D3)2B3 1015 | F3C)9ZY 1016 | 4MP)RQR 1017 | TV1)SZH 1018 | 42L)4ND 1019 | 3P6)B18 1020 | 9GM)41N 1021 | X2M)PK7 1022 | M95)H9R 1023 | TX4)4QZ 1024 | ZV6)FX4 1025 | DSM)PRH 1026 | ZZC)DWC 1027 | BNF)JWN 1028 | 6P7)JLF 1029 | 9QZ)G44 1030 | VC3)W7B 1031 | JB5)V88 1032 | ZP1)5VL 1033 | RWJ)B55 1034 | K4D)193 1035 | J21)ZNS 1036 | 3VY)7GC 1037 | VTH)WXS 1038 | R98)PM3 1039 | V7Y)FPJ 1040 | 72N)HT1 1041 | 7S3)HK3 1042 | R1P)DZT 1043 | 2TL)JB2 1044 | 6LP)YFS 1045 | QH6)6VX 1046 | V88)6BD 1047 | 7M2)YMY 1048 | CPB)7R7 1049 | R1S)RRP 1050 | 35C)FZG 1051 | R98)KHK 1052 | GX5)RKF 1053 | S3S)MDB 1054 | 38Q)NYQ 1055 | RHN)S4M 1056 | 3LN)8KC 1057 | TL3)Q9Y 1058 | 4QM)ZFV 1059 | XTP)DBF 1060 | 9KP)H4M 1061 | Z91)8X1 1062 | QK7)1BR 1063 | 58N)KZP 1064 | T3B)W9Y 1065 | BF6)NXD 1066 | BWV)BF6 1067 | XRW)X2M 1068 | WR1)GP3 1069 | JN8)SCR 1070 | SYN)YOU 1071 | XWS)P2R 1072 | KNY)2L7 1073 | G2G)BBS 1074 | 6XV)HJG 1075 | Q7S)SP2 1076 | 9PN)FM6 1077 | FPJ)ZZC 1078 | BPT)8NK 1079 | 4PW)DVF 1080 | YDJ)XQZ 1081 | 1VD)NK8 1082 | RLN)XDC 1083 | WCF)N28 1084 | FT8)VLG 1085 | 3QJ)QDN 1086 | VKD)CC3 1087 | 7RY)84L 1088 | CLD)3M2 1089 | 9DM)XHM 1090 | FM7)FBC 1091 | L3R)BYJ 1092 | GQ5)K9H 1093 | Q5Z)G6X 1094 | D6K)8RR 1095 | HDK)49M 1096 | DLW)99D 1097 | 2LF)W6M 1098 | FBF)J4M 1099 | 5QB)GVJ 1100 | PKH)876 1101 | MDF)V63 1102 | CQK)PJT 1103 | 1ZQ)WR6 1104 | BNC)DJZ 1105 | WGV)MWN 1106 | SZH)JN8 1107 | W89)HLJ 1108 | SBJ)58K 1109 | WB9)2TK 1110 | SPV)P1Y 1111 | YYJ)8CD 1112 | S23)5C2 1113 | 6HP)58N 1114 | 533)3YD 1115 | RP8)L5B 1116 | 11J)GPQ 1117 | FF6)JWY 1118 | 27C)887 1119 | LBJ)3CR 1120 | FLF)RRD 1121 | TTS)VQN 1122 | G5G)F3C 1123 | 8RN)3CC 1124 | XKK)FGK 1125 | 9XB)XBG 1126 | T9W)11J 1127 | 72N)K2D 1128 | H9N)673 1129 | R56)HKX 1130 | MWR)5TG 1131 | 6MG)RSX 1132 | RGZ)SJ6 1133 | VF4)WQ5 1134 | DLJ)TX5 1135 | NCH)M6D 1136 | Z9Y)VYS 1137 | Q57)8PH 1138 | VPY)FTQ 1139 | WQ4)MHM 1140 | K6H)FF6 1141 | H96)DBH 1142 | FN2)6RJ 1143 | 791)2Q6 1144 | VH1)R56 1145 | KFJ)J96 1146 | 8QX)HM8 1147 | L3P)3G2 1148 | 95J)V6G 1149 | 31N)J95 1150 | HQF)PJ9 1151 | 7Y2)3MR 1152 | V68)2H5 1153 | T3M)FN2 1154 | R1G)D7R 1155 | HM8)CNV 1156 | 5MB)6LG 1157 | RLJ)WPD 1158 | 64G)W68 1159 | DN4)1DK 1160 | QKF)NDT 1161 | P5L)LBJ 1162 | SS7)NL1 1163 | P1L)G9Y 1164 | 5P3)44Z 1165 | 7BC)VWJ 1166 | T2S)1W2 1167 | S8H)TKZ 1168 | G5R)H3G 1169 | C25)LZJ 1170 | YDZ)2XM 1171 | 98K)K7B 1172 | 6W7)B78 1173 | 1DK)Z81 1174 | MK4)CL7 1175 | BM4)PBJ 1176 | NRW)ZYF 1177 | D5N)W31 1178 | FZ9)K48 1179 | 3LC)XKW 1180 | 7BQ)ZT8 1181 | C5H)S4P 1182 | YFX)ZCW 1183 | PFF)L1P 1184 | R6Z)Q97 1185 | CS7)89H 1186 | F7C)W7W 1187 | 887)HYB 1188 | DQ4)LCV 1189 | NCH)7NC 1190 | KHK)VTH 1191 | Q24)P5P 1192 | KR8)GKF 1193 | 5C9)FBF 1194 | 5VL)HP6 1195 | XG8)4LT 1196 | RWV)T9W 1197 | 518)7TC 1198 | 8MQ)Y1Y 1199 | 25V)NH3 1200 | TFB)LFR 1201 | 99R)3VX 1202 | YDV)19D 1203 | 84L)L3R 1204 | J96)8SF 1205 | TJR)DLJ 1206 | P44)5D3 1207 | VWJ)4Y2 1208 | 3JX)9QG 1209 | QD3)38D 1210 | TSH)FRL 1211 | Y1Y)X16 1212 | 2H5)NN5 1213 | MQX)D2F 1214 | 29M)C5T 1215 | HLV)1F9 1216 | 7NQ)Z23 1217 | WFQ)77Z 1218 | FBC)D8F 1219 | LTM)1LT 1220 | 6MP)QMR 1221 | C5T)1F8 1222 | 77L)ZWD 1223 | V25)9QZ 1224 | 6CG)KNY 1225 | NXD)JLL 1226 | XR9)XG5 1227 | PX8)HQ2 1228 | 1SG)1YY 1229 | 3R5)CM6 1230 | S53)MRJ 1231 | 9X1)C5X 1232 | VVH)JQ4 1233 | KC3)B7W 1234 | LCY)P4Y 1235 | 6VX)1PX 1236 | 3WV)YQ2 1237 | 675)R98 1238 | FJF)J9T 1239 | SFC)2DX 1240 | YPQ)8GD 1241 | MZL)RW9 1242 | 5HG)S45 1243 | CHG)M5M 1244 | 3ZS)GVL 1245 | WPK)9JK 1246 | NK8)Z5L 1247 | D7R)6CG 1248 | Q5Q)4HS 1249 | GP3)4BN 1250 | KQD)9S7 1251 | 25C)XJ9 1252 | LN4)TV5 1253 | 3CC)LCL 1254 | TZN)MQQ 1255 | BGW)G9M 1256 | 9P3)MX2 1257 | T5V)8P9 1258 | 3YD)S8V 1259 | D79)LNY 1260 | 4VQ)8LL 1261 | RB9)H1L 1262 | CL7)FLV 1263 | JQ9)H4K 1264 | 1ZC)TTS 1265 | RWM)KML 1266 | 118)3LC 1267 | 1F9)QDY 1268 | 6K8)CGT 1269 | RQK)3LN 1270 | 5H1)XG8 1271 | 3D8)SRF 1272 | V77)DLX 1273 | TKZ)VRJ 1274 | FRP)1PD 1275 | GQK)41H 1276 | 4K3)DRS 1277 | M14)1PC 1278 | 2W2)Z5B 1279 | 2L7)V86 1280 | PDX)CQZ 1281 | RTV)46S 1282 | Z5L)M23 1283 | NN5)4MP 1284 | L5B)MK4 1285 | YTB)R6C 1286 | QDZ)SZV 1287 | YMD)W89 1288 | W64)WK6 1289 | HCP)Q14 1290 | 62B)3FJ 1291 | KP5)Y6L 1292 | 9QT)YPQ 1293 | B8N)Z1J 1294 | DGT)57K 1295 | 6T5)34H 1296 | K2D)5C9 1297 | 46X)FWM 1298 | Y4L)KJJ 1299 | BHR)8ZG 1300 | G1J)THP 1301 | TW5)QHJ 1302 | 6MP)YDJ 1303 | 58V)Y7X 1304 | ZYF)V7W 1305 | 86P)7BQ 1306 | VR1)29X 1307 | 85N)T2P 1308 | PBJ)GDR 1309 | KWX)CYC 1310 | 2GK)WHW 1311 | L8V)VR1 1312 | N1K)7HR 1313 | T7C)V77 1314 | H35)1KB 1315 | DRZ)LTY 1316 | 1BR)YLD 1317 | QF2)6DF 1318 | T5T)WYL 1319 | 3R8)QWC 1320 | 1GC)KXN 1321 | HV3)Z1B 1322 | HCG)35C 1323 | QVP)YDV 1324 | YFS)W3V 1325 | C93)NLN 1326 | K2B)MTJ 1327 | NH3)KKF 1328 | KV7)PRC 1329 | 855)2YN 1330 | Y32)ZWV 1331 | MWN)Q7K 1332 | G77)3D8 1333 | T6Z)K71 1334 | T1V)YMD 1335 | PJT)BM2 1336 | XC8)5P3 1337 | 493)C66 1338 | YCG)8FX 1339 | CPX)XRP 1340 | TC3)PYD 1341 | 4CL)PX7 1342 | SN7)RF2 1343 | 76H)JRC 1344 | 9XZ)7G4 1345 | 5VF)9D6 1346 | SQW)PY1 1347 | 3WZ)MC5 1348 | 5KD)SQM 1349 | VH1)6XL 1350 | BWX)P1L 1351 | Z98)56K 1352 | 7BC)8HN 1353 | 936)8T3 1354 | ZHC)KX3 1355 | XRP)NGL 1356 | XWP)Q37 1357 | T69)JWG 1358 | RJ1)QC1 1359 | S1X)CGR 1360 | QSP)QKF 1361 | W3N)GC5 1362 | ZJ7)4QM 1363 | C71)5GB 1364 | 876)21W 1365 | CQZ)5MB 1366 | YW4)6S9 1367 | SKL)Z3F 1368 | 6PR)M4W 1369 | JRC)8LQ 1370 | DBF)64H 1371 | 4QZ)1LH 1372 | NGR)TNF 1373 | 7NT)FBD 1374 | HQQ)ZQH 1375 | D2L)RTV 1376 | N5R)YDZ 1377 | 48L)QSP 1378 | Z1L)FKF 1379 | 59Q)2TX 1380 | 58K)DHB 1381 | J8P)F13 1382 | F8X)RLN 1383 | 44G)7FT 1384 | LHV)J1V 1385 | 481)HKP 1386 | 7XZ)D1Z 1387 | 4GX)GW8 1388 | 1V2)9S8 1389 | ZWD)NP2 1390 | 8GH)W3N 1391 | P1Y)4K3 1392 | ZVN)3DB 1393 | LPJ)C53 1394 | DBM)LB3 1395 | 1L7)PSY 1396 | XG5)5LQ 1397 | M85)SZX 1398 | 4RM)9GX 1399 | Z1J)R1G 1400 | 77Z)1Z4 1401 | FWM)YM9 1402 | TYH)C93 1403 | 9ZH)83V 1404 | LDG)9H7 1405 | KX3)C25 1406 | NCN)RQ8 1407 | RDJ)MWX 1408 | THP)675 1409 | W7Q)TSH 1410 | G63)917 1411 | FFS)LDG 1412 | MX3)PYM 1413 | S3M)5T3 1414 | 9YJ)S5J 1415 | M1G)CJR 1416 | W7B)ZKL 1417 | 9V7)LVS 1418 | 9WQ)5PT 1419 | T2W)HYT 1420 | G44)27M 1421 | F9C)KQD 1422 | 5CR)RV6 1423 | WYL)FQJ 1424 | QT4)3P6 1425 | NW6)JTF 1426 | VWM)8GH 1427 | 5SG)3R5 1428 | XBG)G2R 1429 | H2D)9ZH 1430 | C3L)MZL 1431 | QH6)4QN 1432 | 9R6)1JQ 1433 | Z32)5QG 1434 | J5G)NQY 1435 | JVR)XKK 1436 | W2S)G63 1437 | GW8)Y4W 1438 | S2Q)VJN 1439 | FQG)R41 1440 | 238)44L 1441 | XMM)TJH 1442 | GM4)K2B 1443 | 8JJ)PKS 1444 | R2D)8F7 1445 | CJ9)XF4 1446 | SY3)CHG 1447 | H1F)S2T 1448 | 2TK)Y5S 1449 | YY8)X88 1450 | FZG)VF4 1451 | VLG)FRP 1452 | B5Q)8Y1 1453 | 8RT)2RS 1454 | 5RG)TL3 1455 | J9Y)L8V 1456 | 8G7)WP6 1457 | JN8)TVT 1458 | Z3H)FZ9 1459 | 12B)GM4 1460 | PBB)936 1461 | 3MR)SD7 1462 | 84L)1BV 1463 | Z45)VVH 1464 | QNR)G5R 1465 | K71)11Z 1466 | 394)PPF 1467 | BF2)86P 1468 | XVJ)JKR 1469 | 94Y)ZBF 1470 | 6TC)JBN 1471 | YH7)W1K 1472 | DHB)47N 1473 | 7K8)ZP1 1474 | H6G)QDZ 1475 | TF3)SYN 1476 | MSF)D2L 1477 | D8S)KY2 1478 | HJG)K4D 1479 | 86Q)XL2 1480 | 8V4)RWM 1481 | J95)SCY 1482 | GJF)PX8 1483 | HZ4)M3C 1484 | 9S7)M4K 1485 | KNY)RWV 1486 | 5H1)RDJ 1487 | VQN)H9N 1488 | T53)TJR 1489 | ZK7)DYD 1490 | 8X6)481 1491 | 7SX)BYW --------------------------------------------------------------------------------