diff --git a/src/P1.py b/src/P1.py deleted file mode 100644 index bfc7c20..0000000 --- a/src/P1.py +++ /dev/null @@ -1,88 +0,0 @@ -# --- Day 1: Report Repair --- - -# After saving Christmas five years in a row, you've decided to take a vacation -# at a nice resort on a tropical island. Surely, Christmas will go on without you. - -# The tropical island has its own currency and is entirely cash-only. The gold -# coins used there have a little picture of a starfish; the locals just call -# them stars. None of the currency exchanges seem to have heard of them, but -# somehow, you'll need to find fifty of these coins by the time you arrive so -# you can pay the deposit on your room. - -# To save your vacation, you need to get all fifty stars by December 25th. - -# Collect stars by solving puzzles. Two puzzles will be made available on each -# day in the Advent calendar; the second puzzle is unlocked when you complete -# the first. Each puzzle grants one star. Good luck! - -# Before you leave, the Elves in accounting just need you to fix your expense -# report (your puzzle input); apparently, something isn't quite adding up. - -# Specifically, they need you to find the two entries that sum to 2020 and then -# multiply those two numbers together. - -# For example, suppose your expense report contained the following: - -# 1721 -# 979 -# 366 -# 299 -# 675 -# 1456 - -# In this list, the two entries that sum to 2020 are 1721 and 299. Multiplying -# them together produces 1721 * 299 = 514579, so the correct answer is 514579. - -# Of course, your expense report is much larger. Find the two entries that sum -# to 2020; what do you get if you multiply them together? - -with open("files/P1.txt", "r") as f: - numbers = [int(number) for number in f.read().strip().split("\n")] - - -def part_1() -> None: - for n in numbers: - for i in range(len(numbers)): - if n + numbers[i] == 2020: - print(f"{n} times {numbers[i]} is {n*numbers[i]}") - break - else: - continue - break - - -# --- Part Two --- - -# The Elves in accounting are thankful for your help; one of them even offers -# you a starfish coin they had left over from a past vacation. They offer you -# a second one if you can find three numbers in your expense report that meet -# the same criteria. - -# Using the above example again, the three entries that sum to 2020 are 979, -# 366, and 675. Multiplying them together produces the answer, 241861950. - -# In your expense report, what is the product of the three entries that sum to -# 2020? - - -def part_2() -> None: - for n in numbers: - for i in range(len(numbers)): - for j in range(len(numbers)): - if n + numbers[i] + numbers[j] == 2020: - print( - f"{n} times {numbers[i]} times {numbers[j]} is " - f"{n*numbers[i]*numbers[j]}" - ) - break - else: - continue - break - else: - continue - break - - -if __name__ == "__main__": - part_1() - part_2() diff --git a/src/P10.py b/src/P10.py deleted file mode 100644 index cdb8179..0000000 --- a/src/P10.py +++ /dev/null @@ -1,227 +0,0 @@ -from functools import lru_cache - -import numpy as np - -# --- Day 10: Adapter Array --- - -# Patched into the aircraft's data port, you discover weather forecasts of a -# massive tropical storm. Before you can figure out whether it will impact your -# vacation plans, however, your device suddenly turns off! - -# Its battery is dead. - -# You'll need to plug it in. There's only one problem: the charging outlet near -# your seat produces the wrong number of jolts. Always prepared, you make a -# list of all of the joltage adapters in your bag. - -# Each of your joltage adapters is rated for a specific output joltage (your -# puzzle input). Any given adapter can take an input 1, 2, or 3 jolts lower -# than its rating and still produce its rated output joltage. - -# In addition, your device has a built-in joltage adapter rated for 3 jolts -# higher than the highest-rated adapter in your bag. (If your adapter list were -# 3, 9, and 6, your device's built-in adapter would be rated for 12 jolts.) - -# Treat the charging outlet near your seat as having an effective joltage -# rating of 0. - -# Since you have some time to kill, you might as well test all of your -# adapters. Wouldn't want to get to your resort and realize you can't even -# charge your device! - -# If you use every adapter in your bag at once, what is the distribution of -# joltage differences between the charging outlet, the adapters, and your -# device? - -# For example, suppose that in your bag, you have adapters with the following -# joltage ratings: - -# 16 -# 10 -# 15 -# 5 -# 1 -# 11 -# 7 -# 19 -# 6 -# 12 -# 4 - -# With these adapters, your device's built-in joltage adapter would be rated -# for 19 + 3 = 22 jolts, 3 higher than the highest-rated adapter. - -# Because adapters can only connect to a source 1-3 jolts lower than its -# rating, in order to use every adapter, you'd need to choose them like this: - -# The charging outlet has an effective rating of 0 jolts, so the only -# adapters that could connect to it directly would need to have a joltage -# rating of 1, 2, or 3 jolts. Of these, only one you have is an adapter rated 1 -# jolt (difference of 1). -# From your 1-jolt rated adapter, the only choice is your 4-jolt rated -# adapter (difference of 3). -# From the 4-jolt rated adapter, the adapters rated 5, 6, or 7 are valid -# choices. However, in order to not skip any adapters, you have to pick the -# adapter rated 5 jolts (difference of 1). -# Similarly, the next choices would need to be the adapter rated 6 and then -# the adapter rated 7 (with difference of 1 and 1). -# The only adapter that works with the 7-jolt rated adapter is the one -# rated 10 jolts (difference of 3). -# From 10, the choices are 11 or 12; choose 11 (difference of 1) and then -# 12 (difference of 1). -# After 12, only valid adapter has a rating of 15 (difference of 3), then -# 16 (difference of 1), then 19 (difference of 3). -# Finally, your device's built-in adapter is always 3 higher than the -# highest adapter, so its rating is 22 jolts (always a difference of 3). - -# In this example, when using every adapter, there are 7 differences of 1 jolt -# and 5 differences of 3 jolts. - -# Here is a larger example: - -# 28 -# 33 -# 18 -# 42 -# 31 -# 14 -# 46 -# 20 -# 48 -# 47 -# 24 -# 23 -# 49 -# 45 -# 19 -# 38 -# 39 -# 11 -# 1 -# 32 -# 25 -# 35 -# 8 -# 17 -# 7 -# 9 -# 4 -# 2 -# 34 -# 10 -# 3 - -# In this larger example, in a chain that uses all of the adapters, there are -# 22 differences of 1 jolt and 10 differences of 3 jolts. - -# Find a chain that uses all of your adapters to connect the charging outlet to -# your device's built-in adapter and count the joltage differences between the -# charging outlet, the adapters, and your device. What is the number of 1-jolt -# differences multiplied by the number of 3-jolt differences? - -with open("files/P10.txt", "r") as f: - inputs = [int(num) for num in f.read().strip().split("\n")] - -# Add zero (charging outlet) and max+3 (device own built-in adapter) -joltages = sorted(inputs + [0, max(inputs) + 3]) - - -def part_1() -> None: - joltages_diffs = np.diff(joltages) - - print( - f"The difference is {np.sum(joltages_diffs == 1) * np.sum(joltages_diffs == 3)}" - ) - - -# --- Part Two --- - -# To completely determine whether you have enough adapters, you'll need to -# figure out how many different ways they can be arranged. Every arrangement -# needs to connect the charging outlet to your device. The previous rules about -# when adapters can successfully connect still apply. - -# The first example above (the one that starts with 16, 10, 15) supports the -# following arrangements: - -# (0), 1, 4, 5, 6, 7, 10, 11, 12, 15, 16, 19, (22) -# (0), 1, 4, 5, 6, 7, 10, 12, 15, 16, 19, (22) -# (0), 1, 4, 5, 7, 10, 11, 12, 15, 16, 19, (22) -# (0), 1, 4, 5, 7, 10, 12, 15, 16, 19, (22) -# (0), 1, 4, 6, 7, 10, 11, 12, 15, 16, 19, (22) -# (0), 1, 4, 6, 7, 10, 12, 15, 16, 19, (22) -# (0), 1, 4, 7, 10, 11, 12, 15, 16, 19, (22) -# (0), 1, 4, 7, 10, 12, 15, 16, 19, (22) - -# (The charging outlet and your device's built-in adapter are shown in -# parentheses.) Given the adapters from the first example, the total number of -# arrangements that connect the charging outlet to your device is 8. - -# The second example above (the one that starts with 28, 33, 18) has many -# arrangements. Here are a few: - -# (0), 1, 2, 3, 4, 7, 8, 9, 10, 11, 14, 17, 18, 19, 20, 23, 24, 25, 28, 31, -# 32, 33, 34, 35, 38, 39, 42, 45, 46, 47, 48, 49, (52) - -# (0), 1, 2, 3, 4, 7, 8, 9, 10, 11, 14, 17, 18, 19, 20, 23, 24, 25, 28, 31, -# 32, 33, 34, 35, 38, 39, 42, 45, 46, 47, 49, (52) - -# (0), 1, 2, 3, 4, 7, 8, 9, 10, 11, 14, 17, 18, 19, 20, 23, 24, 25, 28, 31, -# 32, 33, 34, 35, 38, 39, 42, 45, 46, 48, 49, (52) - -# (0), 1, 2, 3, 4, 7, 8, 9, 10, 11, 14, 17, 18, 19, 20, 23, 24, 25, 28, 31, -# 32, 33, 34, 35, 38, 39, 42, 45, 46, 49, (52) - -# (0), 1, 2, 3, 4, 7, 8, 9, 10, 11, 14, 17, 18, 19, 20, 23, 24, 25, 28, 31, -# 32, 33, 34, 35, 38, 39, 42, 45, 47, 48, 49, (52) - -# (0), 3, 4, 7, 10, 11, 14, 17, 20, 23, 25, 28, 31, 34, 35, 38, 39, 42, 45, -# 46, 48, 49, (52) - -# (0), 3, 4, 7, 10, 11, 14, 17, 20, 23, 25, 28, 31, 34, 35, 38, 39, 42, 45, -# 46, 49, (52) - -# (0), 3, 4, 7, 10, 11, 14, 17, 20, 23, 25, 28, 31, 34, 35, 38, 39, 42, 45, -# 47, 48, 49, (52) - -# (0), 3, 4, 7, 10, 11, 14, 17, 20, 23, 25, 28, 31, 34, 35, 38, 39, 42, 45, -# 47, 49, (52) - -# (0), 3, 4, 7, 10, 11, 14, 17, 20, 23, 25, 28, 31, 34, 35, 38, 39, 42, 45, -# 48, 49, (52) - -# In total, this set of adapters can connect the charging outlet to your device -# in 19208 distinct arrangements. - -# You glance back down at your bag and try to remember why you brought so many -# adapters; there must be more than a trillion valid ways to arrange them! -# Surely, there must be an efficient way to count the arrangements. - -# What is the total number of distinct ways you can arrange the adapters to -# connect the charging outlet to your device? - - -@lru_cache(maxsize=256) -def recursion(node: int) -> int: - if node == len(joltages) - 1: - return 1 - # consider last three nodes (or the end of the list, whichever is first), - # and for any that are valid jumps (value is no more than three more), - # find the number of paths from that node to the end. - return sum( - [ - recursion(current_node) - for current_node in range(node + 1, min(node + 4, len(joltages))) - if joltages[current_node] - joltages[node] <= 3 - ] - ) - - -def part_2() -> None: - total_num = recursion(0) - print(f"The total number of distint ways is {total_num}") - - -if __name__ == "__main__": - part_1() - part_2() diff --git a/src/P11.py b/src/P11.py deleted file mode 100644 index 15735e5..0000000 --- a/src/P11.py +++ /dev/null @@ -1,367 +0,0 @@ -# --- Day 11: Seating System --- - -# Your plane lands with plenty of time to spare. The final leg of your journey -# is a ferry that goes directly to the tropical island where you can finally -# start your vacation. As you reach the waiting area to board the ferry, you -# realize you're so early, nobody else has even arrived yet! - -# By modeling the process people use to choose (or abandon) their seat in the -# waiting area, you're pretty sure you can predict the best place to sit. You -# make a quick map of the seat layout (your puzzle input). - -# The seat layout fits neatly on a grid. Each position is either floor (.), an -# empty seat (L), or an occupied seat (#). For example, the initial seat layout -# might look like this: - -# L.LL.LL.LL -# LLLLLLL.LL -# L.L.L..L.. -# LLLL.LL.LL -# L.LL.LL.LL -# L.LLLLL.LL -# ..L.L..... -# LLLLLLLLLL -# L.LLLLLL.L -# L.LLLLL.LL - -# Now, you just need to model the people who will be arriving shortly. -# Fortunately, people are entirely predictable and always follow a simple set -# of rules. All decisions are based on the number of occupied seats adjacent to -# a given seat (one of the eight positions immediately up, down, left, right, -# or diagonal from the seat). The following rules are applied to every seat -# simultaneously: - -# If a seat is empty (L) and there are no occupied seats adjacent to it, -# the seat becomes occupied. -# If a seat is occupied (#) and four or more seats adjacent to it are also -# occupied, the seat becomes empty. -# Otherwise, the seat's state does not change. - -# Floor (.) never changes; seats don't move, and nobody sits on the floor. - -# After one round of these rules, every seat in the example layout becomes -# occupied: - -# #.##.##.## -# #######.## -# #.#.#..#.. -# ####.##.## -# #.##.##.## -# #.#####.## -# ..#.#..... -# ########## -# #.######.# -# #.#####.## - -# After a second round, the seats with four or more occupied adjacent seats -# become empty again: - -# #.LL.L#.## -# #LLLLLL.L# -# L.L.L..L.. -# #LLL.LL.L# -# #.LL.LL.LL -# #.LLLL#.## -# ..L.L..... -# #LLLLLLLL# -# #.LLLLLL.L -# #.#LLLL.## - -# This process continues for three more rounds: - -# #.##.L#.## -# #L###LL.L# -# L.#.#..#.. -# #L##.##.L# -# #.##.LL.LL -# #.###L#.## -# ..#.#..... -# #L######L# -# #.LL###L.L -# #.#L###.## - -# #.#L.L#.## -# #LLL#LL.L# -# L.L.L..#.. -# #LLL.##.L# -# #.LL.LL.LL -# #.LL#L#.## -# ..L.L..... -# #L#LLLL#L# -# #.LLLLLL.L -# #.#L#L#.## - -# #.#L.L#.## -# #LLL#LL.L# -# L.#.L..#.. -# #L##.##.L# -# #.#L.LL.LL -# #.#L#L#.## -# ..L.L..... -# #L#L##L#L# -# #.LLLLLL.L -# #.#L#L#.## - -# At this point, something interesting happens: the chaos stabilizes and -# further applications of these rules cause no seats to change state! Once -# people stop moving around, you count 37 occupied seats. - -# Simulate your seating area by applying the seating rules repeatedly until no -# seats change state. How many seats end up occupied? - -with open("files/P11.txt", "r") as f: - seats = [line for line in f.read().strip().split("\n")] - - -def seats_around(seats: list[str], r: int, c: int) -> int: - total = 0 - around_me = [ - (-1, -1), - (-1, 0), - (-1, 1), - (0, -1), - (0, 1), - (1, -1), - (1, 0), - (1, 1), - ] - for row, col in around_me: - _row = r + row - _col = c + col - if ( - _row >= 0 - and _row < len(seats) - and _col >= 0 - and _col < len(seats[c]) - ): - total += seats[_row][_col] == "#" - return total - - -def free_seats(v: list[str]) -> int: - total = 0 - for row in v: - total += row.count("#") - return total - - -def part_1(seats: list[str]) -> None: - R = len(seats) - C = len(seats[0]) - while True: - has_changed = False - next_iter = [] - for r in range(R): - new_row = "" - for c in range(C): - seat = seats[r][c] - if seat != ".": - occupants = seats_around(seats, r, c) - if seat == "L" and occupants == 0: - seat = "#" - has_changed = True - elif seat == "#" and occupants >= 4: - seat = "L" - has_changed = True - new_row += seat - next_iter.append(new_row) - if not has_changed: - break - seats = next_iter - - print(f"There are {free_seats(seats)} seats occupied") - - -# --- Part Two --- - -# As soon as people start to arrive, you realize your mistake. People don't -# just care about adjacent seats - they care about the first seat they can see -# in each of those eight directions! - -# Now, instead of considering just the eight immediately adjacent seats, -# consider the first seat in each of those eight directions. For example, the -# empty seat below would see eight occupied seats: - -# .......#. -# ...#..... -# .#....... -# ......... -# ..#L....# -# ....#.... -# ......... -# #........ -# ...#..... - -# The leftmost empty seat below would only see one empty seat, but cannot see -# any of the occupied ones: - -# ............. -# .L.L.#.#.#.#. -# ............. - -# The empty seat below would see no occupied seats: - -# .##.##. -# #.#.#.# -# ##...## -# ...L... -# ##...## -# #.#.#.# -# .##.##. - -# Also, people seem to be more tolerant than you expected: it now takes five or -# more visible occupied seats for an occupied seat to become empty (rather than -# four or more from the previous rules). The other rules still apply: empty -# seats that see no occupied seats become occupied, seats matching no rule -# don't change, and floor never changes. - -# Given the same starting layout as above, these new rules cause the seating -# area to shift around as follows: - -# L.LL.LL.LL -# LLLLLLL.LL -# L.L.L..L.. -# LLLL.LL.LL -# L.LL.LL.LL -# L.LLLLL.LL -# ..L.L..... -# LLLLLLLLLL -# L.LLLLLL.L -# L.LLLLL.LL - -# #.##.##.## -# #######.## -# #.#.#..#.. -# ####.##.## -# #.##.##.## -# #.#####.## -# ..#.#..... -# ########## -# #.######.# -# #.#####.## - -# #.LL.LL.L# -# #LLLLLL.LL -# L.L.L..L.. -# LLLL.LL.LL -# L.LL.LL.LL -# L.LLLLL.LL -# ..L.L..... -# LLLLLLLLL# -# #.LLLLLL.L -# #.LLLLL.L# - -# #.L#.##.L# -# #L#####.LL -# L.#.#..#.. -# ##L#.##.## -# #.##.#L.## -# #.#####.#L -# ..#.#..... -# LLL####LL# -# #.L#####.L -# #.L####.L# - -# #.L#.L#.L# -# #LLLLLL.LL -# L.L.L..#.. -# ##LL.LL.L# -# L.LL.LL.L# -# #.LLLLL.LL -# ..L.L..... -# LLLLLLLLL# -# #.LLLLL#.L -# #.L#LL#.L# - -# #.L#.L#.L# -# #LLLLLL.LL -# L.L.L..#.. -# ##L#.#L.L# -# L.L#.#L.L# -# #.L####.LL -# ..#.#..... -# LLL###LLL# -# #.LLLLL#.L -# #.L#LL#.L# - -# #.L#.L#.L# -# #LLLLLL.LL -# L.L.L..#.. -# ##L#.#L.L# -# L.L#.LL.L# -# #.LLLL#.LL -# ..#.L..... -# LLL###LLL# -# #.LLLLL#.L -# #.L#LL#.L# - -# Again, at this point, people stop shifting around and the seating area -# reaches equilibrium. Once this occurs, you count 26 occupied seats. - -# Given the new visibility method and the rule change for occupied seats -# becoming empty, once equilibrium is reached, how many seats end up occupied? - - -def seats_around_mod(seats: list[str], r: int, c: int) -> int: - total = 0 - around_me = [ - (-1, -1), - (-1, 0), - (-1, 1), - (0, -1), - (0, 1), - (1, -1), - (1, 0), - (1, 1), - ] - for row, col in around_me: - _row = r + row - _col = c + col - while ( - _row >= 0 - and _row < len(seats) - and _col < len(seats[c]) - and seats[_row][_col] == "." - ): - _row += row - _col += col - if ( - _row >= 0 - and _row < len(seats) - and _col >= 0 - and _col < len(seats[c]) - ): - total += seats[_row][_col] == "#" - return total - - -def part_2(seats: list[str]) -> None: - R = len(seats) - C = len(seats[0]) - while True: - has_changed = False - next_iter = [] - for r in range(R): - new_row = "" - for c in range(C): - seat = seats[r][c] - if seat != ".": - occupants = seats_around_mod(seats, r, c) - if seat == "L" and occupants == 0: - seat = "#" - has_changed = True - elif seat == "#" and occupants >= 5: - seat = "L" - has_changed = True - new_row += seat - next_iter.append(new_row) - if not has_changed: - break - seats = next_iter - - print(f"There are {free_seats(seats)} seats occupied") - - -if __name__ == "__main__": - part_1(seats) - part_2(seats) diff --git a/src/P12.py b/src/P12.py deleted file mode 100644 index 16c96bf..0000000 --- a/src/P12.py +++ /dev/null @@ -1,185 +0,0 @@ -import math - -# --- Day 12: Rain Risk --- - -# Your ferry made decent progress toward the island, but the storm came in -# faster than anyone expected. The ferry needs to take evasive actions! - -# Unfortunately, the ship's navigation computer seems to be malfunctioning; -# rather than giving a route directly to safety, it produced extremely -# circuitous instructions. When the captain uses the PA system to ask if anyone -# can help, you quickly volunteer. - -# The navigation instructions (your puzzle input) consists of a sequence of -# single-character actions paired with integer input values. After staring at -# them for a few minutes, you work out what they probably mean: - -# Action N means to move north by the given value. -# Action S means to move south by the given value. -# Action E means to move east by the given value. -# Action W means to move west by the given value. -# Action L means to turn left the given number of degrees. -# Action R means to turn right the given number of degrees. -# Action F means to move forward by the given value in the direction the ship is currently facing. - -# The ship starts by facing east. Only the L and R actions change the direction -# the ship is facing. (That is, if the ship is facing east and the next -# instruction is N10, the ship would move north 10 units, but would still move -# east if the following action were F.) - -# For example: - -# F10 -# N3 -# F7 -# R90 -# F11 - -# These instructions would be handled as follows: - -# F10 would move the ship 10 units east (because the ship starts by facing -# east) to east 10, north 0. -# N3 would move the ship 3 units north to east 10, north 3. -# F7 would move the ship another 7 units east (because the ship is still -# facing east) to east 17, north 3. -# R90 would cause the ship to turn right by 90 degrees and face south; it -# remains at east 17, north 3. -# F11 would move the ship 11 units south to east 17, south 8. - -# At the end of these instructions, the ship's Manhattan distance (sum of the -# absolute values of its east/west position and its north/south position) from -# its starting position is 17 + 8 = 25. - -# Figure out where the navigation instructions lead. What is the Manhattan -# distance between that location and the ship's starting position? - -with open("files/P12.txt", "r") as f: - instructions = [line for line in f.read().strip().split("\n")] - - -def part_1() -> None: - # dirs are E, S, W, and N - dirs = [[1, 0], [0, -1], [-1, 0], [0, 1]] - current_pos = [0, 0] - current_dir = 0 - - for instr in instructions: - _dir, _num = instr[:1], instr[1:] - if _dir == "E": - current_pos[0] += int(_num) - elif _dir == "W": - current_pos[0] -= int(_num) - elif _dir == "N": - current_pos[1] += int(_num) - elif _dir == "S": - current_pos[1] -= int(_num) - elif _dir == "F": - current_pos[0] += int(_num) * dirs[current_dir][0] - current_pos[1] += int(_num) * dirs[current_dir][1] - else: - if _dir == "R": - # rotations are clockwise - current_dir += int(_num) // 90 - else: - current_dir -= int(_num) // 90 - # avoid rotation overflow, just in case - current_dir %= 4 - - manhattan_distance = abs(current_pos[0]) + abs(current_pos[1]) - print(f"The Manhattan distance is {manhattan_distance}") - - -# --- Part Two --- - -# Before you can give the destination to the captain, you realize that the -# actual action meanings were printed on the back of the instructions the whole -# time. - -# Almost all of the actions indicate how to move a waypoint which is relative -# to the ship's position: - -# Action N means to move the waypoint north by the given value. -# Action S means to move the waypoint south by the given value. -# Action E means to move the waypoint east by the given value. -# Action W means to move the waypoint west by the given value. -# Action L means to rotate the waypoint around the ship left -# (counter-clockwise) the given number of degrees. -# Action R means to rotate the waypoint around the ship right (clockwise) -# the given number of degrees. -# Action F means to move forward to the waypoint a number of times equal to -# the given value. - -# The waypoint starts 10 units east and 1 unit north relative to the ship. The -# waypoint is relative to the ship; that is, if the ship moves, the waypoint -# moves with it. - -# For example, using the same instructions as above: - -# F10 moves the ship to the waypoint 10 times (a total of 100 units east -# and 10 units north), leaving the ship at east 100, north 10. The waypoint -# stays 10 units east and 1 unit north of the ship. -# N3 moves the waypoint 3 units north to 10 units east and 4 units north of -# the ship. The ship remains at east 100, north 10. -# F7 moves the ship to the waypoint 7 times (a total of 70 units east and -# 28 units north), leaving the ship at east 170, north 38. The waypoint stays -# 10 units east and 4 units north of the ship. -# R90 rotates the waypoint around the ship clockwise 90 degrees, moving it -# to 4 units east and 10 units south of the ship. The ship remains at east 170, -# north 38. -# F11 moves the ship to the waypoint 11 times (a total of 44 units east and -# 110 units south), leaving the ship at east 214, south 72. The waypoint stays -# 4 units east and 10 units south of the ship. - -# After these operations, the ship's Manhattan distance from its starting -# position is 214 + 72 = 286. - -# Figure out where the navigation instructions actually lead. What is the -# Manhattan distance between that location and the ship's starting position? - - -def part_2() -> None: - - ship_pos = [0, 0] - waypoint_pos = [10, 1] - waypoint_dir = 0 - - for instr in instructions: - _dir, _num = instr[:1], instr[1:] - if _dir == "E": - waypoint_pos[0] += int(_num) - elif _dir == "W": - waypoint_pos[0] -= int(_num) - elif _dir == "N": - waypoint_pos[1] += int(_num) - elif _dir == "S": - waypoint_pos[1] -= int(_num) - elif _dir == "F": - ship_pos[0] += int(_num) * waypoint_pos[0] - ship_pos[1] += int(_num) * waypoint_pos[1] - else: - if _dir == "R": - # rotations are clockwise - _num = str(360 - int(_num)) - waypoint_dir += int(_num) - # avoid rotation overflow - waypoint_dir %= 360 - # convert to radians to make life easier - radians = math.radians(int(_num)) - waypoint_pos = [ - round( - (waypoint_pos[0] * math.cos(radians)) - - (waypoint_pos[1] * math.sin(radians)) - ), - round( - (waypoint_pos[0] * math.sin(radians)) - + (waypoint_pos[1] * math.cos(radians)) - ), - ] - - manhattan_distance = abs(ship_pos[0]) + abs(ship_pos[1]) - print(f"The Manhattan distance is {manhattan_distance}") - - -if __name__ == "__main__": - part_1() - part_2() diff --git a/src/P13.py b/src/P13.py deleted file mode 100644 index f5bacc3..0000000 --- a/src/P13.py +++ /dev/null @@ -1,209 +0,0 @@ -# --- Day 13: Shuttle Search --- - -# Your ferry can make it safely to a nearby port, but it won't get much -# further. When you call to book another ship, you discover that no ships -# embark from that port to your vacation island. You'll need to get from the -# port to the nearest airport. - -# Fortunately, a shuttle bus service is available to bring you from the sea -# port to the airport! Each bus has an ID number that also indicates how often -# the bus leaves for the airport. - -# Bus schedules are defined based on a timestamp that measures the number of -# minutes since some fixed reference point in the past. At timestamp 0, every -# bus simultaneously departed from the sea port. After that, each bus travels -# to the airport, then various other locations, and finally returns to the sea -# port to repeat its journey forever. - -# The time this loop takes a particular bus is also its ID number: the bus with -# ID 5 departs from the sea port at timestamps 0, 5, 10, 15, and so on. The bus -# with ID 11 departs at 0, 11, 22, 33, and so on. If you are there when the bus -# departs, you can ride that bus to the airport! - -# Your notes (your puzzle input) consist of two lines. The first line is your -# estimate of the earliest timestamp you could depart on a bus. The second line -# lists the bus IDs that are in service according to the shuttle company; -# entries that show x must be out of service, so you decide to ignore them. - -# To save time once you arrive, your goal is to figure out the earliest bus you -# can take to the airport. (There will be exactly one such bus.) - -# For example, suppose you have the following notes: - -# 939 -# 7,13,x,x,59,x,31,19 - -# Here, the earliest timestamp you could depart is 939, and the bus IDs in -# service are 7, 13, 59, 31, and 19. Near timestamp 939, these bus IDs depart -# at the times marked D: - -# time bus 7 bus 13 bus 59 bus 31 bus 19 -# 929 . . . . . -# 930 . . . D . -# 931 D . . . D -# 932 . . . . . -# 933 . . . . . -# 934 . . . . . -# 935 . . . . . -# 936 . D . . . -# 937 . . . . . -# 938 D . . . . -# 939 . . . . . -# 940 . . . . . -# 941 . . . . . -# 942 . . . . . -# 943 . . . . . -# 944 . . D . . -# 945 D . . . . -# 946 . . . . . -# 947 . . . . . -# 948 . . . . . -# 949 . D . . . - -# The earliest bus you could take is bus ID 59. It doesn't depart until -# timestamp 944, so you would need to wait 944 - 939 = 5 minutes before it -# departs. Multiplying the bus ID by the number of minutes you'd need to wait -# gives 295. - -# What is the ID of the earliest bus you can take to the airport multiplied by -# the number of minutes you'll need to wait for that bus? - -from copy import copy -from math import gcd - -with open("files/P13.txt", "r") as f: - start = int(f.readline()) - buses_x = [bus for bus in f.readline().strip().split(",")] - buses = [int(bus) for bus in buses_x if bus != "x"] - - -def part_1() -> None: - wait = copy(start) - found = False - while not found: - for bus in buses: - if wait % bus == 0: - print(f"Solution to part 1 is {str((wait - start) * bus)}") - found = True - break - wait += 1 - - -# --- Part Two --- - -# The shuttle company is running a contest: one gold coin for anyone that can -# find the earliest timestamp such that the first bus ID departs at that time -# and each subsequent listed bus ID departs at that subsequent minute. (The -# first line in your input is no longer relevant.) - -# For example, suppose you have the same list of bus IDs as above: - -# 7,13,x,x,59,x,31,19 - -# An x in the schedule means there are no constraints on what bus IDs must -# depart at that time. - -# This means you are looking for the earliest timestamp (called t) such that: - -# Bus ID 7 departs at timestamp t. -# Bus ID 13 departs one minute after timestamp t. -# There are no requirements or restrictions on departures at two or three -# minutes after timestamp t. -# Bus ID 59 departs four minutes after timestamp t. -# There are no requirements or restrictions on departures at five minutes -# after timestamp t. -# Bus ID 31 departs six minutes after timestamp t. -# Bus ID 19 departs seven minutes after timestamp t. - -# The only bus departures that matter are the listed bus IDs at their specific -# offsets from t. Those bus IDs can depart at other times, and other bus IDs -# can depart at those times. For example, in the list above, because bus ID 19 -# must depart seven minutes after the timestamp at which bus ID 7 departs, bus -# ID 7 will always also be departing with bus ID 19 at seven minutes after -# timestamp t. - -# In this example, the earliest timestamp at which this occurs is 1068781: - -# time bus 7 bus 13 bus 59 bus 31 bus 19 -# 1068773 . . . . . -# 1068774 D . . . . -# 1068775 . . . . . -# 1068776 . . . . . -# 1068777 . . . . . -# 1068778 . . . . . -# 1068779 . . . . . -# 1068780 . . . . . -# 1068781 D . . . . -# 1068782 . D . . . -# 1068783 . . . . . -# 1068784 . . . . . -# 1068785 . . D . . -# 1068786 . . . . . -# 1068787 . . . D . -# 1068788 D . . . D -# 1068789 . . . . . -# 1068790 . . . . . -# 1068791 . . . . . -# 1068792 . . . . . -# 1068793 . . . . . -# 1068794 . . . . . -# 1068795 D D . . . -# 1068796 . . . . . -# 1068797 . . . . . - -# In the above example, bus ID 7 departs at timestamp 1068788 (seven minutes -# after t). This is fine; the only requirement on that minute is that bus ID 19 -# departs then, and it does. - -# Here are some other examples: - -# The earliest timestamp that matches the list 17,x,13,19 is 3417. -# 67,7,59,61 first occurs at timestamp 754018. -# 67,x,7,59,61 first occurs at timestamp 779210. -# 67,7,x,59,61 first occurs at timestamp 1261476. -# 1789,37,47,1889 first occurs at timestamp 1202161486. - -# However, with so many bus IDs in your list, surely the actual earliest -# timestamp will be larger than 100000000000000! - -# What is the earliest timestamp such that all of the listed bus IDs depart at -# offsets matching their positions in the list? - - -# adapted from https://stackoverflow.com/questions/32728526/lcm-using-recursive -def lcm(my_list: list[list[int]]) -> int: - lcm = my_list[0][0] - for pair in my_list[1:]: - lcm = lcm * pair[0] // gcd(lcm, pair[0]) - return lcm - - -def part_2() -> None: - my_buses = [] - for idx, bus in enumerate(buses_x): - if bus != "x": - my_buses.append([int(bus), idx]) - - value = 0 - add_to = 1 - for i in range(1, len(my_buses)): - good = False - while not good: - good = True - for j in range(i + 1): - if (value + my_buses[j][1]) % my_buses[j][0] != 0: - good = False - break - if good is True: - # find the offset between buses - add_to = lcm(my_buses[:j]) - break - else: - value += add_to - - print(f"Solution to part 2 is {value}") - - -if __name__ == "__main__": - part_1() - part_2() diff --git a/src/P14.py b/src/P14.py deleted file mode 100644 index 535f801..0000000 --- a/src/P14.py +++ /dev/null @@ -1,199 +0,0 @@ -# --- Day 14: Docking Data --- - -# As your ferry approaches the sea port, the captain asks for your help again. -# The computer system that runs this port isn't compatible with the docking -# program on the ferry, so the docking parameters aren't being correctly -# initialized in the docking program's memory. - -# After a brief inspection, you discover that the sea port's computer system -# uses a strange bitmask system in its initialization program. Although you -# don't have the correct decoder chip handy, you can emulate it in software! - -# The initialization program (your puzzle input) can either update the bitmask -# or write a value to memory. Values and memory addresses are both 36-bit -# unsigned integers. For example, ignoring bitmasks for a moment, a line like -# mem[8] = 11 would write the value 11 to memory address 8. - -# The bitmask is always given as a string of 36 bits, written with the most -# significant bit (representing 2^35) on the left and the least significant bit -# (2^0, that is, the 1s bit) on the right. The current bitmask is applied to -# values immediately before they are written to memory: a 0 or 1 overwrites the -# corresponding bit in the value, while an X leaves the bit in the value -# unchanged. - -# For example, consider the following program: - -# mask = XXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXX0X -# mem[8] = 11 -# mem[7] = 101 -# mem[8] = 0 - -# This program starts by specifying a bitmask (mask = ....). The mask it -# specifies will overwrite two bits in every written value: the 2s bit is -# overwritten with 0, and the 64s bit is overwritten with 1. - -# The program then attempts to write the value 11 to memory address 8. By -# expanding everything out to individual bits, the mask is applied as follows: - -# value: 000000000000000000000000000000001011 (decimal 11) -# mask: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXX0X -# result: 000000000000000000000000000001001001 (decimal 73) - -# So, because of the mask, the value 73 is written to memory address 8 instead. -# Then, the program tries to write 101 to address 7: - -# value: 000000000000000000000000000001100101 (decimal 101) -# mask: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXX0X -# result: 000000000000000000000000000001100101 (decimal 101) - -# This time, the mask has no effect, as the bits it overwrote were already the -# values the mask tried to set. Finally, the program tries to write 0 to -# address 8: - -# value: 000000000000000000000000000000000000 (decimal 0) -# mask: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXX0X -# result: 000000000000000000000000000001000000 (decimal 64) - -# 64 is written to address 8 instead, overwriting the value that was there -# previously. - -# To initialize your ferry's docking program, you need the sum of all values -# left in memory after the initialization program completes. (The entire 36-bit -# address space begins initialized to the value 0 at every address.) In the -# above example, only two values in memory are not zero - 101 (at address 7) -# and 64 (at address 8) - producing a sum of 165. - -# Execute the initialization program. What is the sum of all values left in -# memory after it completes? (Do not truncate the sum to 36 bits.) - -with open("files/P14.txt", "r") as f: - instructions = [line for line in f.read().strip().split("\n")] - - -def part_1() -> None: - memory = {} - for instruction in instructions: - if instruction.startswith("mask"): - mask = instruction.split(" = ")[1] - mask_or = int(mask.replace("X", "0"), 2) - mask_and = int(mask.replace("X", "1"), 2) - elif instruction.startswith("mem"): - idx = int(instruction.split("[")[1].split("]")[0]) - val = int(instruction.split(" = ")[1]) - memory[idx] = (val & mask_and) | mask_or - - values_in_memory = sum([val for val in memory.values()]) - print(f"The sum of all values in memory is {values_in_memory}") - - -# --- Part Two --- - -# For some reason, the sea port's computer system still can't communicate with -# your ferry's docking program. It must be using version 2 of the decoder chip! - -# A version 2 decoder chip doesn't modify the values being written at all. -# Instead, it acts as a memory address decoder. Immediately before a value is -# written to memory, each bit in the bitmask modifies the corresponding bit of -# the destination memory address in the following way: - -# If the bitmask bit is 0, the corresponding memory address bit is -# unchanged. -# If the bitmask bit is 1, the corresponding memory address bit is -# overwritten with 1. -# If the bitmask bit is X, the corresponding memory address bit is -# floating. - -# A floating bit is not connected to anything and instead fluctuates -# unpredictably. In practice, this means the floating bits will take on all -# possible values, potentially causing many memory addresses to be written all -# at once! - -# For example, consider the following program: - -# mask = 000000000000000000000000000000X1001X -# mem[42] = 100 -# mask = 00000000000000000000000000000000X0XX -# mem[26] = 1 - -# When this program goes to write to memory address 42, it first applies the -# bitmask: - -# address: 000000000000000000000000000000101010 (decimal 42) -# mask: 000000000000000000000000000000X1001X -# result: 000000000000000000000000000000X1101X - -# After applying the mask, four bits are overwritten, three of which are -# different, and two of which are floating. Floating bits take on every -# possible combination of values; with two floating bits, four actual memory -# addresses are written: - -# 000000000000000000000000000000011010 (decimal 26) -# 000000000000000000000000000000011011 (decimal 27) -# 000000000000000000000000000000111010 (decimal 58) -# 000000000000000000000000000000111011 (decimal 59) - -# Next, the program is about to write to memory address 26 with a different -# bitmask: - -# address: 000000000000000000000000000000011010 (decimal 26) -# mask: 00000000000000000000000000000000X0XX -# result: 00000000000000000000000000000001X0XX - -# This results in an address with three floating bits, causing writes to eight -# memory addresses: - -# 000000000000000000000000000000010000 (decimal 16) -# 000000000000000000000000000000010001 (decimal 17) -# 000000000000000000000000000000010010 (decimal 18) -# 000000000000000000000000000000010011 (decimal 19) -# 000000000000000000000000000000011000 (decimal 24) -# 000000000000000000000000000000011001 (decimal 25) -# 000000000000000000000000000000011010 (decimal 26) -# 000000000000000000000000000000011011 (decimal 27) - -# The entire 36-bit address space still begins initialized to the value 0 at -# every address, and you still need the sum of all values left in memory at the -# end of the program. In this example, the sum is 208. - -# Execute the initialization program using an emulator for a version 2 decoder -# chip. What is the sum of all values left in memory after it completes? - - -def get_indexes(mask: str) -> list[int]: - try: - firstx = mask.index("X") - return get_indexes( - mask[:firstx] + "0" + mask[firstx + 1 :] - ) + get_indexes(mask[:firstx] + "1" + mask[firstx + 1 :]) - except ValueError: - return [int(mask, 2)] - - -def part_2() -> None: - memory = {} - for instruction in instructions: - if instruction.startswith("mask"): - mask = instruction.split(" ")[2] - elif instruction.startswith("mem"): - idx = int(instruction.split("[")[1].split("]")[0]) - val = int(instruction.split(" ")[2]) - idx_mask = "" - # pad with 0s (up to 36) the index - for m, i in zip(mask, f"{idx:036b}"): - if m == "0": - # do not change the bit value - idx_mask += i - elif m == "1" or m == "X": - idx_mask += m - - idxs = get_indexes(idx_mask) - for idx in idxs: - memory[idx] = val - - values_in_memory = sum([val for val in memory.values()]) - print(f"The sum of all values in memory is {values_in_memory}") - - -if __name__ == "__main__": - part_1() - part_2() diff --git a/src/P15.py b/src/P15.py deleted file mode 100644 index b7ab72d..0000000 --- a/src/P15.py +++ /dev/null @@ -1,107 +0,0 @@ -# --- Day 15: Rambunctious Recitation --- - -# You catch the airport shuttle and try to book a new flight to your vacation -# island. Due to the storm, all direct flights have been cancelled, but a route -# is available to get around the storm. You take it. - -# While you wait for your flight, you decide to check in with the Elves back at -# the North Pole. They're playing a memory game and are ever so excited to -# explain the rules! - -# In this game, the players take turns saying numbers. They begin by taking -# turns reading from a list of starting numbers (your puzzle input). Then, each -# turn consists of considering the most recently spoken number: - -# If that was the first time the number has been spoken, the current player -# says 0. -# Otherwise, the number had been spoken before; the current player -# announces how many turns apart the number is from when it was previously -# spoken. - -# So, after the starting numbers, each turn results in that player speaking -# aloud either 0 (if the last number is new) or an age (if the last number is a -# repeat). - -# For example, suppose the starting numbers are 0,3,6: - -# Turn 1: The 1st number spoken is a starting number, 0. -# Turn 2: The 2nd number spoken is a starting number, 3. -# Turn 3: The 3rd number spoken is a starting number, 6. -# Turn 4: Now, consider the last number spoken, 6. Since that was the first -# time the number had been spoken, the 4th number spoken is 0. -# Turn 5: Next, again consider the last number spoken, 0. Since it had been -# spoken before, the next number to speak is the difference between the turn -# number when it was last spoken (the previous turn, 4) and the turn number of -# the time it was most recently spoken before then (turn 1). Thus, the 5th -# number spoken is 4 - 1, 3. -# Turn 6: The last number spoken, 3 had also been spoken before, most -# recently on turns 5 and 2. So, the 6th number spoken is 5 - 2, 3. -# Turn 7: Since 3 was just spoken twice in a row, and the last two turns -# are 1 turn apart, the 7th number spoken is 1. -# Turn 8: Since 1 is new, the 8th number spoken is 0. -# Turn 9: 0 was last spoken on turns 8 and 4, so the 9th number spoken is -# the difference between them, 4. -# Turn 10: 4 is new, so the 10th number spoken is 0. - -# (The game ends when the Elves get sick of playing or dinner is ready, -# whichever comes first.) - -# Their question for you is: what will be the 2020th number spoken? In the -# example above, the 2020th number spoken will be 436. - -# Here are a few more examples: - -# Given the starting numbers 1,3,2, the 2020th number spoken is 1. -# Given the starting numbers 2,1,3, the 2020th number spoken is 10. -# Given the starting numbers 1,2,3, the 2020th number spoken is 27. -# Given the starting numbers 2,3,1, the 2020th number spoken is 78. -# Given the starting numbers 3,2,1, the 2020th number spoken is 438. -# Given the starting numbers 3,1,2, the 2020th number spoken is 1836. - -# Given your starting numbers, what will be the 2020th number spoken? - -from collections import defaultdict - -with open("files/P15.txt", "r") as f: - sequence = [int(val) for val in f.read().strip().split(",")] - - -numbers = defaultdict(list) -for idx, number in enumerate(sequence): - numbers[number].append(idx) - - -def part_1_and_2(num: int) -> None: - last = 0 # list(numbers.keys())[-1].copy() - for i in range(len(sequence), num): - if len(numbers[last]) < 2: - numbers[0].append(i) - last = 0 - else: - last = numbers[last][-1] - numbers[last][-2] - numbers[last].append(i) - # because of indexing starts at 0 - if i == 2019: - print(f"The {i+1}th number spoken is {last}") - - print(f"The {num}th number spoken is {last}") - - -# --- Part Two --- - -# Impressed, the Elves issue you a challenge: determine the 30000000th number -# spoken. For example, given the same starting numbers as above: - -# Given 0,3,6, the 30000000th number spoken is 175594. -# Given 1,3,2, the 30000000th number spoken is 2578. -# Given 2,1,3, the 30000000th number spoken is 3544142. -# Given 1,2,3, the 30000000th number spoken is 261214. -# Given 2,3,1, the 30000000th number spoken is 6895259. -# Given 3,2,1, the 30000000th number spoken is 18. -# Given 3,1,2, the 30000000th number spoken is 362. - -# Given your starting numbers, what will be the 30000000th number spoken? - - -if __name__ == "__main__": - part_1_and_2(30_000_000) diff --git a/src/P16.py b/src/P16.py deleted file mode 100644 index 3ae8b4c..0000000 --- a/src/P16.py +++ /dev/null @@ -1,245 +0,0 @@ -# --- Day 16: Ticket Translation --- - -# As you're walking to yet another connecting flight, you realize that one of -# the legs of your re-routed trip coming up is on a high-speed train. However, -# the train ticket you were given is in a language you don't understand. You -# should probably figure out what it says before you get to the train station -# after the next flight. - -# Unfortunately, you can't actually read the words on the ticket. You can, -# however, read the numbers, and so you figure out the fields these tickets -# must have and the valid ranges for values in those fields. - -# You collect the rules for ticket fields, the numbers on your ticket, and the -# numbers on other nearby tickets for the same train service (via the airport -# security cameras) together into a single document you can reference (your -# puzzle input). - -# The rules for ticket fields specify a list of fields that exist somewhere on -# the ticket and the valid ranges of values for each field. For example, a rule -# like class: 1-3 or 5-7 means that one of the fields in every ticket is named -# class and can be any value in the ranges 1-3 or 5-7 (inclusive, such that 3 -# and 5 are both valid in this field, but 4 is not). - -# Each ticket is represented by a single line of comma-separated values. The -# values are the numbers on the ticket in the order they appear; every ticket -# has the same format. For example, consider this ticket: - -# .--------------------------------------------------------. -# | ????: 101 ?????: 102 ??????????: 103 ???: 104 | -# | | -# | ??: 301 ??: 302 ???????: 303 ??????? | -# | ??: 401 ??: 402 ???? ????: 403 ????????? | -# '--------------------------------------------------------' - -# Here, ? represents text in a language you don't understand. This ticket might -# be represented as 101,102,103,104,301,302,303,401,402,403; of course, the -# actual train tickets you're looking at are much more complicated. In any -# case, you've extracted just the numbers in such a way that the first number -# is always the same specific field, the second number is always a different -# specific field, and so on - you just don't know what each position actually -# means! - -# Start by determining which tickets are completely invalid; these are tickets -# that contain values which aren't valid for any field. Ignore your ticket for -# now. - -# For example, suppose you have the following notes: - -# class: 1-3 or 5-7 -# row: 6-11 or 33-44 -# seat: 13-40 or 45-46 - -# your ticket: -# 7,1,14 - -# nearby tickets: -# 7,3,47 -# 40,4,50 -# 55,2,20 -# 38,6,12 - -# It doesn't matter which position corresponds to which field; you can identify -# invalid nearby tickets by considering only whether tickets contain values -# that are not valid for any field. In this example, the values on the first -# nearby ticket are all valid for at least one field. This is not true of the -# other three nearby tickets: the values 4, 55, and 12 are are not valid for -# any field. Adding together all of the invalid values produces your ticket -# scanning error rate: 4 + 55 + 12 = 71. - -# Consider the validity of the nearby tickets you scanned. What is your ticket -# scanning error rate? - -from typing import Set - -with open("files/P16.txt", "r") as f: - rules_raw, my_ticket, nearby_tickets = [ - f.split("\n") for f in f.read().strip().split("\n\n") - ] - - -def part_1() -> None: - rules = [] - for rule in rules_raw: - name = rule.split(": ")[0] - valid_numbers = set() - for range_numbers in rule.split(": ")[1].split(" or "): - numbers = [int(number) for number in range_numbers.split("-")] - first, last = range(*numbers).start, range(*numbers).stop - list_numbers = list(range(first, last + 1)) - for number in list_numbers: - valid_numbers.add(number) - rules.append([name, valid_numbers]) - - # Create a single set with all rules - all_rules = set() - for rule in rules: - all_rules |= rule[1] - - all_tickets = [list(map(int, o.split(","))) for o in nearby_tickets[1:]] - - ticket_scanning_error_rate = sum( - [ - ticket - for ticket_numbers in all_tickets - for ticket in ticket_numbers - if ticket not in all_rules - ] - ) - - print(f"The ticket scanning error rate is {ticket_scanning_error_rate}") - - -# --- Part Two --- - -# Now that you've identified which tickets contain invalid values, discard -# those tickets entirely. Use the remaining valid tickets to determine which -# field is which. - -# Using the valid ranges for each field, determine what order the fields appear -# on the tickets. The order is consistent between all tickets: if seat is the -# third field, it is the third field on every ticket, including your ticket. - -# For example, suppose you have the following notes: - -# class: 0-1 or 4-19 -# row: 0-5 or 8-19 -# seat: 0-13 or 16-19 - -# your ticket: -# 11,12,13 - -# nearby tickets: -# 3,9,18 -# 15,1,5 -# 5,14,9 - -# Based on the nearby tickets in the above example, the first position must be -# row, the second position must be class, and the third position must be seat; -# you can conclude that in your ticket, class is 12, row is 11, and seat is 13. - -# Once you work out which field is which, look for the six fields on your -# ticket that start with the word departure. What do you get if you multiply -# those six values together? - - -def from_part_1(): - # from part_1 - rules = [] - for rule in rules_raw: - name = rule.split(": ")[0] - valid_numbers = set() - for range_numbers in rule.split(": ")[1].split(" or "): - numbers = [int(number) for number in range_numbers.split("-")] - first, last = range(*numbers).start, range(*numbers).stop - list_numbers = list(range(first, last + 1)) - for number in list_numbers: - valid_numbers.add(number) - rules.append([name, valid_numbers]) - - all_rules = set() - for rule in rules: - all_rules |= rule[1] - - return rules, all_rules - - -def remove_invalid(all_rules): - valid_tickets = [] - for line in nearby_tickets[1:]: - valid = True - for ticket in [int(t) for t in line.split(",")]: - if ticket not in all_rules: - valid = False - break - if valid: - valid_tickets.append(line) - return valid_tickets - - -def check_validity(rules, ticket_values): - # check validity of sets - possibles = [] - for c in rules: - possibles.append([c[0], []]) - for idx, ticket in enumerate(ticket_values): - valid = True - for value in ticket: - if value not in c[1]: - valid = False - break - if valid: - possibles[-1][1].append(idx) - return possibles - - -def get_ordered_fields(sorted_possibles): - # get each field and its respective order - ordered_fields = [] - for idx, (field, values) in enumerate(sorted_possibles): - # first field - if len(values) == 1: - ordered_fields.append([field, values[0]]) - else: - value = [ - v for v in values if v not in sorted_possibles[idx - 1][1] - ][0] - ordered_fields.append([field, value]) - return ordered_fields - - -def part_2() -> None: - rules, all_rules = from_part_1() - - valid_tickets = remove_invalid(all_rules) - - # collect 20 sets of all respective values - ticket_values = [set() for x in range(len(rules))] - for line in valid_tickets: - index = 0 - for element in line.split(","): - ticket_values[index].add(int(element)) - index += 1 - - possibles = check_validity(rules, ticket_values) - - # sort possibles by the length of values each set holds - sorted_possibles = sorted(possibles, key=lambda l: (len(l[1]), l)) - - sorted_fields = get_ordered_fields(sorted_possibles) - - # parse "my ticket" - myticket = [ - int(v) for elements in my_ticket[1:] for v in elements.split(",") - ] - - res = 1 - for (field, idx) in sorted_fields: - if field.startswith("departure"): - res *= myticket[idx] - print(f"The final result is {res}") - - -if __name__ == "__main__": - part_1() - part_2() diff --git a/src/P2.py b/src/P2.py deleted file mode 100644 index 74bfb4f..0000000 --- a/src/P2.py +++ /dev/null @@ -1,97 +0,0 @@ -# --- Day 2: Password Philosophy --- - -# Your flight departs in a few days from the coastal airport; the easiest way -# down to the coast from here is via toboggan. - -# The shopkeeper at the North Pole Toboggan Rental Shop is having a bad day. -# "Something's wrong with our computers; we can't log in!" You ask if you can -# take a look. - -# Their password database seems to be a little corrupted: some of the passwords -# wouldn't have been allowed by the Official Toboggan Corporate Policy that was -# in effect when they were chosen. - -# To try to debug the problem, they have created a list (your puzzle input) of -# passwords (according to the corrupted database) and the corporate policy when -# that password was set. - -# For example, suppose you have the following list: - -# 1-3 a: abcde -# 1-3 b: cdefg -# 2-9 c: ccccccccc - -# Each line gives the password policy and then the password. The password -# policy indicates the lowest and highest number of times a given letter must -# appear for the password to be valid. For example, 1-3 a means that the -# password must contain a at least 1 time and at most 3 times. - -# In the above example, 2 passwords are valid. The middle password, cdefg, is -# not; it contains no instances of b, but needs at least 1. The first and third -# passwords are valid: they contain one a or nine c, both within the limits of -# their respective policies. - -# How many passwords are valid according to their policies? - - -with open("files/P2.txt", "r") as f: - passwds = [line.split() for line in f.read().strip().split("\n")] - - -def part_1() -> None: - correct_passwds = 0 - for passwd in passwds: - min_, max_ = passwd[0].split("-") - - if passwd[2].count(passwd[1][:-1]) >= int(min_) and passwd[2].count( - passwd[1][:-1] - ) <= int(max_): - correct_passwds += 1 - - print(f"There are {correct_passwds} valid passwords in the database") - - -# --- Part Two --- - -# While it appears you validated the passwords correctly, they don't seem to be -# what the Official Toboggan Corporate Authentication System is expecting. - -# The shopkeeper suddenly realizes that he just accidentally explained the -# password policy rules from his old job at the sled rental place down the -# street! The Official Toboggan Corporate Policy actually works a little -# differently. - -# Each policy actually describes two positions in the password, where 1 means -# the first character, 2 means the second character, and so on. (Be careful; -# Toboggan Corporate Policies have no concept of "index zero"!) Exactly one of -# these positions must contain the given letter. Other occurrences of the -# letter are irrelevant for the purposes of policy enforcement. - -# Given the same example list from above: - -# 1-3 a: abcde is valid: position 1 contains a and position 3 does not. -# 1-3 b: cdefg is invalid: neither position 1 nor position 3 contains b. -# 2-9 c: ccccccccc is invalid: both position 2 and position 9 contain c. - -# How many passwords are valid according to the new interpretation of the -# policies? - - -def part_2() -> None: - correct_passwds = 0 - for passwd in passwds: - pos1, pos2 = passwd[0].split("-") - checks = 0 - if passwd[2][int(pos1) - 1] == passwd[1][:-1]: - checks += 1 - if passwd[2][int(pos2) - 1] == passwd[1][:-1]: - checks += 1 - if checks == 1: - correct_passwds += 1 - - print(f"There are {correct_passwds} valid passwords in the database") - - -if __name__ == "__main__": - part_1() - part_2() diff --git a/src/P3.py b/src/P3.py deleted file mode 100644 index a5a636a..0000000 --- a/src/P3.py +++ /dev/null @@ -1,171 +0,0 @@ -# --- Day 3: Toboggan Trajectory --- - -# With the toboggan login problems resolved, you set off toward the airport. -# While travel by toboggan might be easy, it's certainly not safe: there's very -# minimal steering and the area is covered in trees. You'll need to see which -# angles will take you near the fewest trees. - -# Due to the local geology, trees in this area only grow on exact integer -# coordinates in a grid. You make a map (your puzzle input) of the open squares -# (.) and trees (#) you can see. For example: - -# ..##....... -# #...#...#.. -# .#....#..#. -# ..#.#...#.# -# .#...##..#. -# ..#.##..... -# .#.#.#....# -# .#........# -# #.##...#... -# #...##....# -# .#..#...#.# - -# These aren't the only trees, though; due to something you read about once -# involving arboreal genetics and biome stability, the same pattern repeats to -# the right many times: - -# ..##.........##.........##.........##.........##.........##....... ---> -# #...#...#..#...#...#..#...#...#..#...#...#..#...#...#..#...#...#.. -# .#....#..#..#....#..#..#....#..#..#....#..#..#....#..#..#....#..#. -# ..#.#...#.#..#.#...#.#..#.#...#.#..#.#...#.#..#.#...#.#..#.#...#.# -# .#...##..#..#...##..#..#...##..#..#...##..#..#...##..#..#...##..#. -# ..#.##.......#.##.......#.##.......#.##.......#.##.......#.##..... ---> -# .#.#.#....#.#.#.#....#.#.#.#....#.#.#.#....#.#.#.#....#.#.#.#....# -# .#........#.#........#.#........#.#........#.#........#.#........# -# #.##...#...#.##...#...#.##...#...#.##...#...#.##...#...#.##...#... -# #...##....##...##....##...##....##...##....##...##....##...##....# -# .#..#...#.#.#..#...#.#.#..#...#.#.#..#...#.#.#..#...#.#.#..#...#.# ---> - -# You start on the open square (.) in the top-left corner and need to reach the -# bottom (below the bottom-most row on your map). - -# The toboggan can only follow a few specific slopes (you opted for a cheaper -# model that prefers rational numbers); start by counting all the trees you -# would encounter for the slope right 3, down 1: - -# From your starting position at the top-left, check the position that is right -# 3 and down 1. Then, check the position that is right 3 and down 1 from there, -# and so on until you go past the bottom of the map. - -# The locations you'd check in the above example are marked here with O where -# there was an open square and X where there was a tree: - -# ..##.........##.........##.........##.........##.........##....... ---> -# #..O#...#..#...#...#..#...#...#..#...#...#..#...#...#..#...#...#.. -# .#....X..#..#....#..#..#....#..#..#....#..#..#....#..#..#....#..#. -# ..#.#...#O#..#.#...#.#..#.#...#.#..#.#...#.#..#.#...#.#..#.#...#.# -# .#...##..#..X...##..#..#...##..#..#...##..#..#...##..#..#...##..#. -# ..#.##.......#.X#.......#.##.......#.##.......#.##.......#.##..... ---> -# .#.#.#....#.#.#.#.O..#.#.#.#....#.#.#.#....#.#.#.#....#.#.#.#....# -# .#........#.#........X.#........#.#........#.#........#.#........# -# #.##...#...#.##...#...#.X#...#...#.##...#...#.##...#...#.##...#... -# #...##....##...##....##...#X....##...##....##...##....##...##....# -# .#..#...#.#.#..#...#.#.#..#...X.#.#..#...#.#.#..#...#.#.#..#...#.# ---> - -# In this example, traversing the map using this slope would cause you to -# encounter 7 trees. - -# Starting at the top-left corner of your map and following a slope of right 3 -# and down 1, how many trees would you encounter? - - -with open("files/P3.txt", "r") as f: - forest = [line.split() for line in f.read().strip().split("\n")] - - -def part_1() -> None: - trees_found, pos = 0, 0 - for idx, line in enumerate(forest): - extended_line = ",".join(line * 32).replace(",", "") - if extended_line[pos] == "#": - trees_found += 1 - pos += 3 - - print(f"We found {trees_found} trees in our way") - - -# --- Part Two --- - -# Time to check the rest of the slopes - you need to minimize the probability -# of a sudden arboreal stop, after all. - -# Determine the number of trees you would encounter if, for each of the -# following slopes, you start at the top-left corner and traverse the map all -# the way to the bottom: - -# Right 1, down 1. -# Right 3, down 1. (This is the slope you already checked.) -# Right 5, down 1. -# Right 7, down 1. -# Right 1, down 2. - -# In the above example, these slopes would find 2, 7, 3, 4, and 2 tree(s) -# respectively; multiplied together, these produce the answer 336. - -# What do you get if you multiply together the number of trees encountered on -# each of the listed slopes? - - -def part_2() -> None: - pos = 0 - trees_first = 0 - # first slope: right 1, down 1 - for idx, line in enumerate(forest): - extended_line = ",".join(line * 11).replace(",", "") - if extended_line[pos] == "#": - trees_first += 1 - pos += 1 - - # reset pos - pos = 0 - trees_second = 0 - # second slope: right 3, down 1 - for idx, line in enumerate(forest): - extended_line = ",".join(line * 32).replace(",", "") - if extended_line[pos] == "#": - trees_second += 1 - pos += 3 - - # reset pos - pos = 0 - trees_third = 0 - # third slope: right 5, down 1 - for idx, line in enumerate(forest): - extended_line = ",".join(line * 55).replace(",", "") - if extended_line[pos] == "#": - trees_third += 1 - pos += 5 - - # reset pos - pos = 0 - trees_fourth = 0 - # fourth slope: right 7, down 1 - for idx, line in enumerate(forest): - extended_line = ",".join(line * 77).replace(",", "") - if extended_line[pos] == "#": - trees_fourth += 1 - pos += 7 - - # reset pos - pos = 0 - trees_fifth = 0 - # fifth slope: right 1, down 2 - for idx, line in enumerate(forest): - if idx % 2 == 0: - # break - extended_line = ",".join(line * 6).replace(",", "") - if extended_line[pos] == "#": - trees_fifth += 1 - pos += 1 - - total_trees = ( - trees_first * trees_second * trees_third * trees_fourth * trees_fifth - ) - - print(f"We found {total_trees} trees in our way") - - -if __name__ == "__main__": - part_1() - part_2() diff --git a/src/P4.py b/src/P4.py deleted file mode 100644 index 687316a..0000000 --- a/src/P4.py +++ /dev/null @@ -1,228 +0,0 @@ -# --- Day 4: Passport Processing --- - -# You arrive at the airport only to realize that you grabbed your North Pole -# Credentials instead of your passport. While these documents are extremely -# similar, North Pole Credentials aren't issued by a country and therefore -# aren't actually valid documentation for travel in most of the world. - -# It seems like you're not the only one having problems, though; a very long -# line has formed for the automatic passport scanners, and the delay could -# upset your travel itinerary. - -# Due to some questionable network security, you realize you might be able to -# solve both of these problems at the same time. - -# The automatic passport scanners are slow because they're having trouble -# detecting which passports have all required fields. The expected fields are -# as follows: - -# byr (Birth Year) -# iyr (Issue Year) -# eyr (Expiration Year) -# hgt (Height) -# hcl (Hair Color) -# ecl (Eye Color) -# pid (Passport ID) -# cid (Country ID) - -# Passport data is validated in batch files (your puzzle input). Each passport -# is represented as a sequence of key:value pairs separated by spaces or -# newlines. Passports are separated by blank lines. - -# Here is an example batch file containing four passports: - -# ecl:gry pid:860033327 eyr:2020 hcl:#fffffd -# byr:1937 iyr:2017 cid:147 hgt:183cm - -# iyr:2013 ecl:amb cid:350 eyr:2023 pid:028048884 -# hcl:#cfa07d byr:1929 - -# hcl:#ae17e1 iyr:2013 -# eyr:2024 -# ecl:brn pid:760753108 byr:1931 -# hgt:179cm - -# hcl:#cfa07d eyr:2025 pid:166559648 -# iyr:2011 ecl:brn hgt:59in - -# The first passport is valid - all eight fields are present. The second -# passport is invalid - it is missing hgt (the Height field). - -# The third passport is interesting; the only missing field is cid, so it looks -# like data from North Pole Credentials, not a passport at all! Surely, nobody -# would mind if you made the system temporarily ignore missing cid fields. -# Treat this "passport" as valid. - -# The fourth passport is missing two fields, cid and byr. Missing cid is fine, -# but missing any other field is not, so this passport is invalid. - -# According to the above rules, your improved system would report 2 valid -# passports. - -# Count the number of valid passports - those that have all required fields. -# Treat cid as optional. In your batch file, how many passports are valid? - - -with open("files/P4.txt", "r") as f: - passports = [line.split() for line in f.read().strip().split("\n\n")] - - -def part_1() -> None: - valid_passports = 0 - for passport in passports: - if len(passport) > 7: - valid_passports += 1 - if len(passport) == 7: - valid_fields = 0 - for field in passport: - if "cid" not in field: - valid_fields += 1 - if valid_fields == 7: - valid_passports += 1 - - print(f"There are {valid_passports} valid passports") - - -# --- Part Two --- - -# The line is moving more quickly now, but you overhear airport security -# talking about how passports with invalid data are getting through. Better add -# some data validation, quick! - -# You can continue to ignore the cid field, but each other field has strict -# rules about what values are valid for automatic validation: - -# byr (Birth Year) - four digits; at least 1920 and at most 2002. -# iyr (Issue Year) - four digits; at least 2010 and at most 2020. -# eyr (Expiration Year) - four digits; at least 2020 and at most 2030. -# hgt (Height) - a number followed by either cm or in: -# If cm, the number must be at least 150 and at most 193. -# If in, the number must be at least 59 and at most 76. -# hcl (Hair Color) - a # followed by exactly six characters 0-9 or a-f. -# ecl (Eye Color) - exactly one of: amb blu brn gry grn hzl oth. -# pid (Passport ID) - a nine-digit number, including leading zeroes. -# cid (Country ID) - ignored, missing or not. - -# Your job is to count the passports where all required fields are both present -# and valid according to the above rules. Here are some example values: - -# byr valid: 2002 -# byr invalid: 2003 - -# hgt valid: 60in -# hgt valid: 190cm -# hgt invalid: 190in -# hgt invalid: 190 - -# hcl valid: #123abc -# hcl invalid: #123abz -# hcl invalid: 123abc - -# ecl valid: brn -# ecl invalid: wat - -# pid valid: 000000001 -# pid invalid: 0123456789 - -# Here are some invalid passports: - -# eyr:1972 cid:100 -# hcl:#18171d ecl:amb hgt:170 pid:186cm iyr:2018 byr:1926 - -# iyr:2019 -# hcl:#602927 eyr:1967 hgt:170cm -# ecl:grn pid:012533040 byr:1946 - -# hcl:dab227 iyr:2012 -# ecl:brn hgt:182cm pid:021572410 eyr:2020 byr:1992 cid:277 - -# hgt:59cm ecl:zzz -# eyr:2038 hcl:74454a iyr:2023 -# pid:3556412378 byr:2007 - -# Here are some valid passports: - -# pid:087499704 hgt:74in ecl:grn iyr:2012 eyr:2030 byr:1980 -# hcl:#623a2f - -# eyr:2029 ecl:blu cid:129 byr:1989 -# iyr:2014 pid:896056539 hcl:#a97842 hgt:165cm - -# hcl:#888785 -# hgt:164cm byr:2001 iyr:2015 cid:88 -# pid:545766238 ecl:hzl -# eyr:2022 - -# iyr:2010 hgt:158cm hcl:#b6652a ecl:blu byr:1944 eyr:2021 pid:093154719 - -# Count the number of valid passports - those that have all required fields and -# valid values. Continue to treat cid as optional. In your batch file, how many -# passports are valid? - - -def is_valid(passport: dict[str, str]) -> bool: - keys = ["byr", "iyr", "eyr", "hgt", "hcl", "ecl", "pid"] - for key in keys: - if key not in passport: - return False - if not any([passport[key] != 4 for key in ["byr", "iyr", "eyr"]]): - return False - if passport["byr"] < "1920" or passport["byr"] > "2002": - return False - if passport["iyr"] < "2010" or passport["iyr"] > "2020": - return False - if passport["eyr"] < "2020" or passport["eyr"] > "2030": - return False - if not any(["cm" in passport["hgt"], "in" in passport["hgt"]]): - return False - _hgt = int(passport["hgt"][:-2]) - if "cm" in passport["hgt"]: - if _hgt < 150 or _hgt > 193: - return False - if "in" in passport["hgt"]: - if _hgt < 59 or _hgt > 76: - return False - if "#" not in passport["hcl"]: - return False - _hcl = passport["hcl"].split("#")[-1] - if len(_hcl) != 6: - return False - try: - int(_hcl, 16) - except ValueError: - return False - if not any( - [ - passport["ecl"] - in [ - "amb", - "blu", - "brn", - "gry", - "grn", - "hzl", - "oth", - ] - ] - ): - return False - if len(passport["pid"]) != 9: - return False - return True - - -def part_2() -> None: - valid_passports = 0 - for passport in passports: - _items: list[list[str]] = [ - item.split(":") for item in passport if item - ] - passport_dict: dict[str, str] = dict(_items) - if is_valid(passport_dict): - valid_passports += 1 - print(f"There are {valid_passports} valid passports") - - -if __name__ == "__main__": - part_1() - part_2() diff --git a/src/P5.py b/src/P5.py deleted file mode 100644 index 008a2e8..0000000 --- a/src/P5.py +++ /dev/null @@ -1,128 +0,0 @@ -# --- Day 5: Binary Boarding --- - -# You board your plane only to discover a new problem: you dropped your -# boarding pass! You aren't sure which seat is yours, and all of the flight -# attendants are busy with the flood of people that suddenly made it through -# passport control. - -# You write a quick program to use your phone's camera to scan all of the -# nearby boarding passes (your puzzle input); perhaps you can find your seat -# through process of elimination. - -# Instead of zones or groups, this airline uses binary space partitioning to -# seat people. A seat might be specified like FBFBBFFRLR, where F means -# "front", B means "back", L means "left", and R means "right". - -# The first 7 characters will either be F or B; these specify exactly one of -# the 128 rows on the plane (numbered 0 through 127). Each letter tells you -# which half of a region the given seat is in. Start with the whole list of -# rows; the first letter indicates whether the seat is in the front (0 through -# 63) or the back (64 through 127). The next letter indicates which half of -# that region the seat is in, and so on until you're left with exactly one row. - -# For example, consider just the first seven characters of FBFBBFFRLR: - -# Start by considering the whole range, rows 0 through 127. -# F means to take the lower half, keeping rows 0 through 63. -# B means to take the upper half, keeping rows 32 through 63. -# F means to take the lower half, keeping rows 32 through 47. -# B means to take the upper half, keeping rows 40 through 47. -# B keeps rows 44 through 47. -# F keeps rows 44 through 45. -# The final F keeps the lower of the two, row 44. - -# The last three characters will be either L or R; these specify exactly one of -# the 8 columns of seats on the plane (numbered 0 through 7). The same process -# as above proceeds again, this time with only three steps. L means to keep the -# lower half, while R means to keep the upper half. - -# For example, consider just the last 3 characters of FBFBBFFRLR: - -# Start by considering the whole range, columns 0 through 7. -# R means to take the upper half, keeping columns 4 through 7. -# L means to take the lower half, keeping columns 4 through 5. -# The final R keeps the upper of the two, column 5. - -# So, decoding FBFBBFFRLR reveals that it is the seat at row 44, column 5. - -# Every seat also has a unique seat ID: multiply the row by 8, then add the -# column. In this example, the seat has ID 44 * 8 + 5 = 357. - -# Here are some other boarding passes: - -# BFFFBBFRRR: row 70, column 7, seat ID 567. -# FFFBBBFRRR: row 14, column 7, seat ID 119. -# BBFFBBFRLL: row 102, column 4, seat ID 820. - -# As a sanity check, look through your list of boarding passes. What is the -# highest seat ID on a boarding pass? - -with open("files/P5.txt", "r") as f: - boarding_passes = [code for code in f.read().strip().split("\n")] - - -def binary_search( - arr: str, upper_limit: int, var_lower: str, var_upper: str -) -> int: - range_l = 0 - range_h = upper_limit - range_m = 0 - for char in arr: - range_m = (range_h + range_l) // 2 - if char == var_lower: - range_h = range_m - elif char == var_upper: - range_l = range_m + 1 - return int(range_l) - - -def part_1() -> None: - seat_ID: int = 0 - for code in boarding_passes: - row, col = code[:7], code[-3:] - - _row = binary_search(row, 127, "F", "B") - _col = binary_search(col, 7, "L", "R") - _seat_ID: int = _row * 8 + _col - seat_ID = max(seat_ID, _seat_ID) - - print(f"The highest seat ID on a boarding pass is {seat_ID}") - - -# --- Part Two --- - -# Ding! The "fasten seat belt" signs have turned on. Time to find your seat. - -# It's a completely full flight, so your seat should be the only missing -# boarding pass in your list. However, there's a catch: some of the seats at -# the very front and back of the plane don't exist on this aircraft, so they'll -# be missing from your list as well. - -# Your seat wasn't at the very front or back, though; the seats with IDs +1 and -# -1 from yours will be in your list. - -# What is the ID of your seat? - - -def part_2() -> None: - seat_IDs: list[int] = [] - missing_seats: list[int] = [] - for code in boarding_passes: - row, col = code[:7], code[-3:] - - _row = binary_search(row, 127, "F", "B") - _col = binary_search(col, 7, "L", "R") - _seat_ID: int = _row * 8 + _col - seat_IDs.append(_seat_ID) - - for ID in range(len(boarding_passes)): - if ID in seat_IDs: - pass - else: - missing_seats.append(ID) - print(f"The ID of my seat is {missing_seats[-1]}") - - -if __name__ == "__main__": - part_1() - part_2() diff --git a/src/P6.py b/src/P6.py deleted file mode 100644 index 050b6e9..0000000 --- a/src/P6.py +++ /dev/null @@ -1,138 +0,0 @@ -# --- Day 6: Custom Customs --- - -# As your flight approaches the regional airport where you'll switch to a much -# larger plane, customs declaration forms are distributed to the passengers. - -# The form asks a series of 26 yes-or-no questions marked a through z. All you -# need to do is identify the questions for which anyone in your group answers -# "yes". Since your group is just you, this doesn't take very long. - -# However, the person sitting next to you seems to be experiencing a language -# barrier and asks if you can help. For each of the people in their group, you -# write down the questions for which they answer "yes", one per line. For -# example: - -# abcx -# abcy -# abcz - -# In this group, there are 6 questions to which anyone answered "yes": a, b, c, -# x, y, and z. (Duplicate answers to the same question don't count extra; each -# question counts at most once.) - -# Another group asks for your help, then another, and eventually you've -# collected answers from every group on the plane (your puzzle input). Each -# group's answers are separated by a blank line, and within each group, each -# person's answers are on a single line. For example: - -# abc - -# a -# b -# c - -# ab -# ac - -# a -# a -# a -# a - -# b - -# This list represents answers from five groups: - -# The first group contains one person who answered "yes" to 3 questions: a, -# b, and c. -# The second group contains three people; combined, they answered "yes" to -# 3 questions: a, b, and c. -# The third group contains two people; combined, they answered "yes" to 3 -# questions: a, b, and c. -# The fourth group contains four people; combined, they answered "yes" to -# only 1 question, a. -# The last group contains one person who answered "yes" to only 1 question, -# b. - -# In this example, the sum of these counts is 3 + 3 + 3 + 1 + 1 = 11. - -# For each group, count the number of questions to which anyone answered "yes". -# What is the sum of those counts? - -with open("files/P6.txt", "r") as f: - answers_groups = [line.split() for line in f.read().strip().split("\n\n")] - - -def part_1() -> None: - counts: int = 0 - for answers_group in answers_groups: - yes = len( - set( - [ - answer - for individual_answers in answers_group - for answer in individual_answers - ] - ) - ) - counts += yes - - print(f"The sum of counts is {counts}") - - -# --- Part Two --- - -# As you finish the last group's customs declaration, you notice that you -# misread one word in the instructions: - -# You don't need to identify the questions to which anyone answered "yes"; you -# need to identify the questions to which everyone answered "yes"! - -# Using the same example as above: - -# abc - -# a -# b -# c - -# ab -# ac - -# a -# a -# a -# a - -# b - -# This list represents answers from five groups: - -# In the first group, everyone (all 1 person) answered "yes" to 3 -# questions: a, b, and c. -# In the second group, there is no question to which everyone answered -# "yes". -# In the third group, everyone answered yes to only 1 question, a. Since -# some people did not answer "yes" to b or c, they don't count. -# In the fourth group, everyone answered yes to only 1 question, a. -# In the fifth group, everyone (all 1 person) answered "yes" to 1 question, -# b. - -# In this example, the sum of these counts is 3 + 0 + 1 + 1 + 1 = 6. - -# For each group, count the number of questions to which everyone answered -# "yes". What is the sum of those counts? - - -def part_2() -> None: - counts: int = 0 - for answers_group in answers_groups: - yes = len(set.intersection(*map(set, answers_group))) - counts += yes - - print(f"The sum of counts is {counts}") - - -if __name__ == "__main__": - part_1() - part_2() diff --git a/src/P7.py b/src/P7.py deleted file mode 100644 index 210e5ad..0000000 --- a/src/P7.py +++ /dev/null @@ -1,168 +0,0 @@ -from typing import Dict - -# --- Day 7: Handy Haversacks --- - -# You land at the regional airport in time for your next flight. In fact, it -# looks like you'll even have time to grab some food: all flights are currently -# delayed due to issues in luggage processing. - -# Due to recent aviation regulations, many rules (your puzzle input) are being -# enforced about bags and their contents; bags must be color-coded and must -# contain specific quantities of other color-coded bags. Apparently, nobody -# responsible for these regulations considered how long they would take to -# enforce! - -# For example, consider the following rules: - -# light red bags contain 1 bright white bag, 2 muted yellow bags. -# dark orange bags contain 3 bright white bags, 4 muted yellow bags. -# bright white bags contain 1 shiny gold bag. -# muted yellow bags contain 2 shiny gold bags, 9 faded blue bags. -# shiny gold bags contain 1 dark olive bag, 2 vibrant plum bags. -# dark olive bags contain 3 faded blue bags, 4 dotted black bags. -# vibrant plum bags contain 5 faded blue bags, 6 dotted black bags. -# faded blue bags contain no other bags. -# dotted black bags contain no other bags. - -# These rules specify the required contents for 9 bag types. In this example, -# every faded blue bag is empty, every vibrant plum bag contains 11 bags (5 -# faded blue and 6 dotted black), and so on. - -# You have a shiny gold bag. If you wanted to carry it in at least one other -# bag, how many different bag colors would be valid for the outermost bag? (In -# other words: how many colors can, eventually, contain at least one shiny gold -# bag?) - -# In the above rules, the following options would be available to you: - -# A bright white bag, which can hold your shiny gold bag directly. -# A muted yellow bag, which can hold your shiny gold bag directly, plus -# some other bags. -# A dark orange bag, which can hold bright white and muted yellow bags, -# either of which could then hold your shiny gold bag. -# A light red bag, which can hold bright white and muted yellow bags, -# either of which could then hold your shiny gold bag. - -# So, in this example, the number of bag colors that can eventually contain at -# least one shiny gold bag is 4. - -# How many bag colors can eventually contain at least one shiny gold bag? (The -# list of rules is quite long; make sure you get all of it.) - -with open("files/P7.txt", "r") as f: - lines = [code for code in f.read().strip().split("\n")] - -# to make a dictionary of bags -bag_types = [] -all_bags: Dict[str, str] = {} -for line in lines: - main_bag = line.split(" bags contain ")[0] - # get a string with the content of each bag - contains = line.split(" bags contain ")[1:][0] - # house keeping - each_contain = contains.split(",") - each_contain = [cnt.lstrip() for cnt in each_contain] - # get a list of strings with the content of each bag - each_contain = [" ".join(cont.split(" ")[:-1]) for cont in each_contain] - # get a dictionary with bags as keys and number of them as values - each_contain = { - " ".join(cont.split(" ")[1:]): cont.split(" ")[0] - for cont in each_contain - } - - if main_bag not in bag_types: - bag_types.append(main_bag) - if all_bags.get(main_bag): - each_contain.update(all_bags[main_bag]) - all_bags[main_bag] = each_contain - - -def check_bag(bags: Dict[str, str], my_bag: str, current_bag: str) -> int: - if current_bag == my_bag: - return 1 - if bags.get(current_bag) is None: - return 0 - else: - counts = [] - for k, v in bags[current_bag].items(): - counts.append(check_bag(bags, my_bag, k)) - return max(counts) - - -def part_1() -> None: - found_bags = 0 - my_bag = "shiny gold" - for k, v in all_bags.items(): - if k != my_bag: - found_bags += check_bag(all_bags, my_bag, k) - print(f"{found_bags} bags can contain a {my_bag} bag.") - - -# --- Part Two --- - -# It's getting pretty expensive to fly these days - not because of ticket -# prices, but because of the ridiculous number of bags you need to buy! - -# Consider again your shiny gold bag and the rules from the above example: - -# faded blue bags contain 0 other bags. -# dotted black bags contain 0 other bags. -# vibrant plum bags contain 11 other bags: 5 faded blue bags and 6 dotted -# black bags. -# dark olive bags contain 7 other bags: 3 faded blue bags and 4 dotted -# black bags. - -# So, a single shiny gold bag must contain 1 dark olive bag (and the 7 bags -# within it) plus 2 vibrant plum bags (and the 11 bags within each of those): -# 1 + 1*7 + 2 + 2*11 = 32 bags! - -# Of course, the actual rules have a small chance of going several levels -# deeper than this example; be sure to count all of the bags, even if the -# nesting becomes topologically impractical! - -# Here's another example: - -# shiny gold bags contain 2 dark red bags. -# dark red bags contain 2 dark orange bags. -# dark orange bags contain 2 dark yellow bags. -# dark yellow bags contain 2 dark green bags. -# dark green bags contain 2 dark blue bags. -# dark blue bags contain 2 dark violet bags. -# dark violet bags contain no other bags. - -# In this example, a single shiny gold bag must contain 126 other bags. - -# How many individual bags are required inside your single shiny gold bag? - - -bags_contains: Dict[str, str] = {} -for k, v in all_bags.items(): - bags_contains[k] = [] - try: - for kk, vv in v.items(): - bags_contains[k] += [kk] * int(vv) - except ValueError: - pass - - -def count_bags(current_bag: str) -> int: - if current_bag == " " or bags_contains.get(current_bag) is None: - return 0 - - cnt = len(bags_contains[current_bag]) - nbags = [] - for k in bags_contains[current_bag]: - nbags.append(count_bags(k)) - return sum(nbags) + cnt - - -def part_2() -> None: - my_bag = "shiny gold" - nbags = count_bags(my_bag) - - print(f"My shiny gold bag can contain {nbags} bags") - - -if __name__ == "__main__": - part_1() - part_2() diff --git a/src/P8.py b/src/P8.py deleted file mode 100644 index 7ecbc44..0000000 --- a/src/P8.py +++ /dev/null @@ -1,181 +0,0 @@ -from typing import List, Tuple - -# --- Day 8: Handheld Halting --- - -# Your flight to the major airline hub reaches cruising altitude without -# incident. While you consider checking the in-flight menu for one of those -# drinks that come with a little umbrella, you are interrupted by the kid -# sitting next to you. - -# Their handheld game console won't turn on! They ask if you can take a look. - -# You narrow the problem down to a strange infinite loop in the boot code -# (your puzzle input) of the device. You should be able to fix it, but first -# you need to be able to run the code in isolation. - -# The boot code is represented as a text file with one instruction per line of -# text. Each instruction consists of an operation (acc, jmp, or nop) and an -# argument (a signed number like +4 or -20). - -# acc increases or decreases a single global value called the accumulator -# by the value given in the argument. For example, acc +7 would increase the -# accumulator by 7. The accumulator starts at 0. After an acc instruction, the -# instruction immediately below it is executed next. -# jmp jumps to a new instruction relative to itself. The next instruction -# to execute is found using the argument as an offset from the jmp instruction; -# for example, jmp +2 would skip the next instruction, jmp +1 would continue to -# the instruction immediately below it, and jmp -20 would cause the instruction -# 20 lines above to be executed next. -# nop stands for No OPeration - it does nothing. The instruction -# immediately below it is executed next. - -# For example, consider the following program: - -# nop +0 -# acc +1 -# jmp +4 -# acc +3 -# jmp -3 -# acc -99 -# acc +1 -# jmp -4 -# acc +6 - -# These instructions are visited in this order: - -# nop +0 | 1 -# acc +1 | 2, 8(!) -# jmp +4 | 3 -# acc +3 | 6 -# jmp -3 | 7 -# acc -99 | -# acc +1 | 4 -# jmp -4 | 5 -# acc +6 | - -# First, the nop +0 does nothing. Then, the accumulator is increased from 0 to -# 1 (acc +1) and jmp +4 sets the next instruction to the other acc +1 near the -# bottom. After it increases the accumulator from 1 to 2, jmp -4 executes, -# setting the next instruction to the only acc +3. It sets the accumulator to -# 5, and jmp -3 causes the program to continue back at the first acc +1. - -# This is an infinite loop: with this sequence of jumps, the program will run -# forever. The moment the program tries to run any instruction a second time, -# you know it will never terminate. - -# Immediately before the program would run an instruction a second time, the -# value in the accumulator is 5. - -# Run your copy of the boot code. Immediately before any instruction is -# executed a second time, what value is in the accumulator? - -with open("files/P8.txt", "r") as f: - lines = [code for code in f.read().strip().split("\n")] - - -def part_1(lines: List[str], debug: bool = False) -> Tuple[int, bool]: - accu = 0 - executed = [] - nline = 0 - while True: - try: - instr, acc = lines[nline].split(" ") - if nline in executed: - # we are in a for loop :( - break - else: - executed.append(nline) - if instr == "acc": - accu += int(acc) - nline += 1 - continue - elif instr == "jmp": - nline = nline + int(acc) - continue - elif instr == "nop": - nline += 1 - continue - except IndexError: - if debug: - print("Code has run successfully") - return accu, True - if debug: - print(f"The value of the accumulator was {accu} before exiting") - return accu, False - - -# --- Part Two --- - -# After some careful analysis, you believe that exactly one instruction is -# corrupted. - -# Somewhere in the program, either a jmp is supposed to be a nop, or a nop is -# supposed to be a jmp. (No acc instructions were harmed in the corruption of -# this boot code.) - -# The program is supposed to terminate by attempting to execute an instruction -# immediately after the last instruction in the file. By changing exactly one -# jmp or nop, you can repair the boot code and make it terminate correctly. - -# For example, consider the same program from above: - -# nop +0 -# acc +1 -# jmp +4 -# acc +3 -# jmp -3 -# acc -99 -# acc +1 -# jmp -4 -# acc +6 - -# If you change the first instruction from nop +0 to jmp +0, it would create a -# single-instruction infinite loop, never leaving that instruction. If you -# change almost any of the jmp instructions, the program will still eventually -# find another jmp instruction and loop forever. - -# However, if you change the second-to-last instruction (from jmp -4 to -# nop -4), the program terminates! The instructions are visited in this order: - -# nop +0 | 1 -# acc +1 | 2 -# jmp +4 | 3 -# acc +3 | -# jmp -3 | -# acc -99 | -# acc +1 | 4 -# nop -4 | 5 -# acc +6 | 6 - -# After the last instruction (acc +6), the program terminates by attempting to -# run the instruction below the last instruction in the file. With this change, -# after the program terminates, the accumulator contains the value 8 (acc +1, -# acc +1, acc +6). - -# Fix the program so that it terminates normally by changing exactly one jmp -# (to nop) or nop (to jmp). What is the value of the accumulator after the -# program terminates? - - -def part_2() -> None: - for nline, _ in enumerate(lines): - inst, acc = lines[nline].split(" ") - # change instructions - if inst == "nop": - new_inst = "jmp" - elif inst == "jmp": - new_inst = "nop" - - # make a copy of the original code - new_lines = lines.copy() - # change line according to the instructions in the original code - new_lines[nline] = " ".join((new_inst, acc)) - accu, has_ended = part_1(new_lines) - if has_ended: - print(f"The value of the accumulator was {accu} after terminates") - break - - -if __name__ == "__main__": - part_1(lines, debug=True) - part_2() diff --git a/src/P9.py b/src/P9.py deleted file mode 100644 index fb43ac6..0000000 --- a/src/P9.py +++ /dev/null @@ -1,149 +0,0 @@ -import sys -from itertools import combinations - -# --- Day 9: Encoding Error --- - -# With your neighbor happily enjoying their video game, you turn your attention -# to an open data port on the little screen in the seat in front of you. - -# Though the port is non-standard, you manage to connect it to your computer -# through the clever use of several paperclips. Upon connection, the port -# outputs a series of numbers (your puzzle input). - -# The data appears to be encrypted with the eXchange-Masking Addition System -# (XMAS) which, conveniently for you, is an old cypher with an important -# weakness. - -# XMAS starts by transmitting a preamble of 25 numbers. After that, each number -# you receive should be the sum of any two of the 25 immediately previous -# numbers. The two numbers will have different values, and there might be more -# than one such pair. - -# For example, suppose your preamble consists of the numbers 1 through 25 in a -# random order. To be valid, the next number must be the sum of two of those -# numbers: - -# 26 would be a valid next number, as it could be 1 plus 25 (or many other -# pairs, like 2 and 24). -# 49 would be a valid next number, as it is the sum of 24 and 25. -# 100 would not be valid; no two of the previous 25 numbers sum to 100. -# 50 would also not be valid; although 25 appears in the previous 25 -# numbers, the two numbers in the pair must be different. - -# Suppose the 26th number is 45, and the first number (no longer an option, as -# it is more than 25 numbers ago) was 20. Now, for the next number to be valid, -# there needs to be some pair of numbers among 1-19, 21-25, or 45 that add up -# to it: - -# 26 would still be a valid next number, as 1 and 25 are still within the -# previous 25 numbers. -# 65 would not be valid, as no two of the available numbers sum to it. -# 64 and 66 would both be valid, as they are the result of 19+45 and 21+45 -# respectively. - -# Here is a larger example which only considers the previous 5 numbers (and has -# a preamble of length 5): - -# 35 -# 20 -# 15 -# 25 -# 47 -# 40 -# 62 -# 55 -# 65 -# 95 -# 102 -# 117 -# 150 -# 182 -# 127 -# 219 -# 299 -# 277 -# 309 -# 576 - -# In this example, after the 5-number preamble, almost every number is the sum -# of two of the previous 5 numbers; the only number that does not follow this -# rule is 127. - -# The first step of attacking the weakness in the XMAS data is to find the -# first number in the list (after the preamble) which is not the sum of two of -# the 25 numbers before it. What is the first number that does not have this -# property? - - -with open("files/P9.txt", "r") as f: - numbers = [int(num) for num in f.read().strip().split("\n")] - - -def part_1() -> int: - window = 25 - for i in range(window, len(numbers)): - if all( - [ - x + y != numbers[i] - for x, y in combinations(numbers[i - window : i], 2) - ] - ): - break - - print(f"The first number without the property is {numbers[i]}") - return numbers[i] - - -# --- Part Two --- - -# The final step in breaking the XMAS encryption relies on the invalid number -# you just found: you must find a contiguous set of at least two numbers in -# your list which sum to the invalid number from step 1. - -# Again consider the above example: - -# 35 -# 20 -# 15 -# 25 -# 47 -# 40 -# 62 -# 55 -# 65 -# 95 -# 102 -# 117 -# 150 -# 182 -# 127 -# 219 -# 299 -# 277 -# 309 -# 576 - -# In this list, adding up all of the numbers from 15 through 40 produces the -# invalid number from step 1, 127. (Of course, the contiguous set of numbers in -# your actual list might be much longer.) - -# To find the encryption weakness, add together the smallest and largest number -# in this contiguous range; in this example, these are 15 and 47, producing 62. - -# What is the encryption weakness in your XMAS-encrypted list of numbers? - - -def part_2() -> None: - target = invalid_number - for i in range(len(numbers)): - for j in range(i + 1, len(numbers)): - if sum(numbers[i:j]) == target: - print( - f"The encryption weakness is {min(numbers[i:j]) + max(numbers[i:j])}" - ) - return - - -if __name__ == "__main__": - invalid_number = part_1() - part_2() diff --git a/src/__init__.py b/src/__init__.py deleted file mode 100644 index 3dc1f76..0000000 --- a/src/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__version__ = "0.1.0" diff --git a/src/files/P1.txt b/src/files/P1.txt deleted file mode 100644 index 261c1cc..0000000 --- a/src/files/P1.txt +++ /dev/null @@ -1,200 +0,0 @@ -1865 -1179 -1328 -1390 -322 -1999 -1713 -1808 -1380 -1727 -1702 -1304 -1481 -1334 -1728 -1953 -1413 -1753 -1723 -1379 -1532 -1918 -1490 -71 -1388 -1519 -807 -1427 -1729 -1952 -970 -1405 -1500 -1782 -1899 -1501 -1720 -1832 -1706 -1658 -1333 -486 -1670 -1674 -1290 -1893 -1382 -1761 -1945 -1607 -1319 -1508 -1464 -1733 -1917 -1483 -1620 -1677 -1835 -1810 -1385 -1840 -1705 -1994 -1695 -1599 -1681 -1566 -1153 -1672 -1373 -1679 -1714 -1283 -1950 -1197 -1696 -1936 -1218 -1910 -1786 -958 -1565 -1583 -1914 -1853 -1682 -1267 -1543 -1322 -1965 -1406 -860 -1754 -1867 -1393 -1404 -1191 -1861 -2007 -1613 -1938 -1340 -1227 -1628 -1826 -1638 -1970 -1993 -1748 -496 -1661 -1736 -1593 -1298 -1882 -1763 -1616 -1848 -92 -1338 -1707 -1587 -1996 -1708 -700 -1460 -1673 -1450 -1815 -1537 -1825 -1683 -1743 -1949 -1933 -1289 -1905 -1307 -1845 -1855 -1955 -1554 -1570 -1931 -1780 -1929 -1980 -1978 -1998 -1371 -1981 -1817 -1722 -1545 -1561 -1352 -1935 -1553 -1796 -1847 -1640 -1414 -1198 -1669 -1909 -1879 -1744 -1783 -1367 -1632 -1990 -1937 -1919 -1431 -2002 -1603 -1948 -1317 -1282 -1349 -1839 -1575 -1730 -1849 -1959 -1971 -2009 -1641 -1402 -1924 -1757 -1605 -1693 -1762 -283 -1525 -1964 -1715 -1602 diff --git a/src/files/P10.txt b/src/files/P10.txt deleted file mode 100644 index 6d882dc..0000000 --- a/src/files/P10.txt +++ /dev/null @@ -1,102 +0,0 @@ -99 -128 -154 -160 -61 -107 -75 -38 -15 -11 -129 -94 -157 -84 -121 -14 -119 -48 -30 -10 -55 -108 -74 -104 -91 -45 -134 -109 -164 -66 -146 -44 -116 -89 -79 -32 -149 -1 -136 -58 -96 -7 -60 -23 -31 -3 -65 -110 -90 -37 -43 -115 -122 -52 -113 -123 -161 -50 -95 -150 -120 -101 -126 -151 -114 -127 -73 -82 -162 -140 -51 -144 -36 -4 -163 -85 -42 -59 -67 -64 -86 -49 -2 -145 -135 -22 -24 -33 -137 -16 -27 -70 -133 -130 -20 -21 -83 -143 -100 -41 -76 -17 diff --git a/src/files/P11.txt b/src/files/P11.txt deleted file mode 100644 index da5f2b3..0000000 --- a/src/files/P11.txt +++ /dev/null @@ -1,97 +0,0 @@ -LLL.LLL.LLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL..LLLLLLL..LLLLLLL.LLLL.LLLLLLLLLL -LLLLLLLLLLLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLL.L.LLLLLLLL.LLLLLL.LLLLLLLL -LLLLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLL.LLL.LLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLL -LLLLLLL.LLL.LLLL.LLLLLLL.LLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL.LLLLLL.LLLLLLLL -LLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLLL.LLLL -...L..L.L......LL.L.......L...L..LLL....L.LL.L..L.L.LL..L..L............LLL.L..L.L.L..LL.. -LLLLLLLLLLLLLLL..LLLLL.L.LLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLL.L.LLLLLL.LLLLLLLL -.LLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLL.LL.LLLLL -LLLLLLLLLLLLLLLL.LLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLL.LLLLLLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLL.LLL -......L.L.L...LLL.LL...........L.....L..L...LL......L..L.L.L.....LL.LL..L..LL.LL......LLLL -LLLLLLLLLLLLLLLL.LLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL -LLLLLLL.LLLLLLLL.LL.LLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLL.LLL.LLLLLL.LLLLLLLL -LLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLL.L.LLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLL..LLLLLLLLLLLLLL -LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLL.L.LLLLLL.LLLLLL.LLLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLL.LLLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLLLLL..LLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLL -L....LL.LL.....LLL.......L.....L.L..L.LL.L...L.L..L.....L...L....LL.LLL...L..L.LL.L..L...L -LLLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLLLLLL.LL.LLLL.LL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL.LLLLLL.LLLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLL.LLLL..LLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLL.LLLLLL.L -LLLLLLLLLLLLLLLL.LLLLLLL.LLLL.LLLLLLLLL.LLLLL.L.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLL -LLLLLLL.LLLLLLLLLLLL.LLLLL.LL.LLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLL.LLLL.LLLLLL.LLLLLLLL -LLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL.LLLLLL.LLLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL.LLLLLL.LLLL.LLL -L....L......L..L..L.........L...LL..L..L.....L....L.LLL.L..L.LL..L..L..LL...L.......L.L... -LLLLLLLLLLLLLLLL..LLLLLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLL -LLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLLLLLL.LLLL.LL.LLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLL -LLLLLLLLLLLLLLL..LLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLL -LLLLLLLLLLLLLLLL.LLLLLLL.LLLL.LLLL.LLLL.LLLLLLL.LLLLLLLLL.LLL.LLLLLLLL.LLL.LLLLLL.LLLLLLLL -LLLLLLL.LLLLLLL..LLLLLLLLLLLL.LLLLLLLLLLLLL.LLL.LLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLL -L...LL..L..L..L.LL..L......L..L..LL.....LL...L...LL..L.L........LL.LL..LL.L......L..L..L.. -LLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL..LLLLLL.LLLLLL...LLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLL.LLL.LLLLLLLLLLLLLLL.LLLLLLLL -LLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLL -LLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLL -LLLLLLL.LLLLLL.L.LLLLLLL.LLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL.LLLLLL.LLLLLLLL -LLLLLLL..LLLLLLL.LLLLLLL.LLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL.LLLLLL.LLLLLLLL -..............L.....L..L..L..L...L......L...LL...................LLLLL..L.LL...L.....L.L.. -LLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLL.LLLLLLL.LLLL.LLLLL.LL.LLL.LLLLLLLL.LLLLLLLLLLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLLLLLL.LLLLLL..LLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLL -LLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLL.LLLLLL.LLLLLLLL -LLLLLLLLLLLLLLLL.LLLLLLL.LLLL.LLLLLL.LLLLLLLLLL.LLLL.LLLL.LLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLL -L.....L..L...LL...L.L...L..L.....L..L...L....L...L...LL...L......LL..L..LL.L.L..L.L.L.L.L. -LLLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLL..LLLLLL.LLLLLLLL.L.LLLL.LLLLLLLL -LLLLLLL.LLLLLL.L.LLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLL -LLLLLL.LLLLL.LLL.LLLLLLL.LLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLL -LLLLLLLLLLLLLLLLLLLLLLL..LLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL.LLLLLL.LLLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLL..LLLLLLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLL -LLL..L.L.....L.....LL.L..LL.L.L......L..L.L...L.L....L.....LL..LL.L......L...L....L...L... -L.LLLLLLLLLLL.LL.LLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLL -LLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLL -LLLLLLL.LLLLLLLLL.LLLLLLL.LLL.LLLLLL.LLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLL -LLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLLLLL.L.LLLLLLL.LLLLLL.LL.LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL -LLLLLLL.LLLLLL.LLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLL..LLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL -.LL.....L.L.L...L.L.....L..L..LL....LLL.......L.L.......LL...LLL...L...L...LLL.L...LLLL..L -LLLLLLLLLLLLLLLL.LLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLL.LLLLL..LLLLLLLL -LLLLLLLLLLLLLLLL.LLLLLLL.LLLL.LLLLL.LLL.LLLLLLL.LLL.LLLLL.LLLLLLL.LLLLLLLL.LL.LLL.LLLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLL -LLLLLLLLLLLLLLLL.LLL.LLL.LLLLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.L.LLLLLL.L.LLLLLLLLLLLLL -LLLLLLL.LLLLLL.L.LLLLLLL.LLLL..LLLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLL.L.LLLLLL.LLLLLL.LLLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLL -LLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LL.LLLLLLLLLLLLLL.LLL.LLLL.LLLLL..LLLLLLLL -.L..LLL..L..LL...L.L..L......L.L.L..L.....L.....L..L....LLL....L.......L.LLL..LL....L..L.L -LLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LL.LLLL.LLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLL.LLLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLL.LLLLL.LL.LLLLLLLLLLLLLLL -LLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLL.L.LLLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL.LLLLLL.LLLLLLLL -LL...L.L.L..L.L..........L..L..LL.LL....L.L.L.L.LLL.......L.......L.L....L...L..LL........ -LLLLLLLLLLLL.LLL.LLLLLLLLLLLL.LLLLLLLLL.LLLL..LLLLLLLLLL....LLLLLLLLLLLLLL..LLLLLLLLLLLLLL -LLLLLLLLLLLLLLLL.LLLLLLL.LLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLL.LL.LLLLLLLLLLLLLLL.LLLLLLLL -LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLL.LLLLLLLL -LLLLLL.LLLLLLLLL.LLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLL.L.LLLLL.LLLLLLLL.LLLLLLLLLLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLLLLLL..LLLL.LLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLL -LLLLL.L.LLLLLLLL.LLLLLLL.LLLL.LLLLLLLLLLLLLLLLL.LLLL.LLLLLLL.LLLLLLLLLLL.L.LLLLLL.LLLLLLLL -.LLL..L...L.L......LL.L..LL.LL.LLLLL...L...LLLL.L..L..LLL......L...LL.....L..LLLL.LL.LL..L -LLLLLLL.LLLLLLLLLLL.LLL..LLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLL.LLLLL.LLLLLLLL.LLLLLL.LLLLLLLL -LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL.LLL.LL.LLLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.L.LLLLLL.LLLLLL.LLLLLLLL -LLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLL.LLLL.LLL -L...L.......L..LLLL..L.LL...LL....L.....L.L..L...LLLLL.....LL.....L.L.LLL.L..L.LL.....L.L. -LLLLLLLLLLLLLLLL.LLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLL.LLLL.LLLLLL.LLLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLLLL.LL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLLLL..L.LLLLLLLLLLLLLLL -L.LLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL.LLLLLL.LLLLLLLL -LLLLLLL.LLLLLL.L.LLLLLLLLLLLL.LLLLLLLLLLLLLLL.L.LLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLLL.LLL.LLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL.LLLLLL.LLLLLLLL -LLLLLLL.LLLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLL.LLLLLLLL -LLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLLLLLL.LLL.LLLLLLL.LLLLLLLLLLLLLLL.LLLLLL.L -LLLLLLL.LLLLLLLL.LLLLLLL.LLLL..LLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL..LLLLL.LLLLLLLL -LLLLLLLLL.LLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLL.LL.LLLLLLLL.LLLLLLLLLLLLLLL -LLLLLLLLLLLLLLLL.LLLLLLL.LLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLL.LLLLLLL. -LLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLLLLLLL.LLLLLLL.LLLLLL.LL.LLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLL diff --git a/src/files/P12.txt b/src/files/P12.txt deleted file mode 100644 index 7b923fc..0000000 --- a/src/files/P12.txt +++ /dev/null @@ -1,774 +0,0 @@ -E2 -L180 -S4 -R90 -S1 -F49 -N2 -F18 -N2 -L180 -S5 -L90 -E3 -N2 -F11 -L180 -N5 -W3 -L180 -W2 -N5 -F80 -R90 -F89 -N1 -L180 -N2 -R180 -E4 -R90 -S1 -L90 -N5 -R180 -N2 -F17 -L90 -E2 -F58 -W5 -L90 -W3 -N3 -F78 -L90 -N4 -L90 -F15 -W1 -R90 -S1 -W4 -R90 -F41 -W4 -S4 -F37 -E5 -S1 -E3 -F19 -R90 -S1 -W4 -S2 -E2 -L180 -F51 -W5 -R90 -F76 -E2 -F40 -N4 -R180 -E5 -N3 -F72 -S4 -R90 -F99 -E3 -F76 -W5 -R90 -E2 -S5 -R180 -F76 -N4 -L180 -F10 -F83 -S1 -F46 -L90 -S5 -E1 -S1 -F14 -N4 -E1 -R180 -E1 -R180 -S3 -F52 -L90 -S4 -L90 -W3 -F18 -S2 -F81 -L180 -F76 -L180 -W1 -S2 -F73 -N2 -F77 -W1 -F28 -L180 -N2 -F76 -L180 -W5 -F61 -N4 -E2 -R180 -S2 -L90 -F14 -R180 -N5 -E4 -F11 -E1 -L90 -N3 -E3 -F58 -W3 -F72 -W1 -N2 -W5 -F44 -L90 -W4 -F37 -L90 -F4 -W5 -N3 -F57 -N4 -L90 -S2 -F43 -S4 -W3 -S5 -F84 -S2 -L90 -N1 -R180 -W3 -L180 -N2 -W3 -R90 -N2 -R90 -F66 -L90 -F73 -E4 -S2 -L270 -W2 -E2 -S4 -E1 -R90 -W1 -F49 -L270 -F70 -S3 -W1 -N2 -E1 -F65 -W3 -R90 -F27 -E5 -F80 -S4 -W5 -F68 -E5 -R90 -F94 -W2 -L90 -F37 -L180 -E1 -F38 -N2 -F15 -N4 -E3 -L90 -E1 -R90 -S1 -E5 -N4 -N2 -E4 -L270 -N4 -R90 -E1 -S4 -E4 -F71 -E2 -R180 -N5 -E3 -F17 -L90 -N2 -W1 -L90 -F62 -W1 -F85 -W1 -L180 -F33 -S4 -W1 -N5 -F81 -W2 -R90 -S2 -F49 -L180 -S5 -F4 -W4 -N3 -W1 -F17 -R90 -W4 -N4 -E4 -N3 -L90 -S2 -R90 -S3 -L90 -E4 -R90 -S5 -F88 -S1 -L180 -N5 -E5 -F55 -R90 -F81 -E5 -L180 -R90 -F55 -R90 -W5 -F13 -R90 -N5 -F58 -L180 -S5 -F27 -E4 -S3 -F42 -R90 -F39 -W3 -S3 -F31 -S4 -L90 -W1 -S3 -W3 -N4 -W2 -S3 -L90 -F61 -E1 -F23 -S2 -F31 -S3 -L180 -W1 -N1 -L90 -N3 -F81 -E2 -N1 -R90 -F64 -S4 -F88 -E1 -N5 -W1 -S3 -F10 -N5 -L90 -F58 -S1 -R90 -E3 -L90 -N4 -F94 -S1 -W1 -S4 -L90 -F51 -L180 -N4 -R90 -L90 -N4 -F66 -W2 -S3 -S3 -W4 -F68 -L90 -F42 -E1 -F43 -R90 -N3 -F20 -E1 -N3 -E4 -N3 -F4 -S4 -R180 -W1 -R270 -N3 -F86 -L90 -E5 -F84 -N3 -W3 -F16 -L90 -N2 -E3 -L90 -S5 -E5 -F53 -L270 -N2 -F91 -R90 -E5 -N4 -F57 -E5 -S5 -F61 -S4 -F89 -E3 -N3 -N5 -F3 -S5 -F59 -E5 -F66 -R180 -S1 -W1 -N2 -R180 -S4 -E2 -L90 -N1 -W2 -F13 -L90 -E5 -F6 -W3 -F78 -E1 -F7 -W1 -N4 -W5 -F58 -R90 -E4 -N3 -E5 -N3 -W1 -S3 -R90 -F16 -L90 -F93 -R270 -N5 -F2 -W1 -S3 -F54 -R270 -F18 -R180 -F95 -L90 -W1 -E4 -N2 -W1 -L90 -S2 -L90 -W2 -S4 -F92 -W2 -S3 -R180 -N5 -E3 -N5 -E5 -F22 -F88 -S3 -E2 -R90 -S5 -W1 -L90 -E4 -F77 -N1 -W3 -F14 -E3 -R90 -W1 -F21 -N1 -F58 -W4 -N2 -R90 -N2 -W4 -F68 -W5 -N3 -L90 -F22 -R90 -F90 -F84 -S5 -F30 -N1 -W4 -R90 -F17 -R90 -W4 -S5 -E2 -N1 -F92 -N2 -R180 -N5 -E2 -R90 -F38 -R90 -F15 -E5 -N4 -N4 -E4 -S4 -F92 -R90 -F22 -S3 -W4 -N3 -E1 -R180 -F96 -L90 -E1 -N1 -F9 -W2 -N4 -F17 -N2 -R90 -F76 -S2 -F5 -S5 -F34 -R90 -F7 -N4 -F83 -N5 -L90 -W1 -S3 -R90 -S3 -W2 -S3 -F51 -N5 -W4 -F8 -E3 -F10 -N5 -F39 -S3 -E2 -L90 -E5 -L90 -N5 -E2 -N3 -F42 -S3 -F38 -N5 -F19 -F97 -W2 -R180 -S4 -E4 -S2 -W3 -F39 -W4 -F70 -S1 -W1 -R90 -F41 -L90 -E1 -N1 -E3 -W5 -F13 -E4 -F2 -R180 -F27 -E4 -N2 -L270 -E1 -N3 -W4 -F81 -W3 -R90 -E1 -F57 -S5 -R90 -F13 -L180 -N5 -F98 -F32 -N3 -R90 -N3 -W3 -S3 -W3 -N4 -F73 -L180 -N1 -E4 -F7 -E4 -R90 -N4 -R90 -S2 -E5 -F32 -S2 -N5 -W3 -R90 -W5 -S2 -L90 -F4 -R270 -N5 -E3 -L90 -S5 -F24 -N4 -R90 -F27 -L90 -F16 -R90 -N2 -R90 -N3 -L90 -S3 -L90 -F85 -S3 -F47 -N1 -E1 -N3 -R270 -S2 -L90 -F50 -L90 -S2 -F23 -N4 -L180 -E3 -F91 -R90 -E1 -W4 -F81 -W5 -R90 -F46 -E1 -W1 -F91 -N5 -W5 -N3 -W1 -L90 -F60 -S2 -L90 -E1 -F82 -S3 -W5 -N5 -F90 -E3 -S1 -F61 -E4 -F98 -R180 -F8 -R270 -F73 -W4 -L90 -W5 -L90 -F86 -W5 -L180 -F61 -N5 -F88 -E2 -L270 -F90 -N5 -F21 -R270 -F40 -L90 -W1 -N2 -L90 -E2 -S5 -E2 -S1 -E5 -N3 -F51 -S1 -F58 -W3 -L180 -F13 -R90 -N1 -F79 -W2 -F61 -R90 -F22 -E2 -N5 -F1 -S4 -F99 -S1 -S3 -E2 -F97 diff --git a/src/files/P13.txt b/src/files/P13.txt deleted file mode 100644 index b7639a6..0000000 --- a/src/files/P13.txt +++ /dev/null @@ -1,2 +0,0 @@ -1003055 -37,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,41,x,x,x,x,x,x,x,x,x,433,x,x,x,x,x,x,x,23,x,x,x,x,x,x,x,x,17,x,19,x,x,x,x,x,x,x,x,x,29,x,593,x,x,x,x,x,x,x,x,x,x,x,x,13 diff --git a/src/files/P14.txt b/src/files/P14.txt deleted file mode 100644 index 32b3a5e..0000000 --- a/src/files/P14.txt +++ /dev/null @@ -1,592 +0,0 @@ -mask = 100X100X101011111X100000100X11010011 -mem[33323] = 349380 -mem[52742] = 116688965 -mem[4113] = 11499 -mem[15819] = 313303 -mem[23239] = 755579063 -mask = X00X10X1X010110110111X00010X100X000X -mem[49207] = 466621685 -mem[34069] = 6874604 -mask = 1001100XX00011110110100XX0110000001X -mem[61278] = 56361674 -mem[51360] = 61871432 -mem[31903] = 45067 -mask = 100X100XX0101X11X1X00X00001001X101X0 -mem[22981] = 144008 -mem[12013] = 49165315 -mem[54643] = 50677 -mem[59166] = 678129 -mem[64022] = 27522 -mask = 100110X0001X11011000101X1000001X00X0 -mem[32693] = 425145 -mem[11437] = 236593490 -mem[16078] = 227582 -mem[35266] = 197465438 -mem[39279] = 127942 -mask = 10101000X0X00001X1001000010100111X00 -mem[49794] = 2082 -mem[60407] = 2129 -mem[33300] = 921 -mem[18582] = 62106545 -mem[32160] = 843912 -mem[36917] = 7740 -mem[1836] = 54721591 -mask = 100010X1X0X011X1101XX00001X01000X10X -mem[8385] = 1381 -mem[38022] = 2501412 -mem[34713] = 3648024 -mem[33245] = 1178087 -mem[22176] = 263 -mem[20535] = 1289 -mem[2092] = 88590569 -mask = X001100X00X0X01X0X100X100010110XX101 -mem[65061] = 2768 -mem[56375] = 6734 -mem[18070] = 20571066 -mem[61511] = 403157281 -mem[4164] = 179682 -mem[11801] = 5501 -mem[22339] = 14414879 -mask = X0011000001X1001X0100111110X00110111 -mem[3844] = 1046 -mem[33741] = 109390 -mem[54311] = 94183595 -mem[48744] = 112575 -mem[29663] = 2042 -mask = X00X100000101001101001001X00001000X1 -mem[25325] = 177269 -mem[919] = 50779835 -mem[52113] = 2386630 -mem[60154] = 29645195 -mem[24761] = 8101 -mask = X101X000X01011011010X100001101110X01 -mem[5169] = 2865 -mem[55126] = 50829 -mem[60154] = 124556261 -mem[48753] = 377574 -mem[48662] = 9144531 -mask = 10011X00001010011010000101110XX0X00X -mem[41623] = 632353121 -mem[10365] = 70888870 -mem[59458] = 849 -mem[18992] = 486294339 -mask = X00X100X011011111100X00001001010100X -mem[42046] = 518245944 -mem[4654] = 39071 -mem[46109] = 1540 -mem[3245] = 822 -mem[25937] = 257692 -mem[19118] = 6601278 -mask = 1001001XXX100XXX101XX0001010001000X0 -mem[34356] = 55967 -mem[52601] = 522574 -mem[31903] = 7669828 -mem[36165] = 10552 -mask = 110X101X00X0111111XX001X0001000XX10X -mem[42649] = 1534730 -mem[8324] = 467628 -mem[9447] = 3054 -mem[41788] = 28205 -mem[9353] = 14315559 -mask = 1X01X01100111111X101000000X100100000 -mem[270] = 3208 -mem[20373] = 186089492 -mem[43940] = 449607191 -mem[63389] = 674 -mem[437] = 6933780 -mask = 1001X00001X01X0X101101X0010X00110110 -mem[22829] = 3301 -mem[59260] = 6763 -mem[22305] = 203360 -mask = 10011110101010X010XX011X0010001XX000 -mem[55041] = 6199 -mem[55452] = 151 -mem[2746] = 464657 -mask = 1001000000X0X10110X01101X00100111000 -mem[54354] = 666913 -mem[44827] = 214920 -mem[44621] = 13259544 -mem[29462] = 14725 -mem[27633] = 284739975 -mem[63195] = 11668372 -mask = 10X010X10100X111001X101010101X11100X -mem[21667] = 426958 -mem[55530] = 91533 -mem[10365] = 493 -mem[51246] = 513589450 -mem[44622] = 1773 -mem[4113] = 401 -mask = 100X1000001011XXX0100XXX100010X10X00 -mem[60407] = 869913 -mem[10365] = 59083 -mem[18321] = 3019 -mem[65061] = 10794134 -mem[62827] = 2777572 -mem[20373] = 23798334 -mask = 1000X10011X010011X10X0000101X0100001 -mem[17936] = 4347 -mem[38270] = 611 -mem[7408] = 2854792 -mem[2612] = 604172 -mem[24287] = 418220 -mem[27110] = 31440 -mem[64742] = 1872667 -mask = 10X110000010100110X001X01X1000000111 -mem[30518] = 13431 -mem[64496] = 204238 -mem[62259] = 1191 -mem[17457] = 3652 -mask = 100X1X0XX1101XX11010X000X01010010011 -mem[25325] = 67829 -mem[4021] = 8039 -mask = 1XXXXX0X0010110X11100111001111101110 -mem[34600] = 4128134 -mem[47565] = 28022073 -mask = X0X110000XX010X10010X0X111X111010101 -mem[64746] = 17532220 -mem[55786] = 109034 -mem[12715] = 185475 -mask = 1001110X011010111010X1010010100XX100 -mem[28923] = 1444 -mem[7508] = 41968 -mem[39856] = 447 -mem[19698] = 4420683 -mem[60924] = 7222 -mem[8056] = 225410214 -mask = 100X10X1X0X011X10110X01X011000X10X00 -mem[58206] = 585282 -mem[10984] = 105158307 -mem[31562] = 526874 -mem[60154] = 107013 -mem[4409] = 4126230 -mask = 1010100010X0XX0111X00X00011X000X0XX0 -mem[7122] = 428629 -mem[29394] = 262029322 -mem[33832] = 6067254 -mask = 0001100XXX0010X001100010X000110001X1 -mem[1975] = 32392 -mem[14891] = 9350 -mem[19905] = 28213400 -mem[11981] = 132973999 -mem[49582] = 4347 -mem[64106] = 235564 -mem[9648] = 1440 -mask = 000110010011XXXX0X1001010001X00X0100 -mem[18992] = 628 -mem[37263] = 1031 -mem[4387] = 1442306 -mem[2471] = 1123350 -mem[1493] = 88891215 -mem[22500] = 3553 -mem[6845] = 26007 -mask = 10011X00011011X1101X00X001X1X001X111 -mem[49101] = 13289 -mem[32] = 391365 -mem[31906] = 79 -mem[48744] = 71043 -mask = 1001X0X00010100110X001011001101X01X0 -mem[25999] = 2473051 -mem[36408] = 56819077 -mem[46656] = 2074748 -mem[10871] = 8606 -mem[7122] = 2053 -mem[59403] = 5442 -mask = 1XX0X01X100X11111010X000X00X000101X0 -mem[1160] = 280063168 -mem[20571] = 19030 -mem[23225] = 51089295 -mem[40992] = 17475 -mem[63413] = 1144 -mem[19458] = 284777610 -mem[21502] = 10410 -mask = 100X100X00101X0100X0X0X11100111XX11X -mem[33860] = 160 -mem[37007] = 56420 -mem[55140] = 490726 -mem[47752] = 521745 -mem[55594] = 336661995 -mem[44008] = 265991679 -mask = 1001100001X010011100100X01X0X011111X -mem[1289] = 55191 -mem[53058] = 23079796 -mem[25362] = 57315626 -mem[8895] = 35287816 -mask = 0001100100XX00100X1X0X00XX00XX000110 -mem[12568] = 136661 -mem[9931] = 303487 -mem[38781] = 91532 -mem[25506] = 950257996 -mem[3694] = 6225663 -mem[6631] = 62710499 -mem[3205] = 7586715 -mask = X0001000001X111110100000X0110001000X -mem[61696] = 34763 -mem[42583] = 2987088 -mem[8416] = 2293694 -mem[21503] = 8071 -mem[41788] = 950960 -mem[9648] = 23284946 -mask = 100010000010XX0XX01000000X011100X1X0 -mem[30270] = 421 -mem[52379] = 86815089 -mem[16627] = 3647190 -mem[36794] = 132421727 -mem[54580] = 248096 -mask = 10X1101000X01001X00111110101110001X0 -mem[48399] = 9196559 -mem[6869] = 32793911 -mem[20422] = 1560 -mem[12101] = 15618 -mem[25154] = 390003034 -mem[23791] = 229770864 -mem[49558] = 12206144 -mask = 100X10010X101XX1XXX000001X00101X1100 -mem[3205] = 110968351 -mem[65515] = 7362194 -mem[2197] = 52580964 -mem[13004] = 3723834 -mem[46931] = 24935229 -mem[919] = 6284 -mask = 10001X11100X1X1X10X111X100X0000010X1 -mem[30162] = 1665 -mem[35687] = 3554 -mem[3735] = 8003 -mem[18258] = 44276232 -mem[48625] = 401841687 -mem[62781] = 2814958 -mem[5302] = 175144514 -mask = 1001X0XX001X101110101000X11X00010X00 -mem[38152] = 42369373 -mem[36392] = 13302 -mem[13867] = 940605082 -mask = 10001100X11010X1101000X0X11100110011 -mem[63412] = 5289 -mem[788] = 6600 -mem[27915] = 254034 -mem[24347] = 16264001 -mem[52437] = 651358 -mask = 10011X0X0110X0X11X101100101100X11100 -mem[56524] = 1244173 -mem[64911] = 2124386 -mem[3815] = 107466 -mem[14375] = 6798 -mem[16285] = 66968238 -mem[7968] = 835823180 -mask = 10X110100X101XX110X11110XX0111001010 -mem[58730] = 132998954 -mem[8056] = 754181 -mem[39247] = 126 -mask = 1001X000001XX10110101X1110110X10101X -mem[59028] = 10817 -mem[17977] = 61299509 -mask = 1X001100X1X0100110100000X111XXX001X0 -mem[2056] = 32701076 -mem[2071] = 2401082 -mem[9887] = 998417 -mask = 100110X11X101X1110X00100X0101111X0X1 -mem[33860] = 388064 -mem[59050] = 16623098 -mem[5188] = 319 -mem[37207] = 2470432 -mem[27333] = 2026 -mask = 1000X000001X1X0X00XXX00X100011X11010 -mem[24029] = 9105 -mem[14364] = 243545984 -mem[4113] = 3279 -mask = 1X0X1001X0101011110XX1000100X000X101 -mem[17781] = 509963835 -mem[37716] = 62611707 -mem[23997] = 1023138975 -mem[5927] = 32777 -mem[55304] = 264062857 -mask = 100110X001X01X01100011100X100110X11X -mem[58338] = 741 -mem[34693] = 991498 -mem[32339] = 30979944 -mem[50216] = 66393532 -mem[29090] = 11574321 -mem[30824] = 15729 -mem[16868] = 23942 -mask = 1X0XX0010X0011110X101010111011111010 -mem[48969] = 3327849 -mem[52521] = 460105388 -mem[33860] = 422661865 -mem[44621] = 6715 -mem[27762] = 11952 -mem[34536] = 4064 -mask = 1001X001001X0011001000100110010001XX -mem[195] = 487302 -mem[17992] = 889 -mem[11858] = 958195 -mem[11013] = 202443463 -mask = 1000101X100X1111011000X100110000X001 -mem[13097] = 3534 -mem[41292] = 85120 -mem[9497] = 154119 -mem[19610] = 5709354 -mem[34972] = 48311 -mem[50753] = 180578 -mem[35921] = 667946365 -mask = XX1010X00110X00111000XX00001000110X0 -mem[3712] = 2843518 -mem[34604] = 2965 -mem[54311] = 162583 -mask = 0001X0X00100100X001000001X1X10X01X10 -mem[49406] = 965493 -mem[59050] = 392048 -mem[3574] = 922708604 -mem[7419] = 33525859 -mem[1933] = 8 -mem[4367] = 11521 -mask = 1001X0X00X10X00X101X00001110X0100X00 -mem[29215] = 417522 -mem[56468] = 34229032 -mem[26868] = 552971 -mem[36368] = 420213 -mask = 100110X0X1101011101X01X01101101X001X -mem[4913] = 455 -mem[3815] = 11211510 -mem[21545] = 1469 -mem[35762] = 1806 -mem[58825] = 3743 -mem[23225] = 474872535 -mem[53173] = 46538 -mask = 1XX0X00X0X101001001010100X0X01X00010 -mem[64106] = 98247289 -mem[13686] = 54961348 -mem[38944] = 462290318 -mem[53185] = 7075 -mem[30162] = 39454 -mem[14983] = 1010603 -mem[38339] = 970 -mask = X001100X010X111110001000001X01100110 -mem[12827] = 22328 -mem[18628] = 7082210 -mem[31013] = 20804915 -mem[13966] = 86 -mem[518] = 1757 -mask = X001100XX001001001110000000000XX1110 -mem[14375] = 8414661 -mem[1568] = 225486 -mem[25775] = 336197 -mask = 100110000X00100X100001100X111X100X01 -mem[2071] = 51386682 -mem[32897] = 162194 -mem[11308] = 1799417 -mem[20829] = 299249 -mask = 1X0010XXX0001111XX1100X001X1X0000101 -mem[29189] = 36530 -mem[657] = 114543286 -mem[9356] = 451 -mask = X000100000101X0110X0011XX10000110001 -mem[30577] = 117881 -mem[60874] = 19567558 -mem[10363] = 13493 -mem[5690] = 382 -mem[61059] = 4757304 -mem[36165] = 95983791 -mask = 100X00X00010100X1010000X101000X10000 -mem[33324] = 39476477 -mem[34713] = 7398 -mem[46214] = 98709 -mem[35856] = 1020446010 -mask = 10X01X000010000X11100101011X001X0100 -mem[65061] = 61054 -mem[54052] = 92826 -mem[35603] = 58759 -mem[58037] = 40910 -mem[62217] = 45701380 -mask = 1X011000001011011010XX00X10X0X010001 -mem[15920] = 5645 -mem[28828] = 265910022 -mem[29437] = 5544 -mem[56112] = 637 -mem[45033] = 36063036 -mem[12783] = 13776458 -mask = 10011011X010100110XX100100XX11011X00 -mem[518] = 25998191 -mem[13053] = 7866406 -mem[38152] = 3208 -mem[18730] = 711 -mask = 10X11000001XX1X000100X11101XX1X10111 -mem[47121] = 11272115 -mem[43618] = 27683 -mask = 100X1101X0101001100X010000X11001X100 -mem[21702] = 34688805 -mem[43624] = 3956780 -mem[24476] = 17239393 -mem[23321] = 25573609 -mem[15163] = 1713 -mem[65338] = 27386792 -mask = 10011010010X10011X0011110XX100001111 -mem[53501] = 16700270 -mem[28069] = 20683243 -mem[33593] = 114830 -mem[9962] = 403282549 -mem[54061] = 2336 -mem[46656] = 7039 -mem[58616] = 181 -mask = 10001X11001011XX101X0100010010101100 -mem[8738] = 234383093 -mem[11512] = 1792627 -mem[54326] = 1574223 -mask = 10011X101X10100XX000X10010X01X01100X -mem[51382] = 17879 -mem[44905] = 783 -mem[57514] = 1018128542 -mem[18628] = 240492 -mem[2108] = 3429 -mem[2304] = 3748 -mask = 0X011001X0X000X000110100101000000000 -mem[4452] = 19437119 -mem[64742] = 179090 -mem[16430] = 486207 -mask = 1001X000111X1X1110110X011111100X0011 -mem[52004] = 41486 -mem[48779] = 83675 -mem[17861] = 48577395 -mem[39247] = 16952 -mem[8738] = 3981 -mem[32923] = 1168904 -mask = 10011001XX0011X11X0010X1010X10101000 -mem[33319] = 44401 -mem[4142] = 517003945 -mem[29189] = 415157 -mem[33358] = 1395165 -mask = 1001100X010010011XX00XXX1100101X0101 -mem[13618] = 246280673 -mem[58338] = 17884 -mem[10885] = 816 -mem[11277] = 24331199 -mem[17936] = 1616051 -mask = 1001100X01X01001X00011000110X0X001XX -mem[58338] = 302363844 -mem[53596] = 175604903 -mem[56468] = 419729 -mem[27915] = 581 -mem[41501] = 69718 -mask = 100110000X1010110100X1X001X00X01001X -mem[18333] = 15544 -mem[3929] = 2622169 -mem[37718] = 176413 -mem[27333] = 848 -mem[17456] = 1097 -mask = 100110101010X001X000X0001X00001011X0 -mem[53045] = 2356198 -mem[49908] = 1086 -mem[17019] = 7107107 -mem[12013] = 70971 -mem[7048] = 1585 -mem[3666] = 4937143 -mask = 10011XXXX01010011000010X1X11100XXX00 -mem[65524] = 4129175 -mem[5636] = 315661 -mem[39270] = 455882795 -mask = X1001100110010011010000001110X0X00XX -mem[50481] = 26734 -mem[57708] = 199726127 -mem[20422] = 130991 -mem[13651] = 1094687 -mem[1292] = 60536 -mask = 110X1011001XX111110100X0000010X1X101 -mem[39644] = 14574 -mem[8596] = 30400 -mask = 1000101XX0X0X1110110111X110011X00110 -mem[919] = 32148 -mem[41] = 453324 -mem[36794] = 179133 -mem[2780] = 958033590 -mask = 100010X1X11011110010X01101101110X100 -mem[20035] = 1674335 -mem[18909] = 33271 -mem[21491] = 4013451 -mem[21792] = 78760 -mem[42156] = 980 -mem[3276] = 3971405 -mask = 10XX10000X10X00111X0XX00X0010011X100 -mem[36368] = 5097527 -mem[3099] = 104365 -mem[57092] = 74461253 -mem[46314] = 30483860 -mask = X000101X101011X10110XXX001X00X11X010 -mem[9948] = 43011947 -mem[53185] = 41588 -mem[25699] = 101124 -mem[60046] = 123243 -mem[23975] = 125991 -mask = 1X00100000X01X00101011100X1010000101 -mem[65101] = 504575 -mem[55313] = 14953613 -mem[42156] = 526 -mem[55573] = 1303957 -mem[53260] = 16252 -mem[48073] = 8667 -mask = 1001100100101X11110X0X0X0111X00001X0 -mem[10402] = 793546 -mem[45910] = 18 -mem[23627] = 72728 -mem[7408] = 16579752 -mem[22105] = 10576 -mem[61054] = 1160961 -mem[2989] = 149675383 -mask = 0001X001000000XX0111X110010001010110 -mem[15867] = 14 -mem[23379] = 10511918 -mem[4217] = 4840435 -mem[29978] = 11828937 -mem[28303] = 2358671 -mask = 10010010011X0XX11010X000110000110X00 -mem[11923] = 149358903 -mem[46246] = 3148 -mem[17596] = 9370 -mem[1540] = 12848 -mem[25775] = 29444 -mem[32564] = 64008 -mem[16097] = 641 -mask = 0X011001X010X010X0100X1X0X0X000111X1 -mem[45770] = 1008133 -mem[15551] = 3912928 -mem[53058] = 188856 -mem[44827] = 9036496 -mem[59530] = 20033543 -mask = 1001100X0XX01X0110X000XX010010XX1101 -mem[2056] = 737 -mem[34972] = 30655 -mem[50728] = 927954 -mask = 10001X0000X0X0010010101010X001100110 -mem[39247] = 425181 -mem[64200] = 13111811 -mem[8169] = 1250162 -mask = 100110000X10XXX11010X0001110X011XX00 -mem[62259] = 4350710 -mem[56112] = 42327 -mem[53173] = 2221557 -mem[36759] = 242686307 -mem[29077] = 1179326 -mem[2056] = 356 -mask = 10000000001XX000101000X0X11000X10110 -mem[18542] = 454113 -mem[44192] = 501708 -mem[54994] = 149470837 -mem[54260] = 582959 -mem[65424] = 295679271 -mem[36368] = 2002 -mem[16392] = 99 -mask = 10100001XX101001X0101100101101000XX0 -mem[17861] = 3340321 -mem[24705] = 4143350 -mem[38940] = 201585 -mem[35632] = 19204465 -mem[9443] = 5273035 -mask = 10X110010010100101000X00001010X0111X -mem[2991] = 51624 -mem[56468] = 1603 -mem[35633] = 4068 -mask = 10011X01001010X10000X011000111101X11 -mem[58842] = 69158 -mem[43765] = 1624 -mem[24913] = 133864698 -mem[15015] = 247 -mem[10155] = 1064 -mem[33787] = 142284522 -mem[17457] = 15488682 diff --git a/src/files/P15.txt b/src/files/P15.txt deleted file mode 100644 index acf2f86..0000000 --- a/src/files/P15.txt +++ /dev/null @@ -1 +0,0 @@ -6,3,15,13,1,0 diff --git a/src/files/P16.txt b/src/files/P16.txt deleted file mode 100644 index 1e13c31..0000000 --- a/src/files/P16.txt +++ /dev/null @@ -1,265 +0,0 @@ -departure location: 28-184 or 203-952 -departure station: 43-261 or 283-958 -departure platform: 43-549 or 564-970 -departure track: 30-724 or 732-970 -departure date: 37-650 or 657-973 -departure time: 28-911 or 922-965 -arrival location: 41-855 or 863-970 -arrival station: 26-304 or 324-970 -arrival platform: 45-896 or 903-963 -arrival track: 34-458 or 466-962 -class: 43-337 or 363-954 -duration: 33-239 or 260-973 -price: 34-600 or 606-961 -route: 25-686 or 711-973 -row: 36-101 or 124-963 -seat: 25-794 or 806-949 -train: 38-139 or 164-952 -type: 37-619 or 627-956 -wagon: 35-62 or 75-963 -zone: 40-479 or 490-960 - -your ticket: -89,137,223,97,61,167,181,53,179,139,211,127,229,227,173,101,83,131,59,79 - -nearby tickets: -170,218,811,107,747,184,411,426,594,629,764,509,287,385,734,853,646,474,937,773 -683,727,850,596,125,222,334,774,778,567,427,90,478,385,174,497,184,745,646,88 -405,582,670,456,607,504,924,850,674,219,500,22,134,479,92,832,220,750,780,449 -646,572,467,337,515,380,736,130,850,686,649,96,742,579,61,88,381,725,814,226 -55,534,61,866,895,169,260,170,216,230,566,208,763,759,805,366,636,421,762,885 -931,892,738,294,56,887,619,718,609,450,164,223,502,286,740,230,570,784,23,821 -179,475,428,87,766,749,618,382,77,595,910,498,847,328,338,871,432,210,333,285 -681,337,949,101,227,817,273,814,425,884,570,637,905,330,171,97,929,519,512,83 -756,22,90,543,420,783,53,125,490,831,877,331,636,508,518,443,334,674,610,619 -896,366,581,402,392,679,138,327,384,382,865,627,394,515,266,170,209,825,659,724 -130,208,542,778,631,168,331,94,500,848,435,839,65,215,567,385,126,600,891,753 -418,474,395,829,649,382,907,172,583,584,493,490,691,393,887,807,577,586,234,617 -547,430,743,598,421,947,183,736,432,836,396,549,9,534,100,635,579,608,641,431 -444,594,458,235,931,84,184,832,511,662,483,881,667,91,839,397,674,719,942,413 -479,125,645,132,380,479,718,734,788,638,779,566,253,599,753,834,774,593,566,567 -378,781,522,853,582,851,858,889,674,845,363,286,287,610,518,415,672,219,415,809 -759,805,904,661,522,905,261,166,721,492,672,454,565,827,761,586,947,629,833,634 -443,526,792,137,752,627,579,408,835,286,99,532,878,243,844,607,771,669,423,382 -504,597,425,827,50,737,220,418,62,364,402,72,671,549,444,518,641,390,222,504 -435,633,547,677,841,304,749,398,597,725,924,926,527,658,532,490,590,676,598,869 -299,416,454,477,510,377,899,479,444,836,665,374,432,206,872,213,753,436,99,372 -364,752,507,397,388,628,790,134,205,394,136,716,895,272,175,81,724,332,939,130 -929,388,908,687,767,469,784,135,794,570,679,304,178,89,935,941,640,639,544,390 -98,759,820,932,853,946,930,454,379,831,856,867,427,283,467,440,457,666,166,627 -417,762,751,928,419,773,834,721,721,630,83,596,929,386,211,930,171,506,604,433 -903,947,475,872,168,325,215,236,96,233,840,839,675,331,878,947,483,571,475,870 -516,203,126,849,331,415,411,1,566,713,207,906,575,637,780,520,864,830,59,892 -793,364,586,414,660,261,847,738,526,381,893,105,879,591,532,529,644,840,396,819 -579,719,181,522,549,669,302,472,837,448,987,591,637,99,945,372,518,129,399,787 -610,606,501,330,418,865,290,468,782,670,577,718,296,803,748,515,864,53,841,299 -125,833,456,509,253,836,872,722,746,58,896,414,470,813,720,597,675,97,504,630 -680,794,875,96,450,873,409,568,98,89,810,374,882,646,417,50,109,832,839,627 -205,788,527,61,618,300,210,932,814,877,678,991,659,934,613,91,826,509,414,327 -537,634,923,773,232,181,329,378,219,587,183,55,592,556,391,450,779,628,443,433 -506,303,294,671,650,633,781,418,534,379,845,490,845,224,442,929,649,602,882,84 -825,58,60,586,418,67,415,439,96,223,234,631,399,894,949,865,512,887,203,389 -822,817,746,96,226,675,133,855,929,381,772,628,895,648,424,235,78,219,872,74 -890,611,826,894,831,332,752,303,5,184,855,766,641,405,374,547,288,295,817,77 -612,388,292,533,171,506,260,609,813,385,678,629,825,929,233,600,780,82,931,120 -408,102,589,298,385,852,333,333,169,885,287,492,567,82,131,737,932,213,537,670 -334,384,947,128,538,893,867,87,790,522,891,844,944,649,620,775,499,734,745,684 -493,924,184,943,746,849,435,448,83,678,94,636,430,120,619,548,774,380,62,518 -934,302,297,721,209,98,81,664,96,442,173,511,939,203,725,82,545,940,937,751 -543,642,924,675,443,458,385,297,330,940,373,483,790,218,834,767,941,878,449,429 -941,391,391,669,98,139,733,685,408,808,15,416,572,209,877,723,547,841,807,504 -135,778,764,845,587,598,590,173,815,458,284,923,873,835,881,936,394,902,647,394 -164,826,395,752,526,102,182,221,436,514,469,684,208,790,834,94,841,416,494,302 -53,865,445,565,56,765,214,637,763,172,507,598,291,975,811,506,466,512,80,297 -591,266,165,426,92,333,753,573,635,929,128,820,386,657,411,374,582,208,906,932 -373,753,81,303,212,544,777,976,225,878,381,546,180,657,548,414,423,373,734,210 -404,922,929,91,535,523,763,758,816,366,606,926,125,864,901,230,739,470,334,396 -884,599,719,614,830,224,576,379,815,216,576,412,872,616,661,390,451,654,540,547 -505,851,755,410,379,791,64,668,377,336,420,165,675,177,479,225,852,666,638,877 -889,546,564,811,423,502,775,589,386,468,896,295,480,337,824,210,169,447,929,392 -774,723,732,545,78,7,840,891,165,927,881,375,374,609,239,818,178,387,815,137 -406,505,787,476,723,233,446,393,94,89,927,672,531,261,123,492,664,473,389,77 -209,330,833,636,533,901,100,635,97,508,535,448,173,98,609,205,428,61,762,549 -661,611,58,373,167,579,83,547,896,936,376,497,537,450,141,532,939,179,76,209 -840,433,62,811,334,734,493,753,468,296,764,512,176,571,397,229,494,751,894,252 -430,426,567,224,63,538,908,504,326,837,925,522,51,843,227,936,821,678,428,214 -534,719,51,395,670,477,603,284,594,127,128,131,829,824,927,75,51,948,395,830 -427,929,993,865,372,936,532,521,371,825,283,896,417,418,182,440,511,519,723,739 -426,578,994,327,414,284,94,83,370,52,852,135,239,830,499,569,300,497,870,437 -659,896,297,444,712,100,421,295,770,519,907,415,567,415,652,228,507,793,925,592 -478,99,769,905,534,165,545,167,663,832,396,554,62,454,615,783,682,476,478,373 -789,830,545,719,410,754,630,786,509,887,930,173,335,741,775,375,547,250,437,884 -433,887,770,172,594,330,215,835,945,603,636,784,84,744,422,172,512,438,284,806 -619,992,538,591,398,748,495,512,425,373,133,168,583,597,204,736,592,815,57,748 -735,936,324,589,432,573,98,374,597,578,717,514,212,328,907,686,410,976,893,447 -129,579,847,216,391,334,177,619,779,918,501,782,78,835,855,578,927,472,811,493 -426,423,387,233,379,512,592,377,750,865,589,916,822,762,540,124,420,635,844,775 -904,170,826,933,297,764,233,330,788,829,112,607,547,777,451,807,384,852,126,298 -511,836,406,779,836,532,8,629,425,840,543,766,929,836,261,372,936,894,686,56 -440,575,517,827,173,497,835,498,752,212,752,393,59,831,875,877,902,818,600,414 -893,558,503,379,83,648,62,903,903,786,630,129,231,454,647,233,177,773,823,442 -949,447,806,275,617,766,909,519,607,302,183,236,58,855,809,629,597,293,526,54 -84,89,134,658,662,668,77,926,454,634,496,296,334,232,598,493,8,418,509,783 -756,713,214,817,790,808,600,395,768,882,228,942,767,387,79,299,790,336,754,603 -788,566,739,325,774,674,564,540,373,62,667,905,100,872,415,575,53,297,859,521 -171,613,400,898,942,216,207,774,260,783,575,905,522,889,851,947,437,458,713,549 -762,926,902,671,589,174,96,615,409,615,475,733,376,295,511,129,658,475,761,443 -203,794,501,514,98,860,79,222,510,792,711,168,646,834,887,208,441,527,289,646 -397,807,398,337,532,667,770,77,735,941,639,542,763,647,604,213,337,811,410,867 -217,568,779,428,765,754,606,883,787,534,544,759,900,403,497,629,210,591,753,734 -130,414,792,410,786,124,833,132,840,653,299,944,137,565,871,236,853,735,514,896 -878,683,597,521,51,410,116,806,176,715,385,289,672,936,82,588,95,174,933,375 -363,425,409,612,631,830,669,96,615,767,173,386,366,654,742,411,59,736,941,821 -520,653,375,83,236,904,720,207,304,762,449,640,527,453,174,549,836,949,545,469 -444,500,615,839,814,893,593,944,301,243,94,825,211,233,903,872,299,645,410,224 -679,570,627,438,327,994,391,669,751,447,293,126,646,138,178,679,228,636,578,594 -549,929,427,373,426,15,668,220,664,776,53,738,941,849,51,52,508,751,406,51 -928,670,436,782,722,335,845,611,664,794,982,945,300,223,131,870,184,409,80,575 -420,238,823,394,436,439,811,820,520,869,261,588,631,677,294,292,762,619,597,989 -824,218,524,766,368,934,815,304,283,266,136,792,412,429,173,750,598,903,746,806 -295,785,365,517,422,885,569,825,831,424,591,218,650,682,476,549,788,858,575,834 -937,579,529,821,572,888,385,608,548,607,367,195,471,627,544,523,828,679,94,53 -437,412,288,372,171,867,506,478,329,786,580,467,610,394,206,453,835,24,616,467 -370,864,331,780,86,886,441,571,648,482,372,932,892,415,753,394,444,541,165,100 -230,855,612,820,396,131,296,98,649,841,130,778,176,862,453,173,135,548,839,637 -794,686,296,285,933,582,679,881,392,515,226,773,763,904,67,439,928,720,610,529 -172,932,676,885,937,494,717,826,70,129,931,220,635,176,781,364,583,880,911,785 -663,717,515,927,837,505,735,825,902,211,540,640,126,420,217,542,716,896,886,719 -868,643,16,472,491,650,933,238,216,613,225,225,865,367,939,433,618,410,477,491 -229,635,287,593,261,986,759,57,528,775,887,529,237,942,138,411,739,495,225,810 -530,758,510,755,823,17,753,570,865,833,732,90,776,793,773,175,751,389,588,767 -474,784,496,719,539,911,566,328,879,928,759,764,819,714,488,532,127,682,512,210 -525,98,416,757,888,646,179,564,826,430,610,99,734,165,702,847,423,829,765,442 -504,383,172,636,297,826,928,757,419,222,182,591,586,154,442,908,440,771,376,138 -982,90,754,495,717,214,56,905,638,531,542,330,876,576,495,329,300,779,712,877 -132,761,568,917,235,669,673,175,529,933,753,757,236,612,821,819,749,221,438,234 -545,451,454,749,514,522,174,724,135,595,289,531,445,386,661,784,861,506,226,893 -334,292,814,939,638,402,878,218,780,72,756,906,864,469,454,401,88,534,823,716 -667,447,238,578,86,864,565,947,392,179,684,588,851,772,572,751,879,66,295,822 -833,445,855,730,935,237,506,401,888,239,94,811,131,379,739,219,469,606,815,569 -403,434,940,633,383,819,237,773,526,910,414,76,630,913,642,524,659,331,791,386 -508,864,872,397,499,467,671,617,868,110,816,812,217,681,942,510,733,948,713,598 -446,915,58,474,752,512,285,299,894,573,749,287,823,375,808,531,540,714,840,409 -137,181,53,496,547,720,714,840,830,829,77,579,167,734,814,447,3,659,432,757 -10,221,846,753,131,787,454,78,714,410,327,455,375,785,234,51,872,328,370,617 -850,890,258,385,754,585,780,528,548,379,678,818,438,896,879,648,893,946,941,671 -539,260,372,127,845,603,711,212,609,366,437,582,239,470,426,540,713,743,785,644 -577,527,523,210,300,289,591,937,204,775,875,293,822,602,713,741,386,566,669,334 -743,421,593,573,296,659,847,388,512,493,779,514,501,76,472,606,678,110,505,768 -898,815,937,384,433,669,513,649,75,260,425,127,679,428,59,658,742,566,383,634 -417,366,872,377,545,811,197,788,430,843,173,57,743,164,337,580,469,642,841,451 -493,790,650,181,293,536,836,574,631,882,843,431,417,432,849,751,225,456,910,862 -392,600,740,847,497,816,658,887,647,910,67,641,774,846,568,893,848,617,381,377 -295,587,837,168,670,783,766,81,823,452,777,51,622,218,732,78,53,428,786,50 -469,433,929,13,468,134,522,546,181,375,509,213,76,771,773,683,139,937,548,863 -852,534,507,547,608,884,564,388,779,811,644,755,653,410,433,101,938,417,174,815 -531,166,750,940,593,595,492,991,52,824,415,227,138,949,867,375,922,328,640,101 -379,334,444,854,923,575,714,412,678,206,203,426,174,977,409,786,838,514,335,368 -52,445,750,778,852,389,787,514,904,659,85,756,727,925,543,203,128,329,495,429 -812,923,884,417,840,611,717,748,949,636,423,838,556,534,665,892,431,681,528,523 -450,218,424,418,493,169,134,288,93,189,880,868,430,389,716,864,678,545,882,521 -789,223,436,540,210,248,55,565,394,59,835,363,509,617,775,535,410,792,684,395 -329,429,750,138,423,435,210,450,387,770,134,736,638,784,452,863,500,582,829,982 -390,82,295,598,519,333,754,290,56,702,217,642,420,506,208,172,846,586,824,375 -418,611,291,496,933,817,730,590,237,501,171,644,588,82,807,172,580,380,499,384 -880,419,139,329,467,283,829,774,442,137,513,466,176,924,818,978,785,741,184,214 -415,537,511,377,135,100,254,879,425,827,591,629,787,90,495,411,169,523,619,573 -378,880,747,744,396,482,446,476,719,497,223,948,940,447,492,168,476,734,834,586 -388,86,83,475,409,926,821,874,872,386,566,685,498,526,832,791,81,129,781,12 -169,473,739,751,592,681,577,544,512,895,86,296,646,454,56,501,325,807,74,51 -939,879,882,572,287,387,585,882,427,564,335,205,505,617,460,411,816,515,931,570 -248,229,410,632,828,508,332,441,867,99,470,632,442,825,640,442,665,544,762,647 -609,564,494,834,853,590,772,532,634,295,808,564,772,71,388,446,632,540,614,793 -225,509,665,234,897,506,777,229,164,768,291,300,545,868,231,733,94,334,521,887 -406,577,87,538,841,494,436,368,642,866,713,134,671,763,246,607,909,780,499,372 -217,439,904,205,528,879,827,685,722,569,880,443,643,580,882,334,496,265,787,298 -98,485,510,893,84,181,567,893,852,849,530,939,84,682,447,638,934,368,716,133 -886,821,210,585,51,178,134,431,213,56,371,859,237,777,526,337,420,628,526,506 -231,428,610,567,297,678,547,842,569,811,914,167,364,675,831,403,767,329,910,869 -455,408,519,715,337,0,84,756,328,466,794,370,868,766,177,437,922,752,326,260 -414,687,466,672,834,664,171,391,682,509,611,948,466,600,234,513,863,769,468,941 -428,716,677,760,611,430,775,818,374,176,611,601,538,885,547,776,665,666,363,752 -751,77,637,133,683,431,378,632,457,62,681,544,62,772,859,578,590,417,863,569 -217,777,134,125,781,169,478,869,924,139,97,898,647,576,392,236,775,443,523,717 -807,774,324,62,948,789,746,939,855,168,645,927,939,449,916,441,584,681,932,720 -210,203,478,220,365,932,333,579,367,424,853,278,591,785,886,218,888,533,99,334 -640,431,220,807,207,683,932,407,203,405,365,875,863,221,555,61,778,592,780,129 -852,203,616,89,639,24,501,790,772,617,220,754,810,757,791,438,775,777,715,296 -449,931,372,750,835,95,206,768,923,907,514,77,601,79,889,433,579,750,217,449 -886,534,548,844,59,198,53,425,205,134,896,867,670,420,58,830,177,639,829,610 -666,911,752,578,835,443,783,135,889,411,736,289,280,220,825,456,832,944,331,923 -806,536,674,788,498,366,633,682,583,134,101,829,196,630,589,433,421,761,669,229 -930,832,478,415,659,821,662,66,659,820,220,633,935,674,535,80,682,293,381,387 -663,298,457,332,128,763,332,84,564,611,604,909,770,204,924,216,745,841,416,288 -781,663,514,858,773,466,719,298,172,825,755,866,453,125,852,826,134,429,648,774 -528,294,866,794,332,379,184,296,843,596,832,614,532,7,792,664,789,935,600,734 -570,222,426,169,873,231,91,679,325,366,614,2,299,876,83,237,53,472,771,468 -84,56,872,684,927,336,820,449,447,902,377,233,86,593,759,403,929,842,169,495 -382,671,442,589,929,128,214,847,237,800,684,599,164,415,525,684,849,217,227,887 -837,745,370,740,855,638,660,89,56,866,224,593,508,511,191,441,134,939,782,887 -814,200,401,891,384,763,885,83,126,478,792,420,910,614,175,822,818,225,764,92 -716,716,930,388,111,635,842,505,182,467,591,744,88,414,543,444,611,387,512,675 -379,887,80,594,844,629,677,722,632,874,238,940,847,942,776,519,193,905,261,930 -433,838,779,208,165,443,477,78,764,521,366,397,612,846,606,747,404,431,106,291 -386,650,474,331,939,610,489,650,419,416,442,286,93,365,582,367,334,840,642,394 -818,302,50,794,820,755,561,661,884,683,631,130,867,723,419,807,848,610,382,889 -928,907,467,614,53,271,511,825,578,827,182,814,431,760,541,765,661,299,51,523 -377,602,752,169,83,806,527,544,294,325,228,876,866,367,505,531,288,871,368,866 -368,854,817,328,923,139,498,547,503,431,897,733,543,288,774,614,84,169,540,525 -599,300,226,628,206,294,638,369,906,527,451,453,937,539,222,367,991,942,881,467 -513,93,600,794,166,170,416,863,528,511,77,508,115,598,775,217,629,806,512,928 -760,857,415,525,762,420,716,738,371,684,290,285,821,810,777,498,810,944,336,648 -105,401,503,565,216,787,548,474,382,939,754,827,924,515,755,438,166,770,773,418 -871,843,223,588,739,591,328,541,617,678,541,542,916,182,450,776,807,908,424,764 -363,396,96,390,892,572,407,780,738,212,298,785,233,164,807,235,76,213,252,777 -565,888,366,557,669,418,778,569,380,447,413,166,907,675,878,810,417,618,401,788 -368,592,393,810,382,571,741,285,586,632,240,237,779,331,886,378,765,445,869,135 -138,522,637,817,684,176,581,926,755,380,765,304,441,898,231,743,836,379,670,131 -291,632,821,659,939,514,643,616,124,579,678,619,367,729,518,768,756,386,167,365 -818,240,750,237,87,472,769,213,842,260,225,767,629,593,820,775,838,774,764,466 -478,769,88,248,716,584,78,751,372,583,85,218,294,446,328,396,83,130,166,668 -444,814,476,67,946,629,911,525,589,864,945,478,180,403,835,474,494,218,177,292 -527,947,533,500,658,740,737,87,572,97,501,435,911,621,934,466,260,479,413,288 -73,304,911,761,412,863,891,590,869,638,662,132,410,397,711,477,92,56,576,736 -89,478,284,203,755,889,237,417,886,424,925,659,713,480,774,56,758,224,62,75 -871,455,60,675,606,13,516,378,884,506,236,443,763,176,586,789,377,767,547,167 -285,673,284,130,223,327,575,633,582,986,390,855,441,494,719,907,763,794,757,610 -507,376,837,101,822,670,466,504,838,595,831,885,405,940,657,62,448,197,757,791 -788,564,847,786,55,715,288,818,219,468,905,291,789,459,75,792,337,894,515,868 -671,429,286,888,436,647,735,756,324,907,260,780,459,509,513,775,180,781,439,300 -90,507,533,401,125,80,590,645,872,89,132,878,502,302,746,941,737,556,874,508 -597,884,580,849,431,324,418,767,294,532,405,248,785,940,215,841,403,78,374,721 -164,748,435,617,869,936,855,607,515,462,784,453,927,83,532,600,207,379,503,814 -15,468,58,223,843,878,633,478,741,224,96,751,784,767,736,531,750,216,643,619 -472,523,843,481,849,943,90,543,381,572,382,842,566,335,891,911,630,712,420,533 -5,923,539,213,810,869,738,757,285,878,535,385,432,667,793,454,775,659,401,944 -518,80,925,723,880,425,914,577,470,475,937,448,409,433,678,794,456,85,889,381 -602,823,404,176,842,814,528,136,583,716,834,429,908,627,292,744,833,926,855,545 -669,209,366,126,716,747,882,540,825,452,617,588,816,228,136,288,126,918,871,452 -865,794,237,654,433,630,722,615,541,790,174,609,128,519,682,232,179,644,527,214 -401,894,435,543,717,546,238,205,787,555,905,761,407,524,376,757,443,205,373,869 -668,906,228,733,719,835,751,776,515,83,782,851,836,788,570,577,605,500,86,927 -759,612,391,602,85,506,946,661,385,408,455,335,363,428,658,416,678,129,853,292 -853,228,50,399,576,753,422,770,529,862,181,783,391,300,382,784,217,377,366,819 -892,842,432,824,181,286,472,467,57,331,884,467,498,298,881,892,770,333,825,484 -853,936,792,598,389,886,11,176,661,444,535,599,89,842,377,908,722,216,421,759 -182,685,736,206,368,93,877,674,785,837,291,806,324,705,421,877,819,422,490,834 -58,516,178,532,89,580,516,214,503,612,199,379,758,167,723,238,59,865,536,405 -564,785,445,176,823,540,884,85,946,890,641,54,834,218,542,928,247,499,229,832 -925,414,905,199,649,946,816,735,644,753,761,779,328,661,880,849,769,657,547,58 -184,583,534,844,366,300,910,767,873,24,325,947,870,183,806,80,659,79,470,457 -885,683,826,722,759,514,52,403,850,178,133,520,214,867,608,618,512,446,900,711 -660,747,211,443,607,632,95,77,580,826,576,774,804,533,947,747,59,592,885,852 -513,435,73,615,179,91,873,383,61,455,82,181,754,721,635,869,86,947,893,52 -937,454,927,932,935,212,227,640,135,762,477,849,415,822,681,577,628,872,9,683 -374,909,607,775,934,588,373,290,612,457,337,216,545,495,294,134,443,487,742,84 -524,900,87,874,742,671,133,547,82,394,847,444,594,368,751,549,637,237,673,867 -456,661,828,85,215,912,720,212,477,90,609,642,847,587,835,905,98,454,780,366 -873,292,55,833,285,369,405,52,217,650,293,637,926,199,165,662,824,296,223,526 -8,429,574,364,80,184,540,590,680,826,438,399,380,503,180,739,388,641,526,182 -756,57,236,212,789,808,571,544,81,722,387,617,862,405,396,518,864,169,455,82 -93,402,449,610,641,928,2,212,239,420,838,905,790,55,99,946,181,418,748,941 -425,68,840,423,217,790,470,288,847,669,791,546,718,781,415,81,395,809,935,573 -21,330,375,595,738,948,523,82,713,335,682,501,296,325,289,90,290,574,426,379 -410,51,139,410,534,226,520,422,438,498,614,821,495,850,744,396,169,515,440,901 -577,171,878,134,600,368,171,169,450,229,761,843,82,575,870,886,64,455,414,564 diff --git a/src/files/P2.txt b/src/files/P2.txt deleted file mode 100644 index c617b81..0000000 --- a/src/files/P2.txt +++ /dev/null @@ -1,1000 +0,0 @@ -6-7 w: wwhmzwtwwk -10-12 q: qqqqqqqqqqqdqqq -16-17 d: ddddgdddddkddddsxddd -2-4 q: shbqwqpps -3-4 q: qkfq -2-10 m: bkdrmcfdhmr -13-19 s: blccvhsgsnsssqszssm -1-3 l: qlxllhl -4-6 h: hhhqhhh -15-17 l: jrtllrlllllmmlllg -11-12 n: bnzlnnnnbnntnnnc -1-7 p: pppvppjppmptp -5-6 t: tttnht -8-12 g: glbnlqgggjkh -1-8 g: dvgsggngg -13-16 x: xxxzxxxxxxnxjxxxx -6-9 m: ffmwhxxsm -10-11 b: bclbkkxblbbb -5-7 m: mtmmbmmm -2-4 c: cdgdkcd -9-15 f: ffffffffpfffffbffff -2-3 k: kkkqk -12-13 s: ssssssssssssgs -13-15 d: ddddddddddddcdqd -3-10 g: vpgqrvqnlpgjd -12-16 x: zrrxjxvvrcnkwklddm -2-6 g: lgjwpg -17-18 b: bblsjbkrbbbrknmgbx -3-5 c: ccpmcsvfxlhgbgccccxw -3-6 x: zsxrhxnptxtwwbbb -18-19 h: hhhhhhhhhhhhhhhhhcbl -12-13 h: hhlhnqdhttwhqcwdd -17-18 c: cccccccccczcccccfcc -9-19 h: shhhbhhhhtwhkhnbhfp -7-11 c: tntwmfzdncchszl -5-8 x: pxmkxmzbbvfldpwc -3-6 n: rmwnqnlt -5-11 z: zzhzkzzzzzq -3-4 v: vwvdb -6-9 t: ttttctttb -4-5 h: hhbzc -2-4 c: cccpccmpcp -6-7 w: wwwwwhwwj -4-9 g: qgbwsqlgg -2-4 c: cddc -6-13 r: bqxjlrdrgdjlhcpqp -9-15 f: qqflwbjgffwfxkv -8-11 t: txtstwzrggtcrtttmpp -6-11 m: mmmmmlmmrmmmm -7-13 c: ccsbbcccmckpzrsncbvz -6-8 v: vvdvdrvkv -8-11 h: mhhhvshhthhhhtmshhh -1-5 k: ckkkkk -2-3 v: nhvvqnvlz -13-16 z: zzzzzzzzzzzzzzzfz -2-3 k: gkrj -16-17 h: hhhhhhhhmghhhhhhrh -3-4 c: cccs -3-4 s: ssssssssss -2-4 r: rlrg -10-11 d: ddwdddddddz -7-12 c: pllhkcgrkmcmxqwccclv -8-9 b: bbbbbbbbg -11-20 b: bbdbbrbmjbbbxsbgzbsm -2-4 m: mmqmmfthp -8-13 w: fwgjkfwwfcbpwbh -4-10 t: tttttttttqtt -11-15 k: pkbmgkkkkkrkkkkkkpkk -9-10 k: mkkkkkkkkg -16-17 b: bbbbbbbbbbbbbvbbt -12-14 h: hhhhhhhhhhhphhhhhh -5-17 z: knzcjlgjlkvglrsqzwt -4-6 s: vwpjsds -1-4 j: jjqgnqq -2-3 b: bbhb -1-6 k: kgkkkkkvjkkkgjkk -8-11 d: dddddddnddd -5-10 w: hdbcwwqltq -5-6 t: tttttttt -2-6 l: lllllqlllclgltllj -2-5 k: kjkkckkhdkkkn -12-15 l: llvlllllllljplw -1-3 d: ddnddddcdd -8-14 b: vbdbfbhsjbbgbpsbq -9-12 z: zzzzzzzzxzzzz -2-3 w: swmt -17-18 z: pfpzprvxdzvkzzhxpz -9-10 p: lpqppppspjprmppnp -18-20 r: rrhrxrwkrfrrhgkmftrr -5-7 x: ppkbxxp -2-13 s: skqtnddznmqlsjfn -14-17 l: cdlkcxpvjghdnlllqt -3-9 t: pttlpbdhtvtkjgh -1-6 b: zbbbbv -1-3 r: vrqr -7-19 h: hhhhhhqhhhhhhhhhhhsh -11-17 g: gfgmsggzggpgbgggggg -15-18 b: btzwbbpbsbmvrbbjncb -6-9 b: bbvbcxxbbbprbbbcxqvp -4-5 r: kqrhh -5-12 n: ncnnnmnnmnnf -8-9 p: nnmmbqcprcbppzgdjft -6-8 h: hhrhhjhh -1-6 t: ltjmrtttttnzjtcttv -5-6 g: gvgwgkgg -4-8 q: znlthvfskq -1-7 q: qpqdrzq -3-4 z: xsqztkz -2-5 w: bwwwrjww -3-15 k: kkrkkkkkkkkkkkpkk -1-4 z: pzbzztkv -2-4 h: nhbg -1-6 q: hwntnqpwhcqknpfkqn -12-14 p: ppdhllppptjcgp -6-11 k: kkkkktkkkkkk -10-12 f: fjffzrfqffcfzfcf -1-6 m: lzmmmz -18-19 z: zzzzzzzztzzswzzzgxzz -1-3 g: ggbfxgg -1-3 c: xgcwxmtzjvlcp -8-10 z: zzlzzzpbzdzz -1-9 s: qpsskgwsssvksfvxsss -7-9 j: tqxjtjddjjjjjjh -4-17 h: xhhfhhhhhhthhhhhhhh -11-13 n: nnnnnnnnnnsnnnnnnn -12-14 j: jxjjjjjjjjljjd -11-15 q: qnprkqtqcntttqqwgqx -15-16 h: hhhhhhhhhhhhhhbhh -3-4 w: wwtw -2-8 n: wqnnmngnnjnnnnv -5-6 k: xbkrklb -3-7 l: lrvlrlllfhslsl -10-17 t: fhltmsgptmhckrvkttzs -8-9 k: kkkkkkkxd -7-9 d: dddddfddddkd -8-11 m: mgdmmmmmmprmmm -5-16 s: ssssmsssssssssssssx -2-3 k: kkmk -2-10 m: mfmmmmmlcmjwm -9-10 k: kkkkkkkkxkk -8-9 l: jkzdnljrlgnf -2-3 h: vdhlhpcdsh -8-13 h: hhhhhhhphhhhhhhh -13-18 k: kkrkkxkkkkkkrpkkkkk -1-3 t: rttptklrtvtp -8-13 s: jhssbsssssslb -16-18 v: zpfwlvcdbjpcxfhvtlrv -5-7 j: jfmjljj -5-10 c: cgctckffldkcjd -10-11 k: kkkkkkkkknk -10-12 g: rggggggggggwg -12-13 n: nknnnnnnnnnnnn -2-4 c: vdccccf -2-5 b: hblbb -1-4 m: spmm -12-16 s: shsssssssrssgssdss -10-11 x: xxxxxxxxxxpx -2-17 z: xzjmjdclpdtqjhhqm -4-5 j: qjljz -1-2 t: ftttr -4-5 k: krnktrmjvkcqdwm -11-12 n: nljwhlkpdknfl -12-13 x: xxxxxxxxgxxxj -5-15 j: jjhvjjjqjljpjjkjj -3-5 w: hqwkmmqddbncznm -5-14 l: lllllllllllllll -9-20 z: vvfmxfbpzzgmcclhgzzz -8-9 x: xxxxxxxbjx -5-6 m: mmkvmgdmm -1-13 x: qkxlvzxxxxxxxbnx -7-8 r: rsrrrrbrlrr -2-3 r: lrndhwcbxf -4-8 q: qqqqqqqwq -6-11 g: bxzlpftzfwk -1-3 k: hlkwkgh -4-6 c: hmchdm -2-8 d: ddgbxrfc -2-7 b: tnmtcbbrwnvwsmfmd -17-18 p: btpppwcxppqpspppwp -13-17 d: dddddxzddddddddddxd -5-11 z: zfvzzzzzzzpz -5-14 z: zvkzqzzzzzzdzpzzzzz -4-7 n: nnwnqntnmnn -1-6 l: blllllllll -11-13 f: fmffffflrfzfpf -3-11 v: zqvbjxvjvbvnsznkm -7-8 b: wqbbpcbb -1-4 s: jzvwscxzsd -2-5 w: wwtpn -1-3 k: mklk -6-7 v: vvvvvvv -4-5 n: gnnlclqbnwgngzc -7-14 w: scdwgdzljgdwmww -9-10 b: brmnhptdwblr -5-12 t: tchrszgdttmpvntwdpv -12-14 j: vjnzjjppjwhjnrpj -5-6 h: rmjhfhdh -2-7 h: hbptmhhh -5-8 n: dszknnnnrbxc -13-15 p: pkpwdnqvkdxtkppcdtrp -1-8 s: sjssssshss -1-2 p: pbtprdj -3-18 k: nkkkqkkkrkkkkmkvkkmk -15-16 w: wmwwwzwbwwwswwqswwrw -7-12 d: dsdzddvddddjldddcxd -10-11 r: msjrgbrgrlr -1-2 t: tttltpqtqzt -3-4 n: nxwnpnk -11-12 k: jkkkkkjlkzfvxzkk -6-7 m: mmmmmmz -4-6 r: rbghdr -2-4 k: kqqkxkktkxkkk -7-9 t: jlfttntttdt -5-6 t: sttttzk -5-11 v: vvvvvhvvvssvvgvfv -4-5 m: mmmqm -13-16 r: rrrqrrrrrrrrrrrpr -3-5 t: pdrhtt -2-7 x: zgkxxxxszmhvb -5-6 q: qqdbzd -3-5 g: gxgst -6-14 g: zslgrmgrgjgglg -12-13 q: qqqrfqqqqqqqqqqqqx -2-3 r: lrrr -5-6 n: qnnnfnnn -4-5 w: wwwwmw -1-8 h: hhhhhhhhhhhhhh -3-4 k: kkrcfqxvqhqxzvkkt -7-13 s: tsrmwckktjnqslm -2-17 r: rrrrrrrrrrrrrrrrhr -4-6 q: qqqqqdqqq -18-19 m: mzxmzpmccmcmmmmmtmm -5-11 m: cmmmlmmmhmsmmmmm -17-18 j: blqwsqcjjjfrjrjzwh -2-19 s: zsmzkcvcmjlsfwfzqmcn -2-7 g: bgjkglnqnf -5-11 n: qcxpjnfnnnnnhjvn -4-5 r: cwzrrpmwwbrkbrrcr -5-6 n: nhthvnfngd -10-11 b: xsvrvbvnhbn -9-11 j: jkjjjmjjjrkjmjv -4-5 v: kvvvw -4-5 s: scnfs -3-4 n: bmff -1-9 r: rvnfbzklr -7-9 h: hmbhhhhhhh -2-8 d: dddlddddddddd -3-5 b: vxbbp -3-6 j: jjzjjj -3-4 q: qqrq -7-17 s: vssrsswsssqssssvsvws -15-16 x: czxkgcfwxdxxmxxx -1-11 f: jdxfccfbvffmh -1-5 r: rrrrkrrrrj -3-5 k: kkzklkkk -3-9 f: hxqfffpfff -13-17 q: cqtqqqgqkzqqqqqqjwq -4-5 r: srwdtrr -3-4 c: ccnc -10-12 d: ddddfdddgtdg -4-9 k: kkkkkhlkkkkkkk -6-7 q: rtgqnqxpnq -11-14 v: mhnvnjthhfvvwvnzjjrj -9-11 b: mxzvbwvrqvb -7-8 z: zzzzzzzzzzz -8-12 z: bstjbngzfqppdvgwxddk -3-5 m: tgmvv -1-4 d: ddsxbxkmxhxrhstz -7-8 w: wwqrwwrk -8-16 h: hkkhhhhhmhjhhhhhhhh -11-14 l: lllqlllllllllcglf -12-14 w: wwdwwwwjwwwwtwwwwvw -3-4 g: ggvgg -7-9 q: qqqqqxqqqhfqsfqqbqvv -9-10 q: qqqqqqqqtqq -11-16 s: ssssssssssdssssjs -1-4 g: gggm -7-8 m: mmmmmmkmm -7-8 d: bxfdddsdp -7-8 d: ddddddwzdddddddddd -5-9 w: wwwwwfwwfwww -3-9 r: fqrchrrjwbrdsdtrr -13-18 z: zzzzzzjzzzzzzzzzztz -11-17 p: pskwgpmprpspvqpxp -4-12 z: zzzczzzzzzzzz -3-5 l: lltlnll -3-13 p: qvpnxrxprjdtpcspjck -7-9 m: wzmvxpfhbmjc -8-9 j: jjktkjjhjjjj -8-14 d: dddddtdddddddmdddd -5-6 b: bbjbcbbhbc -15-16 d: ddddddddddddddjd -12-13 t: tttttttttttts -2-4 r: rqrmr -6-13 g: ggtgggcgjzggtmgtgv -7-8 m: vmmmdmbmcbmm -9-10 f: ffffffffft -6-14 d: mqtfhdbrdsdljkrfnhw -3-12 b: lqbbcblbbxgbbt -2-7 z: nsbqqlzszzwtgqz -8-9 f: lmxqslffrd -1-4 f: ffflf -8-10 h: cqfsjlkdfhhp -6-7 k: kkkkkdk -16-19 n: nhnnvxnhjnnmnjnrnnkn -1-4 g: mggzgghgg -2-3 k: tcknkbkgcvl -8-11 q: bqqqqqqqtpq -12-18 w: wwwwwwwwwwwwwwwwwww -2-7 t: fljgtvt -2-3 w: dwmsltbqnw -7-11 g: szpgzxgggggsgr -8-17 p: pppppppvpcppppppmppp -1-7 p: pjpnbqk -1-6 z: zzzzzq -5-11 m: smmmzgmrjmm -6-7 s: rkkwvssqdhgxqx -5-6 r: rrrrrwrr -3-8 k: gkkjtfztsxrt -5-15 w: wsrrwwwddwwtwss -4-5 p: pppprp -13-15 z: xzjzzzfzzwzzpzdzzz -4-8 f: fqfhfbqfffvrfsfpf -16-17 g: gggggggghgggggghg -8-11 v: pchlvdfmvjrpsdsgw -5-6 r: rrrrwrdrfrk -6-8 f: nxmfjhkf -19-20 m: stmqmrddplzlwzdjbsmk -10-15 c: jccpcscccpccccxccccf -4-5 j: ksjjxjmvjwrjlqvxr -15-16 m: mmrmmmmmjmsmmmcm -9-11 l: lsrlfgxxcfs -4-5 r: lrprj -3-8 m: zdmmxmmjmmm -3-9 x: xxnxxxxxxxxxxx -6-10 q: vsqbjvpnnqqnhz -5-6 h: xghnhqmzf -5-6 c: rcgphkccb -5-6 w: wkdwjwwwp -5-7 v: vvvvsvv -1-6 c: ccccccccc -6-9 f: wfbfsfkftffffz -3-4 q: qqwqqqqqq -5-8 m: qmrmqkmgw -10-12 q: pqqqqqcqmlqnqqqjqq -2-11 x: bxxqrwvmpwwxkrx -6-8 f: fhlvlffn -4-7 w: wwwwwww -5-7 t: nbcbtpb -2-7 x: xdxxzgx -8-19 p: llgkthwqdpwcdcptlzp -12-15 x: xtxgxsftqgccldxc -2-3 l: xlklt -2-4 s: mwws -3-4 w: wwgw -6-7 m: mgmmmpm -8-9 f: mwzfmmkfw -4-11 s: ssssssssgsbssss -1-2 z: zzvxl -7-9 m: mmmmmmlmmmm -2-3 r: brxrt -3-5 v: hdrjvwv -3-7 f: bknpftfs -10-17 p: ppkpfpglfpgpzwvwxt -2-6 d: cddzdfdd -1-3 d: pdddd -13-16 c: cccdccccccccccch -9-10 x: khmxxwmqwxglf -1-3 q: qqqq -3-11 v: whvlvkrknmn -18-19 w: wwwwkwwwwwwwwwwwwshw -12-13 g: lgcqwrmggxmbg -8-13 x: xxxxxxxxnxxmk -3-8 m: mmmmmmmmm -7-17 d: dddddddddddddddddd -2-6 c: sccspkcccbz -1-4 b: bbnzb -3-4 m: mmmd -3-4 v: pmsv -4-7 t: qttttqd -8-11 b: bbbbbbbbbbkb -8-10 j: dlwsgtjdqv -5-7 x: fxxxxxj -4-6 p: ppppzlp -6-7 n: cnnnxgtnwnnnn -3-7 d: jdddjbpzddpd -4-19 x: xxxfzfxxxxqxxrxxxxmx -9-11 q: qqqqqqqqqqcq -14-16 r: rrrrrrrrrrrrdtnrrrr -8-10 k: kkkzkkkqkqkk -4-5 m: mmmmhm -12-14 b: bbbbbbbbbbbbbb -8-12 m: mmmmmmmmmmmzm -4-5 j: jjjfk -8-10 g: ggggggggggg -13-15 d: vdzdmdpxdnddxdn -6-7 m: pmzmmbnmmm -1-13 p: ppppppzpppppzpzp -2-4 z: qvfzfsscrthxtwpbkwsd -5-17 v: xtbdvdlrllvnphbcm -6-15 m: dbdmwmpnfmnhpmmb -1-9 p: ppppppppqpp -3-4 v: kvvqb -3-8 j: fxrcmjkxknlsn -5-7 w: wwvwkwt -6-12 v: hvmwwzrkjvhvjwlsjxv -3-4 d: dvzd -4-5 m: mmmmk -3-4 g: fghg -5-6 m: mmmmcmmmmmv -5-6 t: rlngtbbrscwf -5-15 w: wwwxwwwwwwxwwwqww -1-8 d: wddddddcdddtd -3-4 f: fffff -2-3 z: kkzzgzkc -9-10 z: zzbzzzzzzvvzvk -1-5 v: dvvgvvqvtsvvlsmj -8-9 g: ggggggggg -4-5 k: jkkkv -10-12 f: czbfffffffzwd -8-11 x: wshfbxnfxxxxxqpxxqqx -4-5 q: gmsqbsx -11-14 k: hkjkgkwkkkkfnp -2-4 c: gccccmccc -3-7 r: rrrrrrkrr -8-10 r: wrrmrzrrtrrrrr -4-10 s: stwnclhsss -1-9 l: lllgbxllr -2-4 v: dvvjgv -3-6 p: mrppkm -3-6 l: llnllll -9-10 v: dcvvmvvvvcvvvvvvl -1-4 d: dddzd -10-18 n: npnnsnlxmxvcnmgnqpns -4-5 l: llplh -4-5 x: mgxxzdcbqfglqrzshk -4-5 w: wswwzlwwwjw -3-12 w: wwwwpwwwwwwqw -3-5 g: xgggr -6-10 r: dlrjpncmsnq -5-18 t: ttttwtttttttttttttjt -4-5 f: bfdfr -3-4 p: pqvrlnp -6-11 d: knsrhrbcjndmgxhcphjr -3-6 x: xkkxxxx -4-12 t: thtjsrptttmmtpbbcctb -11-12 m: mxcmfbmfxmpmlm -15-20 c: cccpckwcbgscccccwccc -5-6 t: rrttgttttttrtnj -3-4 n: vnnn -2-3 x: xxzxxxxxxxxjxxxxxd -4-6 v: vvvvvj -11-16 q: dqqkqqqqqqqqkphvcgqq -13-15 j: jjhvjqjbjwwhjkj -6-7 q: dkrgqfq -5-6 j: gjjjcbj -7-9 n: nbqjklnnt -1-10 z: gzzzzzzzzzzzzzzzz -10-13 q: qddtjhrlsjkqq -4-5 q: zndqjhkznkfxkbdn -14-20 v: vfhvmkvvmvvlhssvvtvv -3-5 z: zzwzzz -16-19 s: sssssssshsssssslsss -2-4 k: fkks -1-8 t: ttttttttt -6-11 s: swvsvmjszskdjfp -3-4 b: nqrb -2-14 r: rcvrrvlcrrrnrrrkv -2-4 z: zjqznwzzpzz -1-7 h: phhhhhhhhhhhhhhhh -14-16 v: vvbvlvvgvvvvvvxrvvc -4-5 p: pppsp -4-7 b: rbdpbbplmqxbbb -1-5 b: pbbbbbbbbbb -1-5 d: dddddd -2-3 g: gqwg -12-13 d: dddrddqcldbpfc -3-13 n: chnthxplvnnvcxdwj -1-11 c: cnnctbgrvgflcccsc -10-12 n: nnnnnnngndnnnn -5-7 z: cjqpzzz -15-18 z: zjhzkzhkzzwzzqmslz -12-17 m: mmmmmmmmmmmgmmxmmmm -5-13 x: jxfxxxxsqtmkd -9-11 r: gsrrwrbrrrrjrmndrrrq -7-10 b: bbbbqbpbbqb -11-12 q: qqqqqqqqqqdq -1-9 h: hhhhhhhgvrhhh -14-17 l: lxlrfcnnlllllwvcllb -1-2 f: rppf -13-15 f: wfwrcwffffkfnnfffl -5-7 h: hhhhzhhhhhh -2-6 q: qqpdljq -4-12 k: kfwnkmkkkkkk -3-4 r: prqr -8-9 p: pppppppppp -16-17 c: cccctccccpccccctccwc -3-4 r: lqfrfkgtvrzb -2-4 g: gglv -3-5 z: zhzcz -3-4 p: ppgpp -6-8 q: qtmqqvkq -5-7 n: ksrnnnbsjls -2-9 z: zrlccsztzzzzzzh -1-8 s: sssssssss -3-10 z: zzvzzzzzzzqzzz -4-5 w: wwwzww -12-14 s: ssssssskssszstnsssss -1-9 k: kkkkkknpkkkkdkk -2-4 t: qnstqt -4-5 q: qqqbq -7-8 p: kkzpptpj -7-17 c: cccnqhckxhcxckmffbv -9-12 l: llpllcllllllzplhglz -6-9 j: jjjjjjjjrjj -6-8 l: lmllllln -4-10 d: dddldddkdd -13-18 m: sdkgmrdmmsxjcfmcwdwv -1-5 k: kkbkkk -8-9 b: bzbrbngbh -14-16 d: mdhdddpddddddkddgddj -5-6 p: zjmplf -3-4 x: xksxrx -1-11 w: wwwwwwwwwmxwzw -4-9 v: vvvdvvvvvpvv -3-5 x: bwxxq -3-5 k: ntkklsjkqvwvkxkqtkwr -2-4 c: gcjc -7-8 h: hppwshwhnbhk -10-18 n: nnnnnnnnnnnnnnnnnnn -8-13 w: qwwvfxwpwlwwwx -2-6 b: wdlmtbhkfnb -2-12 z: zzjqjkzblzzmfkzzz -8-12 s: svgsfssqssns -11-14 d: ddddddddddqddc -16-17 x: txxxrxzdxxxxxvhxxx -2-8 l: rllvllwxllkl -18-19 c: ccccccccccccccccccs -9-11 l: llllsllllrx -3-5 n: nnnln -5-6 k: frmkkz -2-4 l: tlmj -4-5 m: mmmvvm -15-17 k: kkkkmbkgkkkkkkkkmk -15-19 h: hhhhhhhhrhhhhhjhhhh -2-5 n: xnnjnd -7-9 k: kxkkkrxkvrkq -3-4 c: rccbm -9-10 d: ddldddrdkp -14-15 h: hlpcmhbvzhdhphr -4-5 m: mtmmvm -1-4 m: xmjmmm -3-18 m: qxmwmmbrdtxtqwcxfm -4-5 p: ppppl -6-9 s: ssssksssrs -7-11 q: qnqwxwppmqqqqwlk -3-5 w: wwwwww -13-15 v: vvvvvvvvvchvfvp -6-11 z: zdbzzqmkztzt -7-8 d: ndwmvdldx -3-7 h: hhjhqhhmpfzjvgmh -11-12 m: mmmcmmmcmhqf -7-8 x: xztkvxxd -2-6 h: wcnhzvh -4-5 x: xlgxpbxt -9-11 t: ktdtdxttgnm -3-10 j: jjjjjjjjjkjjjjjjqjj -11-14 x: xxxmxrxxxjxxcwxx -6-8 w: wcpwhfzwwcwj -1-6 n: wnfgxnnsvknngm -3-6 n: fkjnlnn -16-17 f: ffffffffffftffffx -3-4 v: vvzvv -11-12 r: rrrrrrrdrrrr -5-8 m: xwmmmmmmmmmmmmmmmmmm -4-7 x: nxxxkxx -7-8 t: ttttttxtt -7-8 d: ddddhddd -11-12 k: nqcbtrkvmwskm -1-2 d: dkdd -3-5 r: kbrrgxzkbr -1-4 d: ddddddfddddddddddddd -3-5 k: kkqkkkk -8-9 x: lrxkxhxxcxxxxd -3-8 s: rksdvzsss -7-9 k: kzhkkqmkm -6-11 h: hhhhhhhhzjhwcmnhhsh -3-5 x: fzptx -10-11 z: zzzzzzzzzhz -3-4 w: qmswdcdmxqwwqj -6-7 w: wwwwwnw -14-15 x: xxnxxxxxxxxxxxx -15-16 g: gkgpdftggvgchgsgl -2-7 k: vbvvfgkndklkk -2-3 c: qmccbcpzc -5-7 s: srssrssj -11-15 j: jjjjjjmwjjjhjjq -3-8 h: hktmzhhhchvhf -16-18 t: tttttttttttttttttrt -5-7 v: cvvknfvvv -1-4 c: xbgccfccqqvbgjtc -1-3 p: ppxppp -1-11 c: cgzddqwfkbc -2-4 t: xttht -14-16 w: pzvwgwwwwrhwlwwb -2-16 q: znqhqqqqzqpqqwqqqqq -16-17 w: wwwwwwwwwwwwwwwbwwvw -1-5 m: rmmmm -8-9 r: mfsdnqczrrqrdwvtcs -2-6 k: vktqrg -4-5 b: bbbrbbb -6-11 t: dxrnktlnbqtqt -12-13 j: jjjjjjjjjjjjj -15-16 l: lllqfllllllllllpll -13-15 j: jjjjjjjjjjjjbjz -18-19 z: fzwzxzzzkzmzzzzlpmn -2-11 n: nnnnnnnnnnpnn -11-14 n: mgnncnnnnncnnkn -1-4 n: rskn -3-4 g: xggg -3-5 d: lddgfg -1-5 s: thcss -1-12 s: cbzfbqstssqbss -4-7 z: jbfzzwnqhsgxxvndzlg -7-9 v: dbqzstvbcxgncgszp -6-9 b: gfklpbfkbbn -7-11 s: mslxkdsrtgss -3-5 x: dxxgd -8-10 n: npgnrbgnzr -3-4 j: mtzjrkmgfqmjbjhg -12-17 j: jjjjjjjjjjmvjjjjmj -5-6 j: srpckj -1-2 t: thtt -1-3 b: gbrl -19-20 p: phfppphpdptrxpwpzvcr -2-9 v: mvkwmtkhm -13-16 m: mmmmmmsmmmmmrtmm -5-11 f: ffffffffffffffffffff -2-8 h: hqhhhbhhhh -16-17 k: vjzqgvfqkrwtnldkcb -2-3 z: dzpptzzztzfg -6-7 c: brwcfcw -1-7 n: nnnnnnnnnnn -11-12 b: bbbbmbbbrwhbbbb -6-7 p: pppppgj -5-8 t: ttttwtttt -2-17 v: vfvvvvvvvvvvvvvvvvvv -9-14 p: ppbpdppppdpppplzqg -1-4 d: dddfdd -2-4 m: xbvmnmvmpsmfvpdzh -1-10 b: bbbbbbbbbxbbbbbbbbl -1-4 b: bgglftqqt -4-6 z: nzzfgzzzzzzkzzztf -2-3 r: pxrqdmrz -6-7 t: thttttrtt -7-14 d: ddddddkddddddjd -3-4 s: hsrsr -13-15 x: xwxxxjcxxxxxnxxxxs -8-12 x: xdmxqxxgxxxxzxxlx -6-14 w: wfwwwwjwwwwwwww -6-19 c: ldrqmvfpkrtrtqkcvtc -9-11 g: ggggggggdgg -3-6 h: hhhhhh -7-12 n: nznxxfdnnkrlnnfnnn -3-6 z: zgdzqztv -13-15 c: gcwsjjvnbnpkzncjlw -1-4 d: ddbg -5-15 t: tpntttttttttftrrtt -1-4 r: crrrr -7-9 d: rmddspmddz -3-4 w: wpbwzswqtwpwxmtpj -11-13 n: nnrnznjnncdnn -1-8 g: bggggggggg -11-12 b: hzltbtqgwxbbxb -1-3 b: hqbz -8-13 f: ffffffwfffffd -1-5 r: srrrj -2-5 f: fcffff -6-16 s: xmnhmbzlxvsmrffskl -2-3 t: tttgnxmtsdttttt -3-4 l: lplg -10-11 g: lggggggvggggggggw -6-11 v: vvvvvvvvvvwvvv -1-9 p: lppspptpp -6-10 p: zcpfqphgbppvcfmz -1-6 v: vvcvvzvvkv -5-8 g: ctggcsxg -3-12 s: sstsfjssssss -6-12 z: zzzzzzzzzzzzz -6-8 r: crrrrrcrrs -7-12 b: bbbbbbbbbgblbvb -2-5 f: qttqpfxmlf -4-14 d: dddddddddddddgd -15-16 k: wtchnbbwkmzsmrkk -1-4 n: nnnznnlnhnnwnznnnnn -5-13 f: ffrffffrtsndc -5-18 t: dmtwqmccltqrvkntft -1-2 f: fdnnslrfdv -2-6 r: txdtlrtbxrrxdsmrr -2-6 f: ljdgff -7-10 f: fddfffltfh -5-6 j: mjgjrgkjdj -3-8 j: mlbljhzn -5-6 r: slnrbjgr -10-13 c: lcxxccpcbvgdccgccccp -9-18 v: vvrnlvvvvvvsvvvsvvvv -6-7 k: nkkkkxk -3-4 q: rqqw -10-12 p: ppppppdkprppp -15-18 d: ddddddddddddddwddddd -16-17 n: nnnnnnnnnnnnnnnnlj -6-10 p: ktbfplppnp -1-7 v: xqpvxrm -5-6 l: sldflbxpdlltzlpjpml -4-13 t: tttvtttttttttt -15-19 x: xxxxxxxxxxxjxxxgxxdx -2-8 p: hhjdqvzmhxtkbbcptshb -14-15 g: gggggggggwgggdngg -9-11 j: jjjjjjjjwjjjjn -1-13 w: wwwcxxwwzrwwxww -3-12 l: vtxtlxjqrfplw -8-12 x: xqfdfzrxrnkwv -1-6 q: nqkqqqqq -5-9 l: lhlmklllllgjll -1-4 k: jwtkk -2-10 d: dvdjdddhdddddd -10-14 l: lllfslkltllqdrllxllv -8-11 r: rwplctrrrvpd -13-15 x: xdxxjddmcccmxxx -1-14 c: cccccjcjkcctcjc -9-13 m: gcpkqzgqwlznmqsmgxc -9-15 t: ttttttwtstttttwttttt -2-13 d: zkqdtclhmlpfd -14-18 j: jdjjjgjjjjjjjjcjjgj -9-13 h: hsgvzlktmzqhhw -5-6 b: bsbbbbbbbbbbd -3-4 z: zzsz -2-5 d: bcnrdgsfqnwqgdgmctq -9-12 q: qqqqqtcqqqqhzcvqfqr -1-3 w: rwww -2-8 h: tfhppjcrzchjhhrcnt -17-19 w: wwwwwwwwwwwwwwwwswww -2-7 f: fsffffffp -17-18 c: jcccfrzkgbzpmdwfvc -5-6 f: ffnfffvqff -1-2 b: bbtb -4-6 x: xgxxxgxr -6-9 v: crzvxfznvlx -13-15 k: nkkklkkvkkkkkxkkkkkk -3-5 m: mmzmwmmmm -1-6 b: brbqgk -5-13 k: qnmkktjgrkfqrzkkk -6-10 l: plllklfcllzvll -1-3 m: lmmmb -2-3 k: kqkk -4-6 k: kkkkkjkkkjkkkwk -2-3 w: nrwlrtkrkvtxwpr -9-10 b: kghdmcvswxbvtbjhdwb -9-11 n: fnnhdnnnnnj -9-12 b: bqbrbtbbsbbtgzgbb -6-14 f: fffffffffffffffffff -8-9 h: hhhhhhhhhhh -3-6 p: pwpfrbgfzqpghs -3-4 g: ggggg -7-13 c: bcccccpcccccccc -10-13 f: vppzffvnffkfq -1-4 f: vfffxfff -9-13 j: jjjjjjjjljjjjjj -3-4 f: ffhf -3-8 m: mmmmmkmcmmmmm -11-16 c: ccccccqccnsncccxkccc -3-8 w: wwwwwwwwww -3-10 c: llrkgsvwkcmphp -11-13 s: sssssspsssfsts -14-15 s: gssszgscsqfkssqsj -14-17 j: jjjjsjjjjjjrjjjjzp -1-9 q: wqqqqqqvqq -6-10 f: kffvfffdffsff -4-5 d: ddddbdddddd -10-14 d: wbdxrddtnrddddddg -6-9 x: xggxnfpcxxxdxxsd -14-17 p: pppppppppppjppppkp -1-8 m: tccmxmmm -6-12 p: vmspgmlzzqppfrpggglp -13-14 v: njnlcwlzdwwdvvgrfxtf -3-4 f: fmftfd -4-5 z: pvzzz -16-18 m: mmmmmmmmmmmmgmmxmz -1-4 z: pxzzz -9-10 b: bbbbbbbbbd -4-16 v: vvvwvvvvvvvvvvvrrv -13-16 f: jxlqrnngfghxfzfp -16-18 x: xxxxxxxxxxxmgxxxxhx -13-16 c: ccccccpccccctccc -8-11 c: ccccccccccvc -9-17 t: tttthtttttttttttzsl -7-14 w: wchwdrftbdhhww -3-6 r: kzrrzr -15-16 r: rrrrrrrlpzrvtrxw -6-9 t: tttttlttttttt -3-4 w: wwsww -6-8 c: cccccccxc -3-6 h: hphhhhvtxjrndzhh -12-16 j: jjvwsrkmjjqjdjjpsf -3-7 k: mtxqkzpkdkfkp -12-15 b: bbbbsbbbbzbbbbbb -4-6 h: qhhlshhhh -2-11 l: ljbllllljlllllzrljl -1-3 z: zzlz -1-3 w: wwnww -14-15 b: cbbbbbbbbpbjbbvgb -10-12 x: xdxxxxxxxdxz -17-20 n: nvnvzchcdfpnmnnsrnrn -1-5 b: bbnpxbb -5-6 b: gdkgsxqkbw -2-5 x: fxkgm -5-6 z: zzgzwzzxxn -2-4 d: hdqmdk -2-10 r: gnjqjctrrrvnjjvxgmx -6-7 v: cfdwvpxvvvpvvj -8-11 m: wtkprnmshmmmqtmzqq -3-5 j: jjwjv -7-11 t: xtfjvtttwtvttxtt -1-2 b: bbbb -8-10 f: ffffffqdfffffff -5-6 d: ddddmp -10-12 n: nnnnnnnnnmnnnnnnnnnn -9-10 x: xxxxxxxxkx -8-10 c: cccccccccb -19-20 w: wwwwwwwwwwwwwwwwwwmd -16-18 h: zhhhwnqnhhhhhghhvt -12-17 z: zzzzqzzzlzzzzzzzzk -2-6 h: hhvfjhrghhhhhthfhhhh -3-4 c: chgc -1-5 j: jjjjjjj -4-8 z: rzzzzzzszzb -9-10 t: ttttttttmt -3-5 g: bgggng -11-12 c: mcdcrcchsdccgtbj -2-9 f: rrjwgftffmnfm -12-15 r: rrgrrrrrrbrcrrrbrrrr -4-6 h: hxhxhghhhhhhhhhhhwh -10-11 n: nnjnznnnngnnqsnx -3-10 j: zfwklgrdnjtxj -3-4 b: bgrbbjf -3-4 n: nlqn -2-5 j: mslvj -14-20 c: cccccccccccccdcccccc -16-17 g: ggxtgggjcgggggggwggg -5-6 l: llvhfwhlwztxpdh -4-7 c: dcdzcccgm -10-15 q: qqqqqqqqqqqqqqjqqqqq -1-4 j: zdqw -9-19 q: hqqqqqqqjfqqqmnlbqqq -13-14 q: rqqklqfqqqbqhq -2-4 z: dlmz -10-17 g: xhnggglggqggqggqgz -6-11 j: djjjjjjjjjjjj -3-5 q: qqrqqq -3-9 n: xdlxngttnlmjb -7-9 b: bbbbbbzbtb -1-2 b: jbbtb -10-18 z: qzzzztzbzzzzzkzzzzz -3-4 p: pjjwpw -8-10 q: qqxqqqtqqpnm -4-7 f: fffffdff -1-10 j: pjjjjcjxjbjjj -3-11 c: tfrjqdtkcjcjkcwn -7-8 p: cpptjkpf -9-10 g: pggggggggvg -1-5 b: lbjbbbzbb -2-4 m: mmmtmmm -8-12 w: hwpkjdwzpwwwkcsw -6-10 b: mbkskbpbkr -13-16 q: qqqcqqqpqqqqqlqjqq -6-12 r: rlxrrrlrgjkr -15-16 k: kbkkkkfksmkqgkrk -1-2 l: lwll -3-5 x: xqxlcb -7-8 s: sssssssp -5-8 m: mmmmmmmrmm -2-4 l: lnllllzlsl -4-5 z: zzzwzzzq -5-8 l: hqdflnll -1-2 v: jvvzczgrv -9-13 z: zhzzzdzzzzzzzqzp -4-5 d: dddcdddddd -8-9 s: ssssgsshss -1-2 c: cccc -2-17 h: hhhhhhhhhhnhhhhhrhh -7-9 n: ndnlnnnnnz -10-14 p: hppzpxprfvrpppphpp -14-15 b: xwvqdfqmpbzvbgbtt -7-8 q: qqqqqqqn -11-15 m: mfmmmfmmmmmbmmn -2-4 g: bgbpr -5-10 f: fnbbpmffjphv -6-7 h: nnshthh -4-10 c: cccwccccccccc -17-18 p: hppnmppmpppppwphpc -7-8 g: ggggmggdg -1-3 f: fdwjpkdrbfff -5-10 v: lmvcldnwwzjznzsctzvv -10-14 b: bbbbbbbbxbbbbbbbb -4-9 r: whkjzsvrr -9-18 h: hrdzhrhrxdnrhfhhhh -2-5 n: nnvqbnbhwqfr -1-11 q: qndbrqxtkqq -6-8 r: rrrjsrlrrg -12-16 z: jhzzzzzzzzzzzzzwz -4-6 q: wstfcqqsbqq -1-3 g: bggg -5-11 w: xrgvsjvwjrd -13-16 b: bbjbbbbbbblbpbbbbb -7-8 h: hbhdqphmp -15-19 d: dvddddddddddddmdddl -7-13 p: vtbclnppvvqxljk -7-9 k: xkmksddkg -11-13 z: zzzzqtzzzqmzpzz -12-18 x: xxxqxxxxxxxxxxxxxt -5-6 f: fffffc -17-18 v: vvvvvvwvvvvvvvvvvv -4-14 r: ndqxfrbtfmptcrf -1-2 z: mszzz -5-9 n: nnnnnnnnnnn -1-3 n: ftfdl -14-19 n: tnjgfppdhswwdhclxmn -12-14 l: lllvlllglllfll -7-16 p: ppppppppmpppppppppp -6-17 c: sccccqxwscvbmcccxcz -1-6 x: wxxxxxxx -1-10 v: kdkkkmvgvmsfswvbtsc -16-19 k: kkkkkkkkkkkkkkkkkkdk -7-9 c: ccccchcjd -3-10 v: vmpvvmgjkfsv -10-18 s: ssssslsssqnjssssss -8-11 h: htvqnhgbszh -2-14 j: ptdrlpnnjrpppjrgp -8-10 w: wgxwwtntwrsczwwrjz -4-6 b: bbbqbbbbbb -2-3 x: gxxx -6-20 t: fntbvdtjmtsktztpdgkt -2-4 f: fffbff -7-14 m: mmmmmlgmmmmmmwlmmmm -17-18 z: zknzsdlzzszzzzzxzz -18-19 c: cccccccccccccccccvc -4-7 v: bwgvvxvvv -1-8 k: kkkkkxkdkkk -1-2 x: xfsxxd -4-6 r: hhxhrrlrbwwnjkkwb -1-7 r: rnxrrrrrrrrlrrr -9-12 l: lllllwllzlll -3-9 l: llllllllll -12-19 c: cccccccdtccrcclcccc -8-9 t: tttttttttt -2-3 n: nnkn -3-5 l: xqvqlsjlgl -4-5 k: kkkrrkn -5-7 d: mdrdmddpmd -4-6 c: ccccch -3-5 m: mmfmcmm -6-8 x: gxxdzbxzxxxx -2-3 r: rmtkgcrvlrg -6-7 r: cmrrwrzv -2-3 c: dcjlzl -6-13 b: bbbbbbrpbmbmnbbb -1-5 s: ssssws -2-8 l: sllwlvjl -3-5 b: bbxlbbb -1-3 c: cczpq -10-14 k: vqgnlzbbkjkljk -3-7 h: hhfhhhhhhhhhhhh -5-6 k: kfkkrx -6-7 q: qqqqqqr -5-8 l: dsqllgzl -8-9 r: rrrrrrrrxr -3-4 v: mvvh -1-4 p: ppppppp -17-18 x: xxxxxxxxxxxxxxxxkxx -5-8 b: bbbbcbbpb -7-10 j: jjjjcpjjjwjjjjjjjj -1-10 r: rscprvknxrgxqzsrs -3-7 w: wwgwwwhcwwwwwww -1-3 b: blkb -4-5 r: zrrrhlt -3-4 m: wcmmmfh -3-5 t: mctnxtktrsj -1-4 c: wcccc -4-13 j: sjjjjjjjjjjjtjj -7-8 r: fztxkwhrrxnnn -5-6 r: rrqrrrr -1-5 q: qqqqvqqq -8-14 t: ttvpttkptthtttrcj -2-7 n: znjqsvpstfjph -6-7 l: llllllnl -19-20 c: vwltcctcmcdccrqdccwc -4-15 d: bfkxfrsznfkdzpjmbp -12-15 q: qqqqqqqqqqqvqqqq -6-10 t: tttttbttktt -1-18 c: ccdczcvccvclcccvkccb diff --git a/src/files/P3.txt b/src/files/P3.txt deleted file mode 100644 index f090b71..0000000 --- a/src/files/P3.txt +++ /dev/null @@ -1,323 +0,0 @@ -.#.....#..#..#....##.........#. -...#...#.........#..#.#..#..... -#.#...#.#....#.....#..#..##..## -..#..#.#.#.....#..#..#..##..... -.#..........#....####..##.#..#. -....##.......#.#.....#......... -....#......#....####.#.##...... -........##..........##......#.. -.........#........##..#.#.....# -.#..##..........#..#...#..##.#. -........#........#.....#....#.# -..#.......#.###...#.......##... -.##..##.#...#........#......... -...#....#..#..#..##.......#..#. -.#.#.##.##..##..#.#.....#.....# -....#.........#........#....##. -........#........#....###.#..#. -........#....#......##......... -.###.##.#.............##....... -....#.........#...#.#.##..#.... -#.............#.#.#.#..#..#..## -###...###.###..#........#...... -##..#.....#....##..##.......... -.......#...#....#...#...#.....# -...#......###...##.###...#...#. -#.......#...##..#.......#..#... -.....##....#....#..#..#.#.##..# -.........#....##.#.#..##.#..... -.....#......#.#.#.....#.....#.. -..#..#...#.#...#.........##.#.. -.....#..#.................#.#.. -##.#....##........#......#..... -#..#...##...#.#.#..#........... -.#..####.....#......#.###...... -.#.......##............#....#.. -.#.........##..#.##...#.....### -....##.........#.#...####...##. -..#.......#......##.....#.#..#. -...##....#..#..##....##...#.#.# -.................#............. -...#.##..#.##..............#... -...#......#.........##........# -..#.#..##...#.......#.#........ -.###.#.....#.##.##.#...#...#... -.....#.##.....#..#......#..#... -.....#.#...#........#..#..#..#. -#...#.##.#....#................ -..#...#.#..#.....#.#.#......... -#.#.###...#.....##........##... -#..##.##....#..........##.#...# -...#..#.#.###...##......#.#.... -.#..#........##...#......#.#.#. -##........###....#.#....#...... -....#...........#.........#.... -#.#....#..#.....#.#....#.....#. -........###.......#..#.#.#.#.#. -..#....#.....#...............## -.....#..##....#.#...####....... -.#..#.....#..#.....#....#....#. -..##....#...........#.#....#... -..#.#......#..#.#..#.....###.#. -...........................##.. -##.....#....#......###.#...#..# -...#...#.........#..#..#....#.. -....#####.#.#.#....#..#........ -.##.#..#.#............###...... -##.#...##...##....#...#...##... -..#.#.....#.......#..##..###.## -#..##...........#.##.....#.##.. -#...#....#...#..##...#.#...#.#. -.#..#...........###...#.#...#.. -.#.....#......#.#......#...#..# -.#...##.##...............#....# -..#.........#....#............. -.#..##..#.#................#... -..#.#.#.#.................#.#.# -...#..#.#..#.#......#........#. -##....#......###.#......#...... -..#....##.....#..#........#.... -.#.#....#...#.#.....###..#...#. -.#..#...##.....#.#...#.....#.#. -...#....#....##....##.....#.... -.......#...#...##..#.#.......#. -.###..#..###.#.#.#.#.#.....##.. -....#.#......###.#....#....#..# -##.....#.....##.#.....#....#... -......#...##...#..#.#.....#.... -...#.........###.....#..##..... -....#...#..#....#..#.........## -.#........#..#.....#.##.#....#. -.......#......#.##...##.#..#... -#......#.......##..##..#.#..... -..#.##..........#.#..#......#.. -#.....#.......#......#......... -...##......##...........#.#.... -.#....#........#...#.#..#.....# -.#...#...##......##...##...##.# -.#.#.##.....##....#.#.#..#..... -...#..#........#.....#.#.#####. -#..#..#......#....##....##..... -.#.............#....###.##.#... -.#....#.......#.#.....#......## -#..#.#.#........#...#..#...#... -#.#.#.....#.......#.##..#.....# -..#....#.....#...##.#...##..... -......#..#.............###...#. -..#...#.#....###...#........... -.........#..#..#....#..#....... -#....#.....#..#....#.#..##..... -.#..#.#.....#...##.....##...... -.....####..#..#......#....##..# -#.#....#....#.##.......#.#..... -....#.#.............##..#.#...# -....#.#.#.....##.....##..#...#. -.#..#...#....#...#.#....#...#.. -.#..#.#.#.......#...#.......... -...##..#..#...##.....#.......#. -..##...##.#..#.......#......... -.##.#.......##...#...#......#.# -##.#.#..#...#............#..... -..#.##...##..#....##..#......#. -...#..........#.....#.#........ -...#..#..#.......#.#.....##.... -##.............#.....#.##...#.. -#.#......#........#...#.##..#.# -...#..#...##.#.#........#.#.... -#.....##...........#....#...... -...##....#..#.#...#........#... -..##..####..#..#............... -.#.#..#......#.##.........##.#. -.##....#...##.#...#..##..#..... -........#........#.###.#.#....# -......##...#......#..#..#...... -..#.......#...#..##........#..# -.#....###..###....###...##.#.## -#.#....#..#.#...#.#...##...#... -..#..##......#..#......####.... -.#....###.......#...##...#..... -...#....#..#.....#..#...####.#. -............#.####..##...#..##. -.#..#.......#....#...#......#.# -.......#.......#..#.#.......... -...#.#............#..#......#.. -..#...........#...##......#...# -...##......#.........#.#...#.## -.#..#..#..#......#...........#. -....#.....#.###........#....... -..##.#.#........#.#...##....#.. -.#.#........##....#...#......#. -.......#.##..###............... -#..#...##.....##........##....# -...####........#...#.........## -...#..............##..#........ -......#.....#....#.......#....# -..###......#..##.....##....##.. -##...#.....#..#.#.#...#.....#.. -...#....#............#......... -..#..##...#..#.........#....... -.#.#.#...##..........#..###.... -.......##.#.#.#...#.#...#.....# -..#..#..#..#...###.....#.##.... -.#.#.....#.....##.#..#...###..# -.........#..##......##...##.#.# -#.........##..#......#..#.#.#.. -.#..##.#.##......##........#... -..#...#.....##..#......#.....## -.#..#...#......#..#...#.....##. -..#..##...#.....#.....#........ -....##..#....#.#....#......#.#. -..#.......##..#..#.##.#..#...## -...#..........#...#..##........ -..#............#.#......#...... -.#...##.......#...#.#........#. -.#...#....#..#....#....#.#...#. -......#..#.#..#..............#. -.....#.##.#...............##.## -.#...............#.....#..#...# -.#..##.......#.#...#..#..#....# -..#..###.##........##.......... -.#....#..##...#.#.........#.... -.......#.....#....###...##.#.#. -##..#.#...##.##.##....##.#.###. -#.#...........#..#.#........... -....#..#..#..#...#....#.......# -........##....#..#......##.#... -.#.#..##...##...#....#..#.###.. -#..##....#..#...#.......##..... -..###..#.###......#..####....#. -.....#..#........##.#..#....... -.#......##..............#.#.#.. -..#.#.......##...#....#.#.###.. -#..#..#...###..#............... -......#..#.....#..#..#...#..... -.#...#..........###..#..#.#.... -.#......##..#......#.....###..# -.......#...#..#....###.....#... -#....#.......###.##.....##....# -..#.....#..##..#.........##.... -.....##....#.#......#.......... -....#...#...#......##.....##.#. -........#.#.#......#........... -.#....#...#...#....#.....#...#. -..............#..##.#.....###.# -.#......##.....##...#....#..... -.............#.##......#.....#. -.#....#.#............#.#..##... -.#...##.......#..#...##....#... -.#.....#..........#............ -#.#.#........#.....#..#....##.. -#....#.##......#...#........... -........#.##.....#...##.....#.. -..#.##....#.##.#...#.#.#....#.. -......#.......####......#.#...# -#...#.##.####......#.....##.... -.#..#....#.......#...##.....#.. -................#......#.##.... -###...##..#.#..........#....#.# -#.#..#.....#..##.##.##...#...## -..#.......#.......#..##..#..##. -......#.##.......#..#.....#...# -.##..##..#.#.......#..#......#. -....##.#....#...##.#..#.....#.# -..#..#.........###.#........... -....#.......#....##......#....# -..........#...#......#....#...# -..#.#....###.....#..#.#.#..#... -.....#...##..#.##........####.. -##.............#....##........# -..#..........#..##.#........... -##.#.......#.#....#......#.#... -........####.....##.#.........# -.....#...#.#.....#.##..##.#.... -........#...#.#.#.#...#......#. -.#..#.#....#.#...##.....#..#... -.....#.#............#.#.#...... -....##.#...#...#.##...##....... -.........#.##.....#.......#...# -...........###....#.#....#...#. -.#..#.###......#..#............ -#...#..#......#.#...#......#... -..##.#.#........#........##..## -..#.#.##..##....#........#.#.#. -...#........###......#.#.....#. -#.#.#.##........#.#...#..#..... -#..#...............#...#.#...#. -.....##......#...#.....#..#.... -............#...#...#.##.#....# -...#..#..#...##.#....#.#..#.#.. -##.#..#..............##........ -.#.#..#.#..#....##..#.#.##.##.. -......######....##.....#....... -.#.......#..........#.#..#.#..# -..........#.#......#...##...... -#..........#.#..#.............# -...#...#..#.................... -....#...#.....#.....##.....#... -..#....##.....#..#......#...... -.#.#.....#..##.##..........###. -.#.##....#....#....#....#...#.. -..##.....................##.#.. -.....#..##....#.#.....##..#.... -.####...#...##..#.##...#..#.... -.........#.#...#.......###..... -...#..#........#..#..##.....#.. -..#....#....#....###.....#..... -......#....#..#.........#...... -#.#...#..#..#.#...#..#.#......# -..........#..........#.#.##.... -.#..###..##..#....#.#.....#..#. -.##......#..#.##...#.........#. -...##...#....#.........#..#.... -....#..##........#.........#... -.........##....#...#.#.....#..# -.#..........##...#..#.#..##.... -#.......#...#...#............#. -.....##.#.##.......#.......#... -...........#...#.....###.....#. -#..................#.##..##...# -.........##.............#...#.# -#.#.....##...#........###....## -...##..#.##.....###.....#...... -..#...#.#..#......##.#.......#. -.........##.#...........###..#. -..#...#.....#...#.#.....#..#... -.....##..#...#.#.#....#.....### -..#.#....#..#..#..#....#.#...#. -........##....#......#....#..#. -.##..#.....#.#....#..#.###..... -..............##.........#.#.#. -.##....#.#..#..#...#..........# -.....##.......#....#..#......#. -...#.#....................#..## -#.##..#.#...#...#....#.#....##. -...#.#..#.###................#. -.....##..#.##.#.#.........#.#.. -.................##..........#. -..#......#........#.#....#..... -#......##......#......###....#. -....##....#..#..####......#...# -.##.##.........#...#..#....#.#. -.#..#....##...##..#...........# -#...#......#...#...........#... -...#...####.............##..#.. -.....#....##............##....# -......##.#...##...........#.#.. -..#......##.....###.......#.### -...#...#......#...##.#........# -.#.........##.##......##....... -....................#....#....# -.#.#.#........##.#....#.....#.. -#.#.....####..#.........#.#.#.. -...####..#..............#.#.... -....#.#....#..........#....#... -.#..#..#.#...#..#.#............ -.#.#.......##........##.....#.. -#.#.##..#.....##......##....#.# -......#...#...#...#......#..... -.........##..#.....#.####.#.#.. -.....#....#.###...#.###.#..#..# -..#.#..#..#.......#.......##... -.....#.........#......##.#....# -..#.#.##....#.#...............# -.....#..#....##......##..###... diff --git a/src/files/P4.txt b/src/files/P4.txt deleted file mode 100644 index 8cdfd0a..0000000 --- a/src/files/P4.txt +++ /dev/null @@ -1,1000 +0,0 @@ -hcl:#6b5442 ecl:brn iyr:2019 -pid:637485594 hgt:171cm -eyr:2021 byr:1986 - -eyr:2025 iyr:1938 byr:2014 hcl:#341e13 -hgt:66cm -pid:70195175 - -hcl:#efcc98 -iyr:2011 ecl:hzl -eyr:2020 hgt:174cm pid:589700330 - -hcl:#bba027 eyr:2027 cid:54 -ecl:brn pid:153cm -iyr:2028 hgt:173cm -byr:2004 - -hcl:b45cec -iyr:2011 ecl:oth hgt:185cm eyr:2029 pid:178cm - -hgt:185cm iyr:2016 eyr:2029 hcl:#888785 pid:026540921 - -eyr:2025 -hcl:6962f7 byr:2015 ecl:oth iyr:1974 -hgt:191cm -pid:2616015 - -pid:268398556 iyr:2019 ecl:grn -eyr:2027 byr:1951 hcl:#18171d hgt:67cm - -eyr:2029 hgt:153cm ecl:brn pid:183179186 byr:2013 hcl:#623a2f -iyr:1957 - -cid:121 iyr:1922 hcl:752fbc pid:79577560 byr:2025 -hgt:61cm eyr:1971 - -iyr:2016 -eyr:2024 hcl:#18171d hgt:184cm -ecl:hzl byr:1992 pid:751161201 - -eyr:2021 ecl:blu byr:1938 iyr:2016 hcl:#b6652a pid:313406514 hgt:191cm - -hcl:#623a2f eyr:2021 -ecl:brn -pid:145249653 hgt:167cm iyr:2019 byr:1991 - -iyr:2022 pid:175cm -byr:2021 eyr:2027 ecl:#f615b1 -hgt:172in hcl:#ceb3a1 - -hgt:173in -ecl:#0cba5e pid:1885981567 iyr:1968 -byr:1952 -eyr:1942 - -ecl:oth eyr:2023 hgt:65cm pid:521737908 byr:1971 hcl:z iyr:2017 - -byr:1936 -hcl:#cfa07d -ecl:brn iyr:2011 pid:589047874 -eyr:2025 - -hcl:#fffffd -pid:912552538 -cid:159 hgt:160cm iyr:2012 -eyr:2023 ecl:hzl -byr:1946 - -iyr:2015 -ecl:amb hgt:72in -cid:59 pid:782818257 hcl:#18171d eyr:2026 -byr:1952 - -hgt:173cm iyr:2018 cid:96 ecl:amb byr:1986 pid:783160698 eyr:2026 -hcl:#602927 - -hcl:#a97842 cid:199 pid:912273414 eyr:2030 -hgt:171cm ecl:hzl iyr:2011 byr:1960 - -ecl:amb hgt:156cm -iyr:2013 -hcl:#ceb3a1 -cid:116 pid:567057004 byr:1942 -eyr:2029 - -ecl:#cddc40 -pid:045090966 cid:254 -hgt:75in hcl:#733820 eyr:2026 byr:1956 -iyr:2015 - -pid:156cm -eyr:2040 -hgt:176cm ecl:#02e67d hcl:b7c0e6 -iyr:1959 cid:129 byr:2022 - -hgt:160cm byr:1933 -ecl:blu eyr:2029 iyr:2012 hcl:#888785 pid:028571975 - -iyr:2017 -hcl:#390f37 hgt:171cm ecl:brn byr:1931 pid:015365720 eyr:2030 - -iyr:2014 pid:697057757 -eyr:2026 hgt:188cm -ecl:gry byr:1926 - -pid:484310015 hcl:#fffffd hgt:150cm iyr:2018 -cid:53 ecl:gry eyr:2021 byr:1957 - -hgt:156cm -eyr:2026 byr:1963 -pid:063272603 ecl:brn iyr:2011 -hcl:#888785 - -byr:1955 pid:310518398 hgt:191cm iyr:2018 -ecl:oth eyr:2023 cid:132 hcl:#888785 - -byr:1938 hcl:#623a2f eyr:2023 -iyr:2010 -hgt:165cm -pid:170304863 -cid:290 ecl:amb - -eyr:2026 -pid:021468065 hgt:164cm -byr:1996 iyr:2016 hcl:#18171d -ecl:brn - -byr:2027 ecl:oth pid:8258823391 hgt:153in hcl:#733820 eyr:1948 - -byr:2026 ecl:#cd275a iyr:2012 eyr:2036 pid:5917499975 - -byr:2004 -cid:151 -hcl:99ecb1 -eyr:2033 pid:871137711 iyr:1997 -hgt:184cm ecl:oth - -byr:2011 -hcl:z ecl:#eee1d2 hgt:59cm eyr:1925 iyr:2030 pid:#02ee78 - -pid:742658992 -hcl:#888785 -byr:1995 -eyr:2024 hgt:162cm iyr:2013 cid:169 ecl:gry - -hgt:152cm byr:1946 -eyr:2027 iyr:2018 -pid:352799678 -hcl:#238da0 -ecl:amb -cid:71 - -hcl:#623a2f pid:723616064 eyr:2021 -hgt:172cm -byr:1926 iyr:2013 -ecl:grn - -iyr:2019 hgt:94 byr:2028 eyr:1986 -pid:#ee7f00 - -ecl:amb -eyr:2027 pid:188153423 byr:1957 hcl:#d67ae1 -iyr:2011 hgt:183cm - -byr:1950 ecl:#e2495d iyr:2010 hgt:166cm eyr:2034 pid:151457075 - -eyr:1981 -byr:2016 iyr:2029 pid:153cm ecl:#55c2a4 hcl:z -hgt:76cm - -hgt:184cm ecl:amb eyr:2021 -hcl:#623a2f -pid:414607669 iyr:1960 byr:2002 - -eyr:2027 iyr:2020 hgt:179cm byr:1991 -pid:969568248 -ecl:blu - -hgt:175cm pid:536803427 hcl:#a97842 iyr:2012 -ecl:grn byr:1950 eyr:2027 - -eyr:2028 hgt:60in hcl:#733820 iyr:2018 ecl:oth pid:871909483 -byr:1930 - -hgt:155cm iyr:2020 byr:1960 eyr:2021 -pid:515710074 ecl:amb hcl:#341e13 - -byr:1922 hcl:z iyr:1977 ecl:brn -eyr:2023 hgt:119 pid:865700639 - -ecl:gry hcl:959fcd pid:#633ac1 -byr:2011 hgt:68in -eyr:2020 - -iyr:1972 hcl:z cid:149 byr:2020 -hgt:166in pid:4548657 eyr:1960 -ecl:#cc987c - -eyr:2023 hcl:#b6652a iyr:2015 -hgt:187in pid:547953710 byr:1979 ecl:grn - -iyr:2018 -pid:508691429 ecl:oth eyr:2025 hgt:187cm cid:270 -hcl:#888785 byr:1977 - -hgt:168cm eyr:2032 byr:2020 -ecl:gry iyr:1982 -hcl:z pid:648015564 - -hcl:#fffffd pid:911858643 iyr:2016 ecl:gry eyr:2030 byr:1992 hgt:156cm - -pid:241562994 eyr:2026 ecl:grn hgt:164cm -hcl:#c0946f byr:1945 iyr:2015 cid:296 - -byr:1976 pid:269322775 ecl:hzl -hgt:162cm hcl:#b6652a -eyr:2022 cid:335 iyr:2012 - -eyr:2028 -hgt:106 -pid:268626219 hcl:#a97842 -iyr:2011 -ecl:grn byr:1967 - -iyr:2016 hcl:#888785 hgt:193cm ecl:oth -pid:034099334 eyr:2027 -byr:1945 -cid:181 - -pid:248319556 byr:1987 iyr:2010 cid:122 ecl:utc -hcl:z hgt:190cm eyr:2030 - -iyr:2019 hcl:#ceb3a1 -ecl:hzl -cid:281 hgt:73in byr:1992 -eyr:2023 - -hcl:#fffffd -ecl:blu cid:340 hgt:176cm byr:1980 pid:809878309 iyr:2018 - -hgt:167cm hcl:#866857 byr:1973 cid:143 eyr:2030 iyr:2012 -ecl:hzl pid:168618514 - -hcl:c97d76 iyr:2016 pid:8439355994 byr:2013 eyr:2036 hgt:71cm -cid:116 ecl:#055b62 - -hcl:#341e13 pid:961548527 eyr:2027 hgt:192cm byr:1940 iyr:2011 ecl:oth - -byr:1935 hgt:189cm ecl:brn iyr:2012 -eyr:2028 hcl:#602927 - -byr:2024 -eyr:1939 iyr:2020 hgt:140 pid:889951037 -hcl:#b6652a ecl:blu - -ecl:amb byr:1942 -iyr:2012 pid:161703003 hgt:181cm -eyr:2027 hcl:#602927 - -hcl:#18171d -iyr:2015 byr:1935 -cid:204 -ecl:gry -hgt:180cm eyr:2025 pid:988699528 - -eyr:2025 byr:1985 -cid:192 -hcl:#866857 hgt:150cm pid:315179208 iyr:2010 ecl:blu - -hcl:#341e13 iyr:2013 eyr:2021 cid:62 -byr:1928 -hgt:168cm pid:862861470 ecl:hzl - -pid:099158408 -ecl:grn -eyr:2026 iyr:2018 hcl:#b6652a cid:81 -hgt:185cm byr:1964 - -byr:1990 hgt:155cm -ecl:brn -eyr:2023 -hcl:#ceb3a1 iyr:2012 - -ecl:brn -eyr:2026 cid:242 pid:658930205 -hgt:176cm byr:1990 iyr:2016 hcl:#d55f68 - -hcl:#602927 pid:924899781 -eyr:2024 byr:1964 -iyr:2019 -cid:163 -hgt:181cm ecl:gry - -eyr:2026 ecl:blu pid:8812414708 iyr:2017 hcl:#a97842 hgt:190cm -byr:1970 - -hgt:152cm -pid:403682313 iyr:2019 -hcl:#ceb3a1 ecl:oth -eyr:2021 byr:1957 - -pid:23799214 -byr:2030 hgt:66cm -iyr:2022 -hcl:z ecl:#c806fe eyr:2035 - -eyr:2022 hgt:177cm byr:1967 cid:194 -pid:060293594 -ecl:brn -iyr:2016 -hcl:#cfa07d - -hgt:184cm hcl:#6b5442 eyr:2029 -ecl:oth iyr:2013 pid:26983291 byr:1965 -cid:147 - -pid:255519852 byr:1975 hgt:192cm -ecl:lzr -iyr:2015 eyr:2030 -hcl:#623a2f - -iyr:2010 -ecl:blu -hcl:#881267 hgt:162cm pid:121130250 byr:1935 cid:57 eyr:2025 - -hgt:189cm -hcl:#a97842 -iyr:2014 eyr:2024 -ecl:brn -pid:972960330 - -hcl:#623a2f eyr:2026 hgt:193cm cid:87 byr:1982 iyr:2020 pid:158154062 ecl:amb - -eyr:2025 hgt:191cm -ecl:amb -hcl:#341e13 -pid:137048981 iyr:2016 byr:1950 - -byr:1930 eyr:2029 ecl:hzl hgt:75in -pid:464272185 cid:341 -iyr:2012 hcl:#c0946f - -ecl:brn -pid:952709301 byr:1926 hcl:#c0946f -eyr:2028 -hgt:170cm - -pid:578940518 byr:2025 hgt:190in -iyr:2030 cid:52 ecl:amb eyr:2027 - -ecl:amb hgt:185cm cid:237 iyr:2016 pid:490377510 byr:1950 hcl:#18171d -eyr:2025 - -iyr:2014 hgt:156in pid:65952131 -ecl:blu byr:1938 hcl:#7d3b0c -eyr:2023 - -ecl:gry iyr:2016 pid:818347623 hcl:#888785 eyr:2030 hgt:174cm - -ecl:hzl -hcl:#866857 -eyr:2027 -pid:213124752 hgt:179cm -byr:1989 - -pid:024846371 byr:1990 iyr:2018 -eyr:2026 hgt:161cm ecl:oth - -hcl:z hgt:129 iyr:2016 -eyr:2034 -pid:#b85e75 byr:2026 ecl:oth - -hgt:192cm hcl:#602927 ecl:blu iyr:2011 -pid:863613568 byr:1996 eyr:2027 - -hgt:160cm cid:229 byr:1952 -iyr:2019 -ecl:#0ae2d6 eyr:2027 pid:719697407 hcl:z - -pid:040987502 cid:155 iyr:2012 hgt:173cm -byr:2002 -hcl:#fffffd eyr:2023 ecl:hzl - -ecl:oth byr:1993 iyr:2019 pid:319157251 hcl:#733820 hgt:70in eyr:2027 - -hcl:#9d85d4 -hgt:192cm pid:570514935 -cid:238 eyr:2022 ecl:gry byr:1989 -iyr:2016 - -hgt:162cm -cid:201 iyr:2015 eyr:2023 pid:553794028 byr:1922 ecl:amb hcl:#623a2f - -cid:56 -eyr:2024 ecl:amb hgt:179cm hcl:#efcc98 -pid:665225721 -iyr:2012 byr:1963 - -byr:2026 -hcl:#888785 -iyr:1972 eyr:1980 cid:323 pid:153cm -hgt:170cm ecl:blu - -pid:704204892 ecl:gry -eyr:2023 -byr:1920 hgt:168cm iyr:2010 hcl:#3311ec - -pid:#7f3caf eyr:2023 -hcl:z hgt:146 byr:1990 ecl:amb -iyr:2014 cid:270 - -hgt:171cm ecl:blu pid:383695713 -cid:200 iyr:2010 -hcl:#602927 byr:1950 eyr:2024 - -hgt:178cm byr:1935 hcl:#2da7db -pid:597509269 -eyr:2020 iyr:2014 -ecl:blu - -eyr:2034 -ecl:#d4719a -hcl:z hgt:67cm iyr:2023 pid:#268d93 byr:2006 - -eyr:1939 pid:9942171839 -hgt:104 -iyr:1945 -byr:2011 ecl:#f9bafb hcl:#ceb3a1 - -byr:1937 -iyr:2010 pid:979528684 -eyr:2028 hcl:#ceb3a1 ecl:gry hgt:164cm - -iyr:2019 eyr:2022 pid:044485658 hcl:#18171d byr:1996 hgt:169cm -ecl:gry - -pid:031482456 -eyr:2024 -iyr:2015 -hgt:157cm hcl:#7d3b0c byr:1921 -ecl:oth - -pid:399398768 -ecl:lzr -hcl:z -eyr:1983 hgt:68cm -byr:2024 iyr:2027 cid:127 - -hgt:186cm eyr:2026 pid:140032921 ecl:amb cid:278 -byr:1937 iyr:2015 - -hgt:172cm -ecl:amb pid:718725983 hcl:#6b5442 eyr:2024 -iyr:2013 byr:1974 - -ecl:amb iyr:2014 cid:216 hcl:#cfa07d -eyr:2022 pid:442275714 hgt:68in byr:1999 - -hgt:152cm cid:193 -iyr:2015 pid:806672342 hcl:#b6652a byr:1927 ecl:oth - -hcl:#7d3b0c byr:1925 iyr:2015 hgt:174cm pid:888044223 cid:168 ecl:oth eyr:2029 - -ecl:gry byr:2009 hgt:156cm -hcl:#888785 pid:263500722 iyr:2015 eyr:2021 - -cid:103 -hcl:#ba8b89 ecl:hzl hgt:169cm -byr:1929 pid:626102979 iyr:2016 eyr:2028 - -iyr:2016 hgt:188cm cid:133 -byr:1926 ecl:hzl eyr:2023 hcl:#602927 pid:678092780 - -ecl:utc byr:2025 pid:#584dc1 eyr:2037 -hgt:151cm iyr:1950 hcl:#cfa07d - -ecl:oth hgt:140 eyr:1977 hcl:#6b5442 iyr:1955 -byr:1999 -pid:868434068 - -eyr:2029 hcl:#18171d cid:158 iyr:2016 hgt:166cm ecl:hzl -pid:100226690 byr:1942 - -ecl:#806ce8 -cid:153 iyr:2024 byr:1985 hcl:da8a68 -pid:#d9e5b0 eyr:2017 - -eyr:2020 hgt:164cm cid:222 ecl:hzl byr:1945 hcl:#cfa07d -iyr:2011 - -iyr:2018 hgt:165cm -pid:868536448 eyr:2026 byr:1930 -ecl:hzl hcl:#623a2f cid:128 - -ecl:grn iyr:2012 -cid:326 byr:1950 hcl:#efcc98 eyr:2029 hgt:177cm pid:685629972 - -byr:2004 hgt:168cm -ecl:dne iyr:2020 hcl:z - -byr:1964 pid:132604237 ecl:oth hcl:#602927 hgt:188cm -cid:78 -iyr:2012 eyr:2025 - -byr:1945 -iyr:2023 ecl:#1a590c hgt:70in -pid:186cm eyr:2031 hcl:z - -cid:178 -ecl:amb eyr:2024 hgt:162cm -hcl:#18171d iyr:2016 -byr:1945 pid:737813370 - -hcl:#18171d -byr:1949 -pid:064917719 -hgt:176cm ecl:amb -eyr:2034 -iyr:1998 - -hgt:72in -pid:711343766 hcl:#623a2f -iyr:2010 byr:1977 ecl:amb cid:177 eyr:2023 - -byr:1933 hgt:66 pid:22149379 eyr:2040 -ecl:#92d7a7 hcl:#cfa07d - -iyr:2020 byr:1946 eyr:2020 ecl:hzl pid:153cm -hgt:159cm cid:261 hcl:#888785 - -iyr:2013 byr:1931 -ecl:#2ced2e hcl:3c49c1 eyr:1950 -hgt:182cm cid:133 pid:#19fc55 - -hcl:#a9abe6 -iyr:2016 -eyr:2029 ecl:hzl cid:343 pid:691253232 byr:1952 hgt:187cm - -hcl:z -eyr:1964 -ecl:#5995e6 -byr:2021 hgt:72in pid:2103603035 iyr:1951 - -iyr:2024 hgt:151in byr:1988 ecl:blu -eyr:1961 cid:117 -hcl:z pid:5371118784 - -hgt:71cm iyr:2021 -eyr:2033 ecl:amb -hcl:z cid:202 -pid:207141921 byr:1987 - -ecl:gry byr:1927 eyr:2024 -hgt:60in iyr:2014 -pid:847799723 cid:285 -hcl:#733820 - -eyr:2022 hcl:#18171d -pid:847063261 -byr:1926 ecl:grn -iyr:2011 - -pid:647225630 iyr:2016 hcl:#a97842 ecl:oth eyr:2025 -cid:144 hgt:182cm byr:1983 - -hgt:150 byr:1924 -eyr:2024 hcl:1600da -ecl:brn -cid:168 pid:656253964 - -hgt:153in pid:644514788 byr:1956 hcl:#866857 -iyr:2029 -ecl:utc - -cid:57 pid:755541617 byr:1961 -iyr:2019 -ecl:grn -hgt:169cm hcl:#efcc98 eyr:2029 - -iyr:2005 -eyr:2040 hcl:8080a4 byr:2013 pid:145803668 - -iyr:2029 -hcl:z ecl:brn -byr:1948 -hgt:76cm pid:186cm eyr:2031 - -hcl:#888785 ecl:grn byr:1983 cid:268 pid:402246959 iyr:2018 -eyr:2020 - -hgt:175cm eyr:2026 pid:594997236 -byr:1991 hcl:#ceb3a1 iyr:2015 ecl:blu - -byr:1989 -eyr:2027 -iyr:2020 hgt:192cm ecl:blu hcl:#cfa07d cid:61 pid:657979353 - -pid:#a043a3 iyr:2016 byr:1947 -eyr:2031 hgt:191cm ecl:xry - -eyr:2023 ecl:blu byr:1948 cid:128 hgt:74in -pid:966094274 -iyr:2015 - -iyr:2020 ecl:zzz -eyr:1999 hcl:3cf716 byr:2017 cid:343 pid:60198759 -hgt:70cm - -hgt:182 pid:80897411 byr:2014 eyr:2033 iyr:1941 ecl:#9c54e8 cid:107 -hcl:z - -iyr:2015 hcl:#866857 byr:1990 cid:167 pid:588340506 eyr:2030 hgt:168cm ecl:oth - -hcl:676aad hgt:151 cid:192 eyr:1930 ecl:oth byr:2012 -pid:513365039 -iyr:1943 - -cid:119 -ecl:#921980 hgt:70cm -eyr:2024 hcl:4909ee pid:#13fe6c iyr:2022 byr:2014 - -eyr:2036 hcl:02fdbc hgt:155cm -iyr:1946 -pid:508011940 ecl:utc byr:2025 - -pid:#f74bbe eyr:2028 hcl:#c0946f hgt:171cm ecl:#9077c0 -byr:1951 iyr:2010 - -iyr:2017 hgt:125 hcl:#cfa07d pid:731062033 ecl:brn eyr:2028 cid:255 byr:2020 - -ecl:xry eyr:2033 byr:1978 -iyr:2012 hgt:70cm hcl:z -pid:272848084 - -ecl:blu hgt:174cm -eyr:2030 byr:1999 hcl:#ceb3a1 iyr:2015 -pid:322583115 cid:301 - -eyr:2007 byr:2007 -ecl:dne cid:322 pid:182cm iyr:2013 hgt:156in -hcl:680e8c - -hgt:189cm hcl:#18171d -byr:1996 ecl:amb -eyr:2022 iyr:2020 pid:470853813 - -pid:785152983 iyr:2014 eyr:2028 hcl:#d50ced ecl:hzl byr:1998 - -ecl:hzl byr:1945 hcl:#7d3b0c cid:164 hgt:187cm pid:414181589 iyr:2018 - -byr:1936 -hgt:183cm ecl:gry pid:376279728 hcl:#7d3b0c -eyr:2023 iyr:2012 - -byr:2000 hgt:157cm -ecl:hzl -iyr:2020 -pid:203994583 -eyr:2023 hcl:#866857 - -eyr:1992 byr:2009 -iyr:2029 -hcl:dc80b3 hgt:70cm ecl:grn pid:#65c31d - -hcl:#7d3b0c -byr:1945 -hgt:177cm -iyr:2013 eyr:2028 pid:038116668 cid:74 ecl:blu - -pid:700997508 eyr:1970 ecl:zzz hcl:#888785 iyr:2013 byr:1986 cid:219 hgt:76cm - -eyr:2025 hgt:161cm -iyr:2015 cid:188 -hcl:#fffffd -pid:840085402 ecl:gry byr:1988 - -pid:96550914 hcl:#481a3b byr:1997 ecl:#a57167 -cid:274 hgt:174cm - -hcl:#b6652a -ecl:brn eyr:2029 -hgt:157cm iyr:2011 pid:910022061 -byr:1947 cid:273 - -pid:010289131 eyr:2026 -byr:1930 -hcl:#b6652a ecl:grn -cid:220 hgt:187cm iyr:2013 - -hcl:#6b5442 ecl:grt hgt:120 -pid:454504291 eyr:1933 byr:2025 iyr:1930 - -iyr:2016 -hgt:180cm ecl:amb eyr:2028 cid:237 -pid:334803890 byr:1953 hcl:#18171d - -eyr:2020 byr:2002 hcl:#c54f21 -iyr:2019 ecl:blu hgt:180cm cid:138 - -byr:1933 -iyr:2020 -ecl:brn hgt:185cm -hcl:#c0946f -eyr:2020 pid:050791974 - -byr:1933 ecl:brn hgt:186cm -pid:643899463 eyr:2030 iyr:2019 -hcl:#866857 - -iyr:2018 byr:1935 ecl:oth -eyr:2029 -pid:732801213 hcl:#6b5442 hgt:169cm - -eyr:2020 -hcl:z byr:1996 -ecl:#4102ee -pid:890541531 hgt:193cm iyr:2014 - -pid:618379341 ecl:gry hcl:#18171d byr:1991 eyr:2025 hgt:154cm iyr:2019 - -iyr:2013 -pid:912066964 ecl:grn eyr:2040 hgt:192cm byr:1974 -hcl:#18171d - -eyr:2025 cid:167 hgt:192cm -pid:678328147 ecl:gry -hcl:#18171d iyr:2017 - -iyr:2011 byr:2021 hgt:189cm ecl:gmt hcl:z eyr:2035 pid:278839955 - -eyr:2030 hcl:#efcc98 -ecl:blu iyr:2011 -pid:536958012 hgt:192cm byr:2002 - -pid:#1306f2 byr:1976 -hcl:#790688 hgt:158cm ecl:grn eyr:2024 iyr:2019 - -eyr:2030 hcl:#866857 -cid:50 ecl:oth pid:421235317 -iyr:2014 hgt:60in - -iyr:2020 byr:1971 cid:124 -pid:319896110 ecl:oth hcl:#fffffd - -cid:143 -eyr:2021 hgt:190cm pid:366021385 hcl:#18171d ecl:amb byr:1934 -iyr:2016 - -hgt:169cm hcl:#602927 pid:177cm -eyr:2022 byr:2020 ecl:#dd96f4 iyr:2014 - -eyr:2020 hgt:173cm pid:591592395 ecl:oth byr:1966 -hcl:#c0946f iyr:2020 - -pid:282088832 ecl:gmt -hgt:167in byr:2016 hcl:z -iyr:2018 - -iyr:2016 -hgt:62in hcl:#c0946f -pid:306204399 eyr:2020 ecl:brn -byr:1999 - -eyr:1947 byr:1984 pid:595671246 hcl:3d50e7 ecl:xry iyr:1947 - -hgt:187cm -eyr:2024 pid:477011496 -byr:1971 -hcl:#733820 -iyr:2010 -ecl:brn cid:165 - -byr:2023 -pid:173cm -hgt:193in eyr:2019 cid:102 ecl:grt hcl:#c0946f - -pid:195062251 -iyr:2027 -cid:138 byr:2021 ecl:brn eyr:2025 hgt:60in - -hgt:71cm hcl:z -ecl:utc -eyr:2021 iyr:1925 pid:5469028726 byr:2017 - -hcl:#b6652a hgt:168cm -byr:1960 ecl:grn -pid:653140418 -iyr:2014 eyr:2023 - -pid:#afa892 cid:190 hcl:z -hgt:189cm -eyr:2020 ecl:gry -byr:2003 -iyr:1956 - -hcl:e4cddf cid:185 pid:189cm hgt:175cm -byr:2016 iyr:2010 ecl:#fa945d eyr:1947 - -cid:176 -hcl:7752f8 eyr:2039 byr:2019 ecl:hzl iyr:2029 hgt:185cm pid:636534364 - -cid:170 ecl:gmt hcl:ef5177 byr:2021 -eyr:1993 -hgt:71cm pid:2136295 iyr:2013 - -byr:2028 pid:156cm hcl:d74b86 cid:238 -hgt:89 -iyr:1957 eyr:1937 - -eyr:2030 byr:1932 hcl:#c0946f cid:349 -hgt:177cm -ecl:grn iyr:2016 - -hcl:z byr:2003 -ecl:#9b98b2 hgt:81 pid:13338103 eyr:2040 - -iyr:2018 pid:801432704 hgt:73in byr:1964 cid:298 hcl:#fffffd ecl:amb eyr:2030 - -cid:272 -iyr:2019 pid:369160624 byr:1929 hgt:184cm eyr:2025 hcl:#ceb3a1 ecl:blu - -hcl:#7d3b0c pid:525287934 -byr:1998 eyr:2027 -iyr:2017 hgt:168cm ecl:gry - -byr:1975 eyr:2027 -ecl:brn cid:125 hcl:4e319d -hgt:172cm pid:308046532 iyr:2017 - -hcl:b889c0 pid:6699675552 byr:2019 iyr:1968 -ecl:gmt -eyr:2003 -hgt:180in - -byr:2025 -ecl:zzz hgt:162in hcl:z iyr:2002 pid:#87dca4 eyr:1951 - -eyr:2022 -pid:549517742 ecl:hzl -iyr:2026 -byr:2029 hgt:153cm hcl:2993de - -eyr:2024 -pid:755674604 iyr:2018 hcl:#c0946f -ecl:gry byr:1966 -hgt:188cm - -pid:665375893 iyr:2017 -byr:1997 -eyr:2029 hgt:173cm ecl:gry - -hcl:#6b5442 hgt:74cm ecl:#0dc7f6 -pid:451038742 eyr:1982 byr:1939 -iyr:1932 - -hcl:#18171d -byr:1980 ecl:gry -iyr:2019 hgt:167cm -pid:326267989 eyr:2028 - -cid:226 hgt:177cm ecl:hzl hcl:#a97842 eyr:2025 -iyr:2013 -byr:1949 pid:292166795 - -ecl:oth pid:962521763 -iyr:2013 cid:71 eyr:2022 hgt:193cm hcl:#18171d byr:1969 - -ecl:grn iyr:2028 eyr:2024 -hgt:189cm hcl:z byr:1940 pid:032392876 - -iyr:2012 hgt:191cm cid:339 ecl:oth eyr:2028 pid:392810631 hcl:#b6652a byr:1959 - -iyr:2011 byr:1975 -eyr:2027 -hcl:#18171d -hgt:176cm -ecl:gry pid:290432747 - -cid:180 ecl:brn pid:210871734 eyr:2027 -byr:1946 hcl:z hgt:185cm iyr:2011 - -byr:1924 ecl:grt -eyr:2028 hgt:187cm pid:#608f4f - -eyr:2022 ecl:#a05063 byr:1926 hcl:#7d3b0c pid:3292990618 hgt:183in iyr:2021 - -ecl:#a8b66c -iyr:1942 eyr:1960 hgt:60cm byr:2027 pid:#3b6f3f hcl:9fae56 - -hgt:183cm -ecl:oth hcl:#c0946f pid:816986054 eyr:2020 iyr:2014 byr:1935 - -hgt:174 byr:2008 -iyr:2029 hcl:9259e7 pid:85036214 ecl:gmt - -cid:85 -pid:032040868 -byr:2001 eyr:2027 hcl:#c0946f ecl:grn iyr:2020 -hgt:173cm - -hcl:#6b5442 -cid:308 -ecl:grt iyr:1939 byr:2009 -pid:9365125584 eyr:2031 hgt:67cm - -hgt:154cm -byr:1936 -eyr:2030 hcl:491c70 pid:391887956 iyr:2029 ecl:blu - -hcl:#866857 -hgt:161cm cid:76 pid:921202500 eyr:2021 ecl:brn byr:1968 - -iyr:2024 ecl:dne hcl:z pid:8054447805 hgt:154 eyr:2035 byr:2024 - -hcl:#0a524b pid:667928918 -eyr:2025 -cid:245 ecl:brn byr:1973 hgt:179cm - -ecl:gry hgt:68in pid:322837855 eyr:2023 -cid:323 byr:1944 -iyr:2012 - -byr:1940 -hgt:178cm ecl:hzl hcl:#c0946f iyr:2030 -eyr:2020 pid:788531859 - -cid:253 iyr:2012 hgt:163cm -pid:554364568 eyr:2025 byr:1976 ecl:grn hcl:#888785 - -hcl:#efcc98 iyr:2015 ecl:gry eyr:2029 pid:273847553 cid:274 -hgt:68in byr:1933 - -hgt:165cm -pid:209462386 eyr:2024 -byr:1969 hcl:#733820 ecl:grn -iyr:2020 - -byr:1975 hgt:187cm eyr:2027 iyr:2018 hcl:#c0946f ecl:hzl pid:141969110 - -hcl:z pid:534439483 iyr:2022 ecl:grt eyr:2036 hgt:164in cid:324 -byr:2025 - -hcl:#74ca66 -iyr:2011 -pid:253012158 -hgt:188cm -cid:246 ecl:oth eyr:2023 - -byr:2020 pid:56939101 hcl:9f5f65 -eyr:1949 -iyr:2021 hgt:155in - -iyr:2020 hgt:174cm cid:304 -byr:1944 -eyr:2028 hcl:#733820 - -hcl:#866857 ecl:gry eyr:2030 iyr:2014 hgt:63in byr:1997 -pid:371522079 - -ecl:amb -byr:1955 iyr:2013 -hcl:#888785 cid:265 eyr:2026 hgt:190cm pid:311393763 - -eyr:2026 iyr:2019 -pid:721355771 byr:1947 -hcl:#733820 -hgt:71in ecl:gry - -cid:94 eyr:2024 byr:1938 pid:336868233 ecl:hzl -iyr:2012 -hgt:177cm hcl:#7d3b0c - -ecl:brn iyr:2010 -eyr:2027 -pid:379769214 -cid:111 byr:1960 hcl:#cfa07d hgt:169cm - -hgt:179cm -hcl:3f59a6 eyr:2036 byr:2025 ecl:oth pid:217404607 -iyr:2018 - -ecl:amb pid:820370865 hgt:170cm iyr:2012 byr:1967 hcl:#efcc98 cid:309 eyr:2025 - -byr:1940 -pid:008495978 ecl:gry hgt:159cm hcl:#602927 eyr:2024 - -hgt:186cm -byr:1971 pid:556900517 cid:334 hcl:#efcc98 ecl:brn -iyr:2014 - -iyr:2020 byr:1928 -cid:200 hgt:193cm -ecl:grn hcl:#7d3b0c - -cid:233 -hcl:a3046e pid:626863952 ecl:lzr iyr:2029 eyr:2024 byr:2000 hgt:193cm - -cid:244 -hcl:#866857 ecl:amb byr:1931 -eyr:1928 pid:557376401 hgt:182cm iyr:2013 diff --git a/src/files/P5.txt b/src/files/P5.txt deleted file mode 100644 index 11800ca..0000000 --- a/src/files/P5.txt +++ /dev/null @@ -1,901 +0,0 @@ -BBFBBBBRRL -FBFFFFBLRL -FBFBBFFRLR -FBFFFBFRLR -FFBBFFFLRR -FFBBBFFRRR -BFBBFBFLRL -BFFFBFFLRR -FBBBFFBLLR -BBFFBBFRRL -BFBBBBBRLR -FBBBBFFLLR -FFBFFFBLLR -FFBBFBFRRR -BBFBFFFRRR -FFBFFBBLLR -FBBFFBBLRL -FFBBBFBLLL -FFBFFBBLRR -FBFFBFBLLR -FFFBBBFLLL -BFBBFBFRLR -BBFBBBFLLL -FBBBFBBRLL -FFBBBBFRRL -BFBBBBFLRR -BBFBBFBLRL -FFBFFFBLRL -BFBBBBBRRR -FFFBFBFLLR -BFBFBBBLLR -FFBFBBBLRL -FFFBFBBLRR -BFFBFFFLLL -BFFFBFBLRL -BFBFFFBRLL -BBFFFFBRLR -FBBFFFBLRR -BFFFFBFLLL -BBBFFFFLLL -BFBFFBBRLL -BBFBFFFRRL -BFBBFFFRLR -BBFBFBFRRL -FBBFFBFRRL -BFBFBFFRRL -FFBFFFFLLR -FBBBFBBLLR -BBFFBFBRLL -BFFBFBBRLL -FBBFFFFRRR -BFFFBBBLRL -FFBBFFBLLL -FFFBBFFRRL -FBFBBBBLRR -FFBBBFFLLL -FBFBFFBRRR -FBBFFBBLLR -FBFFBFFRLL -BFBBBFFRLR -FBFFBBBLRR -FBFFFFBRLR -BBFFBBFLRL -FBFFBBFLRL -FBFBBFFRRR -BFBBBFBLRL -FBFBFFFLLR -FFFFBBBLLR -BFBFFBBLLR -BFFBBBFRLR -BFBBBFFLRR -BBFFFBBLLR -BFFFBBFLRL -FBFFBFBLRL -FBBBFFFRRL -FBFFFFBLLL -BFBFFBBRLR -BFBFBBBLRL -BFFBFBBRLR -FBBFBBBLLR -FFBFBFFRLL -FFFBBBBLRR -BFBFFFFLLL -BBFBFBBLLR -BFFFBBBRLR -FFBFFBFRLR -FBBFBBBLRL -BBFFFBBLLL -FFBFFBBRRR -FBBBBFBLLR -BBFBBFFRLL -BFBBBBFRLR -BBFBFFBRLR -FFBFFFFLLL -BBFBFBFRLL -FFBFFBBRLL -FBBFFFFRLR -FFBBBBBRRR -BBFFBBBLRL -BFFBBFBRLL -BFFFBBFRLL -BFFBFBFLRL -FBFFFFFRRR -BFFBFBBRRL -FBFBBBFLLR -FBFBFBBRLL -BBBFFFFRRR -BFBFBFFLRL -FFFFBFBRLL -FFBBFFBLRL -BBFFBFBLLL -BFFBBBBRLL -BFFBBBBRRR -BFBBBBFRRL -BBBFFFBLRL -FFBBFFFRRR -BFFFFFBRLR -FFFBBFBLLL -BFBFBBFRLR -FBBBFBFLRL -BFBFBFFRLR -BBFBBFFLRL -BFFFBFBLLL -BFFFFBBRLL -FFBFFFFRRL -BFFBFBBLLR -FFFFBBBLLL -FBBFFBBRRL -BFBFFFFLLR -FBFBFBFRLL -FBBBBBBLRR -BBFFFFBLRR -FFFFBFBRRR -FBBBBFBRLL -BBFBFBBLRR -FFBBFBFLLL -BFBBFFBLRL -FFFBBBBRRR -BFBBFFFRLL -BFBBBFBRRR -FFFFBBFRLR -FFBBFBFLRR -FFFFFBBLLR -BBFBBFBRLL -FBFBBBBRLR -BBFFFFBLRL -FBBFFFBLLR -FFBFFBBLLL -FFFBBBFLLR -FFFBBBFRRR -FFBBBFBRRR -FFFBBFFRRR -FFBBFFBLLR -BFBFFBFRRR -FFBFBBFLLR -BFFFFFFRRR -FFBFFBFLRL -BFFBFBBRRR -FBFBFFFRLL -BBBFFFBLLL -BFBBFBFRRL -BFFFFFBLRR -FBBBBBFRRR -FFBBBBFLRR -BBFBBBBLRR -BBFBFBFLLR -FFFFBBFRRR -FFBBBBBLLR -BFFFBFBRLR -FBBBFFBLLL -FFFFFFFRRR -FFFBFBFRRL -BFBBFBBLRR -FBBBBFBLRL -FBBBBFBRRR -BFFFFBFRRR -BFFBBFFLLL -FBBFBFBLRL -BFBBFFFRRL -FBFBFFBRLR -FBFFBFFLRR -BFFFBFBLLR -BFBBFFBRRR -BBFBBFBLLL -BFFBFFFLRR -FFFBBFFRLL -BFBBFFFLLL -BFFFBBBRLL -FBFFBBFRRR -FFBFBFBLLR -FBFFFFBLRR -FFBBFFFLLL -FFFBBBBRRL -BBFBFFFLLL -BBFFBBFLLR -BFBFBBBRRR -FBBBBFBRRL -FBFFFBFLLR -FBFBBBFRRR -BFFFBFBRRL -FBFBBBFLRL -BBFFBFFLRL -BBFBBFFLLR -FFFFBFFRLL -FFFBBBBLRL -FBBBFBFRLL -BBFFFBBLRL -FFFBFFBLRR -BBFBFBBRRL -FFFFBBBRRR -FFBBBBBLRL -FFFFFFBLLL -FBFFFFFRRL -FFFFFBBLRR -BFFFBBBRRL -FBBFFFFLRL -FFFFFBBRLR -FFBFFBFRLL -FFFBBBFRRL -BFBBBFFLRL -FFFFFBFLRR -BFBFBBBRLR -FBFBBBFLLL -BFBFFBFLRL -FFBFBFFRRR -FFBBFFFRLL -BFBFBFFLLL -FBFBFBBRLR -BFFBBBFRRL -FBFFBBBRRR -FBFBFBBLRR -BFBBBBFLLR -FFFBFFFRLR -BFBBFFBRRL -BFFFBFFLRL -BFBFBBFRRR -FBBFFBFLLL -FFFFFFBLRR -FBFFBFBLRR -FFBBBFFLRR -FBBBFFBRLL -BFFFBBBRRR -FFBFFFFRLL -BBFFFBFRRR -BFFBFBBLLL -BFBBFFBRLR -FFBFBBBLRR -FFFBFBBLLL -FFFBBFFLLL -FBBBBBBLRL -BFBFBBBLLL -BFBFFFFRRL -FFBFBBFRRR -FFBFBFBRRL -FFFBBBBRLL -BFFBFFBRLL -BBFFFFBRRL -FFBFBFBLLL -FFBFBFBRLL -FBFBBBFRRL -FBFFBBFRLR -BBBFFFFLRL -FBFBFFFRRL -FFFBFBFRLR -FBFBFBBRRL -BFBBFBBLLL -FFBBBBBRLL -BBFFBFBRRL -FFFBFFFRRR -FBBFBFBLLL -BFFFBFFRLR -FBFBFFBRLL -BBFBBFFLLL -FBBBBFFLRR -FFBBBFFLRL -FBBBFFBRRR -FFBBFBBRLR -FBFBBFFLLR -BFBBBFFLLR -FFFBBFFLRR -FBFFBFFLRL -BFBFBFFLRR -BBFBFFFLLR -FFFBBBBLLR -FFBBFFBRLL -BBBFFFBRLL -FBFFBFBRRL -BFBFFFFRLL -FBFBFBFRLR -BBFFFFFLLL -FFBFBBBLLR -FFBFBFFLRR -FBBBBFBRLR -FFBFBBBRLR -BFFBBBBLRL -FFBBBBBRLR -BFBBBFFRRR -FBFBBFBRLL -FFBFFFBRRL -BBFBFBFLLL -BFBBBFBRLR -BFBBFBFLLR -FBBFBFFRLL -FFBFBBFLRR -BFFBFBFRLL -FFBBFBBLRL -FBFBFBBLRL -BBFFFBFLLR -BFBFBBBLRR -BBFFBBBLLR -BBFFFFBRRR -BFFFFFBLRL -FBBBFBBRRR -BFBFFFBLLL -FFFBBFFLLR -BFFBBFFLLR -BBFBBBBLRL -FBBFBFFLRR -FBFBFFBLLR -BFFFFFFLLL -BFFBBFFRLL -BBFFFFFLLR -FBFFBBFRRL -FBBFFFFLLR -BFBFFBBRRL -FFBFFFBLLL -BFFFFFBLLR -FFBBBFBRRL -FFBBBBFLLR -BFBFFFBLLR -FFFFBFFRLR -BFBBFFBRLL -FFBBBBBLLL -FBBFBFFRRR -BFFFFFFLLR -FFBBBBBLRR -FFFFFBFRRR -BFFFBBBLLL -BFFFBFFRRR -FFBBBFBRLR -BFFBBBBLRR -BFBBBFFRRL -BFBFBFFRRR -BFBBFBBRLR -BFBBBBFRLL -FFBBBBFLLL -FFFBBFBLRR -FBBFBBFRLR -BBFBBFFLRR -FBBFBBBRRL -BFFBFFFRRL -BFFFFBFLRR -FFBFBBFLLL -FFBFBBBLLL -FBFFBFBRRR -FFFBFFBRLL -BFFFFBFLRL -FFFFBFFLLR -BBFBBBBRLL -FBFBBFBRRR -BFFFBBBLRR -FBFFFBFRLL -FFBBBFBLRL -FBFFFBBLRR -FFBBFBFRLR -FBBBBBFLRL -FFFFBFBLRR -BFBFBFBLRR -FFBBFFFLRL -BFFBBBFLLR -FFFFFFBRLR -FFBBBFBLRR -FBFBBFFRLL -BBFBFBFRLR -FBBFFFFLLL -BFBBFBFRRR -BFFBBBFRRR -FBFFFBFLRR -FBBFFBFLRL -BFBBFFFLRR -FFBFFFFLRL -BFFBFFBLLL -FFFBFBBRRR -BBFFBFFLRR -BBBFFFFRRL -FBBBFFBLRL -FBBFFBBLRR -FFBFBFFLLR -FFFBBFFRLR -FBBBFBBRLR -FFFFBBBLRR -BBFFBFBRRR -FBFBBFFLRL -FBBBBFFLLL -FFBFFBBRLR -BBFFFFFLRR -FFBFBFBRLR -FFBFBFBLRL -FBBBFBBLRL -FFFBFBBLRL -FBFBFFFRRR -BFFBFFFRLR -BFBBFFBLLR -BFBFFBFRLL -FBFBFBFRRR -FBFFFFBRLL -FFFFFBBRRR -FBBBFFFLRL -FFFBFFBRLR -BFBFFBFLRR -FBBFBBFRRL -BFBBBBFRRR -BFFFFBBLRR -FBFFFFFLLL -BFBFFFBRRL -FFFBFFBLRL -FFBFFFBLRR -FBBFFBFRLL -BBFBFFBLLL -BBFFBBFLLL -FFBBBFFRLL -BFBBFFFLRL -FBBFBFFLLR -FBFBFFBLLL -FFBBBFFLLR -FBBFFBFLRR -FBBFBBFRRR -BFFFFBBLLL -FFFBFFBLLR -FBFBFFFRLR -FBFBFBBRRR -FBFBBFBRRL -BBFBBFBRRR -FFFFBBBRLL -FBFFBBBLRL -BBBFFFFRLL -FBFFFBFLRL -BFFFFBFLLR -FBFBBFFRRL -BFFBFBBLRR -FBFBBBBRRL -FBFBFBBLLR -FBFFBBFLRR -FFFFBFFLLL -BFBFFFFRRR -BBFFBBBLRR -FBFFFFFLLR -BBFBFFFRLR -BFFFFBBRLR -FBFFFFFLRL -FBBBFBBLRR -BFFBBFBLLL -BFFBFBBLRL -BFFBBBFRLL -FFBFFBFRRR -BFBFBFBRLL -BBFBBFBLLR -FBFBBFBLRL -FBFFFBBRLR -BBFBFFBRLL -BBFFFBFRLR -FBBFFFBLLL -BBFBBBBLLL -BFFFFFFLRR -FBBBBBFRLL -BFFFBFBRRR -BFFFFFFLRL -FBBBBFBLRR -FBFFBBBRLR -FFBBFBFRRL -FFBBFBBRRL -FFFBFBFRRR -FFBBBBFLRL -BFBBFFFRRR -FBFBBBBRLL -FBFFBBFRLL -FFBFFFFRRR -BFFFFBBLLR -FBFBBFBLLR -BBFFBBBRRR -FBBFBBBRLR -BFBFBFFRLL -BFFBBFBLRL -BFFBFFFRRR -FFBBBFBRLL -FBFFBFFRRL -FBBBBFFRRR -FFFBBBFRLL -BBFFFBBRLL -BBFFFBBRLR -FFBBFFFRRL -BBFFBFBLRR -BBFBFFBRRR -BFBBBBBLRR -BFFBBFFLRL -BBFFFFBLLL -FFFFBFBRRL -FBBFFBBRRR -FBBBFFFLRR -FBBFBBFLRR -FBBBFBBLLL -FFFFBBFLRL -FFFFFBBLLL -BFBBBBBLLR -BFBFFFFLRR -FBFFFFBLLR -BBFFBBBRLL -FBFFBFFRRR -FFBBFBFLLR -BBFBBBFLRR -FBBBBBBRLL -FFFFFFBLLR -FFFFFBFRLR -FBFFBFBRLL -BBFFBFFRRR -BFFBFFFLLR -FFBBFBBLRR -BBFFBBBRLR -FFBBFFBRRL -FBBBBFFRRL -BFBFFFFRLR -BFBBBFBLLL -BFBFFFBRRR -FBBBFFFRLR -BFBBFFBLRR -BBFBBFFRLR -BBFFFBBRRR -FFFFBBBRRL -FFBFBBFRLL -FBFFFFBRRL -FBBBFFBRLR -FFBFFFBRRR -FBBBBBBLLL -BFFBFFBLRL -FBFFBBBRLL -BBFBBBFRLR -BFBFBFBRLR -BBFFFFBRLL -FFBBFBBLLR -FFBBFFBRLR -BBFBBBBRLR -BFBBBFBLLR -FFFFBFFRRR -BBFFFBFRRL -FBBFBBBLLL -FFFBFFFLRL -BFFFFBBRRR -FFFBFBFLRL -BBFFBBFRRR -FBBFFFFLRR -FFFBBBFLRL -BFFBBBFLLL -BFBBFFBLLL -FFFFFFBLRL -FBFFBFFLLL -FBBBBBBRRR -FBBFFBBRLR -BFFFBBBLLR -BBFBBBBRRR -BFBFBFFLLR -BFBFFBFRLR -FBBBFFFRRR -FFBFBBFRLR -FFFFFBFRLL -FFBFBBBRRR -BFBFFBBLLL -FBBBBBFRLR -FFBBFBBLLL -BFBFFBBLRL -FBBFBFBRRL -BFFBBBBRRL -FBBFFFBLRL -FBBFBFBLLR -FBBFBBBLRR -BFBBBFBRRL -FBBBFBFLLL -BFFFBFFLLR -FBBBFBFLRR -FFBFFBBLRL -BBFBBBBLLR -BFFFBFFLLL -FBFFFFFLRR -BBFBFBBLRL -BFBFBBFRRL -FBFBFFBLRR -BFFFFFFRRL -BFFFFBFRLR -BFBBFBBRLL -BBFFFFFRLL -FFBBFFFLLR -FFFBFFFLRR -FFFBFFBRRR -BBFBFFBLLR -BFFBFFFRLL -FBFBFFBRRL -BFBBBFFLLL -BBFFBFBLRL -FBFBBFFLRR -FBBFBBBRRR -FFFBBFBRLL -FBBFBFBRRR -BFFFBBFLLL -FBBBFFBLRR -BFBFFBBRRR -FFFFFFBRLL -BBFFFBFLRL -BFBFBFBRRR -BFFFBBFRLR -BFBFFFBLRR -FFFBFFBRRL -BBFFFBBRRL -BFBBBFBRLL -BFBFFFBLRL -FFFBFFFLLR -BFFBFFFLRL -BBFBBFBLRR -FBBBFBBRRL -FBBFBFFRLR -FBFFFFFRLR -FBBBBFFRLR -BFBFBBFRLL -BBFBFBFRRR -BFBFBFBRRL -FBBBBBBRLR -BFBFBBFLLR -BFFFBBFRRL -BBBFFFFRLR -BBBFFFBLLR -FBFBBBFLRR -FBFFFBBLRL -FBFFBBBLLR -BFBFBBFLRR -BFBBFBBLRL -BFFFFFBRRL -FFBBFFFRLR -BFFBBFFRLR -BFBFBFBLRL -BFFBFBFRLR -FFBBFFBRRR -BFBBBBBLLL -BBFFFFFRRL -BBFFFFFLRL -FFFBBFFLRL -BFBBFBFRLL -FFFBBBBLLL -FFFFFBFLRL -FFFFBBFLRR -FBFFFBFRRR -BFFBBBBLLL -BBFBBFFRRL -BFFFBBFLLR -FBBBFFFLLL -FFBFFBBRRL -BFBBBFBLRR -BFFBBBFLRL -BFBBBBBRLL -FFFBBBFRLR -FFFFBFFRRL -FFBFBFFLLL -BBFBFFFLRL -BFFFBBFLRR -FFFBFBFRLL -BFBFFBBLRR -FFFBFBBLLR -BBFFFFFRLR -FFBFBFFRRL -FFFFFBBLRL -FBBBFBFRRL -FBBBBFBLLL -FFFFBBBRLR -FBBBBFFLRL -BFBBBBBRRL -BBFFBFBLLR -FBFBFFFLRL -FBFFFBFRRL -FFFBBFBLRL -BFFFFFBLLL -BFFBFBFLLL -FFFFBBFRRL -FFFBFBBRLR -FBFBBBBRRR -FBFFBBBLLL -FFBBBBFRRR -BFFFFBFRLL -BBFBFBBRLR -BFFBBBFLRR -FBBFBFFRRL -FFFFFBFLLL -BBFBFBFLRR -FFBFBBFLRL -BFFBBFBRLR -FFBBBFFRLR -FFFBBFBRLR -FBFBBBBLLR -BFFBBBBLLR -BBFBFBFLRL -BBFFFFFRRR -FFFBFFFRRL -FBBFFBFRRR -BBFFBFFRLL -FFBBFBFRLL -FFFFBFBLLR -BBFFBBFRLL -BFBBBBFLRL -FBFFBFFRLR -BFBFBBFLLL -FFFFBBFLLL -BFBBBBBLRL -FFBFBFBLRR -BFFFFFBRRR -FBFBBBBLRL -FBBFBBFLLR -FBBFFFFRRL -FBFFFBFLLL -FBFFBBBRRL -FFBFFFFRLR -FBBFBBBRLL -FFFFBFBRLR -FFBFBBBRRL -BFFBFBFRRL -FFBFFBFLLL -BFFBFBFLRR -BBFBFFBLRL -BBFFBFFLLR -BFBBBBFLLL -BBFBBFFRRR -BBFFFBBLRR -BFBFFBFRRL -FBBFBFBLRR -BBFBBBFRRR -FFFBBFBLLR -FFFBFFFLLL -FBBBFBFLLR -BFBBFBFLLL -BFBFBFBLLL -BBFFBBFLRR -FFFBFBFLRR -BFFFFFFRLR -BBFBFBBRRR -BBFFFBFRLL -FFFFBBFRLL -FBBFBBFRLL -FBFFFFBRRR -FBFFBBFLLR -BFFBFFBLLR -FFBFFBFLRR -FBFFBFBRLR -FBFBBFFLLL -FBBFFFBRRL -FBFBFBFRRL -FFBFBFBRRR -FBFBFBFLRL -FFFBFBBRLL -FBBBFFFLLR -FFBBBBFRLL -FBFFFBBRLL -BFFBFFBLRR -FBBFBBFLRL -FBFFFBBRRR -FBFFFBBLLR -BFFBFFBRRR -FBBBFBFRRR -FBFFFFFRLL -BBFBBBFRLL -FFFBFFBLLL -FFBFFFFLRR -FBFFFBBRRL -BBFFBFFRLR -FBFBFBBLLL -FBBBBBBLLR -FBFBBFBLLL -BBFBFFFLRR -BFFFFBBRRL -BBFFFBFLRR -FFBFFFBRLL -FFFFBBBLRL -BFBBBFFRLL -BBFBFFFRLL -FBFBBBBLLL -BBFBBFBRLR -BBFFBFBRLR -BFBFFFFLRL -FBBBFBFRLR -FFBFFFBRLR -FBBBBBFLLR -FFBBBFBLLR -BFFBBFBRRL -BBFFBFFRRL -FFFFFFBRRR -FFBBFBBRRR -FBBBBBBRRL -BFFBBFFRRL -FBBFBFBRLR -FBBFFFFRLL -FBBBBBFLLL -FBBFFFBRRR -BFFFFBBLRL -FFFFBFBLLL -FBFBFFFLLL -FBFBBFBLRR -FFFFBFFLRR -FFFBBBFLRR -FBFFBFFLLR -BBFFBFFLLL -FFBFFBFRRL -BFBBFBBRRR -BBFFFBFLLL -FBFFBFBLLL -BFFBFFBRRL -BBFBFFBLRR -FBFBFFFLRR -BFBBFBBLLR -BFFBBFFRRR -FFFFFFBRRL -BBBFFFFLLR -BFBFFBFLLL -FBBBBBFRRL -BFFBBBBRLR -FFBBFBFLRL -FBFBFFBLRL -FFBBBBFRLR -BBFBBFBRRL -FFFFFBFLLR -FBFBFBFLLL -BFBFBFBLLR -FFFBFFFRLL -BFFBBFBLLR -FFBBFBBRLL -FFFBBFBRRL -FBBFFBBLLL -FFFBBBBRLR -FFFBBFBRRR -BBFFBBBRRL -FBBFBFFLRL -FBBBBBFLRR -BBFBFFBRRL -FFFBFBFLLL -FBBBFFFRLL -BFFBFBFLLR -FFBBBBBRRL -BFFBBFFLRR -FBBFBFBRLL -BFFFBFFRRL -BBFFFFBLLR -BBFFBBFRLR -BFFFBBFRRR -FBFBBFBRLR -FFFFFBBRLL -FBBFFFBRLL -BFFFFFBRLL -BFFFBFBLRR -BFFBFFBRLR -FFFFBFBLRL -FFBFFBFLLR -FBBFBFFLLL -BFFBFBFRRR -BBFBBBFLRL -BBBFFFFLRR -BFBBFFFLLR -FBBFFFBRLR -FFFFFBFRRL -FFFBFBBRRL -BBBFFFBLRR -FFBFBBFRRL -FFBBFFBLRR -BBFFBBBLLL -BFBFBBBRRL -BFFFBFBRLL -FFBFBBBRLL -FBFBFBFLRR -FBFFFBBLLL -FBBFFBFLLR -BFFFFBFRRL -FFBBBFFRRL -FFBFBFFLRL -BBFBBBFLLR -FBBFFBFRLR -FBBFFBBRLL -BFBFFFBRLR -BFFFBFFRLL -BBFBFBBRLL -BFFFFFFRLL -FBFBBBFRLL -BFBBFBFLRR -BFBFBBBRLL -BBFBBBFRRL -BFFBBFBRRR -BFBFFBFLLR -FBFBFBFLLR -FFFFFBBRRL -FBFBBBFRLR -FBFFBBFLLL -FFBFBFFRLR -BBFBFBBLLL -FFFFBFFLRL -FBBFBBFLLL -BFBFBBFLRL -FFFFBBFLLR -BFBBFBBRRL -FBBBFFBRRL -FBBBBFFRLL diff --git a/src/files/P6.txt b/src/files/P6.txt deleted file mode 100644 index b3eb36f..0000000 --- a/src/files/P6.txt +++ /dev/null @@ -1,2198 +0,0 @@ -xtpmjeuayzkflcdo -zdaeyxlpftkmojc - -ifnkhzalvprjtyus -lmihuzrytjns -uilmsotygbnhrzj -uwslqctjnirzxhy - -lhuydwqxaempbisrnfcjtvz -rvtcegbhljadfpxzsiuyqwnm -rzyvtefjdsplucmqbinahxw - -whlxgytuoaidpfrsbvmkjqez -iwfghlytovbpdemzanjq -mpejclwhqziatybogvdf - -qsmuehbvfiwlkx -gtmdsbrqfwhk - -lagwjpd -dpglwja -qgdawplj - -faqjpheg -acnfgtkzj -msjdfox - -gsqhdrcvyxbp -yhvgpsqxcbdr -drqvgxhyspcb -cgqrypdhbxvs -hbdxgyscjqprv - -bgahiyplewc -qaprike -aojpszixe -airpksoe -mpzaiek - -ihyudtfbjqnxop -poyiuqjdlhmtxb - -gw -bg -g - -zxjgytpsnol -tfuexgspvdkb - -zmisajphc -paifmh -ipnhdma -dbacphmi -omhpwailkyv - -ind -jd -olxtyd -daylkbtox - -hjmdrgevkztwfsx -gsm -gsapioqm -ngoaqms -omlqgys - -qfxwksiyluhvgnaotd -hqnrauzcdifeoglsyt -dgnfqsaytlihmou - -brmeuyxlagqsz -zfkiyxnloagjeqwh - -whqgiduclktrebyfp -kcirhydwebpfqgtul -tfclebygmdnuriqkwhp -ytfipklgubqwdrehc - -yubh -dhu - -sncvemkuwhi -wizhecnxlvbkms -ykvshenmicwu - -dlfbyscp -oruaxtg -rowqu -gze -i - -hgtejbrcxdolv -lbmhepjxsvdrqcgo -jelrbohcdxvngf - -wrqxeocjni -lnirqcoxjwk - -xmshq -mhqxs -shxqm -mxsqh -hmqsx - -rbwdsfcgute -oa -lqizp -kxvjyz - -gxikepca -cigaekx -xkgacei -kceigxa -ecxikag - -ltpzifo -ozitrslp - -tixaqjd -qtw -ctrlqfznmg -wqtbk - -uyi -nuiy -iyu - -nwid -zkmf - -oqerdmwk -dmorkew -meorkwd - -gjvkzlbrxiyotpfqedu -xtqfgluozkvimrydpjeb -rzbfjotiuqkpgxvldey -ixkptzqdouvbgrlyefj -pvxqydniuegjwbartfkolz - -rkhexctuiopsjlzw -thxscuzrdlpjekiwo -sjihrzuwkcoelxtp -rtjcusoipxewklhz -sokecrwuzpxltihj - -sdqlwfuo -uqsdlwfo -slqdufow -oafswqdlu -wfquosld - -qksticygoejwnvhf -lnkipymvstjqzgfcaorxw -fwqgcyovjteisdkn - -fjcywhvqdirxblzkaegpumnsto -qjigrmzsfexaholvnutcbywpdk - -qgbaphtxuf -khpug -ipuzshgky -pmgshu - -fjpvbdtlcugxizhwsrokmaqy -fgznwthadpvkxrsbqcyom - -oqet -toeq - -mrfhtwenxykibpsoj -qlucvsmroghwzpbtadx - -aspnfmxi -ivlgfmy - -mznti -tnzmi -itnmz - -hlmx -xhlmp -lmxh -lmxh -lxguhm - -fhmcgwtsj -jtomcfzwklh -wfybihtjcm - -pkwqvtgzmjsenudxifbc -gwdfhjicypnmltroeqavk - -euklmi -iumerlh -uimkle -iunzmelcv - -fkumqizsynacr -nqzxycskufaih -asfpckruyinqz - -ibpehrotv -pehovrntbi -voehitbpqr - -cvqsfartyxkw -snvwkazcfqritxy -frayckvwtqxus - -preot -ezj -eju -uezcd - -qvwmxcnhpzjyadkbisotu -hnoxjqyudkgapbiwcmtsz -qklozhpyvrcxwjsitudbnma - -gmspxjbwnray -wypmxsgjr -drlpsjgmxy -xykgesrjpvhm -xjmsypgro - -ncexy -nycex -xneyc - -ej -kre -lesxzt -gphfre -e - -oribjg -bu -kvq - -vnfpsmwc - -qd -qd -dq -dq - -rsc -rpaszc -ecrsom - -bofltugqahsjyzew -osahjqwtlzevb -ojxtvlnqhrswzeab -bajepotzqhvwsl - -elyhw -lwytrh -ljwyh - -cboxndurmi -hjzslvq - -wiozfcehptsxjrqmlbky -fzgilbuhktasdmvo -zileftmnhpcskbo - -qeabixvh -awgkoqejh - -ncrshioxklvumztdqfewpbg -vekofqmgclxzsdbuhwipnt -nlzxouwtmkfsgqcdbehipv -ibpwlqnmzfhkosuvtcxgd -wphavfyloszidgjbmxqtukcn - -zat -cilkbqxr -nzwsgy - -z -d -d -d - -v -m -v -v - -fjeayswno -jefwuxnoc - -iugjno -jugmenoi -ncuiogj -ojfguin -jiugno - -mcr -cmuq -cm -cm - -rvwgteoxlnqpu -onubqretvwxgpl -agitsumplxnzrkoeqvw -oleurpvnxcgtqdw - -ajedfrwstqn -pmnw -cwn -gcnbw -uvnw - -l -zqxij -prlu -ek -l - -rpht -whk -okhcbfw -whomk - -hlkyo -kp - -dnl -ldn -dnl -nld - -bgor -dlou -mdvn -cyzkw -vjentu - -trxvafpwesciqombhlkgjndy -oamdvntbsgcfphlkrwzyeqjx -kovjselaqpfnmyrxbzcthdguw - -van -ltexgv -dfcjoskzyriw - -jusk -a -lxg -hvnwf -exus - -fawkveqgsrbjzlncxyhot -rklfzsvbwhxetjcaoqg -rakjszvgtxbfhwqodlec -sxpzekgwjdocbqtrvlhaf -fzrlsavojxmcbktgeuhwq - -eitrvamwxfckzgqdoljyhnsb -yiptlazkxdwnmohujsecr - -xoyvn -noyx -fotnyax -noxy -noyqx - -nfvogds -fnsgvy -sqjvgfn - -mjcekdpwxr -xkuphcmrg - -by -by -bytda -yb - -mefouswzphqrdvn -cdbyjmintfpgxlk - -lemysjcrknvfpzwoxhqaig -yodnmfwpkjurscbtezqv - -zw -saqv -kbermi -lwvo - -oi -io - -zdyk -ckdy -jyu - -eldnugikcpxvwm -gcxdpukeln -ucnkdhxegljp -rdkegcnupxl - -uxokmrefyw -fyrwucohsnxem -rmbfeyuwxjoth -lquwdiyaropmexf -uweyxofmr - -jhoufbsc -juodbchs -bcuwljhos -sbujhcfoz -ubosjdhce - -nuyhefxwclzsobmjvrgt -uvyswnqfgxemobrclzjth -cydtgefhwnisjorumvlzbx -nbcghyjtsvkwzroefuxmla -leitjyscbuzrxmvowhgfnd - -c -sc - -fc -fc -cf -fc -cf - -iupatydhxkvmbjrl -hbptrxjliaymud -udxeyjrkbphamilt -yuspxdmtiajlqrbh - -hjgkstroxypi -melkwdhiqbypjxc -isxfgjyohpk - -jcshpztfgoynimedwxrqba -izjtbypodrxfwgcqahmsen -mqwgbpzhijdonfryxetcas -nfywrtdoejsxzaipghbmcq -mgrazowyxfecspntdhqjbi - -pzctfawmn -hzinstwv -zntipwh -wjvtzfubnm -zknyqrltgxow - -bxtvgjkreoupqzayh -jezpkhrovugaqtxby -htxbojraqzpuvnykegs - -jakdyhimbtwxlncsg -bjnkcmatgwyxidlhs -mycwkdighnablsxjt - -smokt -eunfogxytclshm - -r -r - -pdasnreog -uyljkar - -whriktcn -ujewkhdfrs -mxdfrhgkw -fwhkrp - -h -hw -h - -xmvjkhoebzqs -osvxbzheqmkj -szekvxjobmhq -hezjmxqbsokv -voekqxjbshzm - -kzysiheptuxgob -zhyxepbwsugikot -goxkzsebyphitu -hsuxotzbpikgey -sbgtoeyizkhupdx - -gdrqitano -rqdiaotgn -daogqtirn -atgoqdrni - -dluy -fm -dry - -nyseo -jenyo -ovyne -nyeox - -zawiflvhpjgomecdrk -iloejmrghpkwfzcadv -hfwejokzirldvpcgma -dihcwlmgoefkrazjvp -ephokwjzicdflvgmra - -gyubiopxhflqkrvcwtszmj -cfmwxogquzyhtsbvpkjil -qxmgoflbyjzwucphksitv -fjzixwusycvbhgqomtpkl -hgmtcbszywpvukjqoxifl - -jkvthqorywsux -qwukhroxytjvs -wktonyqjvuxi - -esmpgqur -rspqm -sqmpr -sprqm -rspmq - -e -e - -vkamztjcdqhroblnyw -tmoqwyzharjvbdnlc -ojynamchbztdlqvsrw -whjrocnadetmlqyzbv -jlmqcyxbdvzhoawrntu - -yljxnwtpirgqe -rtwyxij -iywjtxr -yrjwzxit - -qovbwdzhlif -dbuvhifyzqw - -yaeigdrovcqmnbxfw -vpwnimfaexocyqgdr -nivqcoemawydxrgf -wmxfiornakcgvtuqdhye - -ctywzurhk -rtyzwuchk -wrycuhmtkz - -z -vz -zma - -gcrivmshxknuwot -hqgwunvkitsorfx - -ulmkvwz -qlkfmczovysuw -dumwaljrvzk -nuwzkmilv -wluntvmkzx - -ydw -qwstbd -jhd -idxfn - -defbuaptricmwk -nylgehpvsu - -zkelcmpdatj -tacjldxkem - -hjvmubrtyzpwnskexflod -bdgfcwkmtzxrqoupnljhiva - -eubykwhqdxivgmfpzjcnors -qcrexkjnmibzhsvfoydgpuw -rejovgknxuwymhfcpidzqsb -qgzkjwiepyhosmvrxdubncf - -jfqsrwzg -csyuoabhvikmd -nejsz -eqxs -jsgwl - -vkfjpozcxm -qsephmdo -aormp -eqponhym - -tdhaizeyqfcvm -yvzgctnph -vkojgzbhtypcs -wbcyhxnvtzs -hztvcyp - -yehaqkotbnzlj -qohzbyjltnieak -lhkyqzjbeotans - -msvofdluxnpht -otmnflzvds -slmtnzodvf -tflsjivnomd -tdonmsfvl - -hyqoneaujczkmwlx -ynkheqzwfaolc -nhkzqalyewco -wznkfcaeyohlq -yechalzpoqsknw - -mnebgrhqjlkpod -ecxgvlwdfzhiabstj - -rgjhy -dqgh - -inel -heniy -ndei -edin - -yomqetfwnpixh -lqsvgkdcizjyfb - -qksm -qms -smq -sqm - -xpigmrvtc -mdcxgrip -rmzgxcip -xigmcrp -ugflmyircxbp - -uaibcnygjvroqxtmkz -aunrkmxqbzjgwyeod -qxmogsazkujrcnby -qojxaybszlrcuknfmg - -recwyhnda -nchryaw - -gi -ig - -tzq -bkj - -rz -r -qr - -bkdftxjvrioq -xkodfbivrtq -biqtovdxkfr - -zxybwjcqvkmt -swaeftrnhd - -vk -vkw -kv -vk - -jmpli -jpgim -jmoipw - -uliwvnpmk -lwvinmk -mvnwleik - -h -h -h - -aizpyuhrsm -rmiuzdbhy -iruhmtzy - -fsc -c -c -zuag - -kinylrdqtf -yilkfrdwxqno -rynlkfdiqp - -ruskgfcylowvmjiahezb -gsicyhqnxfpjrlt - -awgx -gawx -xagw -axgw -awxg - -iu -u -u -u -xsu - -xr -d - -z -z -z -z - -epdf -d -d - -vdlrbif -cjsotfdwexh -qdrfa - -qwfkdupgvszibt -smpzetkihb - -slvfkubejdcowqr -ruwedaqcvolbfpsigj -jblrauwseokvdcf -vxhntcrfzubwdosjel -oslwdmvcjebfru - -wnkaszlfjgupvbxmhocrt -nbohjymstlfrvxckgu - -ampvjczwtn -rchznpfjvaw -zpcjnwtva - -slqon -ados -losn - -mvuy -uxogtvmcqp - -ql -yopbdme -swhkg -iwlcq - -pdfuvyqokgxsbzhacirjlm -pgdakovmurfcyisqbljzhx -ypifcvlojsagrxdqzubhkm -pjyfozrlcxhvbgdiukasqm -lphfyuskrqioacxgdvjzbm - -vjq -oqjv -jqv -jqvb -qjv - -u -u -u -u - -mife -eaxz - -wukfghacoqi -kjcphli - -elmf -xogzbpwcmds - -udrqzjglkefhcimptvanyx -fnczjgaekihwyuvldqsrxtmp -banxpouvchgikqemtdfzjrl - -bdzvtqygucirm -ibyzgcvtumd - -poxgflmjweuqhktcazb -ugzfcjeqkwnbmoatph -qyjtwbfgouzhcpamek - -o -ov -o -o -o - -actbd -czose -zcpys - -btwhfmpi -umhtbfiw -imfwhbt - -afolhyqvxeg -qohvcregl -rvhclosqge -hcoeqglv - -ozqibfhewgpndavmly -wnlzepyoivkxqfbgamdh -oiztbvmlfnaqyhdgewp -egvlmrwpqdiyozanfbh -zkpnwmfydlheaqivbogu - -jnl -njl -ljn - -a -qtn -ntzr - -eohmibyp -yokm -owumy -kojmy -nomay - -ebx -dapbe -dbex -erb - -btrkcljqxdm -dtbrck -dkrucbt -tbrcdk - -igvhpejrmxkcofznuyb -oygpxuvbjzrkcnhiem - -mj -my -mj -m -dmw - -ljxhmbda -ahdjxblm - -umqytpknxl -uondmpyblqt -abndmyuphtq -nwgmiujyszqeptf -nbprlqvycutm - -ebxpwykcgiuhv -yxgwehcpvbkui - -fpalrvgksjn -pxchrbnkfajvdg - -dsunk -gtwuse -xvlbcmhufi -sozgqpue - -trn -e -e -ey -a - -vwdazum -mauvgzw -fuzwpvmiaq - -ihowsqrbxdetuvcgajf -sdojqeaiwygfubxrkv - -abzi -fbajiu -baicf -rsbyeliad -azib - -nscxriyzoapflkwj -ptrnscyfjdxazoiwlk -zxraykosfjlpcinw -zoplikjyxwcvnsgraf -zcspbroxlikfawynj - -vqefizng -ix -dcs -apoujwtylk -nbg - -thvu -utvh -vuth - -cb -qb -znisjautvpo -e -rmk - -yps -ps -sp -pds - -htldayejcm -qgwmjit -tmsj - -qw -qnzpei -tjq - -gmri -rimg -gqeimrt - -nvoqdje -nvojeqd -nojevqd -njeoqdv -qndovje - -mdhvwfnarbpksjt -dftsmnvrjpkwbha -dmtnhbrypzvjsfakw - -xnctqbezompvi -tcivzqxjemo -trmizegvcqxo -yeozqitcjxmv - -rpvezm -pmre -reopimut -vmpezr -hpermz - -dshourgilv -hovgluedis -ugvsohldi -dshvuiglo - -xufdhyst -tuh -htkbuwv - -uyhmkzgprft -lptqenbofxwk - -klhnprixqc -ptyfsz - -gbdilsxjvyuceqnw -vguqmicyjlnoxstkzdb - -ajbvdz -jbdavz - -qwoaltfyjecup -bikznrxehdsvgl - -il -il -lai - -hnxbpeudogywqjtzf -xrfwsypilokbghmn - -lnprticjufgk -tkgifnrcpluj -jkptrinlcgfu -ntruckifpjgl -kjutlfcrpnig - -pjxn -d - -cehjgirskzdfupnayqbtx -tfcrbgqoxipjnshyu -ircpljyuqgbnthxmsf - -elknv -kjle - -rlfimhpjtxcbgqysnkev -fxmpjhcvnqgtsykbrlie -geilpnftyhdqrmvbckxsj - -iwrhjuxaylt -rutxwihlja - -xgjqs -jlgbxz -gjsxb -jxnhtg - -rojtvpudx -rdpoxtjv -vjrpxdot -doxtvjpr -xdtrojpv - -hwpaqudromg -pfqarht -pnqhear -pxrenahq -eapqthvr - -nrhfdzetwixcjsqlbupko -btijqrefckosadwlnxyhu -hievkwjcoqtrdbxunsfml - -odhzjpkrxueqymavltbsc -vchxyqjdsmfrupoanezltbk - -xsdmczyvhojibkarqeplgfn -cjrzmybhfvdakqexngsplio -yogeivplzxmqskfcdrnhajb - -jhtogzx -zoxjght -xtjhozg -ghtzoxj -ztoxhgj - -edvbanpitmhjgwxrofklyu -cpemyxlabkdjinzrg -yadxlqkepbrgnjim - -yq -mj - -gbylw -zuc - -glbsezpfrdxu -krzfoxgcbdsp -jfrgxsdbzpo -gzsrpbdfx -rzxfgspdb - -srwzajgvukpflidxn -sdialkfnjqvrxwzp -fakwsjmnbldtrvopyxzi -zrifwvjnacxspedkql - -qfbszxo -zqsbfox -bozqfxs -fosbxzq -xofbzsq - -lfgirdtnsbmuhx -fuirqanhzmtdwxcs -pxhinjvuflrdsmt - -kd -bdkc -dk - -ysakvxpc -xascbykpz -ygkstxp -ikfspxyeh - -sxewnt -anwezrxstqkgp -weysxnftij -stnxhwe -tesxwnv - -ozpbw -plyobt -bjcdnoavuh - -vuhczmygikjqtnwelxsap -ljhsbinurypwxmkqgca - -ktlucpm -clupktf - -lfx -uqrmedh - -tdbnijescrzghomwvkfuxq -nsriukmjqeavxlzwgtofd -ekyoupxdzflqntrimjwvsg - -jhdtvxrg -vtgjrdhx -txrgdvjh -txrdhvgj -rgtvjdxh - -rfjl -bl - -rp -pr -pr -qpr -pr - -qatusrmofjiv -kovrwcgijz -jivolnry -tjylrnmoiv - -bscyonuaed -eckjonawsbz - -sl -ls -ls - -dcypgbktwevhju -fhlopxgejscqziambnt - -glwuep -welpug -lguewmp -wugelp -lgwpue - -cbnprvmgujfeahkod -gcjinupbmrehvakdfo -upyjvnhcamfokdrbeg -oueagfpkmljrvnchtbd - -ngoqjkxyeztcar -tawokezjqyxn -qetojylkxaznvdfp -qzcanobyxesthkj -oyzetagnqukjx - -oluzdqyevricxgpbjh -jczoidqgpuhbrylvex -eoawvlqpzidybgcusx - -gbkhxr -xgbkvhr - -gynjrlazuhdsiebpm -zwgmvhr -xtfgrmhzq -wgtzrkcmh -mohrzg - -ips -eiop -spi -blcipw -pie - -m -mg -rmib - -brelhau -aerulhb -eularhb - -ntjcb -hlpfq -mhlfp - -gkbzfmjinp -rwfq -wcftl -cotf - -pcklviqyxumegznob -gsqecynpzlimoxukbv - -hu -uhl -hu - -mzktplnxfqwrd -dplwmzfrtqknx -frqpmkdxtnlziw -kyxwlztrjdsfqnmp -twzlqxkprfdmne - -afblckugpyzwvh -chfuvgklywz -pxkwuvlychgdf -igshyklvecwfur -qcvtwgylunkfhj - -jvbsuodzptghycqkx -thjxozkvudqsgby -yeqodxvpbukthzjgs -jutnksfqbvodzglxyh - -amodbsxrzg -apbcgrskzinm -awmgtzhbsr -qvsgzbeamjlrx - -rwaisemcuqxo -lrojvqxczigbsmay -facqkrmiusxo -mxdsoaqcuri - -rbvzikynfoxctwghdupaem -bytwuofvzknrqagmixdpchse -vxgtnrukcidoepfbyzahwm -dzwgutvhaocryeinmkpbxf - -fbp -c -auyk - -lbmyuotpcnsikvgrx -ycvhpkibmtsflxegunr -gpibcmtsulxarknzjv -gpkimtovlxnrscub -dxkbghlnctswevrimpu - -qok -iqz -qetpgrwyd -qnsco - -ioud -udiopc -mzsfhdiu - -ueikvmsr -hkvmrjuiase -evsxikplfrom -krzmgisev -iesgmvkur - -kdwbteoufy -wbdfokuy - -dbsj -dbfqgjek -dhbjp -pdbjo -jbd - -ywnmpicadove -vawkoyice -vyaocqwie -aeiryxvwco -tecoiywav - -grqoevckijwfmspahltuz -zwgcvraqfimotjlhsekp -okeahcrpmjsigtqwlzvf -rmcielqkwpogfthsvzja -iotprlamgjqfecwsvzhk - -pdwxajyokg -jrsdkwgxbfae - -dqlsnwreptfjxcybv -ujlpmzqrikgyantvse - -wjc -cj -cj - -tvzla -wacevhg - -bq -bq -qub -qb -fqdbs - -yks -sbyeuf - -mgntlwyv -tqzvgn -gnktipzv - -apkwmxjluocsvzi -ixzqpcsalkmowvj - -bajuygnrwt -yubjgatrwn -gtjuwnbary -wajbgntyru -yrnbgwjuta - -bmcwie -cibjwme -bweimc -eiwcmb - -dbkylhiwzusm -ujkistmfwcldh -vrsplkinguhmwqxd -wiysuchkzolmd - -dxkrutihaz -uiarkhtdxz -uzdksihtxarb -krihuztxad -rakhjxiztud - -vhfsnzep -fsckleqdhirjyp -fshwpaeuogmx -behftsp - -gxotrha -karogh -dohgnaqjm - -mvs -my - -fbgqisx -sfilvgax - -gcvwlreubdmo -mrfcwgblvudho -vdicaompgulwtrn -cvglyduohwbjrem - -axfqlgezschyiubm -xeyabhzilqusfgc -fzixqebhyslacgu -fqyucihzxgblpeas -cxqvtwrkfhbzauliysjge - -lnxj -alwoycs -uqedvgz - -ztkagdloihcmvjen -ovcdmjekgazhtnli - -mpohrwbesqfvd -kdehobasjwrq -suebmqvdrowh -hdewrbpusoqf - -fnebwpxqjzrukgo -alfwgtnhzrejdvmu - -con -on - -tamhynfpc -mcrhflnpujxtk -pmvicnhgsdwot - -leiyrvjncqphbftdo -ldorbvncyhpfiqej -oqhnyaipjrlegcvfdb -clibfjpnyedovhqr -idfrhbevkjloycnqp - -bfchelm -lbhf - -b -qst - -vpngb -gvbj -gnavbcu -nlgvb -sidbvg - -tkpwsnedf -bxrvmltfaonhkezwyp -etkjwupgcnifq - -ypvk -ypk -pwyk -kyp - -farmkwguisvzbljdcqtnoe -irtcfvmbndwejgaoqzuks -omjvzkdnugcesafiqtwbr -bocntzgfuwksarjmivqed -wrtznsgijemqdkfuoabvc - -a -epn - -xcpqb -xszwbeujqv -bxdzejv -bq -iyrltkbf - -vpolaxmcutnk -ovctkpumnl - -od -tuod -od - -okcewuzdtplshgxb -czkpdgohbwlseuxt -epbzodlgtuwkschx -wtbgdmzjohpxulckse -stbuhgdokewxclzp - -oubmwaygzsvrpeiktq -nuaqotbmgcvrejdshkizwpy - -kxw -kwd -wk - -afysdhlriocjxq -yafqcrdxlohsjiz -sofqizhlxypdcjra -sjmqylwcahrofibedux - -fkwbvap -jgdkzrwfvo -wifnkev -kbncvwxfp - -gkhstvwcadxfrp -atfrwdksmphbvgx -rcdhgkvspawtfx - -vbmzqp -r - -ewluxs -mosuqlxwg -rwuclxsi -xsilwu - -qpdjbnyi -mackzh - -vwmsy -dctoz - -xgidfke -dqxfik -davf - -gwluyxi -ihoxnbazsmj -qypwitvkxcdeflr - -yibzorjh -hbijqrzf - -xwednlczvukoftbmajphg -wlvjfuzkapbnghdmcoex -noajcfhzgmvkweupdblx - -dvhytk -mljydszthqk -cyftakh - -zrhupwkt -hgrlusqofkyvipztdbn -hpcrzkumta -kerutxhpaz -pkzucwthr - -wmyaf -lmhgou - -rhwitl -eztgnli -dlti - -svzxbogmhnteu -smzypvbelngjoucx -zebvognsmxuid -obuveznmgxs - -djcqa -qadj -ajqd - -lvpe -epl - -nxevifrzshgutcqdm -rqvxcgnutiesdzmhf -rteshnfuvizglxwcj -fuchnevszixtrg - -vmnhsx -mwhp -smheg - -k -k -k -k -kj - -cmki -dkacm - -jhomeuldz -drozch -dsziqwxph -bhmzdtrl - -umxh -xhp -hqx -xh -xh - -vfmrzqltn -qtzlrv -lzavurtq -vzlrqtf -vzrtql - -jflmxkwv -xlmwkvfj -wilkxjvfm - -tyrsw -fsajp - -pkchzmtelv -tcezkhvmpl -ptevlczmkh - -ifxnytesvzbgwqhc -thbgxsqwyfiznemv - -j -wi -hen -i - -lgjzaswrpcvednutqko -newpozcqlkjsvrdaug - -izmhfde -dghestzmi -ivhuwdzmej - -icsjrlghtvayp -chysgvpletijr -pijtvryshglc -hijscpgvqrtly - -nyrtchmao -cboztuhpflkq -exjgsvidw - -z -z -z -z -z - -azvph -tedzxmvh -yuzvh - -vfqzjhp -jzqbflhvp -pzqkvdjihf -vjzfqexhaynp -qvjotzuhfp - -kawzqvehnldpfyjms -qwgjsvmlyfedhpnkza -lqmwjfpsknhvyaezd - -plrjckxaihbn -xbcnfhpauktir -hxbekmqwzidnaoc -sgynjacxhkib - -elstkqybopx -qpldszxenu -philxrvacem - -zfqvwapib -vyuwqtaizlfmr -fwxaqizoknc - -fcxkg -kgucf -cfgwk - -bifpnhqodgzy -qeudfpyozihng -ihqgyofndzp - -gbdlhztckxvfmp -bdflhegkvmtapxz -gkvdtbfhxlzcpm -fblkphjzxvgmdt - -mbkqegcvysdat -dgamlysetcbq -gcyedbmsqat -stdcmgbqeya -mdgaseytbqc - -mbanitlspwd -idohstranwluby -tlfihanjszbwdq -csvwnatkibeldx -gdlnbawsit - -koc -aklh - -nwforsix -rfoinxgsq -ponu - -frkqweaplmyjtszc -evqlhgdnofpbsx - -xmjafe -nasx -gvtoirb - -fh -ahcvf -fubh -hf - -cnziuowlvd -wdulnczo -clnuwozid -usnolwdcz -lzuodcnw - -qzvo -ozqv -ozqv -ovqz - -petyqas -ysap -ypsjia - -as -jrd - -vczyxagnhlik -axhcklzgviny -rnlayxcgvzkhi -hcnizvgklyxa - -bhzyoer -odrnzth -bdrzpxohf -onrzh -ozmrwgh - -dwbikvq -qbdkivw -kvwbdiq -bqitkvdw - -zaiwc -nzdipc - -hupmeoy -feonhpym -pojmytcehkz -mhpoey -pehoyfmn - -iexqrjdunpmhkzsvcy -tzjhxenvdqmpbcuykris -xyenuidspclvmkhjzrq - -eputvsadhcwmxilyzrf -xhldizuwfpryamsctev - -vruljzbpqwkimgcdnhox -dvrhjzwlubxgqmpnokci -rogckbmzwlnjphxdvqiu - -mflxyrdnaiojwh -hvxdjufmlwgryioq -hialwfmxdoryj - -zqjyx -qyjxz -guyrjxczq - -jkptbc -ctpnbk - -djoxvsbktw -zhryojfgxnpamtbiqc -keloxbwjtu - -waeixkdunptl -atejnixwk -yaiwnebzktjx -nraxetkwi - -srvltzm -artzpiml -zmfrutld -trmzl -rzfltm - -upews -uwesp -ewusp -upwes -uwsep - -gmqadcilxpustz -zmdaputbsglxcki -gtudmizpcaxsl -audigpclmsxzt -zcxasluogptmdin - -mjxvndbfygluqh -vbpdxunmh - -thlqwmnfyvxkcjaibro -wnohvfbukmtcjrqxlyai - -iauh -dh -pqsnwke -td -t - -k -k -k -k - -tnirszcf -tprnchfolzi - -vyf -vftay -pvof - -nrzbpfdae -ofanrjbep -avnprbemfo -bgaufphxern -tbncrqeafjzidp - -wbosukfnidm -bptmsnodiuef - -fop -pfo - -ztfplvdymqciuarewxgkn -vwufqxyerpcoitnadlmgzk -ndlwgymuirapzxketqvfhc -gwecvyqdmlraunxjiktpzf - -ozjs -tmqezknf -rmvcn -hydpigwulb -es - -umlvzepcx -vuxmeclzp -vlzuexcpm -zmecpvulx -mpzvulcex - -oeixhj -iexhoj -jexoih -iohvejxnk -ihexjo - -uzw -zsb -zu -zp - -mrqanvodfx -rnqmdvfa -abdptrgzflyhnvs - -pjivzyacou -vnapjyzuwbf -ajpuvzy - -yrbptzgsevaomukldqxwicnj -ksatveqludrmbjngoixwycz -zdrigcyauxvmlsektbqojnw -lrwdgumyojnqcaizxsebkvt - -ipsc -picl -ptcasgi -pgvci - -u -e -j -e - -gz -ezj -ibolpzf -zg -z - -ihsemv -ocaj -gu -kidw -vmultwkr - -xka -x -xq - -vdyzsapbwntmxojfqiclek -dfhscbwpqxltmjzoga - -aiswlquvcmhy -cusylqwiav - -jmowrpbflkcysdzt -fvaxlbkmdiowjtzrqp -lpuwrjkohfdtmsbzge - -jgrqosxzyuki -skhoquigzrypjbx -zysixgukrqjo - -tesvcrwaqzmfnyb -fbeciswqrzmta -wmqerlfczatbps - -hx -xvjh -xh -xurcwzh -hvx - -kzh -kzh -khz -khz -zhk - -rezwblynpvodigmj -ltzreviupnybgqdjkm -zjervlnixmydgspb - -abfcgeymizjdnxklrtqs -czqemlanjpfsohryxg -xjfnqyeagrsuczlmh - -myrqdea -mdtkp -wjudvohlmn -pmdc -mkd - -x -n -n -n - -obpuqvwmnx -mwnqbxvupo -oqwpnuxvmb -uxmpwbqvno -qmpuxbvnow - -xzesnocrmaqtfvlkby -ltzxykcnbfaqvmesor -cstoenkyfmplzqxgvab - -qwkuhcmvrlg -hlkrmuygwqxv - -rkgvmfyz -sqnc -dohxti - -pkufhtwxvnjqd -fshdqpizmvtoewculnb -phgduwftvqn -dqajtyhprvgufnw - -qwzkrhs -zulqk -qvozjkyga -ntcbqlkz - -ucgmdbajz -xtg - -nx -xn - -kajgbcyoetfiplx -twloixgaekbjpfcy -jlifxpbtoycagek - -mrspqwdnuye -yujewnrasqmp - -mafzxkliquynsropbtgejhcw -mrxfnicjwelukgzqtspahybo -xryozujfakinebpqwslhtmgc -poschfkrtxjwegimuzqyalnb -omtswhzuijaxlpgeybknrfqcv - -qs -sq -lqs -sq -sqpi - -apfgtns -ryigfnsq - -vjz -ql - -pftkg -dyncoulih -bzpg -f -g - -qhc -ehxdzqc -qgb -qjrvlsf -cdqtb - -rusxpwgebjtqc -lgdzuinwvje -lfjwmgoeuadz - -dafvyi -iylefg -flciy - -echxoit -ytup -thxasiod - -singvkzjohmct -njvcmzthkigps -gmnjsdctizvhk -psmvjkhzogictn - -xjgukmfnls -sukxjf -xfudbsejnkv -ubhmjksfzx -stxpqfucjkioaw - -tq -tq - -bleyvp -ebypv -yewvpdb - -xsjbancl -asq -as - -inl -ny -vn -sbtf - -ihgvopwqzydftlxcbjm -xpdhgjtqybocekl -uhogsrjblpdxcyqtn -rqbltpahkjgcodyx - -tzagysvdrebjhnlmu -djugelzvrsnabt -brsculznevdjtag -udbzxjgtievarnsl - -icalhfwu -uafcliw -waulzfic -auilcwf -filcuwma - -qetcajuhmpbkvsdi -khpwjutmvcyesbadqi -bpvucajhidemqtsk - -f -m -m - -bxqtkhwynlezfp -moptexhzfabwcy -dzkryhtpbvqxefw - -gyznickf -ws -o -abd -shj - -moqsnucx -mnucxqso -qoxcsnum -mjcsnqxuo - -yad -cday -dya -ady - -acsl -la -ila -lavwj -al - -eq -eq -teq -qe - -ypgtbcqnio -vwj -jwu -rk - -b -b -b -uab -b - -vpnjtyldieokwc -dlyifcjxzmvgbhwnper - -cpxasmqgytkbl -lqstpbgmkiza -bgamkdtsplq -jatqcxlsyubkpmgrw -ksgqpdltafnbcm - -vikupeozmxgqw -kexgjzvmwuqoip -wzgvoimkpexqu -kuwgizqxompev - -dbctojnhsz -mpochelwauvbjdqrn -bhdjonscz - -tmxgo -ogxmt -ogmtx -gtxom - -ogdzpe -dzpgeo -zopdeg - -ajit -rintad - -xtjghyrzcfl -atfzxcyrljq - -dl -arl -arlg -pl -mwoklu - -w -k -w -w - -tzycrupmsh -trucmzsphy -husmrczpty -mryuczptsh -zuyjtpmrhsc - -txbpilyem -lbtzex -xgehlbtw -eclmbxt - -aiwbpzesk -yugvlxojqd -ichwa -inz - -bdes -sedb -sueqfbd -dbes -rbeds - -xbzefntus -snypzbfmeku - -skjrbtqewpyg -iqjkyxaswe - -hdegjifr -jwxrahfmbei -irfqolet -eairzfnhs - -p -sp -p - -g -x -xv -ia - -jozvgcpk -vpo -opfv -pov - -owgfclzraqikb -rkbqalfico - -djsyxnkw -ws -wgs -wlsg -svpfwu - -oyjlxstrebvpfhmd -opfrjctbnemyvd - -lpqebxykmfdsnt -emfnsdxptbkyq -mdobqptnkjxfeys - -waktzxvocjruilhgym -uvtakjblqwsyoghzp -yklvjwniutehzgoa - -fhqgy -yqhfg - -brlsfdopmqyng -fnlrdpbosqymg - -lyksz -rzyk - -jamvlpcydqzu -azdcpmvquylj -zlqmpydvuacj -cydluaqmzvjp -lmqzdvajuycp - -nuixfj -ixozbutyj -isxlpkqhwrmvj -jincxga -jenidx diff --git a/src/files/P7.txt b/src/files/P7.txt deleted file mode 100644 index b7c7d58..0000000 --- a/src/files/P7.txt +++ /dev/null @@ -1,594 +0,0 @@ -muted tomato bags contain 1 bright brown bag, 1 dotted gold bag, 2 faded gray bags, 1 posh yellow bag. -posh brown bags contain 1 dark lime bag, 5 mirrored crimson bags, 1 striped chartreuse bag. -dotted violet bags contain 4 striped white bags. -mirrored black bags contain 1 clear yellow bag. -light aqua bags contain 3 clear silver bags, 2 shiny coral bags, 2 muted tomato bags, 2 drab turquoise bags. -faded violet bags contain no other bags. -shiny lime bags contain 3 muted brown bags, 4 dull gray bags. -dark green bags contain 3 muted magenta bags. -faded bronze bags contain 5 clear lime bags, 3 muted gold bags. -clear lavender bags contain 4 dark beige bags, 3 mirrored crimson bags, 2 bright blue bags. -striped bronze bags contain 5 muted olive bags, 4 clear chartreuse bags, 2 vibrant blue bags. -dim bronze bags contain 1 clear indigo bag. -dull crimson bags contain 3 dotted violet bags, 2 pale teal bags, 3 plaid bronze bags, 3 faded aqua bags. -mirrored bronze bags contain 3 striped maroon bags, 4 shiny gold bags, 4 light indigo bags, 5 clear orange bags. -vibrant white bags contain 4 light lime bags. -dark blue bags contain 1 faded black bag, 5 mirrored plum bags, 4 muted cyan bags. -drab bronze bags contain 5 mirrored plum bags, 2 bright turquoise bags, 1 clear gray bag, 3 faded chartreuse bags. -mirrored lime bags contain 2 faded red bags. -posh violet bags contain 3 dull chartreuse bags, 5 clear plum bags, 2 mirrored chartreuse bags, 5 dull magenta bags. -dull bronze bags contain 2 wavy purple bags, 4 drab salmon bags, 5 dull chartreuse bags. -dull black bags contain 4 shiny crimson bags, 5 dotted turquoise bags, 4 clear beige bags, 2 striped maroon bags. -striped aqua bags contain 1 faded violet bag, 1 plaid teal bag. -clear silver bags contain 1 faded green bag. -dark yellow bags contain 4 shiny plum bags, 2 dull gray bags, 5 light lime bags, 4 shiny orange bags. -dull coral bags contain 2 striped turquoise bags, 4 mirrored fuchsia bags, 5 faded yellow bags. -shiny yellow bags contain 5 wavy maroon bags, 1 striped fuchsia bag. -shiny black bags contain 2 muted tomato bags, 3 muted maroon bags, 4 shiny orange bags. -posh aqua bags contain 3 wavy cyan bags, 5 posh brown bags, 4 dim plum bags. -plaid maroon bags contain 5 faded aqua bags, 5 mirrored olive bags, 5 plaid gold bags, 2 vibrant gray bags. -mirrored gold bags contain 3 shiny tomato bags, 3 shiny crimson bags. -muted lavender bags contain 2 muted tan bags. -vibrant magenta bags contain 1 dull purple bag, 2 vibrant coral bags, 5 faded silver bags. -striped tomato bags contain 3 faded beige bags, 3 pale tan bags, 2 drab orange bags. -dull turquoise bags contain 3 striped green bags, 2 shiny blue bags, 2 dim purple bags. -shiny aqua bags contain 1 clear salmon bag. -drab silver bags contain 2 shiny gold bags, 4 posh yellow bags. -plaid gold bags contain 3 bright lavender bags, 5 plaid cyan bags, 1 bright brown bag, 5 faded turquoise bags. -wavy lavender bags contain 2 plaid lavender bags, 3 plaid red bags, 4 posh cyan bags, 4 bright aqua bags. -dark bronze bags contain 4 muted cyan bags, 4 clear cyan bags. -plaid lime bags contain 1 posh teal bag. -mirrored magenta bags contain 5 dotted turquoise bags. -light turquoise bags contain 5 posh tan bags, 2 posh aqua bags. -dark indigo bags contain 5 clear crimson bags, 3 posh lime bags. -mirrored brown bags contain 4 posh white bags, 1 dim lime bag, 2 pale magenta bags, 1 mirrored chartreuse bag. -vibrant lavender bags contain 5 posh plum bags, 1 posh aqua bag. -dim crimson bags contain 3 vibrant beige bags, 4 clear indigo bags, 3 dim lime bags, 4 striped olive bags. -vibrant violet bags contain 5 vibrant red bags, 1 striped white bag. -dull silver bags contain 4 striped bronze bags, 1 plaid plum bag, 1 dim tomato bag. -plaid brown bags contain 5 drab blue bags, 2 light turquoise bags, 5 dull lavender bags. -dim aqua bags contain 4 plaid lavender bags, 5 muted maroon bags. -faded plum bags contain 3 striped tan bags. -drab black bags contain 5 clear bronze bags, 4 plaid red bags, 1 drab orange bag, 5 clear lavender bags. -pale bronze bags contain 5 dim plum bags, 1 drab lavender bag. -mirrored purple bags contain 5 mirrored crimson bags. -mirrored red bags contain 5 striped magenta bags, 4 mirrored chartreuse bags, 5 pale cyan bags. -posh lime bags contain 5 dull lavender bags, 1 faded turquoise bag, 2 striped coral bags, 3 striped green bags. -vibrant black bags contain 2 drab salmon bags, 4 clear tomato bags, 2 faded turquoise bags. -striped orange bags contain 2 plaid blue bags, 5 pale teal bags, 1 drab maroon bag. -dotted tomato bags contain 1 dim white bag, 5 dotted magenta bags, 4 dull tomato bags, 1 dull gold bag. -posh orange bags contain 3 posh gold bags, 4 light lime bags, 2 faded violet bags, 5 faded turquoise bags. -muted gold bags contain 4 faded maroon bags, 5 dark turquoise bags, 4 bright turquoise bags, 3 plaid silver bags. -striped yellow bags contain 4 drab fuchsia bags, 1 dim lime bag. -dotted green bags contain 4 clear beige bags. -faded fuchsia bags contain 1 dull blue bag, 4 bright coral bags. -shiny lavender bags contain 3 mirrored beige bags, 1 dark coral bag, 1 muted turquoise bag, 3 light brown bags. -bright maroon bags contain 5 faded lime bags, 3 dim brown bags, 3 vibrant yellow bags. -dark maroon bags contain 2 drab red bags. -dark white bags contain 3 wavy turquoise bags, 4 dotted red bags, 3 plaid fuchsia bags. -dotted aqua bags contain 4 clear green bags, 3 drab magenta bags, 1 dull tomato bag, 3 striped coral bags. -faded red bags contain 3 plaid purple bags, 3 dark lime bags. -wavy yellow bags contain 1 bright yellow bag, 2 light chartreuse bags, 1 dull chartreuse bag. -posh beige bags contain 5 shiny orange bags, 4 drab silver bags, 1 striped cyan bag. -dull fuchsia bags contain 5 faded lavender bags, 1 dark cyan bag, 2 clear tomato bags, 3 mirrored chartreuse bags. -muted silver bags contain 5 muted brown bags, 2 striped brown bags, 4 mirrored bronze bags, 5 faded plum bags. -dim white bags contain 1 dull bronze bag, 3 dotted beige bags, 4 wavy tan bags, 4 vibrant white bags. -faded green bags contain 1 clear indigo bag, 2 pale cyan bags, 1 wavy brown bag. -pale blue bags contain 2 posh turquoise bags. -muted green bags contain 1 dull bronze bag. -dull indigo bags contain 4 shiny silver bags, 1 wavy red bag, 4 muted orange bags. -muted plum bags contain 1 shiny lime bag, 4 plaid tomato bags, 2 faded indigo bags. -striped magenta bags contain 1 mirrored chartreuse bag, 1 faded beige bag, 3 bright blue bags, 2 clear yellow bags. -clear coral bags contain 4 dark turquoise bags, 2 posh magenta bags, 2 shiny aqua bags, 5 pale aqua bags. -pale olive bags contain 4 shiny crimson bags, 3 wavy cyan bags, 1 vibrant beige bag, 3 dark beige bags. -striped plum bags contain 2 light salmon bags. -dim indigo bags contain 2 shiny lavender bags, 4 clear lavender bags, 1 bright tomato bag, 1 vibrant bronze bag. -striped green bags contain 5 muted cyan bags. -shiny salmon bags contain 1 wavy brown bag. -wavy aqua bags contain 5 muted white bags, 1 mirrored gray bag, 5 dull lavender bags. -posh gold bags contain 1 vibrant beige bag, 3 dull chartreuse bags, 4 mirrored brown bags. -wavy blue bags contain 3 shiny gray bags, 4 posh turquoise bags. -dark fuchsia bags contain 2 posh fuchsia bags, 4 bright indigo bags, 3 posh maroon bags, 2 posh aqua bags. -shiny purple bags contain 5 clear maroon bags, 3 bright indigo bags. -dull chartreuse bags contain no other bags. -light beige bags contain 4 dim purple bags, 1 posh red bag, 4 clear aqua bags, 1 striped coral bag. -wavy purple bags contain 3 bright turquoise bags. -clear yellow bags contain 2 posh plum bags. -clear violet bags contain 5 faded chartreuse bags, 5 clear green bags, 3 wavy brown bags. -striped white bags contain 3 light white bags. -clear green bags contain 4 muted bronze bags. -drab crimson bags contain 1 posh tan bag. -dark turquoise bags contain 2 shiny tomato bags, 5 wavy maroon bags, 5 dim aqua bags. -drab magenta bags contain 1 pale gray bag, 4 striped olive bags, 2 posh brown bags. -dotted gray bags contain 1 dull tomato bag, 1 posh yellow bag. -plaid magenta bags contain 5 clear green bags, 2 dotted bronze bags, 5 drab black bags. -striped indigo bags contain 4 mirrored magenta bags, 5 posh beige bags. -bright fuchsia bags contain 4 dotted orange bags, 2 faded green bags, 1 bright turquoise bag. -mirrored teal bags contain 1 mirrored chartreuse bag, 2 drab brown bags, 2 dull black bags. -dotted purple bags contain 5 dotted turquoise bags, 5 dotted orange bags, 5 shiny gold bags. -dim lavender bags contain 3 shiny coral bags, 5 mirrored crimson bags, 2 clear yellow bags, 2 muted orange bags. -shiny gray bags contain 3 vibrant purple bags. -mirrored white bags contain 1 mirrored brown bag, 3 striped purple bags. -light cyan bags contain 4 bright maroon bags, 3 posh violet bags, 4 faded aqua bags, 5 dull tan bags. -wavy gray bags contain 4 mirrored violet bags, 1 muted orange bag. -striped silver bags contain 2 bright silver bags, 5 posh aqua bags. -dull green bags contain 5 mirrored chartreuse bags, 2 dim beige bags. -faded black bags contain 5 wavy turquoise bags, 1 muted tan bag, 1 dull chartreuse bag. -posh crimson bags contain 2 muted tan bags, 4 striped beige bags, 1 mirrored lavender bag, 5 faded white bags. -pale teal bags contain 4 posh aqua bags, 5 mirrored plum bags, 1 muted turquoise bag. -muted tan bags contain 1 striped coral bag, 1 mirrored brown bag, 1 posh gold bag, 4 muted cyan bags. -posh indigo bags contain 5 shiny tomato bags, 1 clear salmon bag, 3 dotted black bags, 1 striped maroon bag. -clear gray bags contain 1 bright violet bag. -striped olive bags contain no other bags. -mirrored silver bags contain 4 shiny maroon bags, 4 muted coral bags. -clear brown bags contain 2 dotted magenta bags, 3 clear aqua bags, 5 faded lime bags. -striped lavender bags contain 4 dull turquoise bags. -plaid teal bags contain 3 muted bronze bags, 2 drab orange bags. -faded blue bags contain 3 bright teal bags, 2 posh brown bags. -drab gold bags contain 3 dotted black bags, 5 striped yellow bags. -plaid gray bags contain 2 drab magenta bags, 4 bright yellow bags, 5 pale beige bags. -mirrored coral bags contain 1 shiny fuchsia bag, 5 vibrant gray bags, 1 wavy maroon bag. -drab fuchsia bags contain 3 dull silver bags, 5 posh brown bags. -wavy olive bags contain 2 plaid lavender bags. -vibrant maroon bags contain 4 drab brown bags, 1 dark indigo bag, 1 clear gray bag. -faded magenta bags contain 1 dim crimson bag. -pale aqua bags contain 3 dotted turquoise bags. -dotted orange bags contain 2 light coral bags. -dim coral bags contain 4 pale gold bags. -faded turquoise bags contain 5 posh gold bags, 2 bright turquoise bags, 1 drab magenta bag. -striped tan bags contain 3 bright red bags. -drab green bags contain 3 muted gold bags, 3 plaid gold bags. -posh red bags contain 3 mirrored red bags, 2 striped fuchsia bags, 3 faded violet bags, 1 bright black bag. -drab lime bags contain 2 dotted brown bags. -plaid tomato bags contain 4 muted olive bags, 2 striped tan bags. -striped blue bags contain 3 drab lavender bags. -bright bronze bags contain 2 clear gold bags, 2 striped gold bags, 4 dim coral bags, 5 vibrant purple bags. -muted white bags contain 4 light olive bags. -pale violet bags contain 1 bright teal bag, 5 bright lavender bags, 2 faded green bags, 5 clear gold bags. -striped violet bags contain 2 drab turquoise bags, 2 bright red bags, 3 vibrant blue bags. -dull beige bags contain 2 vibrant beige bags. -light lime bags contain 1 bright turquoise bag, 3 vibrant beige bags, 2 wavy bronze bags, 1 muted cyan bag. -striped gray bags contain 5 vibrant brown bags, 3 wavy red bags, 3 plaid bronze bags, 4 wavy aqua bags. -dark violet bags contain 5 dim indigo bags, 1 dim chartreuse bag, 5 dim purple bags, 1 striped magenta bag. -dim turquoise bags contain 3 muted tan bags. -pale green bags contain 2 pale olive bags, 5 wavy red bags, 5 pale lime bags. -dark beige bags contain 1 light green bag, 4 drab beige bags, 2 dim cyan bags. -drab maroon bags contain 3 light coral bags, 1 clear crimson bag. -dark gold bags contain 1 dim black bag, 1 dotted gold bag, 3 dim gray bags, 5 wavy red bags. -drab white bags contain 1 pale gray bag. -mirrored olive bags contain 4 mirrored crimson bags, 3 faded beige bags. -pale yellow bags contain 4 shiny maroon bags, 5 dim tomato bags, 4 shiny olive bags, 1 faded olive bag. -striped lime bags contain 2 light lavender bags, 4 shiny aqua bags, 2 pale maroon bags. -mirrored tomato bags contain 2 clear crimson bags, 2 pale beige bags, 5 striped purple bags, 4 clear tomato bags. -dark black bags contain 1 mirrored orange bag, 4 shiny brown bags. -plaid chartreuse bags contain 1 dim beige bag, 2 vibrant red bags, 1 bright lavender bag, 5 mirrored tomato bags. -posh gray bags contain 5 dotted blue bags. -mirrored crimson bags contain no other bags. -pale silver bags contain 3 plaid cyan bags. -shiny green bags contain 4 dotted violet bags, 3 drab olive bags. -light brown bags contain 2 vibrant yellow bags, 3 dim tomato bags. -muted yellow bags contain 1 drab magenta bag, 5 muted olive bags, 3 clear crimson bags, 2 mirrored brown bags. -mirrored plum bags contain 4 muted tan bags, 1 posh brown bag, 3 faded silver bags, 1 dull gold bag. -dark chartreuse bags contain 1 dim orange bag, 2 dull indigo bags, 1 dark beige bag. -wavy brown bags contain 3 striped chartreuse bags. -faded white bags contain 5 striped magenta bags, 2 muted turquoise bags, 2 bright cyan bags, 3 clear chartreuse bags. -bright green bags contain 1 light salmon bag. -bright salmon bags contain 3 posh tan bags, 2 drab orange bags. -drab plum bags contain 2 posh turquoise bags, 4 dark salmon bags, 3 posh lime bags, 4 light coral bags. -drab tomato bags contain 5 faded teal bags, 4 mirrored black bags, 4 mirrored lavender bags, 1 drab salmon bag. -faded olive bags contain 4 light green bags, 4 clear bronze bags. -plaid bronze bags contain 3 dim plum bags, 2 posh white bags, 1 dotted gray bag, 2 dull gray bags. -light salmon bags contain 2 faded violet bags. -bright red bags contain 1 posh plum bag, 4 clear crimson bags. -faded maroon bags contain 3 striped olive bags, 5 wavy bronze bags, 3 bright lavender bags. -mirrored orange bags contain 1 bright silver bag, 3 bright red bags, 1 drab brown bag. -dotted indigo bags contain 1 dull black bag, 2 posh white bags. -wavy teal bags contain 1 dotted tomato bag, 4 faded beige bags, 5 dull beige bags, 1 clear crimson bag. -dim magenta bags contain 2 posh maroon bags, 1 dim yellow bag, 4 faded red bags, 5 pale olive bags. -light red bags contain 3 dim silver bags, 5 drab maroon bags, 3 shiny red bags. -plaid red bags contain 1 posh yellow bag, 5 muted turquoise bags, 1 bright red bag. -pale magenta bags contain 4 dim plum bags, 5 dull tomato bags, 3 bright turquoise bags, 1 dark lime bag. -posh yellow bags contain 5 posh brown bags. -bright lavender bags contain 5 clear aqua bags, 1 posh yellow bag, 4 pale magenta bags. -dim fuchsia bags contain 4 muted green bags, 3 mirrored beige bags, 5 dark brown bags, 1 dull crimson bag. -vibrant salmon bags contain 4 clear lime bags, 5 plaid brown bags, 5 pale white bags. -dim black bags contain 3 faded magenta bags, 5 dull gray bags, 2 vibrant blue bags, 2 vibrant bronze bags. -dotted yellow bags contain 3 drab turquoise bags, 3 muted cyan bags, 3 clear gray bags. -mirrored beige bags contain 1 drab salmon bag, 1 striped olive bag, 5 dotted gold bags, 2 faded beige bags. -striped brown bags contain 5 bright maroon bags, 2 light gold bags. -striped chartreuse bags contain no other bags. -dark lime bags contain 3 dull chartreuse bags, 5 dim violet bags, 2 mirrored crimson bags. -faded salmon bags contain 2 dull chartreuse bags, 4 posh brown bags, 3 mirrored olive bags, 5 light green bags. -bright brown bags contain 2 vibrant bronze bags, 2 dim gray bags. -dull tan bags contain 5 posh indigo bags. -dim silver bags contain 1 vibrant tomato bag, 4 dim maroon bags. -clear lime bags contain 4 clear gray bags, 1 clear tan bag, 4 posh brown bags, 1 dark indigo bag. -shiny beige bags contain 5 plaid lavender bags, 4 drab red bags, 4 striped green bags, 2 vibrant tomato bags. -dim tomato bags contain 3 clear yellow bags, 2 wavy gold bags, 3 pale cyan bags. -dotted tan bags contain 3 pale white bags. -dark crimson bags contain 1 dim coral bag, 4 muted brown bags, 2 clear chartreuse bags. -plaid coral bags contain 1 dark yellow bag, 3 muted tomato bags. -faded lavender bags contain 1 muted lavender bag, 5 mirrored red bags, 1 muted orange bag, 3 light coral bags. -vibrant crimson bags contain 3 plaid plum bags, 2 bright olive bags. -faded chartreuse bags contain 5 dim cyan bags. -dark gray bags contain 5 clear plum bags, 5 faded aqua bags. -shiny crimson bags contain 4 mirrored gray bags, 2 dull green bags. -muted purple bags contain 5 dull tomato bags. -light coral bags contain no other bags. -pale beige bags contain 3 dark indigo bags, 5 bright turquoise bags, 3 vibrant lavender bags, 1 pale magenta bag. -posh turquoise bags contain 4 faded green bags, 2 light coral bags, 1 light teal bag, 3 dim tomato bags. -clear aqua bags contain 2 wavy cyan bags, 1 muted yellow bag. -posh silver bags contain 4 plaid fuchsia bags, 2 dotted violet bags, 3 drab olive bags. -dark silver bags contain 4 vibrant purple bags, 1 vibrant cyan bag. -dull plum bags contain 3 dim red bags, 3 wavy turquoise bags, 2 mirrored beige bags. -muted magenta bags contain 3 faded lime bags, 2 muted crimson bags, 1 mirrored gray bag. -plaid indigo bags contain 4 wavy aqua bags, 1 plaid silver bag, 1 light blue bag, 3 wavy magenta bags. -wavy violet bags contain 2 striped bronze bags. -plaid yellow bags contain 3 dull plum bags, 1 striped blue bag, 5 faded aqua bags. -dotted bronze bags contain 3 bright lavender bags, 1 wavy lime bag, 2 dotted cyan bags, 1 mirrored beige bag. -striped coral bags contain 4 dark cyan bags, 4 wavy bronze bags, 2 dotted magenta bags. -posh tan bags contain 4 mirrored brown bags, 3 dotted teal bags, 5 light lime bags. -bright white bags contain 2 muted indigo bags, 2 wavy aqua bags. -posh cyan bags contain 4 muted tomato bags, 1 posh tan bag, 4 mirrored lavender bags, 2 drab blue bags. -wavy gold bags contain 1 dim beige bag, 5 dotted teal bags, 2 dotted turquoise bags. -mirrored cyan bags contain 2 drab silver bags, 5 muted orange bags, 5 mirrored olive bags. -dim orange bags contain 3 striped blue bags. -muted indigo bags contain 4 clear aqua bags, 2 mirrored tan bags, 2 clear green bags, 2 posh brown bags. -dull tomato bags contain 4 posh plum bags. -plaid orange bags contain 1 striped coral bag. -posh bronze bags contain 3 vibrant purple bags, 2 dim brown bags, 1 clear violet bag, 4 mirrored gold bags. -dotted chartreuse bags contain 3 dull crimson bags. -faded coral bags contain 1 wavy tomato bag. -pale salmon bags contain 2 dull purple bags, 2 dark tomato bags. -wavy crimson bags contain 4 bright fuchsia bags, 5 light lime bags, 1 posh tan bag. -pale fuchsia bags contain 2 wavy black bags, 1 muted crimson bag, 2 dotted aqua bags. -striped fuchsia bags contain 1 mirrored violet bag, 3 dull chartreuse bags, 1 shiny lavender bag. -plaid cyan bags contain 2 vibrant lavender bags. -dotted beige bags contain 4 dim beige bags, 2 vibrant lavender bags. -mirrored turquoise bags contain 4 mirrored beige bags, 3 dotted turquoise bags, 1 striped maroon bag. -faded indigo bags contain 3 dark lime bags, 5 mirrored salmon bags, 3 drab red bags. -dotted silver bags contain 3 dark yellow bags, 4 posh crimson bags. -light silver bags contain 2 wavy orange bags, 2 vibrant maroon bags, 4 wavy beige bags. -vibrant cyan bags contain 1 shiny fuchsia bag, 3 posh plum bags. -pale crimson bags contain 1 dotted gold bag, 4 mirrored brown bags, 1 mirrored olive bag. -vibrant beige bags contain 4 dull white bags. -faded tomato bags contain 4 mirrored salmon bags, 5 faded green bags. -dull maroon bags contain 5 mirrored olive bags, 4 dim crimson bags. -muted aqua bags contain 2 plaid olive bags, 1 shiny indigo bag. -shiny teal bags contain 4 striped bronze bags, 3 dotted aqua bags. -dotted cyan bags contain 3 clear yellow bags, 5 faded maroon bags, 3 dim gray bags. -wavy beige bags contain 1 posh cyan bag, 4 wavy magenta bags, 5 dim green bags. -bright silver bags contain 4 clear beige bags, 2 faded chartreuse bags, 4 clear aqua bags. -striped purple bags contain 2 clear chartreuse bags, 4 dotted magenta bags. -clear gold bags contain 2 vibrant lavender bags, 3 posh aqua bags, 4 light green bags, 3 pale cyan bags. -dull cyan bags contain 5 dim tomato bags, 1 dim orange bag. -light crimson bags contain 1 dull green bag. -faded crimson bags contain 4 plaid coral bags, 3 dotted orange bags. -pale gray bags contain 3 dark lime bags. -faded gold bags contain 1 muted crimson bag, 1 plaid red bag, 5 wavy cyan bags. -plaid plum bags contain 4 bright blue bags. -wavy tomato bags contain 5 posh brown bags, 2 striped maroon bags, 4 faded indigo bags, 3 clear gold bags. -shiny fuchsia bags contain 2 mirrored gray bags. -wavy magenta bags contain 2 posh olive bags. -dim purple bags contain 1 vibrant yellow bag. -wavy black bags contain 1 pale green bag. -wavy silver bags contain 3 dull yellow bags, 5 faded magenta bags, 4 mirrored black bags, 3 dull indigo bags. -shiny cyan bags contain 2 shiny salmon bags, 2 pale olive bags, 1 shiny red bag. -striped cyan bags contain 5 pale magenta bags, 3 faded silver bags. -dim salmon bags contain 2 vibrant aqua bags, 1 drab red bag. -bright chartreuse bags contain 1 shiny tomato bag, 2 wavy yellow bags, 2 wavy silver bags. -drab coral bags contain 1 drab silver bag. -pale white bags contain 2 faded red bags, 4 pale gray bags, 2 mirrored lavender bags. -dim violet bags contain 3 dull white bags. -muted red bags contain 3 shiny lime bags, 3 plaid beige bags, 2 shiny aqua bags. -bright teal bags contain 3 dim tomato bags, 3 mirrored turquoise bags, 5 vibrant yellow bags. -striped maroon bags contain 1 dim plum bag, 2 wavy cyan bags, 1 dull beige bag. -vibrant green bags contain 5 dotted salmon bags, 4 mirrored olive bags. -dim tan bags contain 2 shiny white bags, 3 posh lime bags, 1 dotted teal bag. -muted olive bags contain 4 mirrored chartreuse bags. -muted salmon bags contain 1 clear salmon bag. -dim beige bags contain 2 pale gray bags, 2 mirrored olive bags, 3 clear yellow bags. -light tomato bags contain 1 pale white bag, 2 dark teal bags, 5 shiny lime bags. -striped beige bags contain 4 bright plum bags, 1 plaid olive bag, 2 pale crimson bags. -light indigo bags contain 4 bright fuchsia bags, 1 dull gold bag, 5 dark beige bags, 3 mirrored teal bags. -drab gray bags contain 3 dark coral bags, 5 mirrored teal bags, 5 dim purple bags, 4 mirrored violet bags. -dark teal bags contain 2 muted orange bags. -dim plum bags contain 1 posh brown bag, 4 dotted orange bags, 3 dotted gold bags, 2 drab salmon bags. -dim green bags contain 3 dark beige bags, 3 bright tan bags, 4 striped white bags, 5 faded white bags. -drab teal bags contain 1 light gray bag. -dark aqua bags contain 5 vibrant green bags, 3 shiny teal bags, 3 dull red bags. -wavy lime bags contain 5 mirrored brown bags, 2 dark cyan bags, 4 dull green bags, 1 wavy cyan bag. -muted violet bags contain 3 light plum bags. -posh green bags contain 2 shiny fuchsia bags, 3 posh aqua bags, 5 dotted turquoise bags. -clear blue bags contain 4 vibrant gray bags, 4 shiny plum bags. -muted brown bags contain 1 dark lime bag, 1 mirrored olive bag, 1 faded beige bag. -dotted black bags contain 5 pale beige bags, 1 dotted tomato bag, 2 wavy cyan bags, 3 wavy aqua bags. -muted chartreuse bags contain 5 muted lavender bags, 5 clear aqua bags, 5 bright maroon bags, 4 plaid bronze bags. -bright purple bags contain 4 bright fuchsia bags, 3 pale tomato bags, 5 mirrored tomato bags. -drab orange bags contain 5 light crimson bags, 4 dark beige bags. -clear white bags contain 2 shiny salmon bags. -posh lavender bags contain 4 posh tan bags, 1 posh magenta bag. -faded purple bags contain 2 dull maroon bags, 2 mirrored coral bags, 4 vibrant green bags. -dotted olive bags contain 5 dull chartreuse bags, 2 wavy magenta bags, 1 pale tan bag, 3 dim turquoise bags. -muted crimson bags contain 1 striped olive bag, 3 dull chartreuse bags, 1 light bronze bag. -striped turquoise bags contain 2 light blue bags. -bright indigo bags contain 3 dull green bags, 1 pale teal bag. -drab purple bags contain 3 bright aqua bags, 4 dull tan bags, 2 mirrored indigo bags. -wavy salmon bags contain 4 dark olive bags, 5 dull chartreuse bags, 3 vibrant purple bags, 1 pale lime bag. -drab olive bags contain 5 dim crimson bags, 3 posh green bags, 3 clear brown bags, 1 posh teal bag. -muted orange bags contain 5 shiny orange bags, 3 muted black bags, 5 bright blue bags, 1 mirrored olive bag. -drab salmon bags contain 5 light coral bags. -dark salmon bags contain 4 bright lavender bags, 5 clear gray bags. -posh blue bags contain 1 drab coral bag, 3 faded green bags. -shiny violet bags contain 1 posh yellow bag, 4 light turquoise bags, 4 drab silver bags, 2 muted teal bags. -clear tomato bags contain 3 bright plum bags, 3 muted indigo bags, 2 muted maroon bags, 3 dotted cyan bags. -dotted coral bags contain 4 dark tomato bags, 5 dotted magenta bags, 5 wavy gold bags. -striped teal bags contain 1 plaid brown bag, 2 bright plum bags, 1 mirrored blue bag. -pale maroon bags contain 4 posh gold bags, 5 striped magenta bags, 2 dim brown bags, 1 clear chartreuse bag. -muted lime bags contain 5 dull lavender bags, 3 plaid gray bags, 3 shiny tomato bags, 4 drab tomato bags. -mirrored green bags contain 2 striped purple bags. -posh chartreuse bags contain 4 dull tan bags, 2 plaid coral bags, 1 plaid cyan bag, 4 clear bronze bags. -shiny bronze bags contain 3 striped indigo bags, 4 mirrored white bags, 1 faded coral bag, 1 clear violet bag. -dull olive bags contain 1 muted coral bag, 3 clear tomato bags, 3 bright tan bags. -light maroon bags contain 5 mirrored tomato bags. -light chartreuse bags contain 3 dark indigo bags, 2 mirrored coral bags. -light bronze bags contain 1 bright yellow bag. -dim chartreuse bags contain 3 plaid gray bags, 2 faded teal bags. -dotted lavender bags contain 3 bright teal bags, 3 vibrant green bags. -dark tan bags contain 5 posh black bags. -muted blue bags contain 2 mirrored salmon bags, 4 striped olive bags. -mirrored chartreuse bags contain 2 bright turquoise bags. -clear cyan bags contain 5 dotted gold bags, 3 shiny fuchsia bags, 3 dim violet bags. -light white bags contain 2 vibrant bronze bags. -pale orange bags contain 3 plaid aqua bags. -faded brown bags contain 2 shiny blue bags, 1 dark cyan bag. -plaid salmon bags contain 5 wavy yellow bags, 3 faded aqua bags, 1 dull yellow bag. -shiny blue bags contain 2 bright violet bags, 3 light lime bags, 5 clear blue bags. -dull orange bags contain 4 faded turquoise bags, 2 dim lavender bags. -dull gold bags contain 2 dotted gray bags. -vibrant tan bags contain 2 posh turquoise bags, 2 muted orange bags, 4 plaid blue bags. -shiny white bags contain 1 pale chartreuse bag, 4 dark tomato bags. -light olive bags contain 3 striped bronze bags, 3 posh white bags. -dark lavender bags contain 3 drab magenta bags, 3 plaid black bags, 2 dull red bags. -shiny turquoise bags contain 1 vibrant black bag, 5 wavy fuchsia bags. -clear fuchsia bags contain 2 dull aqua bags, 2 shiny coral bags. -shiny coral bags contain 2 pale magenta bags, 4 muted bronze bags, 4 light coral bags. -striped salmon bags contain 3 posh olive bags. -shiny olive bags contain 5 pale chartreuse bags. -dotted brown bags contain 1 mirrored brown bag. -dull red bags contain 1 faded chartreuse bag, 1 dull chartreuse bag, 5 clear lavender bags, 5 wavy salmon bags. -bright beige bags contain 1 posh crimson bag, 1 posh chartreuse bag. -plaid crimson bags contain 5 wavy magenta bags, 4 muted lime bags, 1 muted maroon bag, 3 dim green bags. -wavy maroon bags contain 1 wavy cyan bag, 1 bright turquoise bag, 4 shiny coral bags, 3 drab beige bags. -vibrant fuchsia bags contain 2 dull tomato bags, 1 light coral bag. -pale brown bags contain 5 striped gray bags, 1 light plum bag, 1 pale chartreuse bag, 2 shiny tomato bags. -light plum bags contain 4 bright yellow bags, 2 dark tomato bags, 4 plaid coral bags. -dull gray bags contain 1 mirrored olive bag. -light yellow bags contain 5 bright magenta bags, 5 pale gray bags, 4 mirrored red bags. -dull lime bags contain 3 dark indigo bags, 3 mirrored salmon bags, 5 striped white bags, 3 posh aqua bags. -drab yellow bags contain 4 shiny white bags, 3 faded green bags. -bright gray bags contain 5 drab olive bags. -bright coral bags contain 3 mirrored brown bags, 5 dim bronze bags, 5 muted white bags, 1 dim crimson bag. -dim maroon bags contain 1 vibrant red bag, 3 faded fuchsia bags, 3 vibrant blue bags. -plaid turquoise bags contain 3 bright yellow bags, 5 dark purple bags. -plaid violet bags contain 1 clear yellow bag, 2 posh violet bags, 3 mirrored bronze bags, 3 vibrant tan bags. -dotted maroon bags contain 2 striped fuchsia bags, 3 striped white bags, 2 light blue bags, 5 plaid cyan bags. -dull blue bags contain 1 wavy brown bag. -drab tan bags contain 1 clear indigo bag, 4 faded violet bags, 3 pale cyan bags. -posh maroon bags contain 5 striped aqua bags, 3 wavy coral bags, 3 mirrored olive bags. -dim blue bags contain 4 dotted maroon bags, 5 striped black bags, 5 plaid gray bags. -faded teal bags contain 3 clear indigo bags, 5 dark beige bags, 1 shiny cyan bag, 3 bright tomato bags. -clear bronze bags contain 1 muted yellow bag. -dark plum bags contain 3 faded white bags, 2 wavy brown bags, 5 pale white bags. -wavy cyan bags contain 3 mirrored brown bags, 5 faded silver bags, 1 dim lime bag, 5 clear indigo bags. -posh plum bags contain no other bags. -wavy plum bags contain 4 dull indigo bags, 3 faded black bags, 4 bright turquoise bags, 5 bright red bags. -dim red bags contain 2 light cyan bags. -pale coral bags contain 2 wavy brown bags, 1 dull gray bag. -posh teal bags contain 2 striped purple bags, 1 dotted gray bag. -clear tan bags contain 5 striped maroon bags. -wavy chartreuse bags contain 5 bright chartreuse bags. -posh black bags contain 2 mirrored gray bags, 3 mirrored beige bags, 2 clear aqua bags, 2 bright plum bags. -muted maroon bags contain 5 vibrant red bags, 1 plaid lavender bag. -vibrant silver bags contain 1 mirrored salmon bag, 5 clear lime bags, 4 shiny violet bags. -pale indigo bags contain 4 clear maroon bags, 4 wavy cyan bags. -mirrored salmon bags contain 4 pale gray bags, 4 dim beige bags. -pale lavender bags contain 1 wavy turquoise bag, 2 striped green bags, 4 light coral bags, 4 clear chartreuse bags. -drab beige bags contain no other bags. -wavy coral bags contain 3 muted cyan bags, 3 dull bronze bags. -plaid black bags contain 2 posh orange bags, 4 shiny tan bags, 5 mirrored brown bags, 3 shiny plum bags. -light gray bags contain 2 dim crimson bags, 1 faded salmon bag. -shiny plum bags contain 2 dull tomato bags, 1 mirrored tan bag, 2 dull green bags, 1 dark lime bag. -drab blue bags contain 5 mirrored chartreuse bags, 5 dull tomato bags, 2 mirrored beige bags, 4 posh plum bags. -faded orange bags contain 5 striped yellow bags, 1 drab gray bag, 5 vibrant purple bags, 3 muted fuchsia bags. -plaid purple bags contain 1 faded silver bag, 4 shiny gold bags, 4 dim cyan bags. -pale tan bags contain 3 shiny gold bags, 2 shiny lavender bags, 3 pale cyan bags. -bright crimson bags contain 5 clear cyan bags. -dotted lime bags contain 2 posh violet bags, 5 striped beige bags, 4 bright teal bags. -posh purple bags contain 5 mirrored silver bags, 1 dim tan bag, 1 pale white bag. -vibrant red bags contain 3 pale chartreuse bags, 2 dim purple bags, 4 wavy maroon bags, 1 dull gray bag. -light fuchsia bags contain 1 drab maroon bag, 2 faded violet bags. -bright blue bags contain 4 drab salmon bags, 4 dotted gold bags. -bright turquoise bags contain 2 dotted gold bags, 2 dim violet bags, 1 vibrant bronze bag. -light orange bags contain 1 plaid olive bag. -light gold bags contain 2 clear plum bags, 2 striped bronze bags, 4 dark yellow bags, 2 posh orange bags. -dotted magenta bags contain 4 wavy cyan bags. -muted teal bags contain 1 clear beige bag, 4 plaid brown bags, 2 posh plum bags. -light black bags contain 3 drab bronze bags, 2 plaid silver bags, 3 mirrored coral bags. -wavy turquoise bags contain 5 dotted orange bags. -muted fuchsia bags contain 3 dull black bags, 1 striped coral bag, 1 bright magenta bag. -posh white bags contain 5 bright blue bags, 2 pale gray bags, 2 dark lime bags, 4 dotted gold bags. -striped black bags contain 5 drab maroon bags, 1 faded green bag, 2 mirrored silver bags, 2 shiny white bags. -striped gold bags contain 4 dim gray bags. -dull violet bags contain 3 light plum bags, 4 faded turquoise bags, 3 mirrored cyan bags. -striped red bags contain 5 plaid orange bags, 1 clear plum bag, 2 vibrant lavender bags. -bright cyan bags contain 1 dim brown bag, 4 mirrored turquoise bags. -dim cyan bags contain 5 bright turquoise bags. -shiny chartreuse bags contain 2 striped white bags. -vibrant blue bags contain 5 drab tan bags, 4 dotted magenta bags. -mirrored aqua bags contain 3 shiny gold bags, 3 drab brown bags, 3 faded black bags, 3 clear tan bags. -dark cyan bags contain 4 pale gray bags, 1 dotted gold bag, 4 dotted orange bags, 4 pale magenta bags. -wavy fuchsia bags contain 5 mirrored teal bags, 1 dotted gray bag. -pale gold bags contain 3 posh lavender bags, 2 drab brown bags. -shiny orange bags contain 2 dim gray bags. -posh tomato bags contain 5 bright brown bags. -clear orange bags contain 4 posh plum bags, 5 dull gray bags. -pale purple bags contain 1 drab purple bag, 5 bright crimson bags. -drab brown bags contain 1 bright red bag, 3 light turquoise bags, 1 posh plum bag, 2 dull chartreuse bags. -shiny tan bags contain 2 dotted gold bags, 2 plaid orange bags, 3 clear cyan bags. -faded cyan bags contain 2 wavy cyan bags, 2 posh teal bags. -clear maroon bags contain 2 light coral bags. -drab cyan bags contain 3 wavy bronze bags, 5 posh aqua bags, 4 dull crimson bags, 1 shiny gold bag. -plaid white bags contain 4 wavy brown bags. -bright tan bags contain 2 shiny silver bags. -drab turquoise bags contain 2 faded beige bags, 4 vibrant lavender bags. -faded yellow bags contain 2 dull black bags, 3 vibrant yellow bags, 4 plaid silver bags, 3 posh teal bags. -bright lime bags contain 3 striped aqua bags, 4 dull tomato bags, 5 dim gray bags. -plaid tan bags contain 2 plaid coral bags, 5 drab blue bags, 4 drab orange bags. -clear purple bags contain 2 drab tomato bags, 3 mirrored bronze bags, 2 dark teal bags, 4 dull green bags. -wavy red bags contain 4 faded tan bags, 4 wavy cyan bags. -vibrant purple bags contain 5 mirrored salmon bags, 1 dark salmon bag. -wavy tan bags contain 1 shiny olive bag, 2 faded maroon bags. -vibrant gray bags contain 1 mirrored olive bag, 2 dotted turquoise bags, 4 striped chartreuse bags, 1 dull tomato bag. -mirrored gray bags contain 4 bright blue bags, 1 striped olive bag. -dull aqua bags contain 1 vibrant purple bag, 1 faded maroon bag, 3 muted yellow bags. -clear red bags contain 1 posh violet bag. -light purple bags contain 2 shiny olive bags, 2 striped yellow bags, 4 dotted turquoise bags, 2 shiny violet bags. -dull brown bags contain 2 wavy red bags, 4 clear green bags. -wavy bronze bags contain 2 dull tomato bags. -muted beige bags contain 5 wavy aqua bags, 4 striped maroon bags, 2 drab tan bags. -muted black bags contain 1 posh green bag, 1 clear green bag, 5 striped bronze bags. -light green bags contain 4 dim lime bags, 1 shiny gold bag, 3 shiny crimson bags, 2 muted yellow bags. -mirrored fuchsia bags contain 1 dull bronze bag. -pale tomato bags contain 2 vibrant maroon bags, 2 muted orange bags, 1 wavy brown bag, 2 dull cyan bags. -drab chartreuse bags contain 5 mirrored magenta bags. -shiny indigo bags contain 4 pale teal bags, 3 dull silver bags, 5 mirrored olive bags. -bright aqua bags contain 3 bright violet bags. -shiny magenta bags contain 2 bright red bags. -vibrant orange bags contain 3 mirrored black bags, 5 mirrored olive bags. -mirrored indigo bags contain 4 vibrant coral bags, 1 mirrored crimson bag, 2 mirrored red bags. -plaid blue bags contain 5 wavy aqua bags, 2 plaid fuchsia bags, 3 wavy purple bags, 1 dim lime bag. -dotted plum bags contain 4 striped chartreuse bags, 4 dotted yellow bags, 4 light yellow bags, 3 striped red bags. -light violet bags contain 5 shiny chartreuse bags, 1 wavy lime bag, 1 vibrant beige bag. -dotted salmon bags contain 2 drab maroon bags, 5 muted black bags, 1 posh violet bag, 1 dull lime bag. -vibrant gold bags contain 5 dull magenta bags, 1 clear aqua bag, 3 mirrored beige bags, 1 pale cyan bag. -mirrored lavender bags contain 3 clear gold bags. -dotted gold bags contain 1 drab beige bag, 1 mirrored crimson bag. -bright magenta bags contain 1 striped maroon bag, 1 striped bronze bag, 5 mirrored beige bags, 1 dotted maroon bag. -clear black bags contain 1 faded chartreuse bag, 5 light blue bags. -bright tomato bags contain 3 mirrored tan bags, 2 mirrored olive bags, 3 muted bronze bags, 1 posh violet bag. -mirrored violet bags contain 3 striped chartreuse bags, 3 dim lime bags, 5 pale chartreuse bags, 1 posh tan bag. -faded gray bags contain 4 light crimson bags, 3 muted turquoise bags. -dark red bags contain 5 muted green bags, 4 mirrored maroon bags. -clear crimson bags contain 2 muted olive bags, 5 striped chartreuse bags. -vibrant lime bags contain 1 dim crimson bag, 2 faded coral bags, 3 light crimson bags. -vibrant bronze bags contain no other bags. -dotted white bags contain 4 dim purple bags, 2 mirrored chartreuse bags. -clear indigo bags contain 3 mirrored olive bags, 2 posh brown bags. -pale lime bags contain 5 faded salmon bags, 5 striped tan bags, 4 light white bags, 3 pale chartreuse bags. -vibrant coral bags contain 1 muted orange bag. -clear teal bags contain 1 posh plum bag. -wavy white bags contain 2 dim chartreuse bags, 1 dull tomato bag, 1 dull fuchsia bag, 4 faded silver bags. -dull yellow bags contain 2 mirrored gray bags, 2 shiny olive bags, 4 clear beige bags, 2 dim crimson bags. -posh fuchsia bags contain 3 dull teal bags. -dotted teal bags contain 3 dull white bags, 5 pale gray bags. -vibrant tomato bags contain 4 dull green bags. -dull purple bags contain 3 shiny red bags, 1 dim crimson bag, 5 drab turquoise bags. -vibrant aqua bags contain 1 bright cyan bag. -clear plum bags contain 5 drab magenta bags, 2 mirrored salmon bags. -dark tomato bags contain 1 dull beige bag, 1 faded violet bag. -bright violet bags contain 3 dim lime bags, 4 muted cyan bags, 4 dull gold bags. -dim teal bags contain 3 mirrored orange bags. -dark magenta bags contain 2 light tan bags, 5 bright violet bags, 4 dim aqua bags, 5 bright teal bags. -faded silver bags contain 2 dotted gold bags. -light lavender bags contain 5 mirrored chartreuse bags. -vibrant chartreuse bags contain 1 pale indigo bag, 2 drab tan bags, 2 striped bronze bags. -dotted blue bags contain 3 faded gray bags, 3 muted coral bags, 4 drab red bags. -drab lavender bags contain 1 dull bronze bag. -wavy green bags contain 2 vibrant brown bags. -bright gold bags contain 5 shiny blue bags. -dull lavender bags contain 4 vibrant beige bags, 4 wavy purple bags. -shiny tomato bags contain 5 plaid olive bags. -faded aqua bags contain 5 mirrored olive bags. -clear beige bags contain 4 shiny fuchsia bags, 5 wavy bronze bags. -pale black bags contain 1 shiny lavender bag, 4 muted olive bags, 3 striped gold bags. -faded beige bags contain 3 clear yellow bags, 1 bright turquoise bag. -dull salmon bags contain 1 plaid tomato bag, 1 dull coral bag, 4 dotted coral bags. -drab aqua bags contain 5 muted olive bags. -plaid fuchsia bags contain 2 wavy lime bags, 3 mirrored gray bags, 3 clear crimson bags. -pale turquoise bags contain 3 bright cyan bags, 3 posh blue bags, 3 dark olive bags. -dotted red bags contain 3 pale black bags, 3 light blue bags, 4 clear gold bags, 4 pale olive bags. -dark olive bags contain 5 shiny coral bags. -dull white bags contain no other bags. -shiny silver bags contain 3 posh plum bags, 4 posh brown bags, 4 dull chartreuse bags, 1 drab beige bag. -muted gray bags contain 5 posh coral bags. -light magenta bags contain 3 vibrant cyan bags, 1 striped tan bag, 5 dark maroon bags, 2 wavy cyan bags. -dim brown bags contain 3 dull green bags, 2 dull beige bags, 2 wavy gold bags, 5 wavy bronze bags. -vibrant brown bags contain 1 striped violet bag, 2 dull beige bags. -pale chartreuse bags contain 5 shiny gold bags, 4 dotted gold bags. -vibrant plum bags contain 4 mirrored gray bags, 1 bright silver bag, 3 bright cyan bags, 2 dull gray bags. -muted bronze bags contain 2 mirrored beige bags. -plaid green bags contain 3 striped tan bags, 4 drab maroon bags. -dark orange bags contain 4 drab beige bags, 1 striped beige bag, 1 dim indigo bag. -bright olive bags contain 4 bright turquoise bags. -drab indigo bags contain 4 striped tan bags, 5 dotted gold bags, 4 shiny crimson bags, 2 dull chartreuse bags. -light teal bags contain 5 dotted orange bags, 3 posh brown bags, 3 shiny gold bags. -dotted crimson bags contain 5 posh turquoise bags, 1 clear salmon bag, 5 faded salmon bags. -shiny red bags contain 4 bright blue bags, 2 posh lime bags, 5 shiny plum bags. -dark brown bags contain 5 posh magenta bags. -drab violet bags contain 5 posh indigo bags, 2 light chartreuse bags, 2 vibrant crimson bags. -plaid beige bags contain 3 drab olive bags, 5 dim fuchsia bags, 5 wavy turquoise bags. -bright plum bags contain 2 mirrored salmon bags, 4 faded tan bags. -plaid lavender bags contain 2 striped coral bags, 1 light coral bag. -shiny brown bags contain 2 wavy tan bags, 1 pale salmon bag, 2 clear bronze bags. -clear turquoise bags contain 2 dotted beige bags. -wavy orange bags contain 4 shiny green bags, 1 pale magenta bag, 4 dark plum bags, 4 mirrored olive bags. -vibrant turquoise bags contain 3 dotted black bags, 4 wavy salmon bags. -posh olive bags contain 1 dull black bag. -pale red bags contain 5 plaid tomato bags. -dim gold bags contain 5 wavy violet bags. -dotted fuchsia bags contain 4 pale plum bags, 2 dim salmon bags, 2 clear salmon bags, 4 vibrant blue bags. -wavy indigo bags contain 3 muted fuchsia bags, 1 drab maroon bag. -clear chartreuse bags contain 3 mirrored olive bags, 1 posh yellow bag, 1 faded salmon bag, 5 drab salmon bags. -drab red bags contain 2 faded lime bags, 3 bright fuchsia bags, 5 bright olive bags, 2 striped maroon bags. -dotted turquoise bags contain 5 dull white bags, 3 bright olive bags, 4 clear crimson bags. -muted coral bags contain 1 posh green bag, 4 dim violet bags, 2 faded silver bags, 3 dim plum bags. -plaid olive bags contain 2 striped cyan bags, 4 drab red bags, 2 clear beige bags, 5 plaid coral bags. -vibrant indigo bags contain 1 vibrant maroon bag. -clear olive bags contain 3 vibrant purple bags, 3 plaid green bags. -light blue bags contain 5 plaid lavender bags, 1 mirrored violet bag, 4 muted yellow bags. -muted turquoise bags contain 3 plaid brown bags, 5 clear aqua bags, 5 drab silver bags. -muted cyan bags contain 5 shiny fuchsia bags. -plaid aqua bags contain 3 posh green bags, 2 dull crimson bags. -dull teal bags contain 2 drab red bags. -dim olive bags contain 3 dark plum bags. -bright black bags contain 4 shiny salmon bags, 3 dull white bags, 4 clear brown bags. -mirrored maroon bags contain 1 drab turquoise bag, 2 plaid red bags, 3 faded black bags. -pale plum bags contain 1 dark salmon bag. -posh magenta bags contain 4 bright tan bags. -faded tan bags contain 1 pale magenta bag, 1 drab beige bag, 2 dull beige bags, 1 shiny silver bag. -dark coral bags contain 4 shiny orange bags, 2 dull green bags, 2 dim crimson bags. -plaid silver bags contain 2 dim black bags, 2 mirrored tan bags, 4 shiny plum bags, 4 wavy teal bags. -dim gray bags contain 3 dull green bags, 3 dull white bags, 2 clear yellow bags. -clear magenta bags contain 5 pale chartreuse bags, 5 light magenta bags, 4 mirrored gray bags. -posh coral bags contain 1 muted plum bag, 4 dim turquoise bags. -dim yellow bags contain 3 striped white bags. -mirrored tan bags contain 1 dim cyan bag, 3 wavy purple bags. -vibrant olive bags contain 5 striped fuchsia bags, 3 shiny silver bags. -pale cyan bags contain 5 vibrant bronze bags, 2 clear crimson bags, 1 dim violet bag. -vibrant teal bags contain 1 pale white bag, 5 clear gold bags, 2 striped white bags. -shiny gold bags contain 1 shiny coral bag, 5 posh white bags, 3 wavy cyan bags. -dim lime bags contain 1 bright turquoise bag. -posh salmon bags contain 1 dotted aqua bag, 3 faded cyan bags. -vibrant yellow bags contain 4 dim violet bags, 2 striped bronze bags, 3 clear crimson bags. -dull magenta bags contain 5 clear green bags. -bright orange bags contain 1 bright indigo bag, 3 clear tan bags, 5 dark brown bags. -mirrored blue bags contain 3 dotted aqua bags, 4 dotted magenta bags. -clear salmon bags contain 5 striped chartreuse bags, 5 drab brown bags. -light tan bags contain 3 drab orange bags, 5 posh purple bags, 3 faded plum bags. -dark purple bags contain 2 dim plum bags, 4 dark beige bags, 1 dull tomato bag, 4 dull gray bags. -shiny maroon bags contain 3 dotted aqua bags. -faded lime bags contain 2 light turquoise bags. -mirrored yellow bags contain 4 muted orange bags, 4 shiny black bags, 1 shiny green bag. -bright yellow bags contain 1 plaid bronze bag, 2 shiny gold bags. -striped crimson bags contain 5 dotted black bags. diff --git a/src/files/P8.txt b/src/files/P8.txt deleted file mode 100644 index 0171c76..0000000 --- a/src/files/P8.txt +++ /dev/null @@ -1,611 +0,0 @@ -jmp +265 -jmp +326 -acc +41 -acc +21 -nop +255 -jmp +104 -jmp +563 -jmp +568 -acc -12 -acc -7 -jmp +9 -jmp +3 -acc -8 -jmp +360 -acc -10 -acc +35 -jmp +527 -acc +27 -jmp +176 -jmp +511 -acc +27 -acc -18 -acc +7 -jmp +272 -jmp +1 -acc +45 -jmp -24 -acc +47 -jmp -26 -jmp +344 -acc -17 -acc +26 -acc -7 -jmp +193 -acc +45 -jmp +238 -acc +13 -acc +0 -acc -13 -acc +33 -jmp +381 -acc +16 -acc -11 -acc +14 -acc +21 -jmp +194 -acc +48 -acc +14 -nop +271 -jmp -8 -acc +24 -acc -6 -acc +36 -jmp +501 -jmp -35 -jmp +1 -jmp +294 -acc -3 -jmp +181 -nop +371 -acc -12 -jmp +198 -nop +120 -jmp +108 -acc +45 -acc +46 -nop +193 -jmp +346 -acc +30 -acc +26 -jmp +200 -acc +0 -nop +187 -acc +31 -acc +30 -jmp +40 -acc +39 -acc +2 -acc +40 -jmp +316 -jmp +279 -acc +0 -acc +11 -jmp +120 -acc +32 -nop +336 -acc +13 -jmp +178 -acc -11 -jmp +144 -jmp +136 -acc -3 -nop +245 -acc +34 -jmp -23 -acc -5 -acc -11 -jmp +217 -acc +28 -acc +22 -acc +18 -jmp +329 -jmp +1 -nop +350 -nop -45 -acc +13 -jmp -87 -acc -13 -jmp +479 -acc +31 -acc -19 -nop +342 -jmp -78 -acc +18 -jmp +1 -jmp +1 -acc +18 -jmp +278 -nop +328 -acc +6 -jmp +1 -acc -11 -jmp +77 -jmp +4 -acc +32 -acc +48 -jmp +188 -acc +14 -acc +32 -jmp +122 -acc -6 -acc -16 -jmp -42 -acc +32 -acc +26 -acc +33 -jmp +48 -acc +3 -jmp +1 -jmp +163 -acc +34 -acc +17 -jmp -58 -nop +254 -acc +26 -jmp +223 -acc +7 -nop +94 -acc +12 -jmp +433 -acc +30 -acc -17 -acc +3 -acc +50 -jmp -95 -jmp +1 -acc +42 -jmp -146 -acc +12 -acc +33 -jmp -101 -acc +18 -jmp +244 -nop +243 -jmp -130 -acc -8 -jmp +55 -acc +39 -acc +45 -nop +2 -jmp +239 -acc -19 -acc +23 -acc +36 -jmp +59 -acc -14 -acc +29 -jmp -158 -acc +31 -acc +6 -jmp +223 -jmp +126 -jmp +306 -jmp +214 -acc -16 -jmp +102 -acc -6 -acc +19 -jmp -174 -jmp +283 -acc -13 -acc +12 -acc -8 -jmp +72 -jmp +252 -acc +16 -acc +26 -nop -19 -jmp +377 -jmp -15 -acc -7 -acc +34 -jmp +352 -jmp -101 -jmp -154 -acc +32 -nop -1 -acc +49 -jmp -167 -jmp +110 -jmp +127 -acc -3 -acc +17 -jmp +330 -acc +27 -jmp -50 -acc +25 -acc +8 -acc +21 -acc +4 -jmp +189 -jmp -157 -nop +231 -acc +27 -acc +27 -jmp +77 -acc +6 -jmp -198 -nop +274 -acc -16 -acc +31 -acc +5 -jmp +122 -jmp -30 -nop -79 -acc +43 -acc +24 -acc -1 -jmp +349 -jmp +80 -jmp +352 -acc +15 -acc +6 -acc +46 -acc -11 -jmp -35 -acc -9 -acc -16 -acc +22 -nop -71 -jmp +280 -acc +28 -acc +17 -jmp +127 -acc -15 -acc +14 -acc +0 -acc +45 -jmp +311 -acc -19 -jmp +309 -acc +36 -acc +7 -nop +102 -jmp -31 -nop +278 -nop +259 -acc +35 -jmp -86 -jmp +1 -jmp +84 -acc +30 -jmp -111 -jmp +263 -acc -14 -acc -8 -acc +7 -jmp -263 -jmp -259 -jmp -14 -acc +26 -acc +4 -jmp -56 -acc +31 -acc +49 -acc +42 -jmp +263 -acc -15 -acc -13 -acc -7 -acc +35 -jmp +270 -acc -3 -acc +31 -jmp -148 -acc +8 -acc +14 -jmp -247 -acc -1 -nop +255 -acc -15 -jmp +140 -acc +38 -nop +106 -acc +29 -jmp +244 -jmp +62 -acc +5 -nop -218 -acc +47 -acc -18 -jmp +208 -nop +47 -jmp +46 -acc +27 -jmp +126 -acc +50 -nop +129 -jmp -147 -nop -278 -jmp +1 -acc +37 -acc -17 -jmp +17 -acc +18 -acc +21 -jmp -121 -acc +12 -acc +37 -acc +48 -acc +24 -jmp -176 -acc +18 -acc -3 -nop -169 -acc -4 -jmp +23 -acc +42 -jmp +30 -jmp +15 -acc +33 -acc +33 -acc +36 -acc -7 -jmp +262 -acc -16 -jmp -27 -acc -14 -jmp +17 -jmp -79 -jmp +242 -acc +1 -acc -12 -jmp -3 -acc +11 -acc +44 -nop -254 -jmp +52 -jmp -294 -acc -9 -acc +50 -acc -9 -jmp -229 -acc +6 -jmp +211 -nop -132 -jmp +136 -jmp +74 -acc +39 -acc +18 -jmp +51 -nop -281 -jmp -211 -nop -19 -jmp +114 -nop -97 -jmp +1 -nop -282 -acc +45 -jmp +30 -jmp -191 -acc -13 -acc -4 -acc -8 -jmp +159 -acc +36 -acc +21 -acc -13 -acc +3 -jmp -266 -acc +45 -acc +29 -nop -55 -acc +39 -jmp +121 -jmp +58 -jmp -101 -acc -17 -acc +44 -jmp -319 -acc -15 -acc -7 -jmp -132 -acc +31 -jmp +165 -jmp -191 -jmp +87 -acc +23 -jmp +54 -acc +6 -nop -330 -jmp +26 -jmp -9 -acc +43 -acc +50 -acc +49 -jmp +63 -jmp +1 -acc -6 -acc +17 -jmp -311 -acc +50 -acc -13 -acc -15 -acc +33 -jmp -279 -acc +7 -acc -7 -acc +40 -jmp -374 -acc +18 -acc -14 -acc +42 -jmp -106 -acc +49 -acc +50 -jmp -156 -jmp -314 -acc +28 -acc +49 -jmp +114 -acc +15 -jmp -12 -acc +11 -acc +9 -jmp -386 -jmp +1 -jmp -376 -acc +6 -acc -9 -acc -2 -acc +49 -jmp +36 -acc -2 -jmp +1 -acc -2 -jmp -361 -acc -14 -acc -16 -nop -452 -acc +40 -jmp -107 -nop -378 -acc -17 -acc +26 -acc -11 -jmp -272 -acc +9 -acc +8 -acc +20 -acc -19 -jmp -106 -acc -13 -jmp -466 -acc +40 -acc +43 -acc +28 -acc +24 -jmp +15 -acc +21 -nop -456 -acc +7 -jmp -97 -acc +46 -jmp +1 -acc -5 -acc +49 -jmp +38 -acc +42 -jmp -470 -acc +33 -acc -10 -jmp +57 -acc -19 -acc +10 -acc +29 -jmp -218 -acc +2 -acc +19 -acc -4 -acc -16 -jmp -187 -acc +41 -acc +16 -jmp -414 -acc +30 -acc +1 -jmp -229 -acc -2 -acc +42 -jmp -269 -acc +39 -acc -2 -acc +7 -jmp -300 -jmp -301 -acc -4 -jmp +1 -jmp -357 -acc +22 -acc +47 -jmp +4 -acc +45 -nop -428 -jmp -115 -nop -402 -jmp -312 -acc -3 -acc +2 -jmp -345 -acc +49 -acc -12 -acc +30 -acc +21 -jmp -335 -jmp -440 -acc -8 -acc +24 -jmp -30 -acc -14 -acc +32 -acc +11 -jmp -188 -nop -7 -acc +15 -acc -14 -jmp +53 -acc +5 -jmp -366 -acc -13 -acc +24 -jmp -492 -acc +38 -jmp -258 -acc +47 -jmp -40 -nop -485 -acc -13 -acc -2 -acc +0 -jmp -154 -acc +25 -acc +38 -acc +47 -jmp -257 -acc +0 -acc +37 -acc +32 -jmp -549 -acc +15 -acc +29 -acc +29 -acc +5 -jmp -111 -jmp -392 -acc +15 -acc +24 -acc +38 -jmp +9 -nop -299 -nop -381 -jmp -552 -acc +50 -nop -488 -acc +45 -jmp -305 -jmp -404 -acc +34 -jmp -410 -acc +15 -acc +25 -jmp -332 -acc +2 -jmp -388 -acc +31 -acc +45 -nop -555 -nop -247 -jmp -248 -acc +3 -jmp -576 -acc +22 -nop -420 -acc +36 -acc +33 -jmp -372 -nop -551 -acc +27 -nop -567 -nop -554 -jmp +1 diff --git a/src/files/P9.txt b/src/files/P9.txt deleted file mode 100644 index e54c1cf..0000000 --- a/src/files/P9.txt +++ /dev/null @@ -1,1000 +0,0 @@ -14 -9 -43 -18 -13 -24 -3 -38 -33 -8 -41 -4 -32 -15 -31 -44 -17 -34 -21 -10 -50 -37 -2 -23 -6 -47 -5 -9 -11 -16 -12 -18 -7 -13 -26 -14 -19 -8 -20 -15 -29 -58 -17 -22 -21 -24 -25 -10 -27 -31 -33 -23 -28 -30 -34 -32 -35 -38 -49 -18 -26 -36 -37 -47 -39 -56 -40 -42 -43 -41 -44 -45 -46 -48 -50 -51 -53 -79 -73 -69 -117 -54 -55 -90 -57 -62 -75 -114 -85 -94 -110 -81 -98 -153 -86 -89 -204 -96 -101 -103 -104 -152 -169 -124 -135 -109 -143 -171 -119 -132 -137 -207 -166 -167 -184 -185 -170 -175 -182 -187 -190 -197 -233 -204 -212 -244 -299 -228 -339 -241 -246 -269 -415 -319 -298 -349 -337 -333 -444 -357 -345 -362 -365 -562 -377 -387 -401 -416 -541 -469 -472 -474 -647 -591 -487 -515 -567 -617 -686 -1158 -793 -670 -678 -702 -864 -710 -856 -781 -817 -764 -1251 -1214 -885 -941 -943 -946 -961 -1002 -1082 -1456 -1269 -1184 -2104 -1364 -1348 -2032 -1372 -1742 -1412 -1474 -1792 -1545 -1649 -2305 -2358 -1826 -2725 -1828 -3282 -2043 -1907 -1963 -2910 -2266 -2814 -2453 -2532 -2712 -2957 -2720 -2784 -3903 -3019 -3123 -4131 -4006 -3789 -3871 -3654 -4811 -3735 -3791 -5866 -4309 -4416 -4439 -4229 -4719 -5576 -5237 -8578 -5244 -6447 -5504 -8510 -7445 -9570 -7920 -6777 -8725 -7389 -12460 -7606 -13305 -15899 -9992 -14957 -8748 -12843 -8855 -14092 -8948 -9956 -10741 -10481 -10748 -11951 -25705 -12281 -26647 -14697 -14166 -25855 -19473 -16244 -24048 -16354 -16461 -36446 -22914 -17603 -20704 -28195 -17803 -18811 -29429 -18904 -20437 -41380 -24914 -22699 -46409 -26447 -26978 -57624 -33639 -33847 -32598 -41141 -39160 -33957 -70570 -34064 -35406 -36414 -80323 -50894 -36614 -36707 -48333 -63592 -39341 -43136 -66445 -59313 -49146 -92952 -99043 -99227 -73028 -66237 -69012 -66555 -70771 -68021 -107362 -69470 -70478 -71820 -73121 -91469 -76048 -73321 -107478 -108353 -122905 -142591 -92282 -108459 -115383 -125194 -142791 -137491 -135567 -132792 -199928 -134576 -163289 -138499 -334504 -205037 -197014 -142298 -144941 -267785 -149369 -271642 -165603 -237223 -200635 -207665 -227849 -200741 -352606 -259770 -257986 -431074 -310544 -267368 -283440 -291667 -273075 -304102 -402068 -287239 -294310 -307901 -314972 -345682 -350004 -350110 -437245 -612376 -401376 -408300 -435514 -636046 -695539 -675143 -547009 -525354 -540443 -684816 -550808 -1076162 -560314 -567385 -933654 -581549 -595140 -602211 -664976 -968614 -695686 -700114 -751486 -809676 -1044346 -926730 -1318871 -960868 -1065797 -1091251 -1225951 -1646557 -2157048 -1121992 -1153019 -1519422 -1127699 -1155454 -1277235 -1176689 -1183760 -1197351 -1267187 -1360662 -1626844 -1395800 -1712354 -2213243 -1736406 -1887598 -1992527 -2088567 -2026665 -2187789 -2218950 -2277446 -2329708 -2249691 -2280718 -2283153 -2304388 -2311459 -3516878 -2453924 -2544422 -5605445 -2464538 -3353189 -3949649 -3132206 -3108154 -5319995 -5686055 -3914263 -3880125 -5220773 -4115232 -4214454 -4437480 -4468641 -4554079 -4563871 -4530409 -5807113 -4587541 -4615847 -4998346 -6378801 -10826218 -5008960 -5596744 -7018617 -6485395 -6240360 -6988279 -7022417 -9022720 -8530110 -7794388 -7995357 -8329686 -8552712 -8906121 -13145957 -8999050 -12016963 -12615361 -9528755 -15015505 -14537715 -10007306 -13258977 -10605704 -12027577 -13504012 -11837104 -15518389 -13228639 -14782667 -27928624 -14816805 -15789745 -16525467 -16325043 -16548069 -21016013 -21844410 -17905171 -23751661 -20134459 -26930747 -19536061 -20613010 -22034883 -22442808 -31843432 -25096081 -29553682 -36661215 -25065743 -26619771 -29018384 -36817550 -38968275 -30606550 -41591210 -32114788 -25918798 -36084130 -34453240 -37441232 -38039630 -47100626 -63748297 -57537297 -40149071 -43055818 -42647893 -44477691 -47508551 -54114465 -61883293 -50984541 -56525348 -51685514 -52538569 -54937182 -58033586 -69574825 -93966580 -60372038 -103019931 -62002928 -70537370 -95576927 -75480862 -117862762 -82796964 -178500793 -112987469 -123689290 -85703711 -107880589 -174870762 -103523110 -124512007 -102670055 -120036514 -125474552 -161053517 -107475751 -112970768 -169478679 -122374966 -130909408 -211178263 -132540298 -137483790 -183361451 -278938378 -198674479 -215640823 -293167969 -416857259 -218244009 -188373766 -193179462 -249986559 -206193165 -220446519 -227182062 -210145806 -294953231 -229850717 -235345734 -244959541 -243880176 -382035930 -319283174 -367886032 -270024088 -315901749 -320845241 -371735217 -468230568 -592181736 -381553228 -544939790 -418224483 -394566931 -436043882 -399372627 -416338971 -426639684 -439996523 -474810258 -611886647 -465196451 -473730893 -480305275 -743754981 -710468680 -1175665131 -585925837 -590869329 -636746990 -796207024 -760841764 -891955376 -776120159 -780925855 -793939558 -810905902 -826012311 -1026913211 -835416509 -815711598 -842978655 -906944959 -905192974 -938927344 -1077083098 -945501726 -954036168 -1066231112 -1845872303 -1176795166 -1970734724 -1222672827 -1387076353 -1761213324 -1536961923 -1726427581 -2016010442 -1574865413 -1591831757 -1739441284 -1720904572 -1754638942 -2768626923 -3420737716 -1844120318 -1748171629 -1812137933 -1850694700 -1884429070 -1899537894 -2011732838 -2020267280 -3595132693 -3860130760 -3199214286 -2609749180 -3862427538 -3141715295 -3111827336 -5215224728 -3425560113 -3166697170 -3295769985 -3312736329 -3460345856 -3469076201 -3502810571 -3560309562 -3592291947 -3598866329 -7027362661 -5049908986 -4494178250 -3896161908 -4509287074 -4032000118 -5523077851 -7020655418 -6963156427 -5721576516 -5751464475 -6424563665 -6253542631 -6278524506 -8718035299 -6635773371 -9753576634 -10572986837 -6905028276 -6929422057 -7488453855 -7095102518 -7152601509 -7191158276 -14803485620 -14583556373 -7928162026 -10859318335 -13788374880 -8541287192 -9555077969 -11244654367 -12005007106 -14417875912 -11473040991 -12029988981 -13060337036 -12532067137 -12914297877 -13540801647 -13730875889 -13834450333 -14000130794 -14024524575 -14082023566 -20883477398 -26072868784 -14343759785 -15119320302 -19933169132 -22959163104 -16469449218 -29488247101 -20799732336 -18096365161 -21028118960 -23274643348 -55561115885 -24533378027 -26894787369 -24562056118 -27540932441 -25446365014 -69561246679 -27271677536 -27565326222 -27834581127 -48424409839 -28106548141 -28425783351 -42629743188 -44991152530 -35143492121 -50169430717 -40732901468 -34565814379 -37497568178 -38896097497 -39124484121 -51456843487 -44302762308 -51700426699 -49095434145 -77710363158 -50008421132 -51833733654 -54837003758 -56532331492 -55106258663 -55378225677 -55399907349 -63569275472 -62672362520 -80134644651 -93398196453 -73690298500 -76622052299 -69709306500 -72063382557 -73461911876 -106856750836 -76393665675 -115746536420 -90958217775 -119204694012 -105627765637 -99103855277 -148235200211 -135512870328 -104845424890 -110778133026 -109943262421 -195803642665 -110484484340 -118969182821 -216800013257 -209588339617 -132381669020 -141772689057 -195591235120 -267867025222 -187809918977 -303556455397 -145525294433 -149855577551 -167351883450 -181239090565 -201442702115 -190062073052 -224832459649 -204731620914 -260741871878 -215623557916 -214788687311 -306288127005 -274154358077 -355161802427 -400322856034 -252257173397 -313620759585 -277906963453 -282237246571 -356561376368 -506416953919 -295380871984 -442319246449 -312877177883 -317207461001 -326764384998 -604671348451 -348590974015 -385970711479 -391504775167 -569950489738 -419520308225 -883571249323 -430412245227 -467045860708 -488943045388 -526411531474 -708712236168 -530164136850 -640385144583 -577618118555 -591527723038 -612588332985 -595114424454 -769083631447 -747619706228 -608258049867 -908735184039 -630084638884 -643971845999 -712735096477 -897458105935 -734561685494 -777475486646 -1027778358092 -1197655281556 -849932553452 -919355290615 -1021939968265 -955988906096 -1019107182238 -1260973216968 -1107782255405 -1284356990582 -1169145841593 -1480017192336 -1221612361922 -1203372474321 -1225199063338 -1238342688751 -1356706942476 -1252229895866 -1274056484883 -1562667649929 -2066603947528 -2216762463794 -1753668867732 -1627408040098 -1696830777261 -1769287844067 -2922814709325 -2144554353953 -1938462472853 -3878803615421 -2063771161501 -2126889437643 -2276928096998 -2311154729726 -2372518315914 -4619645486586 -2428571537659 -2424984836243 -2441715163072 -4310980788767 -3379119333509 -2919374592405 -2526286380749 -2836724134812 -4046215941065 -6798178207826 -3324238817359 -3381076907830 -6374751950268 -3466118621328 -3707750316920 -6630565026245 -4065351910496 -8189784404188 -4190660599144 -4340699258499 -8803323487927 -4588082826724 -4683673045640 -4797503152157 -7048217024245 -9967591616650 -5361089755477 -4968001543821 -5907363288579 -6984726502901 -5363010515561 -15174510907089 -8406051168995 -6705315725189 -6790357438687 -8178580059987 -8391423362560 -7656779220472 -8988163751301 -10821225625389 -9024372304139 -8531359857643 -8778743425868 -8874333644784 -8928782085223 -9271755872364 -11782229655058 -9765504695978 -10158592907634 -12347737018462 -10331012059382 -16184236140950 -14237344160345 -11270373804140 -14351174266862 -14447136659159 -13495673163876 -15096739087749 -14883895785176 -17415795666699 -28531973159412 -17519523608944 -16585561305695 -17405693502427 -17803115730007 -17555732161782 -32439627946958 -17653077070652 -20144707448924 -20542129676504 -32652471249531 -24649400481154 -19924097603612 -20489604967016 -21601385863522 -23826685223258 -24766046968016 -48476085704412 -25621548071002 -27846847430738 -31966660268103 -28379568949052 -29980634872925 -34001356972394 -33991254808122 -44910754416940 -61838102238860 -37127690982199 -34961425664209 -41525483467134 -35208809232434 -48336452397754 -37577174674264 -40068805052536 -53568046131625 -40413702570628 -47222933934524 -68448374001588 -42090990830538 -45428071086780 -54746681840941 -50387595039018 -53468395501740 -54001117020054 -56226416379790 -58360203821977 -62380925921446