diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..5a8b11e --- /dev/null +++ b/.drone.yml @@ -0,0 +1,36 @@ +kind: pipeline +type: docker +name: AdventOfCode + +steps: +- name: init + image: busybox + commands: + - echo 'Starting build pipeline for AdventOfCode' + +- name: test + image: mcr.microsoft.com/dotnet/sdk:5.0 + commands: + - dotnet build AdventOfCode.Tests + - cp -a AdventOfCode.Tests/Data/. /drone/src/AdventOfCode.Tests/bin/Debug/net5.0/ + - dotnet test AdventOfCode.Tests --logger "console;verbosity=detailed" + +- name: build-advent-of-code + image: plugins/docker + settings: + username: + from_secret: gitlab_username + password: + from_secret: gitlab_password + registry: registry.gitlab.com/sig14 + repo: registry.gitlab.com/sig14/advent-of-code + dockerfile: AdventOfCode/Dockerfile + depends_on: + - test + +- name: finish + image: busybox + commands: + - echo 'Finished container registry push for Advent of Code' + depends_on: + - build-advent-of-code \ No newline at end of file diff --git a/AdventOfCode.InputFetcher/AdventOfCode.InputFetcher.csproj b/AdventOfCode.InputFetcher/AdventOfCode.InputFetcher.csproj new file mode 100644 index 0000000..c2ac163 --- /dev/null +++ b/AdventOfCode.InputFetcher/AdventOfCode.InputFetcher.csproj @@ -0,0 +1,9 @@ + + + + Exe + net5.0 + true + + + diff --git a/AdventOfCode.InputFetcher/Program.cs b/AdventOfCode.InputFetcher/Program.cs new file mode 100644 index 0000000..066d6a1 --- /dev/null +++ b/AdventOfCode.InputFetcher/Program.cs @@ -0,0 +1,97 @@ +using System; +using System.IO; +using System.Net.Http; +using System.Linq; + +namespace AdventOfCode.InputFetcher +{ + class Program + { + private static readonly string AdventOfCodeEndpoint = "https://adventofcode.com/{YEAR}/day"; + private static HttpClient _client; + static void Main(string[] args) + { + Console.WriteLine("Please select your year! Default: 2022"); + var year = SanitizeInput(Console.ReadLine(), "2022"); + Console.WriteLine("Please enter your session key for advent of code:"); + var sessionKey = Console.ReadLine(); + Console.WriteLine("Please input the target directory for the input files! Default: Current working directory"); + var targetDir = SanitizeInput(Console.ReadLine(), Directory.GetCurrentDirectory()); + Console.WriteLine("File Name Format? Default: \"{YEAR}_{TYPE}_Day_{DAY}{PART}.txt\" => 2022_Input_Day_1.txt or 2022_Answer_Day_1-PartB"); + var format = SanitizeInput(Console.ReadLine(), "{YEAR}_{TYPE}_Day_{DAY}{PART}.txt"); + Console.WriteLine("Pull Answers? (Y/N) Default: Y"); + var answer = SanitizeInput(Console.ReadLine(), "Y"); + Console.WriteLine("Overwrite? (Y/N) Default: N"); + var overwrite = SanitizeInput(Console.ReadLine(), "N"); + + _client = new HttpClient(); + _client.DefaultRequestHeaders.Add("Cookie", $"session={sessionKey}"); + + var filesOnDisk = new DirectoryInfo(targetDir); + for (int day = 1; day <= 25; day++) + { + var dataFileName = format.Replace("{DAY}", day.ToString()).Replace("{TYPE}", "Input").Replace("{PART}", "").Replace("{YEAR}", year); + var answerFileNameA = format.Replace("{DAY}", day.ToString()).Replace("{TYPE}", "Answer").Replace("{PART}", "A").Replace("{YEAR}", year); + var answerFileNameB = format.Replace("{DAY}", day.ToString()).Replace("{TYPE}", "Answer").Replace("{PART}", "B").Replace("{YEAR}", year); + bool dataFileExistsOnDisk = filesOnDisk.EnumerateFiles().Any(x => x.Name == dataFileName); + if (!dataFileExistsOnDisk || (overwrite.ToUpper() == "Y")) + { + File.WriteAllText(targetDir + Path.DirectorySeparatorChar + dataFileName, PullDataForDay(year, day)); + } + + + if (answer.ToUpper() == "Y") + { + bool answerFileAExistsOnDisk = filesOnDisk.EnumerateFiles().Any(x => x.Name == answerFileNameA); + bool answerFileBExistsOnDisk = filesOnDisk.EnumerateFiles().Any(x => x.Name == answerFileNameB); + if ((!answerFileBExistsOnDisk && !answerFileBExistsOnDisk) || (overwrite.ToUpper() == "Y")) + { + var answers = PullAnswerForDay(year, day); + if (!string.IsNullOrWhiteSpace(answers.Item1)) + File.WriteAllText(targetDir + Path.DirectorySeparatorChar + answerFileNameA, answers.Item1); + if (!string.IsNullOrWhiteSpace(answers.Item2)) + File.WriteAllText(targetDir + Path.DirectorySeparatorChar + answerFileNameB, answers.Item2); + } + } + + } + + } + + private static string PullDataForDay(string year, int day) + { + return ExecuteWebRequest(string.Format("{0}/{1}/input", AdventOfCodeEndpoint.Replace("{YEAR}", year), day)); + } + + private static readonly string SearchString = "Your puzzle answer was"; + private static Tuple PullAnswerForDay(string year, int day) + { + var html = ExecuteWebRequest(string.Format("{0}/{1}", AdventOfCodeEndpoint.Replace("{YEAR}", year), day)); + var answerStart = html.IndexOf(SearchString); + if (answerStart < 0) return Tuple.Create("", ""); + var startingIndex = html.IndexOf("", answerStart) + "".Length; + var endIndex = html.IndexOf("", answerStart); + var partA = startingIndex < 0 || endIndex < 0 ? "No Answer Found yet." : html.Substring(startingIndex, (endIndex-startingIndex)); + + html = html.Substring(endIndex + 1); + answerStart = html.IndexOf(SearchString); + startingIndex = html.IndexOf("", answerStart) + "".Length; + endIndex = html.IndexOf("", answerStart); + var partB = startingIndex < 0 || endIndex < 0 ? "No Answer Found yet." : html.Substring(startingIndex, (endIndex - startingIndex)); + + return Tuple.Create(partA, partB); + } + + private static string ExecuteWebRequest(string url) + { + var resp = _client.GetAsync(url).Result; + return resp.Content.ReadAsStringAsync().Result; + } + + private static string SanitizeInput(string input, string defaultText) + { + if (string.IsNullOrWhiteSpace(input)) return defaultText; + return input; + } + } +} diff --git a/AdventOfCode.Tests/AdventOfCode.Tests.csproj b/AdventOfCode.Tests/AdventOfCode.Tests.csproj new file mode 100644 index 0000000..97e3a87 --- /dev/null +++ b/AdventOfCode.Tests/AdventOfCode.Tests.csproj @@ -0,0 +1,162 @@ + + + + net5.0 + + false + + + + + + + + + + + + + + + + + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + + diff --git a/AdventOfCode.Tests/AdventOfCodeTests.cs b/AdventOfCode.Tests/AdventOfCodeTests.cs new file mode 100644 index 0000000..a08a664 --- /dev/null +++ b/AdventOfCode.Tests/AdventOfCodeTests.cs @@ -0,0 +1,115 @@ +using AdventOfCode.Common; +using AdventOfCode.Models; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; + +namespace AdventOfCode.Tests +{ + [TestClass] + public class AdventOfCodeTests + { + [TestMethod] + public void TestAllDays() + { + var directoryInfo = new DirectoryInfo(Directory.GetCurrentDirectory()); + var validDays = GetValidDays(directoryInfo.EnumerateFiles().Where(x => x.Name.EndsWith(".tst.data"))); + + var error = false; + foreach (var validDay in validDays) + { + try + { + var year = Convert.ToInt32(validDay.Split("_")[0]); + var day = Convert.ToInt32(validDay.Split("_")[1]); + var part = validDay.Split("_")[2]; + Console.WriteLine($"Testing {year} Day {day} Part {part}"); + var input = $"{year}_Input_Day_{day}.tst.data"; + var answerData = $"{year}_Answer_Day_{day}{part}.tst.data"; + var aocDay = GetAOCDay(year, day); + var version = (AOCVersion)Enum.Parse(typeof(AOCVersion), part.ToUpper()); + if (ShouldSkipAnswerCheck(aocDay, version)) + { + Console.WriteLine("Answer is marked to be skipped and not compared (visual answer).\n"); + continue; + } + var resp = aocDay.ExecuteDay(new AOCRequest() + { + Version = version, + IgnoreLogMessages = true, + Input = File.ReadAllText(Directory.GetCurrentDirectory() + Path.DirectorySeparatorChar + input) + }); + var actualAnswer = File.ReadAllText(Directory.GetCurrentDirectory() + Path.DirectorySeparatorChar + answerData); + Console.WriteLine($"Asserting that (Answer) [{actualAnswer}] == [{resp.Answer}] (Tested)\n"); + Assert.AreEqual(resp.Answer.ToString(), actualAnswer); + } + catch (Exception e) + { + Console.WriteLine($"Failed {validDay} with " + e.Message + " _ " + e.StackTrace); + error = true; + } + } + if (error) Assert.IsNotNull(null); + } + + private bool ShouldSkipAnswerCheck(AOCDay day, AOCVersion version) + { + var ignoreAttribute = (IgnoreTestAnswerAttribute) Attribute.GetCustomAttribute(day.GetType(), typeof(IgnoreTestAnswerAttribute)); + if (ignoreAttribute != null) + { + return ignoreAttribute.ShouldIgnoreAnswer(version); + } + return false; + } + + private string[] GetValidDays(IEnumerable files) + { + var validDays = new List(); + for (int year = 2022; year < 2025; year++) + { + for (int i = 1; i <= 25; i++) + { + var inputName = $"{year}_Input_Day_{i}.tst.data"; + var partAAnswer = $"{year}_Answer_Day_{i}A.tst.data"; + var partBAnswer = $"{year}_Answer_Day_{i}B.tst.data"; + if (!files.Any(x => x.Name == inputName)) continue; + + if (files.Any(x => x.Name == partAAnswer)) + { + validDays.Add($"{year}_{i}_A"); + } + + if (files.Any(x => x.Name == partBAnswer)) + { + validDays.Add($"{year}_{i}_B"); + } + + } + } + return validDays.ToArray(); + } + + private AOCDay GetAOCDay(int year, int day) + { + AOCDay aocDay = null; + var type = typeof(AOCDay); + var types = AppDomain.CurrentDomain.GetAssemblies() + .SelectMany(s => s.GetTypes()) + .Where(p => type.IsAssignableFrom(p) && !p.IsInterface && !p.IsAbstract); + foreach (var x in types) + { + var aocAttribute = (AOCAttribute)Attribute.GetCustomAttribute(x, typeof(AOCAttribute)); + if (aocAttribute != null) + { + if (aocAttribute.Year == year && aocAttribute.Day == day) + { + aocDay = (AOCDay)(IAOCService)Activator.CreateInstance(x); + } + } + } + return aocDay; + } + } +} diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_10A.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_10A.tst.data new file mode 100644 index 0000000..4c215c0 --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Answer_Day_10A.tst.data @@ -0,0 +1 @@ +14560 \ No newline at end of file diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_10B.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_10B.tst.data new file mode 100644 index 0000000..6df139e --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Answer_Day_10B.tst.data @@ -0,0 +1 @@ +EKRHEPUZ \ No newline at end of file diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_1A.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_1A.tst.data new file mode 100644 index 0000000..a1731fe --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Answer_Day_1A.tst.data @@ -0,0 +1 @@ +69310 \ No newline at end of file diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_1B.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_1B.tst.data new file mode 100644 index 0000000..20248d8 --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Answer_Day_1B.tst.data @@ -0,0 +1 @@ +206104 \ No newline at end of file diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_2A.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_2A.tst.data new file mode 100644 index 0000000..2e5a3d6 --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Answer_Day_2A.tst.data @@ -0,0 +1 @@ +12645 \ No newline at end of file diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_2B.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_2B.tst.data new file mode 100644 index 0000000..ae1a18f --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Answer_Day_2B.tst.data @@ -0,0 +1 @@ +11756 \ No newline at end of file diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_3A.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_3A.tst.data new file mode 100644 index 0000000..86c2e0e --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Answer_Day_3A.tst.data @@ -0,0 +1 @@ +8394 \ No newline at end of file diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_3B.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_3B.tst.data new file mode 100644 index 0000000..2ca7f5f --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Answer_Day_3B.tst.data @@ -0,0 +1 @@ +2413 \ No newline at end of file diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_4A.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_4A.tst.data new file mode 100644 index 0000000..f520b6e --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Answer_Day_4A.tst.data @@ -0,0 +1 @@ +530 \ No newline at end of file diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_4B.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_4B.tst.data new file mode 100644 index 0000000..c1f4de8 --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Answer_Day_4B.tst.data @@ -0,0 +1 @@ +903 \ No newline at end of file diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_5A.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_5A.tst.data new file mode 100644 index 0000000..e3c9d1e --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Answer_Day_5A.tst.data @@ -0,0 +1 @@ +FJSRQCFTN \ No newline at end of file diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_5B.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_5B.tst.data new file mode 100644 index 0000000..c8463d2 --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Answer_Day_5B.tst.data @@ -0,0 +1 @@ +CJVLJQPHS \ No newline at end of file diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_6A.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_6A.tst.data new file mode 100644 index 0000000..89a8d9e --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Answer_Day_6A.tst.data @@ -0,0 +1 @@ +1623 \ No newline at end of file diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_6B.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_6B.tst.data new file mode 100644 index 0000000..689d11a --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Answer_Day_6B.tst.data @@ -0,0 +1 @@ +3774 \ No newline at end of file diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_7A.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_7A.tst.data new file mode 100644 index 0000000..fb61987 --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Answer_Day_7A.tst.data @@ -0,0 +1 @@ +1778099 \ No newline at end of file diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_7B.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_7B.tst.data new file mode 100644 index 0000000..fa01dc1 --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Answer_Day_7B.tst.data @@ -0,0 +1 @@ +1623571 \ No newline at end of file diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_8A.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_8A.tst.data new file mode 100644 index 0000000..d47857c --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Answer_Day_8A.tst.data @@ -0,0 +1 @@ +1805 \ No newline at end of file diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_8B.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_8B.tst.data new file mode 100644 index 0000000..909df2a --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Answer_Day_8B.tst.data @@ -0,0 +1 @@ +444528 \ No newline at end of file diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_9A.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_9A.tst.data new file mode 100644 index 0000000..fd53be7 --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Answer_Day_9A.tst.data @@ -0,0 +1 @@ +6367 \ No newline at end of file diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_9B.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_9B.tst.data new file mode 100644 index 0000000..c223971 --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Answer_Day_9B.tst.data @@ -0,0 +1 @@ +2536 \ No newline at end of file diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_1.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_1.tst.data new file mode 100644 index 0000000..98e0ab4 --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_1.tst.data @@ -0,0 +1,2255 @@ +3344 +8938 +7923 +3979 +2753 +5730 +4225 + +24216 +7432 +18284 + +3475 +9177 +6769 +11335 +8061 +9302 +8132 + +25796 + +20937 + +2039 +4989 +5932 +5434 +5088 +7185 +1271 +8359 +5489 +8646 + +7796 +1233 +3529 +4118 +7093 +7090 +8757 +2283 +5562 +3789 + +2296 +2105 +1978 +2981 +5682 +1627 +2285 +5654 +5596 +2022 +2733 +3078 +3176 +4158 + +6294 +3789 +1863 +5121 +6122 +7309 +7063 +4233 +1717 +6755 +5505 +2713 + +4988 +5133 +4933 +6407 +2897 +2682 +5328 +4268 +1518 +4631 +2736 +1432 +3812 +1031 + +4553 +1109 +7214 +2744 +8389 +3180 +7464 +5584 +7689 +6452 + +5645 +6207 +2497 +1114 +5747 +2620 +2621 +1866 +2334 +1324 +5879 +6322 +4954 + +8723 +24316 +4375 + +4051 +6866 +7417 +4650 +6035 +6580 +3881 +3041 +1443 +6659 +2951 +2387 + +5606 +1862 +3300 +6106 +5944 +2306 +1935 +5717 +6204 +1882 +2455 +4790 +4534 +4144 + +3278 +5536 +4686 +4331 +1750 +1742 +2103 +6754 +5417 +2242 +2374 +5133 +2315 + +34403 + +5574 +2129 +2846 +5790 +1428 +1220 +1523 +5768 +2226 +1442 +1139 +3295 +3831 + +3231 +3998 +5904 +6878 +3082 +2159 +2806 +2388 +1878 +1393 +6929 +6812 + +18094 + +4972 +4575 +5522 +5582 +2776 +3971 +3595 +1959 +4161 +4550 +1987 +4519 +4551 +3546 +3562 + +4913 +5328 +2726 +5349 +6670 +7650 +7799 +3818 +5536 +2765 + +1674 +3454 +5921 +6170 +3474 +1401 +5993 +5098 +3269 +5671 +5385 +5418 + +4381 +35451 + +1970 +6227 +6781 +3622 +2921 +2360 +5673 +2344 +5503 +5006 +6866 +1804 +2559 + +12473 +1374 +23850 + +7943 +1442 +3091 +2907 +1538 +6027 +1389 +4851 +3301 +1324 +6017 + +13712 +11949 +4399 +1093 +2546 +6876 + +5429 +1453 +7989 +9605 +2344 +10505 +4563 +3537 + +6061 +1428 +3435 +5752 +1097 +3313 +2318 +1656 +2206 +6922 +6612 +2805 +3123 + +2613 +6493 +3283 +5206 +4118 +3058 +1377 +4453 +6195 +3371 +5520 +6197 +5121 +1622 + +8199 +5761 +6985 +6058 +8277 +9247 +8937 +4739 +5107 + +11764 +13344 +5462 + +4453 +10616 +8770 +6014 +6991 +7898 + +5873 +12987 +16138 + +9294 +8381 +3175 +1945 +8195 +2851 +1780 +6140 + +3655 +3450 +6771 +4950 +3491 +6883 +4408 +4505 +2513 +6768 +4868 +3883 +4458 + +39217 + +15599 +1459 +19930 +6992 + +9392 +6380 +4470 +5228 +8009 +7680 +1815 +4365 +5529 + +8677 +6381 +10150 +2299 +2071 +9364 +5633 + +1778 +5304 +1883 +2215 +4288 +4214 +7602 +2987 +7011 +1652 +5977 + +2093 +20240 +18383 + +4600 +2704 +3915 +3853 +5659 +2905 +3480 +3546 +4647 +6062 +3613 +6095 +4079 + +6352 +4362 +5767 +7708 +2318 +10738 +1956 + +5581 +6478 +5624 +3850 +5025 +3754 +2559 +4730 +1299 +1187 +3771 +1432 +1590 +5108 + +3412 +10022 +1478 +3654 +4938 +3611 + +3455 +5118 +6647 +7160 +7244 +2902 +6305 +1204 +2124 +5595 +7040 +5145 + +1502 +8426 +6808 +9175 +3902 +5516 +5310 +4122 +7357 + +8679 +14080 + +23992 +17036 + +1880 + +2799 +3910 +3661 +3680 +4159 +5746 +6249 +2614 +2012 +7433 +5092 +3067 + +35016 +24321 + +9575 +2970 +17157 + +3129 +2954 +2520 +5998 +2854 +5823 +2469 +3786 +2683 +3300 +3360 +5413 +3959 + +28905 +4100 + +24304 +7180 +23566 + +5990 +1740 +1955 +5498 +1754 +3458 +4856 +4499 +3560 +3275 +1443 +1815 +1511 +1106 + +1466 + +10351 +8066 +5699 + +4995 +7451 +7189 +2348 +3600 +3320 +3351 +5857 +6388 +3787 +1923 +6228 + +6125 +1302 +6779 +3279 +13428 +7624 + +41865 + +2353 +11924 +6498 +10636 +1592 +3990 +2269 + +7281 +4294 +3083 +10444 +4489 +4468 +1400 +4482 + +63998 + +2373 +2091 +6067 +3372 +1996 +6542 +1423 +5041 +6251 +4682 +5574 +2506 +6784 + +1243 +1014 +1653 +2960 +1459 +4820 +4623 +5541 +3455 +3260 +1161 +1395 +3963 + +3299 +1686 +4068 +7455 +3737 +6857 +7771 +7383 +7769 +4641 +3105 + +8109 +1367 +5553 +8315 +8042 +4244 +6974 +1062 + +50228 + +6657 +22682 + +4093 +5296 +8752 +9532 +11488 +3792 +11225 + +2753 +16207 +10646 +11950 + +1505 +4569 +6688 +4674 +7154 +7342 +4675 +8434 +5637 +3789 + +5625 +3177 +2820 +1075 +3657 +4862 +3879 +1954 +3185 +4563 +1413 +5323 +6048 +3166 + +4933 +1874 +5953 +6528 +6915 +3449 +6867 +6892 +6105 +3012 +2055 +5516 +3026 + +14676 +25751 +4615 + +3163 +5888 +4144 +3845 +6817 +6989 +6211 +1620 +7624 +1390 +5321 + +8348 +2441 +12492 +12656 +13889 + +6433 +1032 +2005 +5844 +3864 +2370 +6664 +5540 +2943 +5135 +3375 +2236 +4305 + +6269 +3979 +1844 +3799 +3947 +5858 +1338 +2761 +2285 +5192 +1358 +1810 +5009 +1346 + +4183 +3118 +4232 +5655 +4391 +4210 +5644 +3865 +4049 +1951 +2839 +5212 +1862 +5991 +4452 + +4299 +1037 +3491 +3002 +6062 +2026 +1007 +7398 +1697 +5797 +5922 +5352 + +53946 + +7483 +3663 +1134 +4279 +5315 +2756 +1280 +5807 +1892 +3701 +2848 + +21603 +4098 +21937 + +1914 +1812 +6990 +2754 +2459 +5984 +3895 +7411 +5240 +1022 +4323 +4382 + +3803 +1698 +5774 +1680 +2122 +2865 +6470 +2921 +7619 +4584 +1788 + +28678 +10385 + +12207 +12265 +3932 +13284 +12672 + +5559 +5610 +1230 +5547 +3945 +1566 +2589 +1948 +2313 +4243 +2472 +1343 +1317 +5152 +1953 + +1082 +6063 +1974 +2054 +2931 +5433 +4410 +4584 +4896 +2825 +3945 +5849 +3615 +2464 +1560 + +6494 +7717 +4697 +3012 +4515 +3802 +8621 +6041 +6939 +3059 + +1747 +8291 +4058 +2884 +1775 +8465 +5889 +4807 + +6263 +7346 +8014 +8081 +5361 +4950 +2721 +5656 +3858 +7486 + +11877 +5145 +10149 +2148 + +8389 +4492 +5074 +9457 +5132 +4355 +3254 +9607 +4059 + +5858 +7062 +9260 +6672 +2291 +1448 +7436 + +8943 +6577 +8042 +2056 +9801 +9060 +10243 +10758 + +11606 + +6340 +4468 +4225 +6861 +5648 +2951 +2556 +5794 +2657 +1450 +5888 +4363 + +1294 +3826 +3132 +2798 +5133 +2118 +4319 +1681 +5402 +4255 +4831 +1300 + +4233 +6221 +6336 +5287 +5566 +2796 +3047 +5486 +1849 +3572 +3709 +7014 + +2418 +7218 +1153 +8036 +2015 +1385 +5385 +2775 + +5788 +17132 +1734 +6843 + +17843 +2755 +4097 +1314 + +7448 +3025 +3255 +6379 +1817 +7363 +4086 +3106 +7192 +3632 +2748 +6634 + +11495 +6431 +6756 +7335 + +3090 +2890 +6300 +5939 +4045 +1781 +5080 +6123 +2589 +5990 +4438 +2903 +2789 +4761 + +2633 +5069 +6129 +1870 +2148 +2688 +4932 +5756 +5281 +3209 +2040 +5708 +2292 +2027 + +68293 + +4087 +4630 +5781 +5165 +3022 +1847 +4922 +2792 +4629 +6178 +3427 +4536 +4802 +1733 + +11367 +12689 +13239 + +7698 +7879 +2401 +7045 +9018 +2767 +8286 +5754 +7154 + +43194 + +4845 +3694 +1107 +3687 +7597 +7787 +8056 +8010 + +3598 +4505 +3676 +5174 +4271 +1290 +1116 +5257 +1343 +2660 +6227 +1303 +1217 + +31264 +17846 + +3026 +3533 +4579 +4017 +3465 +5489 +3720 +3146 +1755 +6197 +2181 +6449 +4893 +1766 + +1225 +2725 +5173 +3401 +4172 +2673 +6005 +8950 +8838 + +7416 +1467 +4741 +2043 +3032 +2290 +4182 +4493 +4860 +4543 +6791 + +9989 +23051 +12756 + +2995 +1859 +2029 +1520 +1287 +5281 +2299 +2794 +6913 +1477 +3639 +5475 +1198 + +4513 +5732 +6462 +1327 +1149 +6276 +5925 +5654 +5283 +1177 +1802 +2093 +4928 +1355 + +8874 +2550 +10268 +8362 +9158 +6929 +10674 + +5052 +2678 +6754 +6411 +1197 +7463 +3835 +5308 +8160 + +9428 +1308 +1957 +6146 +7962 +9350 +3699 +6982 +7111 + +5388 +3451 +3865 +4881 +5709 +6812 +3177 +2124 +3329 +8718 + +16156 +14022 +16031 +7972 +2381 + +3696 +12103 +9136 +9793 +11491 +6030 + +10542 +9283 + +1040 +3593 +1510 +2450 +5138 +5137 +1935 +3159 +2562 +1604 +5280 +1282 +1059 +3784 +2287 + +2464 +4363 +6262 +1136 +7072 +2328 +1517 +7229 +5730 +2456 +1681 +7213 + +4983 +4935 +6580 +1118 +5291 +4664 +4778 +6818 +5331 +6254 +5525 +1214 +1659 + +4535 +4602 +1741 +2803 +2795 +1195 +2041 +1147 +5091 +4244 +6115 +4765 +2074 +4711 +2985 + +1487 +5322 +2729 +5893 +4743 +5788 +5701 +5954 +1570 +2214 +7415 +2549 + +7483 +12474 +7468 +5340 + +1699 +1294 +4841 +3882 +1746 +5642 +5753 +4051 +2750 +4079 +5881 +4307 +2535 + +36712 +25729 + +1493 +9804 +6491 +3737 +5900 +8810 +2677 + +32912 +35589 + +15457 +17689 +15413 + +9642 +12851 +7416 +5456 + +10946 +9357 + +34589 + +11079 +18789 + +1029 +13280 +1556 +6080 +14840 + +2352 +7024 +1303 + +6432 +4312 +3800 +1713 +4580 +2574 +6955 +6129 +1054 +4104 +4150 +3146 +1777 + +8253 +6799 +1492 +8292 +6260 +4014 +7500 +3738 +1349 +7391 + +9308 +8918 +4943 +1408 +6212 +7375 +8604 +6907 + +3994 +10181 +7867 +4339 +8321 +3496 +6332 +8291 + +5058 +6311 +8770 +10517 +8510 +1807 +10295 +2060 + +11864 +12981 +10287 +10881 + +17316 +9524 +16372 + +4423 +5322 +4954 +11336 +8543 +8031 + +1576 +9103 +8531 +11398 +4900 +1621 + +5162 +1057 +12960 +16173 +8403 + +2436 +4121 +5143 +3486 +5542 +2598 +6157 +5536 +6005 +1953 +2645 +1790 + +1211 +5673 +7658 +6331 +6354 +5775 +2821 +5983 +5338 +6135 +7436 + +3891 +4230 +6457 +5382 +8435 +8484 +6872 +1750 +6127 + +8997 +7290 +6789 +13725 +3285 +13318 + +7602 +6264 +6286 +5290 +4403 +3829 +5456 +2632 +2556 +5225 +1189 + +9054 +11332 +1990 +6952 +3916 +10222 +1268 + +3599 +4346 +2535 +2775 +1140 +5020 +1050 +1119 +1373 +6191 +6996 +7381 + +15115 +5092 + +5201 +4358 +6447 +3800 +5425 +2062 +6314 +3184 +5203 +5626 +6024 +1408 +2543 +5400 + +4602 +8699 +3729 +3608 +3425 +6182 +1210 +4268 +8660 + +5167 +3056 +2162 +5024 +5586 +7900 +4688 +2166 +7268 +2577 + +2871 +4288 +3167 +7065 +7042 +6419 +2788 +6489 +1584 +3162 +5541 + +8083 +9590 +8100 +2032 +6749 +4610 +4924 +2628 +2110 + +2103 +5752 +2489 +2898 +5077 +4422 +1491 +5660 +2916 +6302 +5032 +1998 +5007 +3953 + +7090 +2458 +15291 +7943 +4677 + +3938 +6524 +3715 +1700 +3637 +3124 +6519 +5349 +1768 +5571 +1725 +1038 +4694 + +19691 + +6409 +2963 +4723 +3601 +6292 +1298 +4875 +4930 +5750 +6376 +4620 +5066 +6434 +5973 + +7194 +10283 +4302 +6346 +6744 +4990 +9302 +3257 + +5500 +4929 +4011 +3026 +1247 +5017 +2477 +2815 +3206 +3386 +5563 +3704 +2510 +5969 + +3588 +4251 +1214 +4568 +4747 +4950 +4670 +3810 +4616 +1599 +5738 +2651 +5971 + +7252 +4958 +7736 +7267 +1115 +1936 +3503 +8340 +3581 + +19911 +9923 +5937 +11827 + +16111 +1929 +1567 +2584 + +4411 +6070 +5904 +5425 +1684 +2343 +1569 +4476 +3774 +5901 +2230 +4560 +4894 +3532 +3679 + +19875 +3275 +1303 + +1111 +2927 +1812 +2341 +5611 +1602 +1876 +2430 +2810 +5400 +1909 +1341 +2605 +1860 + +1387 +4755 +1827 +3107 +5734 +3912 +7449 +5100 + +12046 +4731 +10977 +8509 +15801 + +9891 +19111 +15136 +6515 + +5839 +2497 +4195 +2027 +5340 +6432 +7256 +2774 +4934 +6521 +4715 + +5351 +6545 +5531 +10516 +10280 +10482 +6863 + +54895 + +3515 +3873 +1035 +9079 +10474 +8983 +6396 + +1564 +5340 +2239 +2539 +2464 +1083 +3777 +2981 +4247 +4471 +1687 +1693 +3053 +5160 +3384 + +4827 +3949 +3489 +5192 +3342 +4695 +4461 +6165 +1891 +5060 +5961 +1543 +2959 +6262 + +18480 +2939 +10591 + +3496 +14216 +4695 + +2178 +5400 +5298 +6806 +2108 +3793 +5762 +4787 +3032 +3819 +1834 +2905 +5070 + +8889 +1553 +11822 +11140 +1604 +11187 +3094 + +3950 +3808 +6643 +1323 +4637 +1465 +5416 +6504 +5400 +6691 +6056 +4358 +5209 + +5821 +4259 +2389 +7085 +6813 +2094 +2901 +7089 +6160 +6301 +4980 +4239 + +5431 +5016 +9948 +1158 +3133 +4783 + +2650 +6541 +6230 +6789 +6499 +2613 +2358 +3241 +3777 +5018 +4522 +4057 +5587 + +3428 +5879 +2228 +2436 +5905 +4346 +6072 +3843 +2432 +1342 +1339 +4727 +6823 + +15873 +19800 +13068 + +1866 +12061 +11047 +15922 + +19221 +9883 +5634 + +1072 +13511 +18294 + +64548 + +5313 +13972 +2829 +16260 + +2945 +2469 +1966 +2968 +4563 +3434 +3095 +5102 +5678 +2491 +3625 +5366 +2994 + +4920 +3123 +4726 +5313 +3148 +3510 +5397 +2081 +5252 +1949 +4929 +6472 +5292 + +6040 +3246 +6110 +4395 +2589 +6227 +4105 +3881 +5992 +4294 + +6363 +3364 +7225 +7105 +1912 +7460 +1929 +2680 +6231 +3061 +7856 + +5043 +1059 +4183 +4697 +3634 +3572 +1636 +2635 +2733 +5600 +4000 +6300 +1367 + +2560 +1074 +1473 +6555 +6887 +5044 +6544 +5101 +3041 +3100 +2924 +5388 +6025 + +8736 + +2235 +19236 +12524 + +3968 +2552 +11328 +10347 +5092 +4822 + +3051 +6914 +7082 +4322 +4701 +5313 +1889 +5562 +7529 +7673 +3085 + +1518 +10390 +1706 +5313 +7800 +8948 + +6670 +6555 +1881 +6658 +5687 +1338 +1547 +6876 +4657 +2061 +3742 +2958 +6836 + +9112 +2305 +9461 +10472 +8796 +8858 +5303 +3259 + +4281 +1131 +2165 +10304 +9662 +9627 +10574 + +8949 +12010 +13033 +5232 +3433 +8212 + +8478 +9908 +9043 +4869 +11600 +12466 + +2444 +8308 +9337 +3539 +6796 +7175 +4099 +9456 +6075 + +2503 +1993 +3162 +9282 +3378 + +4406 +1417 +10195 +6361 +3735 +10131 +4131 +2617 + +28770 + +11378 +13601 +14324 + +9222 +1090 +2246 +3436 +4692 +2317 +6684 +5515 +3608 + +8442 +8781 +6388 +6511 +5283 +3505 +7294 +3703 +2752 +2541 + +2160 +5683 +8706 +7818 +1283 +3659 +1465 +7255 +2556 +7496 + +4351 +2585 +3091 +6105 +2960 +6796 +6028 +1223 +3791 +2543 +2221 +1342 +1228 + +2678 +5749 +8275 +6535 +4567 +2629 +5222 +8406 +3528 +7274 + +11561 +8495 +11196 +6072 +4726 +6342 +4271 + +3035 +4638 +6716 +4871 +5516 +2387 +1828 +3695 +5199 +4602 +2372 +5376 +6229 + +5904 +7241 +1735 +4137 +5267 +7228 +6840 +2122 +5707 +3875 +5913 +6192 + +3372 +6579 +6596 +4463 +2498 +3147 +1505 +1879 +5437 +6317 +2129 +3425 +1569 + +7582 +4017 +9553 +5929 + +2721 +1439 +5723 +1790 +10437 +10251 +6175 + +3037 +2342 + +4409 +7389 +6107 +1920 +5975 +3859 +5681 +7411 +2409 +5083 +2678 +3001 + +6304 +6453 +8158 +1532 +2956 +1314 +4902 +5140 + +1964 +6243 +8353 +3374 +7134 +1951 +2425 +6063 +2765 + +7148 +12369 +7870 +3802 +10446 +10955 + +1377 +2579 +4886 +4537 +5929 +2946 +3894 +5212 +3825 +1003 +1884 +5017 +4114 +1895 diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_10.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_10.tst.data new file mode 100644 index 0000000..bbc6bcd --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_10.tst.data @@ -0,0 +1,140 @@ +addx 1 +addx 4 +addx 21 +addx -20 +addx 4 +noop +noop +addx 5 +addx 3 +noop +addx 2 +addx 1 +noop +noop +addx 4 +noop +noop +noop +addx 3 +addx 5 +addx 2 +addx 1 +noop +addx -37 +addx 22 +addx -4 +addx -14 +addx 2 +addx 5 +addx 3 +addx -2 +addx 2 +addx 5 +addx 2 +addx -15 +addx 32 +addx -14 +addx 5 +addx 2 +addx 3 +noop +addx -13 +addx -2 +addx 18 +addx -36 +noop +addx 11 +addx -7 +noop +noop +addx 6 +addx 22 +addx -21 +addx 3 +addx 2 +addx 4 +noop +noop +noop +addx 5 +addx -16 +addx 17 +addx 2 +addx 5 +addx -11 +addx 15 +addx -15 +addx -24 +noop +noop +addx 7 +addx 2 +addx -6 +addx 9 +noop +addx 5 +noop +addx -3 +addx 4 +addx 2 +noop +noop +addx 7 +noop +noop +noop +addx 5 +addx -28 +addx 29 +noop +addx 3 +addx -7 +addx -29 +noop +addx 7 +addx -2 +addx 2 +addx 5 +addx 2 +addx -3 +addx 4 +addx 5 +addx 2 +addx 8 +addx -30 +addx 25 +addx 7 +noop +noop +addx 3 +addx -2 +addx 2 +addx -10 +addx -24 +addx 2 +noop +noop +addx 2 +noop +addx 3 +addx 2 +noop +addx 3 +addx 2 +addx 5 +addx 2 +noop +addx 1 +noop +addx 2 +addx 8 +noop +noop +addx -1 +addx -9 +addx 14 +noop +addx 1 +noop +noop diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_11.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_11.tst.data new file mode 100644 index 0000000..dd12745 --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_11.tst.data @@ -0,0 +1,55 @@ +Monkey 0: + Starting items: 61 + Operation: new = old * 11 + Test: divisible by 5 + If true: throw to monkey 7 + If false: throw to monkey 4 + +Monkey 1: + Starting items: 76, 92, 53, 93, 79, 86, 81 + Operation: new = old + 4 + Test: divisible by 2 + If true: throw to monkey 2 + If false: throw to monkey 6 + +Monkey 2: + Starting items: 91, 99 + Operation: new = old * 19 + Test: divisible by 13 + If true: throw to monkey 5 + If false: throw to monkey 0 + +Monkey 3: + Starting items: 58, 67, 66 + Operation: new = old * old + Test: divisible by 7 + If true: throw to monkey 6 + If false: throw to monkey 1 + +Monkey 4: + Starting items: 94, 54, 62, 73 + Operation: new = old + 1 + Test: divisible by 19 + If true: throw to monkey 3 + If false: throw to monkey 7 + +Monkey 5: + Starting items: 59, 95, 51, 58, 58 + Operation: new = old + 3 + Test: divisible by 11 + If true: throw to monkey 0 + If false: throw to monkey 4 + +Monkey 6: + Starting items: 87, 69, 92, 56, 91, 93, 88, 73 + Operation: new = old + 8 + Test: divisible by 3 + If true: throw to monkey 5 + If false: throw to monkey 2 + +Monkey 7: + Starting items: 71, 57, 86, 67, 96, 95 + Operation: new = old + 7 + Test: divisible by 17 + If true: throw to monkey 3 + If false: throw to monkey 1 diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_12.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_12.tst.data new file mode 100644 index 0000000..2e02b7c --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_12.tst.data @@ -0,0 +1,41 @@ +abcccccaaaccccaacaaccaaaaaaaaaaaaaaaaaaaaccccccccccccccccccccccccccccccccccaaaaaa +abcccccaaaacccaaaaaccaaaaaaaaaaaaaaaaaaaaacccccccccccccccccccccccccccccccccccaaaa +abcccccaaaaccaaaaaccccaaaccaaaaaacccacaaaaccccccccccccccccaaaccccccccccccccccaaaa +abcccccaaacccaaaaaaccccccccaaaaaacccccaaccccccccccccccccccaaaccccccccccccccccaaaa +abcccccccccccccaaaacccccccaaaaaaaaccccccccccccccccccccccccaaacccccccccccccccaaaaa +abccccccaacccccaacccccccccaaaaaaaaccccccccccccccccccccccccaaaaccaaacccccccccccccc +abccccccaacccccccccccccccaaacccaaaacccaacaaccccccccccacaccaaacaajaacccccccccccccc +abcccaaaaaaaaccccacccccccaaaccccaaacccaaaaaccccccccccaaaaaaajjjjkkkccccccaacccccc +abcccaaaaaaaacaaaacccccccccccccccccccaaaaaccccccccciiiijjjjjjjjjkkkkcaaaaaacccccc +abcccccaaaacccaaaaaacccccccccccccccccaaaaaacccccciiiiiijjjjjjjrrrkkkkaaaaaaaacccc +abcccccaaaaacccaaaacccccccccaacccccccccaaaaccccciiiiiiiijjjjrrrrrsskkaaaaaaaacccc +abccccaaaaaaccaaaaacccccccccaaaacccccccaccccccciiiiqqqqrrrrrrrrrssskkkaaaaaaacccc +abaaccaaccaaccaacaacccccccaaaaaaccccccccccccccciiiqqqqqrrrrrrruussskkkaaaaacccccc +abaaaacccccccccccccccccccccaaaaccccccccaaaccccciiqqqqqttrrrruuuuussskkaaaaacccccc +abaaaacccccccccccccccccccccaaaaaccccccccaaaaccchiqqqtttttuuuuuuuussskkcccaacccccc +abaaacccccaaaccacccccccccccaacaaccccccaaaaaaccchhqqqtttttuuuuxxuussslllcccccccccc +abaaaaccccaaaaaacaaccccccaccccccccccccaaaaacccchhqqqttxxxxuuxxyyusssllllccccccccc +abacaaccccaaaaaacaaaaaaaaaaccccccccccccaaaaaccchhqqqttxxxxxxxxyuusssslllccccccccc +abcccccccaaaaaaacaaaaaaaaaccccaacccccccaaccaccchhhqqtttxxxxxxyyvvvsssslllcccccccc +abcccccccaaaaaaaaaaaaaaaaaccccaaaaccccccccccccchhhppqttxxxxxyyyvvvvsqqqlllccccccc +SbcccaaccaaaaaaaaaaaaaaaaaacaaaaaacccccccccccchhhhpptttxxxEzzyyyyvvvqqqqlllcccccc +abcccaaccccaaacaaaaaaaaaaaaacaaaaccccccccccccchhhppptttxxxyyyyyyyyvvvqqqlllcccccc +abaaaaaaaacaaacaaaaaaaaaaaaacaaaaacaaccccccccchhpppsssxxyyyyyyyyvvvvvqqqlllcccccc +abaaaaaaaaccccccccaaacaaaccccaacaaaaaccccccaagggpppsswwwwwwyyyvvvvvvqqqmmmmcccccc +abccaaaaccccaacaacaaacaaacccccccccaaacaaaccaagggppssswwwwwwyyywvvqqqqqqmmmccccccc +abcaaaaaccccaaaaacaaccaaccaaaccaaaaaaaaaaaaaagggppsssswwwswwyywvrqqqqmmmmcccccccc +abcaaaaaaccaaaaacccccccccaaaaccaaaaaaaaaacaaagggpppssssssswwwwwwrrqmmmmmccccccccc +abcaacaaaccaaaaaaccccccccaaaaccccaaaaaacccaaagggppppssssssrwwwwrrrmmmmmdccccccccc +abccccaaaccaaaaaaccccccccaaaaccccaaaaaacccaacggggpooooooosrrwwwrrnmmmddddcacccccc +abccccaaaaaaaacccccccccccccccccccaaaaaaaccccccggggoooooooorrrrrrrnnmdddddaaaacccc +abcccccaaaaaaccccccccccccccccccccaaacaaacccccccggggfffooooorrrrrrnnddddaaaaaacccc +abccaaaaaaaacccccccccccccccccccccaccccccccccccccggffffffooonrrrrnnndddaaaaaaacccc +abccaaaaaaaaaccccaacccccccccccccccccccccccccccccccfffffffoonnnnnnndddcaaaaacccccc +abccaaaaaaaaaacccaaccccccccccccccaccccccccccccccccccccffffnnnnnnnedddaaaaaacccccc +abcccccaaaaaaaaaaaacccccccaccccaaacccccccccccccccccccccfffeennnneeedcccccaacccccc +abcccccaaacccaaaaaaaaccccaaacccaaaccacccccccccccccccccccafeeeeeeeeecccccccccccccc +abcccccaaccccaaaaaaaaacccaaaaaaaaaaaaccccccaaaccccccccccaaeeeeeeeeeccccccccccccca +abaccccccccccaaaaaaaaacccaaaaaaaaaaacccccccaaaaacccccccaaaaceeeeecccccccccccaccca +abaccccccccccaaaaaaaaccaaaaaaaaaaaaaacccccaaaaaccccccccaaaccccaaacccccccccccaaaaa +abaccccccccccaaaaaaacccaaaaaaaaaaaaaacccccaaaaacccccccccccccccccccccccccccccaaaaa +abaccccccccccaccaaaacccaaaaaaaaaaaaaaccccccaaaaaccccccccccccccccccccccccccccaaaaa diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_13.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_13.tst.data new file mode 100644 index 0000000..3a9b06a --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_13.tst.data @@ -0,0 +1,449 @@ +[[[],[],8,3],[10]] +[[[[7],[0,4,6,1]],[[2,1,5,3,6],[]],[3,[10,9,1],2,[10,6,10],7],2,7],[5,[3],7,10,[8,[4,7,1,7,8],[],1,[8,6]]],[5,7,[[5,5,7,2,10],[8,7,10,4,7],[9,4,9,9,1]],[[8],8,5,[7,3,4,6,1],1]]] + +[[[5,5,[0,7,6,6,0]],[],0,9],[[[0,7,3,10,5],5],7],[10,[],1,[],5]] +[[4],[2,[10,[5,7,8,7,0]],[4,8,[1,2],[5]],3,9],[[[3,3,3,5,4],5,[],7,[7,3,10,4,0]],9,[3]],[2,0,6,[9,5],8],[[4,[9,8,6],[],5],3,[7,7,[3,3,6],7,[9,4,0,10,6]],10,[]]] + +[[2],[3,[[],[1]],[],[0,[10,7]]],[[]],[7,[6],8,[9,0],[2]]] +[[[[],7,8]]] + +[[],[[],8,5],[4,9,[[8,4,7,6,9],[4]],3,[[0,3,4,3,1]]],[3,5,[[0,6,4],5,[1,5,6],6,[8,7,1,7]]],[1]] +[[8]] + +[[],[[3,3,[7,0,9],1],3],[[[10,7,6],8,0,0],10],[[3,4],[0,10,[1,6,1,5,1],[]]],[[[10,10],[9,7,3]],2]] +[[10,0,4,[1,1,[4,10,5,7],10]],[[],[3,5,[5,5],[],[1,0,4,9]],0],[[]]] + +[[[[10,7,1],0],[7,[4,9,3],[0],[]],[],8],[[[6,3,2],[4,6,0]],[4,2,[0,2]]],[[],1,6,2,[2,[10,10,4,9],0,[7,1,0,7,6]]],[9,3]] +[[[[4,4,2,2],[5,0]]],[5]] + +[[],[[5,6,[],[7]]],[7]] +[[10,6,9],[[9,4],[5,4,4,[2,2,8],5],10,[[]],9],[]] + +[[[],[2,6,[],[4],[0,5,6,7,4]],4,9,3],[],[[[6],7,9],[],9],[[[1,5,0,4],4,[2,9,3,3,7]],1],[10,2,2,[[0,6,8,4],[9,3,8,5],3,5,3]]] +[[],[3],[[[],[],[10,1,2],[],[1]],0,9,[]]] + +[[0,[6,[10,0,0,4],[6,6]],[],7,[8,[2,6,8,6,10],5,7,0]]] +[[[6,[7,6,9]],8,[4,1,[4,7,2]]],[[],8],[[2,[0],0,8],1,8,[6,4,1,[3,3],6],[[9,8,4,1],[5,7],9]],[[[3],5],2,5],[9,[[8],3]]] + +[[],[2,[4,[6,2,10,7,7],[]]],[7,[7,[1,7]],[[9,2,8,10,8]]],[5,[[0,10,10]],[1],1,[[],10,0,[]]]] +[[[[1],[7,10]],5,9,[[],[1,8,7],0,[2],6]],[],[[7,[],6,[],6],[[1],8,0],[[3,0],[0,7],[2,0,3,6],[9,6,0]],[[0,1,7]]],[0,[7,[1],1],4,10]] + +[[7,7,[[],[7]],1,[0,10]],[10,4,8,6,5],[7],[[[2,4,8,7]],[[10,1,6],[6],[5,5,6,8],7,[0,5,2,3,4]]]] +[[[8],[[4,7],[8,10,0,10,8]],0,8,3],[[9],[8],[[1,2],5,0,[7,0],[1,3,10,8]],[0,4,[3,10,0]],[10,[],[]]]] + +[[],[8,[9],9,3,7]] +[[6,8,[5,4,[],[8],3]],[],[8,[4,[9,3,7,1],[7,1,9,5,7],[7,4,5],2],[9]]] + +[[[[0,7],1,2,[7],10]],[6,7,6,[[3,7,2,7],[10]],[2,[9,9,5,7],[0,4,4],[5,8,2]]],[2,2,8,2],[[]]] +[[],[10,[[0,10,1],7,0,9],6],[[4,6,[1,7,9],7,[5,3]]],[2,[[10,10],[8,0,3,8,2],[6]],2,7],[[6,3,4,1,[4,7,7,2]],0,[[1,3]],[[0,9,3,6],0,[5,6,6,0],10]]] + +[[[3],0],[1,1,4]] +[[6,[8,[2,5,2],[6],2],[1,8]],[3,3,7,[[2,10,1,5],[]],1],[[9,[8,6,7,3],[9,9,6]]],[[[],[9],9,6,2],1,[8,10,2],[],3]] + +[[[[1],[3],7,[8,0,7],6],3],[],[8]] +[[6,7,[4,[8,2,1,5],8]]] + +[[8,[[],9,[4,6]]],[9,[10,[8,7,4,1,2],[3,3,2,10,7]]],[4,[[4,5,2],8,3,[3,4,10,5]],10,10,[[1,10,4,10]]],[[8],[[5],[6,1,0],2,10,2],3]] +[[[10,5],[[0],[7,9,3],[2,7,5,2]],[7,10,[8],6],[[6,6,4,5,9],[3],4]]] + +[[3,6],[1,[],3,9,[]]] +[[9,[],6,[],[[3,8],[6],7]],[[],[0,9,5,[9,1,9]]],[[9,10,[8,3,7]]]] + +[[],[1]] +[[0,[],[5,[],5],[[]],2],[5,7,9],[1]] + +[[[[9,9,2,9],[0,6,4,5,2],[8,2,2]],[0,7,4]],[5,9,[0]],[[10,[9,5,10,4],5,0]]] +[[[[9,6]],[],[[9],10,7,4,[9,0]],5]] + +[[[[7,2,1,6,6],9,[1,7,8],8],[5,[3,8,8]],[[5,0],[2,1],[3,0],5,[7,7]],[[],[4,6],[4,6,5,4]]]] +[[7,7]] + +[[9,1,[[5,10,6,7],[4,6,5,10,1]],[[4,7,9],5,[6]]],[4,[2,[2,2,5,3]]],[[3,[4]],[],2]] +[[7,[0,8,0,[10,8,10]],[1],5]] + +[[3,6,6,5],[8,[[4,5,6],5,[8,3,0,1],[10,5,2],[5,0,7]],[],4,[[0],[]]],[2,[4,[6,5,6,9,0],[],[3,0,2,9,8],[10,4,9,5,1]],7],[[[7,3,5,2,7],[2,2,5,6,9],[6],0],[8,8,7,[2,1,3,9]]]] +[[[8,7,[7,4,8]],[]],[],[],[],[2,[[1,8,5,0]]]] + +[3,3,5,9] +[3,3,5,9,6] + +[[],[[[],[3,4,0],9,[],1],0,2,[0,[5,2,6,8],[9,4,8,8]]],[[[10,6],[5,6,4,3],[],5,[4]]],[0],[]] +[[[5,9,7],2,[[2,0,7],[2]],10],[[[9,6],[3],4,[],[9]],0,[[9,5]]],[1,[[10,4,6,9],5,3],1,[10,[9,7,0],[8]]],[[0,[9,7,5,10,4]],0,0,2],[[[]],7,2]] + +[[[1,6,2,5,4],7,[8,8,9,9,[6]],[[],7,[],[10]]],[[[1,0,0,5,5],8,5],[[],1]]] +[[5],[],[[[7,4,8],9,8],2],[10]] + +[[10,1],[[[0]],[]],[[5,[9,1,0],[],8,4],1]] +[[[[10,0],6,[8,6,7],1,2]],[[[7,3,8],[],[],3,[4,0,6]],[10,[6],9],[[9,1],[],[5,1,3],[],2]],[[1,[2,8,6,6],[6,9],[3,8],[4,10,8]]]] + +[[[4,10,8,6],5],[8,[[3,4],[2,0,1,10,9],6,[4,10,10,8]],[9,[2,9,7]],[7,[0,9,6,1,0],6,5]],[]] +[[3,[[1,10,1,1,8],8,[7,6,0],[6,10,5,3],[2,3,2,2,6]]],[]] + +[[[],[[1,6,3,8,9],[7,0,2,4,3],[4,5,3,6],3,[2,2,10,9,0]],3]] +[[],[[[8,8,10],[10,2,7,8],[1,0,7,4],[2,8,8,2],9],8,10,10,1],[[[3,2,6],[0,2,9,9,10]],[6,[],4,0,[5,4]],[[4,1],0,[],3,5],7,2],[]] + +[[[0,[7,1,6,4],[2,3,4]],[],[]],[[1,[8,4,2,9],8,9],6,[8,10]],[5,[[3,10]],5,[]]] +[[0,10,[],1],[],[4,8],[],[]] + +[[[5,3,[0,10,1,1],[],[]]],[6,8,[]],[4,2,[2,0,[1],1]],[],[[[4,8,0],[0,7,9,8,6]],[[0,0],[9,10,3]],[[2,4,2],0,2,10],6,[5,[4],[4,2],[2,4,4,0,10]]]] +[[[[1,9],[10,2,9,2,3],[8,7,4,8,4]],2,[7],[[0,1,5,2],5,5,10,10]],[[1,10,4]],[5,[],[[3,1,3,6],[7,1,9,1],[0,3,8],6,3]]] + +[[2,[]],[[[9,0],[3,9,6,10,9],3,3,5]]] +[[[0,1,[3,9],9]],[[7,[1,10,3,3,3],2,5],2,8],[10,10,[[0,3,8,0],10,[2,4,0,4],3],[[2,6,4,3,1],4,[8,9],[]],[[],[1,5]]]] + +[[[],9]] +[[],[0,5],[[4,8,[10],3,[8,9,4,4,4]]]] + +[[[6,[3,1,1,4]]],[0,[9,[9],6],[[],9,[],0,[6]]],[8,[0,9],[2,10],9],[[8,[1,10],[9,0],[6],9],[4,[],[10,10]],[[4,2,8,8,10]]],[[7,[4],[3,8,0,3,0]],1,[8,[2,8,5,2],[0]],[10,[2,0,2,4,6],2],[1]]] +[[[7,[],5,[8,8,10]],4,[1]],[[7,10,0],3,[7,[3,10],[3,8,5,0,7]]],[6,[[2,5],8,10,[2,8,5,1],[4,7,2,4,0]],2]] + +[[4,0,10,1,[[1,6],2,9,10]],[[[3],[3,0,8,9,7],[5,6]],[[4,2,10,8],[1,9,10,6],6],6,[[5],4,[],[],1]]] +[[4,[],[8,3],9],[[],[0,8,[6,9,6],[10,6]],4]] + +[[5,9],[1,5,6]] +[[3,[8,[0,5,7,4,2],[4,4],[7,10,3,1]],0,4],[[7,[0,8,6]],[[3],[7,9],[],[3,6,4]],2,4]] + +[[10,[]]] +[[],[7,[[0],[10,4,0,1]],3,[[7,0],[1,3],8,[6,0,3,1],1],[10,5,10,9,[]]],[3,6,4,5,3]] + +[[],[[[2,8,1,9,8],[7,0,1,10],[9,0,4,7,6],5],4,[]],[]] +[[0,5,5],[2],[[]],[7,[[1,0],[4,9],5]]] + +[[10,5],[],[4,[],3,0],[3,3,9,[]],[]] +[[],[[[8],[1],7],4,2,[1]],[1,10,5,[2,3]],[[8],[[5,6,6,3,0],[2,1]],3],[2,7,[10,[],[0]]]] + +[[[3,5,[5],[8,8,3,7],9]],[],[0,[],0,3,7],[1]] +[[2],[[[9,9],[0,7],8,[]],5]] + +[[4,8,6],[[5,10],[[2],8,[],4],[[10,7,6,5,10],[3,8,7],[3,1,0,2],[8,8,7,1,5],8]],[6,8,0,[[8],4,[1,0,0],2],[[2,7,6,10,1]]],[1,[0,5]],[2,[],[],4,[[4,5,9],[5],4,[1,1,9]]]] +[[[4,8,4,[5,0,8],10],0,[[10,2]],4,0],[[5],4,5,[[2],[5,6],[1,2],5,6]],[[[3,5,2,8],[7]],[3,[6],[1,4,6,5],[3,0,6,8,2]],9,2,7]] + +[[],[],[7,2],[[]]] +[[6,[[8,6,4,9,0]]],[[5,[9,6,2,4],[],2],5,7,[[1],10,[0],[8,5,4]]]] + +[[],[[[7,8,4,9]],[2,[10,5]]]] +[[0,2,2],[[[8,6,0,9],[],6,8,[6,1,5]],4,4]] + +[[7,7,[4,[2,7,6,8,4],[5,9],8,[6]],[1,1,0,2],1]] +[[[6,1],[],[]],[[5,9,[0]],[[2,7,6],4,[5,10,1,5],[],7]],[[2,[9,0,9,10]]],[6]] + +[[3,[3,3,6,[8,0],[6,4]],2,0,[[5,0,4,1],1,[0,7,6,6,7]]]] +[[],[5]] + +[[[[1,10,1,5],[2,1,0,4,10],[4]],[[0,6,3],[4,1,6],9,7],[[7],[5,6,8],5,4,[10]],1,[0,[9,4],9]]] +[[],[3,[],5],[]] + +[[],[[],[3,5,0,7],[1],2,10],[3,[],0,[[9,0],[0,0,2,5,9],[1,6,2,6]]]] +[[5,[7,7,[1]],[[],3,[2,8,7],[3,9,6]]],[0,[[7,10,1,3,8],5,[5,4,3,1,9],[2]],2,[[5,10]]]] + +[[[[10,3,8],8,3,2,[7]],2,[[5,5,2,4],7],6],[7,0,[6,[4,9,9,5],[3,1,6,2,6],5],[1,4,2,9],[8,8,[10,4,10,9],[3],[2]]],[]] +[[],[[4,6,[7,6]],[],[]],[[[],0,2,[7,4,0,9],[4]],[],0],[]] + +[[5,6,[10,[8,10],[],10,[10,0]],[1,[8,4,6,2]]],[],[[[8,10,10,1]],[],[4,[10,9,7],10]],[[],[[1,10,4,0],[]],[6,9,[4,2,4],7,0],[7,[4],[8,0,7,8,4],[3,5,5,3]]]] +[[[],[[10,0,3,2]],7]] + +[[[[],1,[8,5,9]],2,[[1],[9,3,1,2,2],5,2,[]],9,[3,[],[2,1,7],8,[0,1]]],[[[1,6,1,6,5],[2,10,2,1,7],[0,6,0,4,2]],[],3],[8,10],[[[10,2,7],2,7,[]],5],[[6,1],[8,[],[3],[4]],6,8]] +[[[],10,6,7,[4,9,[9],6]],[[]],[[],[6],8,0],[[[10],[8,8,3,8],8],[7,[]],[]]] + +[[[[10,0,8,1],[7,6,6],[6,9,9,0,10],[7,4,3]],[[9,10,3,4]]],[[1,[0,3]]],[5,1,2,[9,[],[0,4,10,10]],9],[[9]],[7,6,8,0]] +[[[[4],3,2,[]],[9,[],4,6,[5,1]],2,[]],[[6,[6,10],[],[],[6,6,10]],7,[5,7],[[9],4,[6,10,0,3],[]]],[[2,[1,8]],3,[9,[0,6,10]],[],3]] + +[[7],[7,[[7,8],[0,7,1,4]]],[10],[10]] +[[],[],[[[9,3,4,2],[4,5],1,[8,0,7,8,4]],6]] + +[[[4,[],[0,0,3,6],2],9,[],7,0],[[],9,[],[],[0,0,1,1,[5,5]]],[3,10,[8],2,[5,[],5,[2,3],5]],[[[10,4,9],[10,9,10,0],[4,7],[10,2]],3,[0,2],10,1]] +[[[],6,[],[2,5]],[[[7],[6,6],0,5],[4,4,[8],2,[0]],8,[4],1],[],[8,1,9,[10,[9,7,2,0]],[]],[10]] + +[[8,[],2],[[[3,9,5,9,2],[2,3,10,6]],[5,[6,5,10,1],[7,9],[2,10,3,7,10],[4,0,9]],9,0],[1,[[7,6,1,4]],10,9],[],[[[3,8,7,7,6],[2,9,4,5],[10,1,5]],3,[6,8]]] +[[5]] + +[[8,0,3],[[[],[2,5,7],3,7,[5,10]],[8,5],0],[7,[[3],[9],0,9],[],[[],8]]] +[[8,[4,[2,6],2]],[],[[[5,3,7,8,6],[2,9],2,[],[9,4,8]],5],[9,[[7,10,3,10,1]],10,9,0],[[3,7,[0,5],3,3],0]] + +[[],[],[1]] +[[[2,[9,8,0,1,7]],[9,10]],[10,[[],[9,5],10],7,2,1]] + +[[4,[7,8,7,[5,5,1,1],0]],[[1,[9],[0,3,0,8],[5,2],1],1],[[[4,5,3],[3,10,3]],5,5,[[8,0]]],[[[],5,[0],3,7]],[[2,[5,4,1,3],[0,7,4,10,2],1,7]]] +[[0,[[4,0,8,0]],[[2,2,9,4,2],[],[5,4,3,1],6]],[],[8,8,10,10,3],[[2]],[[9,4,10]]] + +[[5,[2,0],10],[9,7,[[],8,[8,1,2]]],[[],[[5,10,7,4],[3,1],[7]],7],[7,8,10,2],[[],[]]] +[[[7,2],10,2]] + +[[1],[[5,2],[[10,3,3,8,7],[],2,5]],[],[[[7,4,8],0,[1],8,6]]] +[[7,10,[9,[0,5],0,[8],0],4,[[6],0]],[],[],[[0,2,[7,4,9]],[3,6,8,[1]],10]] + +[[[6,3],[[7],[1,6,3,5],3,[]],[[10,1,1,5],3,[]]],[[[3,4,6,0],[1],[1,10,4]],[],5]] +[[],[[],[5],[[]],3,6]] + +[[4,[1,0],[[10,2],4,[6,1,0],[4,4,3]],[[10,9,4],4,4,[1,9],[7,0,0]],[]],[[8,3,[8,10],4]],[[1,[],0,9,4],3,5,[]]] +[[[[7,10,0],8],5,[4]],[],[[6,[10],[6,10,7,5,9],7]],[]] + +[[],[2,7,[5,[5,7],[3,8,4,3,7],[]]]] +[[],[7,9]] + +[[3,[],[[5,9,7,2,3]],3,3],[[],9,[4,[7,6,9,5,8],7],9,2],[],[[7,[8,9,7,5],3,[5,2,5,9,1],[7,4,3,10]]]] +[[[[8,5,6,0,0],[9,7],9],[[1],3,1,4,0]]] + +[[2],[0,1,0,4,[10,[1,8,7,5],[2,9,3],5]],[0]] +[[],[[[9,2,9,0,0],[2,9,1,9],[8,4,4]],[[6,5,8],0,[0]],[10,8,[9,9,4,6],8]]] + +[[[4]],[5,[9,[6],[0,2],[],0],[[3,4],[3,6],[7,3]],[[9,7,4,7,6],[8,4,1],[8]],[]],[],[6,2,[[5],9,10],8,0]] +[[7],[5]] + +[[5],[[[8,4,7,2,8],[8,7,3],6,[],6],1,[5,[6,5]],7,7],[[10],[],7,[8],[0]]] +[[[]],[6],[[],8,7,[3],[4]]] + +[] +[[],[[[6,8,0,8],[],8],[[5,1],7,8],1,10,[8]],[3,5,[[9,6,3]]],[[2],3,[[4,9],3,6,2,[1,0,8,5,4]],7]] + +[[[8,[7,9,7,4],4],3,[7]],[[[10,2]],4,4,[4,[7,4],[4],1],5]] +[[[],[[8,3,5,2,7]],[[],5],[],[9,2]],[5,[5,5,[5]],[]],[0,9,9,[]],[[5,4]],[]] + +[[0,1,[1],10,4],[[[10,1,8]],9,0],[3,[0,2],0],[9,0,10],[]] +[[[[2,1,0,0,4],[],0]],[],[0]] + +[[7,7,10,[]],[3,[],[[6,10,7,4],0,9,[0]],[[10,2,7,6],[9],8,4,[3,5,6,0]]]] +[[],[4,[9,6,6,[0,3,1]]]] + +[[0,4,[[0,8,6,4],4,7,10],[8,[10],2,8],2],[6,[[6,3,6]],4,10],[2,6],[],[[],[[2,7,1,1],[10,4,7,1],[6,10,4,0]],6]] +[[[2]],[[[9,4,5,2],5,7,[],[]]],[10,8],[3,8,[6,[0,10,10,0,2]],[[5,6,6,10],7]]] + +[[8,[[7,6],[8,1,7]],[],5,2]] +[[6,7,[2,7,[7,1,8,5,1],1,5],9]] + +[[1,[],1],[],[7,[[2,10],8,[8],[10,1,9,4,10],[1,9,5]],[[9,4,9],[2,2,1,3,4],0,[8,3]],7]] +[[[4,[10,9,9,2],3,9,4],[1,10,4,8,4],6,4],[7,1,[3,3,9]]] + +[[[[2],[6,7,4,1],[9,3],1,[5,0,9,4]]],[[[2,5,0,0,1],[3,3],[9,1],9,1],9]] +[[],[[1,[3,6,7,4,10],[7,2,6,0,6],[7],6],5,5],[[[5]],2],[[[3,9,4,9,4]]]] + +[[[3,[3,0,9],9],[[10,9,1,8]],[6,8,[6,7,5,10,4]]],[[[],2,[],[9,3,8],8],[5,0,2,[],[0,9,4,3]],[[],1,8,1,0],[]],[[[4,7,8,6,2],6,9,[1]]],[4]] +[[[[],8,10,[6,6]],0,0,[10,[],[0,2,8,3,7],[7,5]],[[0,4,0],3,10,2]],[4,[],0,[],6],[[[7,8,0],[7,5,7],[10,4,3],[1,5,2],9]]] + +[[],[[[6,10],7,1,0,[]],[[9],[8,9,9,10,8],0,8],2]] +[[10,0,4,[[0,2,10],[9,2,4,7,7],[5],[9]],[[3,2],[2,9,10],[3]]],[2,1],[10,[5,[2,8,2,4],6,4],4]] + +[[8,[[4],[2,9,10,6],0,4,6],[[7,5,3,0],[9],4,[7,5,10,10]],[]],[]] +[[[[]],1,[[],[10,7,2,1],[6]],6]] + +[[[[1,6,7,3],3],[1,[7,0,6],7,4,[7]],[2,5],0],[[],[[4,5,3,4],5],[7]]] +[[5],[[],[],5,[[8,3,3]],[[],3,8,9]],[[0,[0,2,9],[2]],[[8],4],[[0,3]],[[6,4,4,3,2]],[[0],[],[0,9,10,1],8,8]],[2,[[],[7,7,0]],[[5,7],[8,2,8,1,5]],[[9,2,6],[1,5,9,1]]],[[[2],[]],[8,7,5,[2]],[[2,1,8,1],5,4,6,[0,5,6]]]] + +[[],[1,6,10,1],[[8,9,[3,8]],10,7,[[0,8,6,7,10],[7],[1,0],2],9],[[[4,1,0,10],1,4,[8]],0,[4,10,9]],[8]] +[[[[4,8,9,3],6],5,[],5],[]] + +[[[10]],[[],8],[[[6],7,9,[6,6],10],[8,4]]] +[[8,5,3,[],2],[8,[8,[0,0],5]]] + +[[[1,0,[],[8,8,3,2],0],2,2,[10,[7],[2],7]],[10]] +[[1],[0,[[6,7],[1,10,7,6],[1,8,7,4],10,5],5],[[4,0,[7,0],[8,3,8,6]],[[2,4,10,8,6],3],8,[]],[[4,[9],[7,4,10],[4]],[3,[6,6],[],5],9,[]],[[[6],[2,1,1,3,5],[2,9,3]],6,[[1],[5,7,5]],[[4,3],[8,2,6,4,6],0,5,[5,8]]]] + +[[],[[6,[1,0,0,9],1,6],[[4,9],0,1,7,[2,2,10,7,3]],1]] +[[],[[[4],1,10],[],4,[[9,4],0],[[9],[10,1,10],10,2]],[8,7]] + +[[[],7,[[8,4,9,2],[2],4,9]],[[[0],5,[],10,[]],[3,[1,9,9,2],[9,10,0,0]],[7,9,[8,7],2],[9]],[9,[[9,4,6,8,10],8]],[[[0],5],10]] +[[7],[0,6,[[6],[],3,[3,8,6,2,8],6]],[9,6,0]] + +[[[[4,4,7],[6,7,2,2],[]],1,[[],7,0]],[[5],[2,2,[3]],[6,2,4,[]],[[3,8],1,[8,6,0,10,5],[8,10,6,1]],3],[8]] +[[0],[[10,[],[10,4,7,3,10]],[[5,9],7,5,8],9],[9,0,5,1],[]] + +[[0,0,[[6,10,1,5],[8,0,4],10,[10,9,1,5]]],[[4,[2,1,1,5,4],[5],[]]],[3,7,0,[],10]] +[[3],[4,5],[6,[4,5,[]],5,4]] + +[[[[6],6],10],[]] +[[[],7,[[4,3],[7,3],1],[4,[7,6,6,3,9],[2,2,0,8],2]],[1,5,[[5]],[[0,2,5,2]]],[[[4,8,10,0,3],[6,1,8,1,4]]],[],[1,[[],[],2]]] + +[[9,[]],[7,[[3,0,2],[],10,6,[10,7,8,4,6]]]] +[[7,6]] + +[[8],[2],[6,1],[6,[4],[],[4,8,[5,2],5]]] +[[],[[[1,9,0,1]],3,5,[6,[3,4,3],5,[6,3,7],[2]]],[5,[[3],0],5,[],5],[7,[[9],10],4,9],[]] + +[[[9,[8,5,4,8]]],[3,[7,[6],3],2,[5]],[[[1,8],[6,6,5]],6]] +[[2,[[2]]],[10,6,3],[[[10,4],0],[],[5],[],[0,[10],[1],[1,2,7]]]] + +[[[[],[],6,[10]],[],7],[3,[10,9,2,[]]],[5,[[10,10,2,7,0],6,[]],[8,[0,7]],[[0],1,[9,10],4,2],[]],[]] +[[[9,[5,4,6,9,5],[10]],[[5,9],0,6,5,10],[5,[2],[4,9,4,9,0],[5,4],[0,1,3,6]],3,[[3,9,7],[6,10,0,0]]],[[7,8,10]]] + +[[[3,[4,0,0,9,8]],2,0,[6,[5,7]]],[[9],[],4,0],[6,2,[9],[10,[5,4,9,10],6,4]],[9],[6,6,[[7],[6]],[[8,0],5,10]]] +[[],[8,1,0],[5],[9,5,[6,[6,10,6]]],[]] + +[[8,7,[5,1,[4,1,3],[8,1,0,8,2]],3,0],[[[0,1,3,1,1],[9,7,2,4],4,6,4]],[10,5,7,4]] +[[7,[]]] + +[[0,7],[],[],[0,2],[0,2,[5,5,[4,6,3,10,0],0],[[5,1],[8,0],[5,7,5,0],2,4],[8,[],[10,2,3,4,8]]]] +[[[8],[2,10,6],9,2,[5,[],5,[6,0,4,5,7],5]],[7,1]] + +[[[],[[9,7,1,3],[6,3,2,7,6]],[7,[6,9,5,0,9],3],5,[]],[],[[[3],[0,7,1,7]],[0,[10,6,2,10,4],[5,8,0,6,7],0,[]],6,9],[[[4,6,0,0,2],7,[9,7,7,7,0],8],6,[[],[0,3]],8],[[9,[1,10],2],4,[[0,4,10],[4,7,8]],[[2,0,0,9,8],[4,2,9],[5,10],1,[8,4]],3]] +[[]] + +[[[[6]],4,8,[],6]] +[[],[1,9,[[],9,[10,7,10,9,9],6,[0,10,1,4]]],[3,[8],2,9],[5,[4,7],[4,[8]],5,6],[[0],[10],[]]] + +[[[[5,1,10,5],[2,10,6],1,0,1],[[1],3,[],2,7],4,4,6]] +[[3,[[7,3,0,6],7,[1,4,5]],[[4,7],[0,6,10,2,9],[],[4,2,1,9,7]],[9,10,[10],1,9],[]],[8,[],[3]],[[[3,2,6,1,0],4,[4,9],[3,1],3],[],[[0,4],[4,2]]]] + +[[7,5,1,10],[2],[]] +[[],[[],7,[],9,[[0,9,4],[8,0]]]] + +[[3,9,0],[[[9,0,7,4],[1,6],9],10,[3],9,[0,[4,7,4]]]] +[[5,3,[1,[8],0,9],1],[[[8],8,8,8,[6,7]],4,0,[4,0,9,[3,8,8,8],10]],[[[],7,[8,8,1,5]],8,3,4]] + +[[[9,[8],[10,3,10],7],4,3,6,[8]],[[]],[8,[10,10,[]],[4,[6,9,3,10,6],8,10,2]]] +[[[[3],[5,0,9],[],2,[4,1]],[7,8,3],[10,[1,4]],[[0,7],[6,4],7,[10,0,0,1]]],[[[5,2],1,[10],10,[3,5,6]],[[],[0,6,2],[0,10,0,1,3]],[[],[1,7]],[1]],[],[],[9,[7],2,[[4,5,4,0],[8,1,1]]]] + +[[[],3],[3,[],4],[5,4,6,[]]] +[[2,[8,2,[4]],5,[5,[9,1],[10,6,10]],9],[10,[5,8,[],[5],[]]],[[],1,[1,[7,6,5,0,4],[6],[5,5,10,5,2]],0]] + +[3,9,10,6,3] +[3,9,10,6] + +[[1]] +[[[[],[],[10,8,6]]]] + +[[[5],[10,[3,10,4,1],7],5,[3],[]]] +[[],[[7],[[7,8,5],[6,10,4],9,[0,10,6]]],[[[8]],[5,[],[2],[6,5,0]],[[10,1],10,[],[9,1]],[5,4,[4],[],10],[5,[7],[10],[2,10]]]] + +[[2,9,[[9,7],[],[4,6,3],[0,6,10,2,10]],[[6,1,1,1,4]]],[10,4]] +[[[],[6,8,1]],[[[7]],5,6,[0,2,2,6],[]],[3],[[4],4,5],[1,[[9,10],[1,5],4,[6,7]],0,6]] + +[[[7,9],5],[2,[5,9,7,[7,2,9]],[9,[8,7]]],[3,[[],10,4,[7],3]],[1,[[],5,0],5],[[],[[],5,0,4],2]] +[[[[4,3,0,10,3],[6,1,10],4,8],[8,[],[8,0],10,[]]],[],[1,9,4],[10,8,[5,[9,8]],3]] + +[[6,8,[[1,4,10],0,7,[10,5,10]],[[10,8,9]]],[9,[9]],[9,[3,1,[],[1,1],8],7]] +[[],[5,8],[7,[7],[[3,6,2],6,0,[2,7],[6]],[10,[2,10,8,6],[2],[],[8,10,10,3,4]],[[8,5,8,8,10],7,1,[10,10,8],[3,5,4,3,3]]],[[[],5,10,[1]],4]] + +[[4],[10,6]] +[[0,10,4,[9,10]],[],[1,8],[9,7,[2,[5,4],[10],[7,1]],0]] + +[[[],[5,[4,10,2],4,[10,8,10]],[]],[],[4,[4,6]],[[],[2]]] +[[1,5,[[4,2,5],[],[1,9,4,7],[10,6,2,3]],[[9,2,0]],0]] + +[[2,[8,7,[9,0,0,9],[0,8]]],[],[[3,6],[[1,8,0,5,6],5,2],0,6]] +[[[3],[[1,6,1,10,0],[7],[9,2,0,5,9],[1,10,5,8],[8,6,2,6,5]],5,1],[]] + +[[[1],8,3,7,10]] +[[[[1],[9,2,0,6],6,[5,4,7],[1,9,4]],7,0,[]],[2,4],[[9,9,[10,5,5],6],3,0,[[1,8],[],10,0],10]] + +[[10,4,[8,[3,6,1,1],7,10],[],[[2,6,6]]]] +[[2,4],[[[2,0,8],[2,0,6,8,3]]],[[[5,1],9,[0,4,6,4,4],8,1],[1],9,[],5],[6,4,[[1,5,7],3],[[9]]],[]] + +[[],[[[],4,[9,2,9]],[[4,6,3,6]],[1,8,2],7],[[[3,1,5,5],[]],9,6],[0,4,1,6,0]] +[[[[0,10,1],[2]],2]] + +[[[3],[[],4],1,8,2],[[2,[6,10,1,8,0]],0,[8,[],[10,9,7],[]],2],[[[4,4,2,6],[],7],3,8,10,3],[]] +[[1,[6,3,[8,6,4,4],7],[7,8,[3]],1,2]] + +[[2,[0,8],9],[[[0,3,0,4,8],[2],[10,4,1,4]],[],[5],8,5],[0,[6],10,2,[1]]] +[[9,10,2,[[0,7,5,0],2,[2,10,9,8]],[[6]]]] + +[[[4,3]]] +[[[[8,9,3,3],[],[10,1,3,1,8],8,7]]] + +[[[9,[0,1,7,3,4],9,9],[],[8]],[[0,[9],[3,6,3,0],7],[9,4,0,[8,1,2,8],8],[2,8,[4,5]],[8,0,[9,9,7]]],[[0,[8,6,7,7,4],2],[7,[1,2,7],[7]],9,[[4,3,4,2],[1,7,3,1],9],[7,[5],[9,5,10]]],[]] +[[8,[0,[3,0],4],6,[[8,6,5,3],[4,7],0]],[[3,[7,0,7,2,6]],[[0,0],[],[0,5,0,9,8]]],[]] + +[[4,7,[7],6,[8,[]]],[]] +[[],[[9,[10]],[10]],[9,1,5,[0,7],[9,6,[6,0,4],[10]]],[[[4],[1,0],1],9,3],[[[9],1,[],[7,0],2],3,[[5,10,9],0,3,[7,9,10,5,0],6],[6,3,[],6,[3,3,6]],[[9],[2,1,7]]]] + +[[[[0,5,8,5],[5,5,6,3,6],[]]],[5,4,[],[],[[6,4,3,4]]],[[[9,3],[]]],[]] +[[[7,[3,6,3,8,2]],6,7,9],[6]] + +[[5,[[1],[7,4,10,4],4,[8,3,0,2],[]],5,[9,[8,2,10,4,3],5,6,3],6],[[],[3,7,[5,1,2,1]]],[[[2,3,8,5],[0,4,4],10],2,[[1,4,2],5,8,2,3]]] +[[[[8,6,8,2],[1,8,4,4],7,[5,4,10,7,4]],[[7,2,5]]],[3,10,[6,[1],[]]],[6,[],3],[[[7,0,0],9,4,3]],[0,[1,[],8],7,3]] + +[[[1,6,[7,1,3]],[[8],[8,8,9,1,1]],[[6,6,1,3],[2]]],[[],8,[],3],[],[6],[6]] +[[[[],[],7],[[9,8,7],3],4]] + +[[],[9]] +[[10,[[10,9,9,1,9]],[[5,5,7,0,4]],9,1],[],[[],5,[6,[3],[1],[1,8],[6,3,3,6]],2],[[[3,1,4,3,2]]],[3,[2,[10]]]] + +[[1],[[[0,0,10],[9,1,1,1,4],[7,0,5,3],[2,2],8],[[0,4,6,9,5],8],[6,[6,8],7,[],[8,0,6]],[],[[],7]]] +[[],[[[6,1,9,8,5]],[[1,0,1,4],2,[],3]],[0,2,0,[[8,5,7,4,6],[5],4,[6,5,6,2,0]],10],[6,7]] + +[[[],3,6,[4,1,[5,0,5,3],[3,0],5],[1,1,2]],[3,2,[[1,3,7,9],[5]],6],[6,[],5,2],[3]] +[[[[0,4,5,0],9,3,10,3],[[4,3,4,9,10],[6,1],[8,10,10,4,3],0]]] + +[[3,6,4,7],[5,8,0,[[0,6]]],[],[]] +[[[[],[3,1,0,7,2],3,[10,3,0,2,8]],3],[0,9,0],[[[8,8,0,9,0],[6,0,5]],[[3,4,9],7]],[],[0]] + +[[],[[0,1,[4,1,4,2],[6,5,3],[]],1,[9,3,[10,4,5,0,4]],[[5,7],2],[[8,7]]],[8,4,9]] +[[8,[7,[10],[2,8,10,9,3],[6,5],3]],[5,5,[[3],[]],6,[1,0,7,8]],[7,[6,5]],[],[10,5,4,[2,0,4,[6,10,4,4],[3,3]],8]] + +[[[6],[10,[0,2,5,10,9],2],[[],[0],9,[1,0,5,8]]],[3,[[4],[3],3,[1,4,2,0,0],[]],[[8,3,6,10,7],1],[2,2,5,[6],[0,7]]]] +[[7],[1,3,[1,2,2],2,3],[5]] + +[[[[]],0,[[4,6,4]],0],[],[3,[],[1],[10]],[[1,[2,5]],[[7],[6,10,6,6,6],6],[[0,8,5],[4,0,9]]]] +[[5,8,2,[0,3]],[6,[[6,4],[7,10,9,10,3],2],2,6],[1,[9,[6,4,1,2],8,[10,2,5,9,8],[]],[]],[],[[[8,2,3],9,[5,6,3,3],4,[4,10]],7]] + +[[8,[2,0],[10],2,3],[[3]],[[9,[10,9,9,5,7],2],[[],9,[6,8,5]],[10],8,[]]] +[[7,10,[2,[0,6,4,0,5]],[4]],[[],[],4],[7,[5,10,2,[0,7,3,9,7]],[[7,2,1,3,5],[7,5,3,1,6],3]],[[[1],6]]] + +[[],[[7,[],[5,7]],1,7]] +[[7,5,4,9],[[5],[[8,2],[1,5],3,4,1],[7,10,4,[],0]]] + +[[[8,6,[6,3]]],[9,[],[[5,6,0]],[2,[1,10,10,6]]]] +[[0,0,[[1,1,10,1,3],2,[7,0,6],3]],[],[0,2],[[3],3,5]] + +[[[4,7,[10]],[1,4]],[[2,[4,1,6,0,4]],2,[[],[]],9],[6],[[],[9],7,5],[9,10,[7,[6,0,5,1,3]],2,[]]] +[[4,[],[[5,4],[6,2,3,4],8,[4,3],7],[9,3,3,0],[[],1,6,2,9]]] + +[[5],[6,[]],[]] +[[],[[1,5,[7,0],[2,7,6,1],10]],[]] + +[[5,10,3]] +[[[7,1],[1,[7,5,9,7]],[0,[7,1,7,9,1],[9,2,9,9,1],5,[9]],[[]],[]],[0,[[9,0,3],[3],1,[1],1],9,[10,6,[],[10,9,1,10,10],[2,2,8]]],[[1,7,4],6]] + +[[],[]] +[[[[6,3,9],[5,5,8,10,4],[7,4,9,1,3]],1,6],[[[8,2,4,5],[],[1,7,7]],0]] + +[[0,10,[[4,0],4]],[9,[],[4,9,[10,5,8]],7],[10,[]]] +[[],[[],7]] + +[[[6,5],2,8,7,[[6,2,10,1],1,[2,5,10,7],1,[2,10,7,5]]],[6,9,8],[4,[],[[1,8]],1,[7,[1,0,6,8],[8]]],[[],6,1,[7,[],0,[6,7,8,10,5]]],[[],[],[7,9,[5,10,6,3],[2,10,3],8],7,[9,[0,10],[8,2,6,0,1],[10,1]]]] +[[[9,[0,9,10,7,4]],6,[6,[8,5,9,6,8],[4,10,6],4,[]],[4,9,7,2,7]],[4],[[],[[4,2,5]],[4,[7],[9,5,8,7,7],[],[10,9,6]]],[10,[],10,[4]],[6,1,3,[[2,1],[1,9,7,3],5,[2,3,5,4,9],6],1]] + +[[6],[8,5,[4,[1,10]]]] +[[1,7,5,9],[],[],[0,9,1],[0,[2,6,10,[10,7,3,5,3]]]] + +[[3],[1],[]] +[[0],[8,[[6,7,6],3,7,[4,5,6,10,1],0]],[[[4],[6,0],0,[8],[8,1]],[[1],4,8]],[8]] + +[[[[2,3],5],[[4,2,4,10,3],[4,0,9,4,2],4],[2,[1,5,2,6,7],8,[0,5,1,4,8]],[[3,6,7,10],[6,7,4,7],[9,4,10]],[[9],[4,2]]],[]] +[[[7,8,[8,2,10,2],[],[2]],3,9,0,1],[[[5]],0,7,[[7],2]],[[2,[],[8,5,4,1],9],5,6,[[1,2,8,0],4],[]],[2,[9,[],[10,10],8,[]],1]] + +[[],[],[[[5],[9],5,7],5,[]],[[3,[1,2,6,3],9,[3,2,7],0]],[[[5,9],5,[8,1,7]],[1,1,[7,7,8,10]]]] +[[[[10,0],[0,7,2]],3,[0,3,2,[7,1,9]],[[10],0,[5]],[[2,8,0,5],[7,3],4,10]],[9,[[]],[[],[1,4,4],7,[0,1,6,7,2],[6,9,0,4,4]],[9,[9]],[6,[4,5,0,8],1,[8,3,1,10],[9]]],[7,[[]],[5,[1,9,6]]]] + +[[4]] +[[5],[[2,[10,7,10,9,10],0]]] + +[[[],[[1,8,6,1,6],[3,2,1],2,[10,3,7,1,4],0],3,[3]],[9]] +[[],[],[[8],[[],5,[1,8,7],9,1],[[7,1,2,4,3],7,[5,7,1,6,6],8,2],10],[4,[6,[8,8,6,7]],1,[[],[5,10,3,2,7]]],[1,[],[1,[0],7,[9,0]]]] + +[[8],[2,[[9,2,9,9,10],[3,5,3,4]]],[10,[[10,7,10,0]],10,[[2,6],[4,9,6],[3,4,5,0,2],[]],7]] +[[4],[3],[],[10]] + +[[[[0],7,[1,1,10,2,0]],2,[[10,5,10]]],[[[6],[4,4,6]],[3,[]],9,[[8,3,3],[6],[9,5,7,7],8],10],[]] +[[6],[[[3,10]],[]],[8,10,[],9]] + +[[5,5,[],9]] +[[[[5,6,6,3]],2,[[4],0,7,2]],[[],[[10,5],[],[5],[8,1,0,3,2],3],[[7,3,0],5,0,4,[9,1]]]] + +[[],[[2],7,4],[2,9,10],[[[],[7,4,4,7,3]],[]]] +[[9],[]] + +[[[10,5,4,1,8],7,[5],[8]]] +[[0,10,[]],[],[0,6,[7,[4],[],[9]]],[4]] + +[[[8],[10],9,9]] +[[3,[[1,0,5,1,5]]]] + +[[[4,5,10],[7,[10,3,1],[2,6],10],[[6,0,8,9,6],4,[]],[]],[9,[],10]] +[[],[7],[10,10,[6]],[[[2,4],[6,2,2],0],6],[[[2,3,0,0,2],[6,5,7,2],2,4],6,6]] + +[[1],[[]],[[[9,1,9,5],[6],[9,3,5,2,6],9,[]],6,[],[[2],9,[8,3,1,3,1],[3,10,6]],[[0,9,1,8,2]]]] +[[[8],[[7],[7],5],5,5],[4,[[5,9,10],[]],[[4,7,5,1]],[[10,1,7]],4],[5,[[4,8,4],7,0],[2],[],[8,0,[5,8],[8,5,7,2,8],4]]] + +[[[0,[3,3,10],[],[0,9],5]],[[4,[],[7,2,5],[0,7],[0,10]]],[],[[[1,8]],[[9,7]],5,[[9,1,0,1],5,5,5,[10]],[[9,4,6,6],4,4,[2,6,9,4,7]]],[4]] +[[[[10,8,4,0],[9,10,1]],[],[],[[9,8,4,6],2,9],4],[[2,[6,7,8],10,[],[10,4,3,9]],[5,[9]],5,[6,[10],[7,3,6]],[]],[],[[[5,7],[9,7,7,6,9],[9,10,5],8],[[],3,[0,5,0]],3,6,6],[9,[7]]] diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_14.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_14.tst.data new file mode 100644 index 0000000..c693f8f --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_14.tst.data @@ -0,0 +1,164 @@ +514,127 -> 518,127 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +520,114 -> 520,117 -> 514,117 -> 514,122 -> 533,122 -> 533,117 -> 525,117 -> 525,114 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +518,47 -> 525,47 -> 525,46 +523,73 -> 523,68 -> 523,73 -> 525,73 -> 525,72 -> 525,73 -> 527,73 -> 527,69 -> 527,73 +503,157 -> 507,157 +523,73 -> 523,68 -> 523,73 -> 525,73 -> 525,72 -> 525,73 -> 527,73 -> 527,69 -> 527,73 +517,129 -> 521,129 +525,86 -> 529,86 +522,84 -> 526,84 +523,73 -> 523,68 -> 523,73 -> 525,73 -> 525,72 -> 525,73 -> 527,73 -> 527,69 -> 527,73 +520,114 -> 520,117 -> 514,117 -> 514,122 -> 533,122 -> 533,117 -> 525,117 -> 525,114 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +511,36 -> 511,40 -> 503,40 -> 503,43 -> 519,43 -> 519,40 -> 515,40 -> 515,36 +523,73 -> 523,68 -> 523,73 -> 525,73 -> 525,72 -> 525,73 -> 527,73 -> 527,69 -> 527,73 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +530,111 -> 535,111 +537,94 -> 537,98 -> 536,98 -> 536,102 -> 542,102 -> 542,98 -> 539,98 -> 539,94 +520,131 -> 524,131 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +528,84 -> 532,84 +511,129 -> 515,129 +520,114 -> 520,117 -> 514,117 -> 514,122 -> 533,122 -> 533,117 -> 525,117 -> 525,114 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +539,90 -> 539,91 -> 552,91 -> 552,90 +520,114 -> 520,117 -> 514,117 -> 514,122 -> 533,122 -> 533,117 -> 525,117 -> 525,114 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +508,127 -> 512,127 +507,26 -> 507,28 -> 504,28 -> 504,33 -> 511,33 -> 511,28 -> 510,28 -> 510,26 +537,94 -> 537,98 -> 536,98 -> 536,102 -> 542,102 -> 542,98 -> 539,98 -> 539,94 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +520,114 -> 520,117 -> 514,117 -> 514,122 -> 533,122 -> 533,117 -> 525,117 -> 525,114 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +539,90 -> 539,91 -> 552,91 -> 552,90 +511,125 -> 515,125 +514,131 -> 518,131 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +507,26 -> 507,28 -> 504,28 -> 504,33 -> 511,33 -> 511,28 -> 510,28 -> 510,26 +511,36 -> 511,40 -> 503,40 -> 503,43 -> 519,43 -> 519,40 -> 515,40 -> 515,36 +526,109 -> 531,109 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +497,157 -> 501,157 +539,90 -> 539,91 -> 552,91 -> 552,90 +523,73 -> 523,68 -> 523,73 -> 525,73 -> 525,72 -> 525,73 -> 527,73 -> 527,69 -> 527,73 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +498,134 -> 498,135 -> 509,135 -> 509,134 +503,151 -> 507,151 +531,86 -> 535,86 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +498,134 -> 498,135 -> 509,135 -> 509,134 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +507,26 -> 507,28 -> 504,28 -> 504,33 -> 511,33 -> 511,28 -> 510,28 -> 510,26 +528,80 -> 532,80 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +540,109 -> 545,109 +523,73 -> 523,68 -> 523,73 -> 525,73 -> 525,72 -> 525,73 -> 527,73 -> 527,69 -> 527,73 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +520,114 -> 520,117 -> 514,117 -> 514,122 -> 533,122 -> 533,117 -> 525,117 -> 525,114 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +523,73 -> 523,68 -> 523,73 -> 525,73 -> 525,72 -> 525,73 -> 527,73 -> 527,69 -> 527,73 +536,107 -> 541,107 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +537,94 -> 537,98 -> 536,98 -> 536,102 -> 542,102 -> 542,98 -> 539,98 -> 539,94 +534,84 -> 538,84 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +525,82 -> 529,82 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +520,114 -> 520,117 -> 514,117 -> 514,122 -> 533,122 -> 533,117 -> 525,117 -> 525,114 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +506,154 -> 510,154 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +519,86 -> 523,86 +537,94 -> 537,98 -> 536,98 -> 536,102 -> 542,102 -> 542,98 -> 539,98 -> 539,94 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +537,86 -> 541,86 +511,36 -> 511,40 -> 503,40 -> 503,43 -> 519,43 -> 519,40 -> 515,40 -> 515,36 +508,131 -> 512,131 +507,26 -> 507,28 -> 504,28 -> 504,33 -> 511,33 -> 511,28 -> 510,28 -> 510,26 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +518,47 -> 525,47 -> 525,46 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +509,157 -> 513,157 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +511,36 -> 511,40 -> 503,40 -> 503,43 -> 519,43 -> 519,40 -> 515,40 -> 515,36 +537,94 -> 537,98 -> 536,98 -> 536,102 -> 542,102 -> 542,98 -> 539,98 -> 539,94 +533,109 -> 538,109 +505,129 -> 509,129 +518,76 -> 518,77 -> 529,77 -> 529,76 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +498,134 -> 498,135 -> 509,135 -> 509,134 +537,94 -> 537,98 -> 536,98 -> 536,102 -> 542,102 -> 542,98 -> 539,98 -> 539,94 +537,94 -> 537,98 -> 536,98 -> 536,102 -> 542,102 -> 542,98 -> 539,98 -> 539,94 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +511,36 -> 511,40 -> 503,40 -> 503,43 -> 519,43 -> 519,40 -> 515,40 -> 515,36 +529,107 -> 534,107 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +532,105 -> 537,105 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +500,154 -> 504,154 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +523,111 -> 528,111 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +511,36 -> 511,40 -> 503,40 -> 503,43 -> 519,43 -> 519,40 -> 515,40 -> 515,36 +544,111 -> 549,111 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +518,76 -> 518,77 -> 529,77 -> 529,76 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +537,111 -> 542,111 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +507,26 -> 507,28 -> 504,28 -> 504,33 -> 511,33 -> 511,28 -> 510,28 -> 510,26 +523,73 -> 523,68 -> 523,73 -> 525,73 -> 525,72 -> 525,73 -> 527,73 -> 527,69 -> 527,73 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +507,26 -> 507,28 -> 504,28 -> 504,33 -> 511,33 -> 511,28 -> 510,28 -> 510,26 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +518,76 -> 518,77 -> 529,77 -> 529,76 +531,82 -> 535,82 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 +507,26 -> 507,28 -> 504,28 -> 504,33 -> 511,33 -> 511,28 -> 510,28 -> 510,26 +511,36 -> 511,40 -> 503,40 -> 503,43 -> 519,43 -> 519,40 -> 515,40 -> 515,36 +502,131 -> 506,131 +508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60 +488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148 +490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23 diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_15.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_15.tst.data new file mode 100644 index 0000000..b9ee877 --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_15.tst.data @@ -0,0 +1,38 @@ +Sensor at x=3889276, y=3176133: closest beacon is at x=3738780, y=3090050 +Sensor at x=3545888, y=1389980: closest beacon is at x=3687798, y=2823020 +Sensor at x=2887269, y=2488344: closest beacon is at x=2809378, y=2513386 +Sensor at x=3990278, y=43134: closest beacon is at x=2307159, y=135337 +Sensor at x=3746631, y=2990632: closest beacon is at x=3738780, y=3090050 +Sensor at x=7523, y=59064: closest beacon is at x=278652, y=-182407 +Sensor at x=2662631, y=3349709: closest beacon is at x=2294322, y=3429562 +Sensor at x=3999326, y=3030235: closest beacon is at x=3738780, y=3090050 +Sensor at x=2788203, y=3722031: closest beacon is at x=3009520, y=4176552 +Sensor at x=1872146, y=1228203: closest beacon is at x=1213036, y=1428271 +Sensor at x=231045, y=2977983: closest beacon is at x=-362535, y=2000000 +Sensor at x=2233881, y=421153: closest beacon is at x=2307159, y=135337 +Sensor at x=3915820, y=2609677: closest beacon is at x=3687798, y=2823020 +Sensor at x=2959514, y=2529069: closest beacon is at x=2809378, y=2513386 +Sensor at x=1829825, y=2614275: closest beacon is at x=2809378, y=2513386 +Sensor at x=1031015, y=2036184: closest beacon is at x=1213036, y=1428271 +Sensor at x=3894267, y=3758546: closest beacon is at x=3738780, y=3090050 +Sensor at x=2653530, y=445121: closest beacon is at x=2307159, y=135337 +Sensor at x=1528274, y=1670020: closest beacon is at x=1213036, y=1428271 +Sensor at x=3839068, y=2974837: closest beacon is at x=3738780, y=3090050 +Sensor at x=254225, y=9603: closest beacon is at x=278652, y=-182407 +Sensor at x=2214848, y=3333326: closest beacon is at x=2294322, y=3429562 +Sensor at x=1008775, y=292264: closest beacon is at x=278652, y=-182407 +Sensor at x=2072077, y=6712: closest beacon is at x=2307159, y=135337 +Sensor at x=3344028, y=3459786: closest beacon is at x=3738780, y=3090050 +Sensor at x=984627, y=3991112: closest beacon is at x=2294322, y=3429562 +Sensor at x=198206, y=2034713: closest beacon is at x=-362535, y=2000000 +Sensor at x=460965, y=1150404: closest beacon is at x=1213036, y=1428271 +Sensor at x=2198999, y=3584784: closest beacon is at x=2294322, y=3429562 +Sensor at x=3212614, y=2899682: closest beacon is at x=3687798, y=2823020 +Sensor at x=3797078, y=2864795: closest beacon is at x=3687798, y=2823020 +Sensor at x=2465051, y=2871666: closest beacon is at x=2809378, y=2513386 +Sensor at x=2356218, y=3981953: closest beacon is at x=2294322, y=3429562 +Sensor at x=2389861, y=1856461: closest beacon is at x=2809378, y=2513386 +Sensor at x=2852352, y=2506253: closest beacon is at x=2809378, y=2513386 +Sensor at x=2275278, y=742411: closest beacon is at x=2307159, y=135337 +Sensor at x=1562183, y=3626443: closest beacon is at x=2294322, y=3429562 +Sensor at x=44398, y=534916: closest beacon is at x=278652, y=-182407 diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_16.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_16.tst.data new file mode 100644 index 0000000..ca73ce3 --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_16.tst.data @@ -0,0 +1,57 @@ +Valve ED has flow rate=0; tunnels lead to valves PS, AW +Valve SI has flow rate=0; tunnels lead to valves AA, HX +Valve LX has flow rate=22; tunnels lead to valves DY, YH +Valve CR has flow rate=0; tunnels lead to valves BE, HX +Valve BI has flow rate=0; tunnels lead to valves GC, AY +Valve PB has flow rate=4; tunnels lead to valves IX, YG, RI, KR, BV +Valve YY has flow rate=0; tunnels lead to valves PH, GJ +Valve PH has flow rate=11; tunnels lead to valves YY, VE, ZG, MM +Valve DY has flow rate=0; tunnels lead to valves LX, AW +Valve SD has flow rate=0; tunnels lead to valves AY, EC +Valve SV has flow rate=24; tunnels lead to valves CC, GF +Valve RL has flow rate=0; tunnels lead to valves OW, IN +Valve GF has flow rate=0; tunnels lead to valves RQ, SV +Valve BE has flow rate=5; tunnels lead to valves CR, JC, MF, IT +Valve PR has flow rate=0; tunnels lead to valves BV, GJ +Valve AW has flow rate=21; tunnels lead to valves VE, DY, TR, ED +Valve FY has flow rate=17; tunnels lead to valves GG, KJ +Valve GC has flow rate=0; tunnels lead to valves BI, GJ +Valve RI has flow rate=0; tunnels lead to valves PB, AY +Valve RQ has flow rate=0; tunnels lead to valves HH, GF +Valve IT has flow rate=0; tunnels lead to valves MZ, BE +Valve XG has flow rate=0; tunnels lead to valves BL, AA +Valve MK has flow rate=0; tunnels lead to valves HX, DV +Valve IX has flow rate=0; tunnels lead to valves PB, JC +Valve BV has flow rate=0; tunnels lead to valves PR, PB +Valve TR has flow rate=0; tunnels lead to valves CD, AW +Valve PS has flow rate=0; tunnels lead to valves ED, AY +Valve HH has flow rate=12; tunnels lead to valves RQ, NL, ZQ +Valve AA has flow rate=0; tunnels lead to valves KR, SI, XG, EC, ZG +Valve FT has flow rate=0; tunnels lead to valves IN, YH +Valve YG has flow rate=0; tunnels lead to valves PB, HX +Valve HX has flow rate=14; tunnels lead to valves MK, ZQ, YG, SI, CR +Valve DV has flow rate=0; tunnels lead to valves MK, QR +Valve GJ has flow rate=3; tunnels lead to valves PR, CD, YY, GC, BL +Valve BL has flow rate=0; tunnels lead to valves GJ, XG +Valve CD has flow rate=0; tunnels lead to valves TR, GJ +Valve GG has flow rate=0; tunnels lead to valves FY, NL +Valve JC has flow rate=0; tunnels lead to valves IX, BE +Valve JN has flow rate=0; tunnels lead to valves OW, QR +Valve RM has flow rate=18; tunnel leads to valve KJ +Valve NL has flow rate=0; tunnels lead to valves GG, HH +Valve QR has flow rate=20; tunnels lead to valves CC, DV, PN, JN +Valve ZG has flow rate=0; tunnels lead to valves AA, PH +Valve AY has flow rate=6; tunnels lead to valves RI, PS, SD, BI, MM +Valve VE has flow rate=0; tunnels lead to valves PH, AW +Valve OW has flow rate=25; tunnels lead to valves MZ, RL, JN +Valve MM has flow rate=0; tunnels lead to valves AY, PH +Valve KJ has flow rate=0; tunnels lead to valves RM, FY +Valve MF has flow rate=0; tunnels lead to valves BE, PN +Valve YH has flow rate=0; tunnels lead to valves LX, FT +Valve ZQ has flow rate=0; tunnels lead to valves HX, HH +Valve KR has flow rate=0; tunnels lead to valves AA, PB +Valve PN has flow rate=0; tunnels lead to valves MF, QR +Valve CC has flow rate=0; tunnels lead to valves SV, QR +Valve MZ has flow rate=0; tunnels lead to valves OW, IT +Valve EC has flow rate=0; tunnels lead to valves SD, AA +Valve IN has flow rate=16; tunnels lead to valves RL, FT diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_17.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_17.tst.data new file mode 100644 index 0000000..bda564e --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_17.tst.data @@ -0,0 +1 @@ +>>>><<>><<>>><>>>><<<<>>>><<<<>>><<<>><<<<>><<<<>><<<>><>>><<<>><<<<>>><<>><<<>>>><<<<>>><<<>><<<>><<>><<<<>>><<<<><<><<<>>><<<<><<>>>><<>>>><<<<><<<<><<<<>>><<<>><<>>><><<<>>>><<>><<>><<<<>><<>><<><<>>>><<>>><<>>>><<<<>>><>>>><<<>>><<<<>>><>>><<>>>><<<<>><<<><<<<>>>><>><<<<>><<<><>><><<<><>><<<<>>>><<>>>><<>><<<>>>><<<>><<>><<>>>><>>><<<>><<>>><>>>><<><>>>><<<>>><>>>><>>><<<<><<<<><>>>><><<>>>><<<<><<<<><<>><<<>>><<<><<>>><<<><<<>>>><>>>><<<<>>>><>><<>>>><<<>><<<>>><><<<>><<>>>><<<<>>>><<><<><<>>><><<>>><>>>><<><<<><<<>>><<<>><<<>>>><<>>><<<><>>>><<<>>>><<<>><<<<>><>>>><<<<><<><<<<>>><>>>><>><<<<>><<>>>><<<<>>><<<><<<<>>>><<<><<<<>>><><<>>>><<<<>>><<>><><<>>>><<<>>>><<<><>>><<<><<<<>><<<<><<<<>><<<<>>><<>>><<>>>><<<<>><<<<><>>>><<<<>><<<>><<<><<><<<<>>>><<<<>>><><<<>>><><<<>>>><<<>><<<>>>><<<>><><>><<<>><>>>><>>><<><<>><<>>><<<<>><<<>>>><<<>>><<<<>>><>>><><>>>><<<>>>><<<>>>><<<>>>><<<>>>><<><<>>>><<<>><>>>><<<>>>><<>>><<>>><>>>><<>><<<>><<<>>>><><<<<><>>><<><<<>>>><<>>>><><<><<>>><<<<><<<<>><>>>><><<<>>>><<<>>>><><<><<>><><<>>>><<<<>>><>>>><<<><<>><>><<>>><<<<>>><>>>><<<<>><<><<<<>><<>>><<<>><<><>>><<<<>>>><<>>>><<<<>>><<<>>><>><<<<><<>>><>>>><<<<><<<>>>><<<>>>><<>>><>><<<<>><<<<>>>><<<>><<<<><><<<<><<<><<<<>><>>><<<<>><<>>>><<>><<<><<<<>><<><<>>><<<<>>><<<>>>><<>>><>><<<>><<<<>>>><<>>><<>>>><<>><><<>><<<>>>><<<>>>><<>><<<><<<>>>><<<<>><<<>>>><<<>>>><>><<<>><<>>><<><<<<>>>><<<>>>><<<<>><>>>><<>>><<<<><>>>><<<<><>>>><<<>>><<<><>><<<<>>><<<>>><<><<<><<>><<<<>>>><<<<><<<><<<<>><<<<>><><<><<<<>><>><>>><<<<>>>><<><<<>>><<>>>><<>>>><<<<><<>>>><<>>><>>><>>>><<<>>><>>>><<<<><<<<>>>><<<<>>><<>>><<<<><<<><<>>><<><<>><<<>><<<>><<<><<<<>>><<>>>><<<>>>><<>>>><>>>><<<<>>>><<>>>><<<<>><<>>>><<>><><<>>>><>>>><<>>><<>>>><<>>><<><<<>><<>><<<><<<><><>>>><><>>><<<>>><<>><<>><>>><>><>><<>>>><<<<>><><>>><<<<>>><>><<>>><<<>><<>>>><<<<>>><<<><<>>><>>>><<<><<<>><><<<>>><<<>>><>><<<<>>><<<<>><>><><>>><<>><><<>>><><><>>>><>>>><<>><<<><<<>><<<<>><>>><<<<>><<<>><>>>><<<<>>><<<<><<><>><<<><<<>>>><<<<>>><>>>><>>>><<<<><<><>>><<<<>><<<>><>><<<>>>><<<<>>>><<<>>>><<>><<<>><>>><<><<<<>><<<<><>>>><<>><<<>>>><<<<>>>><<><><><><<<<>><<<>>>><<>>>><<>>>><>>>><>>><>>><<<<>><<<>><>>><><>><<<<>>>><<<><<<<>><><<><><<<>>><<<>><<<>>><><<<<>><<<<><>><><<<><<<>>><><<><<<<><<>><<<>>><<<>><<>>><<<<>>>><>>><<<>><<><>>><<<>>>><<<<>><<<>>><<<<>>>><<>>><<<>>><<><<<<>>>><>>>><<>><<<>><<<<><<<>>>><<>>>><<>><<>><<<>>><><<<<>>>><<<<>>>><><<>><<>>><<<<>>><<><<><<><>>><<>>><<<>>><<<>>>><>>><>><<>>>><>>><>><<><<<<>><<<><<<>>>><<>>><<>>><><<<>><<<>>><>><<><<>>><<<>><<>>><><><<><<<>>><<<<>>>><>>>><<<<>><>>>><<<>>><<>>>><<>>>><>>><<<<>><<<<>><<<<>>>><<<<>>>><<<<>><<<<>><<<>>>><><<<>>><<>>><<<>>><<<<>>><<<<>>><<<<><<>>>><<>>><><<<><<<><><>><>><<>>>><<<<>>><>><<<>><<<<>>><<<><<<>><<<<>>>><<<<>><<<<><<<>><<><>>><<<>>><><<>>>><<>><<<>>>><<<>>>><<>>>><<<>>>><<<<>><<><<<<>>><<<<>>>><<<>>>><>>><<<<>>>><<<<>>><<>>>><<<>>>><>>><<><<<<>>>><<><<<>>><<>><<<><<><<<<>>>><<<<><<<>><>><<<>>><>>>><<<<>>><<><<<>>><<>>>><>>><<>>>><>><>><<<<>>>><<<<>>><<<><<<><<<<>>>><<><<<<>>>><<<><<>><<<<>>>><<<<><<<<>><<>>>><<<>><<><<<>><<<>><<<><>><<>><<<>>>><<>>><>>>><<<<>>>><<>>><<<>>><<<<><<>>>><<<<>>>><>><<>><<><<<>>><<>>>><<<><<<<>><<<>>>><<<<>><><<>>><<><<><>>><<<><<>><<<>>><<>>><<<>>>><>>><<<><>>>><>>>><<<>><>>>><<<<><<<>><<>>>><<<>>>><>><<><<<<>>><<<>><<<>><><<>><<><<<<>><>><<<<>>>><<>>>><<<<>>><<<>><>>>><>>><<<<>>><<<>><<<<>><<>>><<<<><<<<><>>><>>>><>><<>><<<>>>><<<<>><<<<><<<<>>>><>>><<>><>><<<<>>><<<>>><<<><>>>><<<><<<><<>><<<<>>>><<<<><<<<>>><><<<<>><<<<>>><<<<><<><<<><>>><<<<>>>><<<>>><<<<>>>><<<<>><<<>><<<<>><<<><<<<>>>><<<<><<><<<<>>>><<>>><<>><<><>>>><<<>>><>><<<><<<<>>>><>>>><<<>>><<<<>>>><>>>><<<<>>>><<<<>><<<<><<><<><><<<<>>><<<<>>>><<<<>><<<>>><>>><<<>>>><<<<>><<<<>>>><<<<><<>>><><<<<>><<><<<>>>><><<<<>><<<<>>><<<>><<>>>><<<><<<<>>><<>>><<>>><>><<>>>><<>>><<<>>><<<<>>><<<<><<>>><<<><<<>>>><<>><<<>>><<<<>>>><<<>>><<<>>><<<><<<<><>>>><>>><<>>><>>>><<<<><<<><<<<>>>><<<<>>><>>>><>><<<<>>><<<<>><<<>><<>><<<<>>><<<<>>><<<<>><<><><<>><<<<>><<<><>>>><>><<>>><><<>><>>>><><<<>>><<<><<<<>>><<><<<>>><<><>>><<<<>><<<>>>><<<>>>><<<>>><<<<>><<<<>>><<<<><<<><<>><>>><<<><>>><>>>><><<>>><>>>><<<<>>><<<<>>><<<>><>><<<>>>><<<><<<>>>><<<<>>><<><<>>><<>>>><>>>><<<<>>><<>>>><<>><<<<>>><<<<><<<><><<<>>><<<<><<<<>>><<<>><<><>>><<<>><<><<<>>>><<<<><<<>>>><<<>>><<><>>>><>><<<>><<<<>>><<<<><<<<>>><<>>>><<><>>><<<>>>><><><<<<>>><<<>>><>>><<<><<<>>><<<><><<<<>>>><>><>>><<<<>><><<>>>><<<>><<<>>>><<<<>><<<><<>>>><>>>><<<>><<<<>><<<<>><>><<<>>>><><<><<><<<><>>><>><<><<>><<<><<<<><<<<>>>><>>>><<<<>>>><<<>><<<>><<>>>><<<>>><<>><<<>>><<>>><<>>>><<<>><<<>>><<<<><<>><>><>><<>>><<><>><<<>>>><<><<>>><<<<><<><<<>>><<<>>><<<>><<<>>>><<>>>><<<<><<>><<<>>><>>><<>><<<><<<><<>>>><>>><<<>><<<<><>><<<<>>>><<<>><<>><<><<>>><><<><>><<<<>>><<>>>><>>><<<>><>><<<><<><<<<>><<<<>><<>>>><<<>>><<<<>>><<<>>><<<><<<<><<<<><<<<>>>><<>>>><<<<>><>>><<<>>><<<<>>><>><<<<>>><<<<>>><><<<<>>>><<<><<<>><<>><>><<><>>>><<<>>>><<<<>><<<>>>><<>>>><<<<><<><<>><<<<>>>><<<<>>>><<<<>>><<<<><<<><>>>><<<<>>>><><<<<>>>><><<<><<>>>><>>><<<<>><>>>><>>>><<<<>>>><<<>><<<>>><<>>>><<<>><>>><<<>><<<<>>>><<<><<>>><<<>>><<>>>><>>><>>>><<<<>>><>><><>>>><><>>>><<>>><><<<<>>>><>><<>>><<<>><<>>>><>><<>><<<>><<<<>>><<<<>>><<<<>>><><<<<>><<><<>><>><<<<>><<><>>><<<>>>><>><<<><<<>><<<<><>>><<<>>><<<<>><<><<<<>>><>>><>>><<>>><<<<>>><<<><<<>>><<<><<<>>>><>>>><<>>>><><<>>>><<>>>><<<<>>>><>>><<<<>><<>>><<><<<<><<<>>><>>>><<<>><<><>><<<>>>><>>>><<<><<>>>><<<<>><<>>>><>>>><<<>>><<<<><<<><<<<><<<<><<<<>><<<>>><<<>><<>>><>>><>>>><<<<>>><<<<>><<<<>><<>><>><<<<><><<><<<>>>><<<><>><<<<>><<<<>>>><<<<>>>><<>>>><<<<>>>><<<<><<<<>><<<>>><<>>>><>>><<<>>><<<>>><<>>>><<>>>><<>><<<>><<>><<<>><<>>><<>>>><>><>><<<<>>><<>><>><<>>>><>>>><<>><<<<>><<<><<>><<<<>>><<<<><<<>>>><<<<><<<>>>><<<>>><<<<>><<<><<<<><<<<>>>><>>>><<>>>><<<>>>><<<<><<><>>>><>><>>><<<>><>>>><>><><<>>><><<>><><<<>><<<>>>><<<>><<<>>>><<<>>>><>><>><<<>>>><><<<<>><<><>><<>>>><<<>>><<<<><<>>><<<<>>>><<>>>><>>>><<>>>><<<>>>><>>>><>><<<<>>><<<<>>><<<<>><<<<>><<<>>><<<>>>><>><>>><<<>><>>><<<><<>>><<>><><<<<>>><><<>>><<><>>><>>><<<<>><<><>>>><<>>><<>>><<<>><<<<>><<>>><<<>>>><<<<>>>><<>>><<>><<<<><<<>>>><<>>><>>><<<>>>><<<>><<<><>>><>>><<<><<>>>><<<<>>><<<><<<>>><<<<><<<>>><<<<>>><<<<>><<<<>><<>>><<<>>>><<<<>>>><<>><<<<>><>><<>><<<>>>><<><><<>><>><<><<>>>><<<><<<<>>><<<><>><<>>><<<<>><<<>><<<<>>><>><><<<>>><><<<<>>>><<<><<<<>>><<<<>><<<><><<<<>>><<>><>>>><<>>><<<<><<>><>><<>>><<><<<<>>>><<><<<>>><<>>>><<<>>>><>>><<<>>><<>><<<<>><>>><<><<<><>>>><>>>><<<<>>>><<<>><<<<>>><<<>>>><<<<><<>>><<<<>><<<><><>>>><<><<>>>><>>>><<><<<>>><<<<><<<<>>><>>><<<>><<>>><>>><<<>>><<<<>>>><<<><>><<<>>><<>>>><>>>><>>>><<<<>>><>><<>>>><>>><<<>>>><><<>>>><<<><<<<>><><<<<>>><><<>><>>>><<>><<<<>>><>><>><>>><<>>><<>>>><><>><<>>>><<<><<<>>><>>><<<<>><<>>>><<<<>>>><<<<>><<<<>>><<>><<>>>><>>>><>>>><><<<><<<<>>><><<><>>>><<<<>><<>><<<>><<<<>>>><<<><<<<>>>><<<>>><<<<>>><>>>><<<<>><<>>><>>><<>>>><<<<>><<<><<<>>>><><<<><<>><<<>>>><<>><<<<>>>><>><<<<>>><<>>><><>>><>><<<>><>><>>>><<<<>><<<>>><<<><<<<>>><<<>>>><<>>>><<><<<<>>><<<<><<<<>><>><<>>><<<<>>><<<>>><<<>>>><<<<>>>><<<>>><<<><<<<><<<>>>><<<<>>>><<<<>>><>>><<<>>><<<<>><<>><<<>><<<>>><<<<>>><<><<<>><<<>>>><<<<>>>><<<<>><<>>>><<<<>>><<>>>><<<<>>><<<<>>>><>>><<<<>>>><<<>>>><<><<<>><<>>><><>>><<><>>>><<<<><<><<<<>>>><<>>>><>>>><<<<><<>>>><<<<><<<<>>><<<>>>><<>>>><>>><><<<<><<<<>>>><>>>><<><<<><>>>><><><<>>>><>>>><>>>><><<<>><<<>>>><<>><<>>>><<><<><<<>>><<<>>>><<>><<<>>>><>>><<<><<<<>>><>>><<<<>>><<><<>>>><<<>><<><<<>>>><<<<>><<<<>>>><<><<><<<>>>><>><<<>><<>>>><<<<>>><<<>>><<<>>><>>><><<<>>><<<>>><<<>><<<<>>>><><<<>>>><<>>><<>>>><>>>><>><>>><>>>><<<><<<<>>><<>><<><<<>>>><<<>>><<><<<>>><<>>>><>><><<>>>><><>><>>>><<>><<<<>><<>>>><>>>><><>>>><<<<>>>><<<<>>>><<>>><<<>><<<<>>><>>><<<<>><<>>><<<<><<<>><<<<>>><<<>>><>><>>><<<<>>>><<<<>><<<>>>><>>><<>>><>>>><<<>><<<>>>><><<<>>>><<<>>>><<<<>>>><<><<><<<>><>>><<<<>>>><<<<>>>><<>>>><<<><<>><>>>><<<<>>><>>>><<<<>><<<>><<>>><<>>>><<>>><><<<<>>><<>>>><<<><<><<>><>><<<>>>><>><<<>>><><>>>><>>><>>>><<<<><<<<>>>><<<<><<<<><<<>>><<<<><<<<>>><<<<>>><<<>>>><<<<>>>><<>>><<>>><<<><<>>><<<<>>><>><<<>>>><<<>><<<<>><<>>><>>><<<>><<<>>>><><<<><<><<>><>>>><<<>><<<><<>>><<<>>>><><<<>><<<>>><<>>><>>><<<<><<<><>>><<<>>>><>><<<<>>>><>>>><><<>>><>><>><<<<><<<>>><<<><<<>>><<<>>><<<<><<>>><<<><<<><<<<><>>><<>>>><<>>>><<>>><<<>>>><<><>><<<><<<<><<>>>><<<<>>>><>>>><<<>><>>>><<<><<>><><<<<><><<<<><>>><<>>>><<<>><>>>><<><><<<<>><<<>>>><<>>>><<<<>><<<<>><<<>><<<><<<<><<><<<>>><>>><<>><<<>><<<>>><>>>><><><<<<>><<><>><<<<>>>><<<<><<<<>>><>>><<<>>><<<><<<><<>><>><<<>><<><<<<>>>><<<>>>><<<>>>><<>>><<><>>><><>>><<<<><<<><<<>>>><<<<>>>><<<<>>>><>><<<><><><<<>>><<<><<<>><<>>>><<<><<<<>>><><<<>>>><>><<<<>>><<<<>>><>>>><<<>>><<<<>><<>><<<<>><<<><>>><<<<>><>><<<><<>><<<>>><<<<>>>><<>><<<>>>><<>><<<><<<<>>><<>>>><><>>>><<>>>><<<<>><>><<>>><<>>><<><<>>>><<<><<<>><><<<>>><<<>>>><<>><>>>><<>><<<<>>><<<><<<><<<><<<>>><<<>><<<>><><><>><<>>>><<<<>>>><<>><<>><<<><<<<>>>><<<<><>><>><>><<<><<<>>>><>><>>>><><<<<><><<<<><<>><<>>>><<<<>>><<<>>><<<<>><<<<><>>>><<>>><<<>>>><>>><<>>><<<>>><<<>><<>>>><<<><<<<>><>><><<<<>>><<>>><<>>><<><<<><<<<>><>><<>><><<<><<><<<<>>><<<<>><<<><<<><<>>>><<><>>><<>>><>>><<>><<>><<<<>>><<<<>>>><>>><>><<<<>>>><<<>><<<<>><<<><<><<<<><<><<<<><>>><<<>>>><<<<><<<>>><>>>><<<<>>>><<<<><<<><><>>>><><<<<>>>><>><>>><>>>><>>><<>><<>>>><<<>>>><<>><><<<><<<><<<><>>>><<<>>>><<<<>>>><>>>><>>>><<>>><<<>>>><<<><<<<>><<<<>>>><<<>>>><<<>><<<><<<><<>>>><<<<><><<<>><<<><>>><<<>><>><<<<>>>><>><<>><<><>><<<>>>><>>><<<>>><<<<>>>><>>>><<>><>>>><>>>><<<>><>>><>>><<>>><<<<><<>>><<<<><<<<><<><<<<>>>><>>>><<<<>>>><<<>>>><<<<>>>><>>>><<<>>>><<<>>><>>>><<<<><<<<>><<<><<>>><<<<><<>>><<>>>><<<>>><<<>>><<>>><>>><<>><<>>>><<<<><<<<>>>><<<>><<<<>>>><>>><<<>>><>>><<>>>><<<>>><<<>><<>><<<>>>><>><<><<>>><>><>>><<<<>>>><<<<>><>><<>><>>><<<<>>><<<<>>>><><<<>>>><<<<>>><<<<>><>>><<>><>><>><<>>><<>>><<<>>>><><<<<>>>><<<>><<<<>>><<<<><><<<<><<>><<<<>><>><<<<>><<>><>>><<>><<>>>><<<>><<<>>>><<<>>><<<>>><<>>><<<<><<>>><<>><<<<>>>><<<<>>>><<<<>>>><< diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_18.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_18.tst.data new file mode 100644 index 0000000..ff3599f --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_18.tst.data @@ -0,0 +1,2150 @@ +13,2,10 +3,6,9 +11,17,9 +7,2,11 +14,6,5 +13,16,8 +9,7,2 +3,9,14 +8,3,5 +3,12,9 +7,3,7 +13,2,13 +4,6,5 +13,4,9 +4,8,10 +15,5,8 +17,14,11 +13,17,11 +13,7,2 +11,14,4 +8,9,17 +14,7,15 +4,10,4 +9,12,2 +8,5,13 +14,15,6 +15,14,11 +8,16,10 +2,13,10 +8,18,8 +14,14,5 +3,5,7 +18,8,10 +13,14,11 +6,8,17 +14,10,16 +15,6,6 +16,13,10 +14,4,7 +5,3,5 +10,14,2 +4,13,5 +12,10,1 +6,7,15 +5,10,3 +6,15,13 +14,13,3 +13,14,16 +9,6,16 +10,14,16 +13,16,10 +4,3,10 +2,11,6 +9,12,16 +8,1,8 +9,2,7 +16,10,16 +5,10,15 +16,5,12 +5,11,13 +7,15,8 +5,14,14 +3,8,8 +5,16,6 +5,12,16 +11,16,4 +3,6,10 +8,12,2 +9,10,2 +4,12,8 +9,13,17 +7,12,16 +5,16,13 +12,11,18 +4,10,17 +5,14,6 +5,13,13 +3,7,5 +6,16,11 +3,11,5 +15,11,15 +4,6,14 +5,2,8 +5,13,12 +14,6,16 +3,5,8 +15,15,14 +15,8,15 +16,7,4 +10,4,3 +17,12,7 +7,16,7 +6,10,17 +9,2,9 +10,18,9 +15,7,8 +16,16,12 +3,4,11 +16,15,11 +13,16,5 +13,4,6 +13,3,13 +15,12,11 +14,3,11 +9,16,11 +3,13,8 +13,6,15 +6,14,6 +12,2,11 +3,5,12 +7,17,8 +5,15,5 +8,11,2 +14,3,10 +11,16,8 +4,12,4 +10,11,3 +16,7,12 +5,5,14 +2,7,10 +13,7,17 +16,5,11 +15,6,13 +8,8,18 +3,10,5 +2,6,11 +10,4,5 +12,7,17 +3,9,6 +17,7,11 +10,5,16 +17,6,11 +10,2,12 +7,10,18 +8,16,11 +11,15,15 +16,10,5 +10,16,4 +4,16,6 +15,4,11 +2,9,9 +3,7,6 +5,3,6 +10,16,5 +13,15,11 +3,4,9 +3,8,12 +6,5,4 +2,9,8 +2,7,7 +16,14,14 +15,10,15 +16,10,13 +9,14,4 +2,7,6 +13,3,11 +17,13,10 +12,2,10 +8,16,13 +16,11,11 +12,10,17 +6,15,11 +10,17,13 +6,10,4 +8,12,4 +3,11,14 +9,5,4 +15,6,14 +6,6,4 +14,5,5 +17,10,9 +18,11,11 +5,4,5 +15,5,15 +12,5,13 +3,8,7 +13,3,14 +13,8,3 +3,5,10 +10,17,7 +15,15,13 +14,13,15 +5,14,12 +12,3,11 +14,13,5 +13,17,9 +5,8,17 +8,2,11 +10,11,2 +9,5,1 +11,3,9 +14,4,10 +11,12,2 +10,14,17 +17,11,11 +11,16,11 +9,11,1 +5,4,13 +17,9,10 +2,11,12 +10,9,17 +12,16,7 +16,12,8 +11,7,1 +12,8,17 +18,7,11 +10,4,17 +5,5,3 +2,10,13 +8,5,14 +3,9,10 +6,5,14 +7,7,2 +8,2,7 +15,9,16 +10,14,4 +5,15,7 +14,13,12 +17,14,8 +16,11,8 +15,6,15 +3,11,15 +10,6,2 +11,14,16 +10,5,14 +2,8,11 +12,4,16 +9,17,12 +4,4,11 +12,16,6 +2,9,6 +15,7,10 +7,8,2 +11,2,11 +5,6,3 +11,18,8 +4,10,10 +12,4,15 +2,14,10 +7,11,2 +13,11,16 +2,9,11 +4,14,6 +12,8,18 +4,7,15 +8,12,17 +3,15,7 +15,16,8 +3,7,15 +10,2,13 +12,16,11 +15,4,13 +14,10,2 +12,15,15 +5,12,15 +12,15,4 +9,10,18 +9,8,2 +14,15,12 +3,13,11 +13,17,10 +2,10,12 +6,17,7 +15,14,7 +8,2,6 +11,5,5 +7,8,3 +4,7,8 +9,3,11 +13,4,3 +14,3,8 +13,4,4 +14,15,5 +4,6,7 +6,14,7 +6,2,7 +6,5,5 +11,3,6 +10,15,5 +6,3,13 +13,14,6 +13,14,15 +3,9,7 +14,3,7 +8,9,18 +14,8,12 +13,3,8 +15,15,9 +7,16,4 +6,18,9 +10,15,3 +6,16,12 +9,14,2 +12,3,8 +9,11,15 +4,15,9 +8,2,9 +8,11,1 +14,11,15 +11,11,1 +1,11,9 +14,7,13 +6,10,16 +15,12,5 +12,3,7 +15,11,7 +12,13,14 +12,10,3 +5,4,7 +12,13,17 +6,9,17 +14,8,3 +2,9,10 +17,9,6 +4,15,5 +4,13,6 +10,12,16 +3,8,4 +11,1,9 +2,6,13 +2,12,4 +11,10,17 +13,15,16 +9,2,6 +6,11,3 +3,7,13 +8,15,13 +15,7,7 +3,12,12 +17,9,11 +13,13,15 +12,2,7 +5,9,15 +7,15,13 +9,4,16 +9,14,14 +11,10,2 +16,8,12 +10,3,5 +11,18,9 +11,13,15 +3,14,9 +8,18,13 +8,10,17 +6,13,3 +5,13,14 +7,4,5 +15,14,8 +8,18,10 +4,5,10 +16,6,11 +15,13,10 +12,16,9 +9,5,16 +4,14,10 +11,17,11 +12,17,10 +17,8,8 +15,3,12 +14,11,17 +16,5,9 +11,8,1 +5,12,3 +9,3,7 +14,7,3 +16,11,14 +15,9,7 +14,11,6 +11,1,7 +2,12,10 +6,3,8 +3,5,9 +10,10,2 +4,6,11 +4,10,8 +6,12,17 +13,3,10 +8,9,1 +4,5,12 +3,13,7 +14,5,4 +10,2,6 +3,14,10 +17,6,8 +15,13,7 +9,5,15 +10,5,4 +11,14,15 +16,5,8 +8,3,11 +4,15,6 +16,15,8 +16,8,6 +13,15,13 +2,6,12 +3,14,15 +16,7,14 +5,14,5 +10,16,14 +17,7,9 +14,15,7 +4,7,5 +14,14,4 +6,7,17 +0,10,7 +6,16,8 +17,15,9 +4,8,14 +14,14,6 +5,5,8 +13,13,4 +3,12,5 +7,17,11 +13,14,14 +15,8,3 +3,10,14 +8,6,1 +7,3,8 +6,12,16 +17,10,8 +11,8,17 +17,8,6 +14,5,6 +7,2,7 +12,16,15 +14,3,14 +17,9,7 +12,18,6 +3,14,12 +15,12,15 +14,5,13 +17,11,6 +7,13,2 +3,6,7 +17,8,5 +14,15,9 +13,11,3 +16,14,11 +8,17,11 +13,6,2 +10,17,14 +12,12,15 +5,7,16 +7,14,4 +7,2,9 +5,6,4 +15,14,5 +16,3,7 +14,4,4 +4,13,9 +9,16,15 +8,17,8 +15,6,11 +11,12,16 +14,17,7 +5,15,6 +16,11,12 +5,16,10 +12,4,6 +3,13,10 +1,8,9 +7,2,10 +7,13,17 +19,9,11 +6,11,16 +9,18,10 +16,11,4 +13,7,16 +10,3,7 +15,13,13 +8,11,4 +5,15,12 +17,10,6 +14,12,15 +17,13,8 +6,13,15 +7,7,16 +10,2,8 +4,13,13 +9,15,14 +9,4,3 +6,4,8 +5,10,16 +4,7,16 +13,10,16 +5,6,15 +8,10,16 +7,16,6 +7,7,17 +3,11,12 +12,7,1 +16,12,15 +6,16,6 +10,17,11 +7,5,13 +10,14,13 +16,7,5 +11,13,17 +7,7,4 +6,5,13 +9,16,6 +4,9,4 +13,16,13 +5,11,5 +5,3,8 +11,4,9 +17,9,9 +6,4,7 +15,9,6 +8,5,16 +3,12,14 +12,17,9 +3,8,9 +6,2,8 +15,9,14 +2,6,10 +18,11,7 +4,3,8 +12,11,16 +17,13,7 +2,10,6 +1,13,7 +16,6,6 +6,14,14 +12,10,2 +3,5,5 +15,9,15 +15,5,6 +3,6,14 +9,5,3 +11,3,11 +7,5,15 +13,11,4 +7,5,5 +13,8,16 +15,13,6 +2,7,8 +16,14,10 +6,6,15 +15,16,9 +10,17,10 +8,4,6 +6,16,13 +17,4,10 +5,9,3 +9,13,2 +6,17,9 +9,13,16 +7,9,18 +9,17,10 +11,2,9 +17,7,7 +7,2,12 +8,13,17 +16,11,5 +18,7,9 +12,13,2 +9,15,9 +9,2,11 +13,3,15 +1,10,12 +3,12,10 +14,4,8 +13,15,5 +7,13,16 +3,15,9 +15,12,16 +12,4,13 +10,6,17 +11,10,18 +6,17,10 +14,6,10 +12,5,15 +7,9,1 +7,5,17 +5,3,9 +13,15,7 +4,4,8 +7,8,17 +3,12,13 +17,8,13 +9,3,12 +1,14,9 +4,14,12 +9,16,16 +10,10,17 +5,8,16 +6,16,15 +11,15,3 +12,9,2 +2,8,6 +6,11,17 +7,8,16 +6,6,3 +3,6,6 +6,2,10 +7,15,12 +9,4,2 +11,3,14 +16,15,13 +13,14,13 +16,15,7 +14,9,7 +6,3,7 +15,16,11 +5,15,13 +2,10,4 +5,11,14 +15,14,14 +7,3,10 +12,15,14 +7,5,4 +14,11,3 +7,1,11 +13,2,12 +5,2,9 +10,4,16 +9,17,6 +6,8,4 +15,5,5 +12,2,6 +3,8,6 +7,12,17 +12,16,10 +16,13,8 +15,3,8 +17,9,8 +10,2,9 +12,8,5 +16,7,13 +14,16,8 +4,12,16 +8,3,6 +7,18,6 +12,5,5 +10,2,14 +17,6,12 +7,9,17 +5,3,10 +15,4,14 +14,2,10 +12,6,4 +7,16,12 +6,17,8 +15,9,4 +15,7,13 +7,9,4 +6,3,6 +2,13,7 +3,12,8 +3,8,15 +8,3,8 +7,16,5 +12,6,2 +3,12,4 +6,10,2 +17,8,10 +11,2,10 +6,16,9 +8,15,4 +9,9,18 +17,13,9 +3,9,13 +9,15,12 +12,11,3 +18,7,8 +12,4,5 +9,5,6 +10,7,2 +2,8,7 +2,8,13 +10,6,16 +9,3,15 +3,7,4 +1,9,9 +13,16,12 +11,5,15 +4,8,16 +14,4,9 +5,6,14 +11,7,18 +12,12,3 +17,6,7 +16,6,13 +14,15,14 +11,11,17 +15,5,11 +7,15,14 +10,3,16 +15,15,5 +2,11,7 +13,13,16 +5,5,4 +7,5,3 +12,3,15 +14,14,7 +8,16,14 +4,10,13 +5,8,13 +17,14,10 +16,12,5 +5,17,12 +2,10,11 +10,1,10 +16,11,6 +11,3,5 +18,9,12 +16,13,12 +15,10,3 +13,2,8 +2,12,7 +8,7,16 +6,15,14 +15,7,3 +16,6,10 +12,15,12 +9,15,4 +10,12,3 +3,13,9 +8,6,4 +8,5,15 +5,3,13 +16,14,5 +4,12,5 +18,12,9 +16,6,9 +16,14,8 +8,5,4 +10,7,3 +13,4,5 +6,14,4 +8,10,2 +12,16,13 +12,11,17 +10,6,5 +4,5,7 +18,8,9 +17,6,9 +9,16,9 +17,8,7 +6,9,2 +10,8,2 +4,16,8 +8,17,14 +8,15,15 +14,12,13 +16,10,9 +8,16,6 +2,9,13 +2,8,14 +5,10,14 +7,15,3 +10,4,15 +5,8,15 +4,10,15 +14,7,6 +15,6,12 +9,16,4 +13,16,11 +5,5,13 +12,3,14 +10,15,2 +8,2,13 +13,12,15 +3,3,9 +4,4,6 +14,7,4 +6,14,12 +14,7,17 +5,9,4 +13,4,13 +8,12,16 +8,2,14 +3,13,12 +10,18,6 +17,11,5 +13,9,3 +14,16,12 +2,13,12 +11,14,17 +8,17,12 +4,14,13 +14,8,2 +11,2,6 +8,13,3 +9,4,15 +10,2,15 +12,11,4 +2,14,9 +4,14,5 +15,4,9 +7,2,13 +9,16,10 +9,12,17 +13,5,4 +16,4,12 +11,16,13 +7,3,14 +7,13,3 +12,7,16 +14,12,16 +9,16,7 +11,12,4 +11,3,12 +13,18,7 +16,9,14 +16,14,6 +1,7,7 +16,12,10 +16,8,14 +14,10,4 +15,10,14 +14,14,15 +15,15,6 +12,14,4 +11,6,3 +16,9,6 +17,12,11 +5,6,5 +8,17,9 +17,8,4 +5,4,14 +17,12,10 +6,4,5 +4,4,10 +15,6,5 +18,6,9 +4,12,9 +12,7,3 +8,10,18 +16,12,13 +9,5,5 +5,13,15 +14,4,12 +4,7,6 +10,9,2 +1,12,10 +12,2,8 +7,14,3 +8,9,2 +3,6,11 +17,9,12 +6,3,9 +4,8,4 +16,7,6 +4,10,16 +5,14,13 +5,15,9 +12,16,4 +6,7,2 +12,2,13 +8,5,3 +9,9,2 +10,6,3 +12,4,11 +11,2,7 +9,10,4 +11,16,5 +13,12,3 +11,8,2 +1,10,8 +9,15,17 +7,11,16 +5,5,11 +11,14,3 +11,17,8 +12,16,8 +4,4,5 +10,3,15 +8,4,5 +1,7,8 +4,2,7 +3,7,14 +11,6,2 +13,17,7 +15,11,3 +13,15,12 +6,5,15 +1,6,10 +4,13,4 +6,2,13 +8,3,13 +5,4,6 +15,12,4 +9,7,17 +14,7,16 +8,11,18 +14,12,4 +7,16,10 +13,2,11 +12,9,18 +10,1,9 +18,9,11 +14,12,5 +9,17,7 +17,7,12 +5,14,9 +13,9,1 +10,5,15 +16,11,16 +4,3,11 +3,4,12 +4,5,5 +14,12,3 +10,6,4 +12,15,7 +2,9,12 +8,6,15 +3,14,11 +9,16,5 +17,11,9 +7,17,7 +3,7,3 +13,10,17 +2,12,13 +7,3,11 +13,7,3 +3,5,6 +11,17,6 +16,10,11 +13,4,14 +6,7,3 +11,7,16 +3,6,13 +9,16,12 +13,16,7 +9,2,10 +9,15,15 +6,12,2 +11,15,5 +5,11,6 +5,13,5 +16,4,9 +13,3,9 +16,8,15 +13,11,2 +9,3,5 +8,16,5 +14,3,12 +4,11,3 +9,2,12 +2,10,8 +3,8,14 +5,11,4 +6,14,11 +16,10,12 +9,17,8 +4,7,7 +7,16,11 +10,9,1 +6,5,12 +12,4,7 +15,14,9 +8,12,18 +14,6,14 +8,7,3 +8,8,17 +8,4,14 +2,8,9 +14,5,14 +4,4,14 +13,3,6 +2,12,11 +6,10,15 +14,8,15 +16,5,13 +11,13,4 +16,13,6 +1,10,6 +17,6,10 +5,7,2 +8,6,17 +11,4,4 +15,4,7 +13,3,5 +13,17,5 +13,4,8 +13,5,14 +8,3,4 +8,3,10 +10,13,2 +8,8,2 +17,11,10 +14,14,14 +11,4,5 +14,16,7 +3,14,8 +8,3,14 +9,3,16 +15,14,12 +12,11,2 +15,4,6 +7,10,17 +5,7,5 +5,5,5 +16,14,9 +11,12,17 +8,7,18 +9,10,1 +11,11,3 +11,2,13 +9,16,14 +6,15,15 +11,2,8 +9,12,18 +3,7,7 +14,15,8 +4,6,8 +4,11,4 +7,4,6 +13,9,15 +6,7,5 +7,15,16 +12,9,1 +10,12,2 +2,11,9 +13,3,12 +3,4,10 +3,8,3 +16,10,4 +10,13,3 +4,4,7 +3,10,12 +9,9,17 +7,14,16 +6,17,12 +6,8,3 +7,18,10 +2,12,9 +8,9,3 +2,5,10 +9,1,8 +17,6,13 +12,3,6 +2,11,8 +2,7,9 +8,4,15 +17,14,9 +16,8,4 +17,12,13 +12,3,5 +10,3,13 +2,10,14 +7,16,8 +5,10,2 +14,5,8 +9,14,16 +11,6,4 +17,5,11 +16,6,7 +16,11,9 +13,16,6 +7,4,14 +5,7,6 +10,5,3 +3,6,12 +14,5,15 +3,10,15 +12,4,3 +8,6,2 +9,8,17 +6,16,7 +12,11,1 +4,12,6 +7,6,3 +12,4,12 +8,14,4 +2,11,11 +14,17,13 +8,16,12 +13,15,4 +6,12,3 +9,16,8 +10,9,0 +7,10,2 +15,10,4 +16,5,6 +12,6,16 +16,9,5 +17,11,15 +5,15,10 +3,12,11 +15,6,9 +6,11,4 +13,10,4 +14,16,11 +12,18,8 +13,10,3 +15,12,7 +11,16,10 +4,7,4 +13,15,6 +10,5,2 +11,7,15 +7,2,8 +17,7,10 +10,17,8 +14,10,3 +15,9,17 +18,11,9 +6,6,16 +13,6,4 +6,4,13 +8,7,17 +7,3,4 +2,13,8 +12,1,6 +5,9,16 +13,5,6 +10,17,12 +13,11,17 +7,12,3 +14,9,15 +11,13,16 +14,9,14 +14,8,4 +12,14,3 +16,13,4 +11,9,2 +2,6,9 +4,9,7 +16,11,10 +17,11,8 +3,4,8 +5,14,11 +3,5,11 +4,14,11 +14,17,12 +3,7,9 +5,11,3 +11,11,2 +11,16,16 +9,16,13 +5,13,4 +15,11,4 +13,15,14 +14,11,14 +10,8,4 +11,7,3 +6,15,5 +11,5,3 +15,15,7 +11,16,15 +16,4,7 +7,16,13 +6,12,15 +3,9,15 +9,15,5 +9,1,10 +10,19,11 +14,4,6 +6,13,2 +18,12,11 +3,15,11 +12,13,16 +9,17,13 +16,10,14 +8,15,5 +6,3,15 +9,11,17 +14,9,17 +12,6,6 +4,9,15 +7,18,8 +9,1,12 +1,10,9 +11,5,17 +17,11,12 +12,18,11 +11,9,4 +14,9,16 +2,12,5 +5,4,9 +17,7,8 +3,10,3 +14,16,13 +6,7,4 +17,12,9 +8,17,5 +10,3,6 +13,3,7 +7,3,9 +8,9,16 +4,14,8 +10,11,16 +10,3,14 +5,17,11 +1,7,11 +0,9,10 +4,7,14 +4,13,14 +8,5,17 +17,13,12 +4,13,15 +17,7,5 +8,10,3 +6,6,6 +7,15,15 +6,12,18 +11,4,15 +4,2,6 +19,10,12 +11,1,12 +4,15,8 +13,10,14 +15,4,12 +15,13,4 +8,14,16 +11,15,6 +4,14,15 +16,6,4 +17,9,14 +12,2,5 +12,14,15 +11,10,16 +4,3,12 +12,16,12 +16,13,11 +10,7,18 +12,3,12 +5,6,13 +13,6,1 +13,4,10 +5,16,8 +15,12,14 +13,16,14 +10,16,13 +16,8,11 +7,14,17 +9,8,1 +15,14,15 +7,4,12 +15,8,4 +11,4,3 +11,18,7 +4,4,9 +5,4,12 +8,3,12 +6,16,10 +1,7,9 +4,11,15 +4,17,11 +4,12,14 +13,17,8 +2,10,10 +12,7,15 +18,9,9 +8,2,12 +14,6,2 +3,7,8 +9,8,3 +5,16,7 +13,9,2 +0,10,8 +13,7,4 +18,11,6 +5,11,17 +3,7,11 +8,17,10 +10,3,10 +1,10,7 +7,9,2 +12,13,4 +15,11,16 +9,18,13 +13,4,7 +11,9,17 +10,15,14 +16,10,15 +7,4,13 +12,9,17 +4,8,12 +10,10,1 +5,7,13 +14,17,9 +14,14,12 +15,12,13 +5,6,16 +18,9,7 +18,11,12 +12,8,3 +4,5,8 +6,7,16 +11,12,18 +16,12,14 +9,2,14 +12,8,16 +2,6,8 +6,5,16 +7,17,6 +8,1,10 +1,13,10 +10,16,15 +2,13,13 +9,3,13 +14,13,14 +14,5,9 +15,10,16 +14,9,4 +5,14,8 +6,6,17 +18,10,13 +15,15,12 +3,10,7 +11,16,9 +10,2,7 +8,18,7 +14,4,5 +8,13,4 +7,12,2 +7,4,7 +16,15,9 +10,9,18 +14,6,15 +11,7,17 +17,10,14 +14,11,4 +14,13,16 +10,8,19 +4,13,3 +11,13,14 +2,7,11 +13,17,13 +14,7,5 +10,1,8 +5,17,9 +3,9,5 +9,8,18 +7,18,9 +11,10,3 +2,8,12 +14,9,3 +10,18,8 +1,9,8 +15,8,5 +4,9,12 +4,6,4 +11,3,13 +15,10,5 +1,9,12 +3,11,7 +8,7,2 +17,9,13 +9,12,1 +3,11,11 +7,2,6 +4,11,16 +5,11,15 +12,6,3 +7,14,5 +15,13,14 +5,17,10 +12,12,17 +3,12,6 +13,11,1 +8,3,15 +10,7,16 +3,9,8 +3,7,10 +12,7,2 +5,12,5 +4,11,13 +11,9,16 +6,2,12 +11,6,6 +10,17,9 +6,12,4 +9,6,3 +3,13,13 +3,5,13 +7,17,12 +11,13,3 +3,10,11 +16,15,10 +2,9,7 +11,11,18 +2,15,9 +17,6,4 +3,6,5 +12,6,15 +14,8,14 +2,8,10 +10,8,1 +10,2,11 +5,3,7 +5,13,2 +12,10,15 +9,2,5 +4,12,15 +2,12,8 +16,13,14 +6,3,11 +16,8,8 +16,13,5 +4,12,3 +15,7,15 +5,5,15 +17,8,15 +10,13,16 +8,1,7 +7,9,3 +9,13,3 +13,13,3 +5,2,12 +13,14,4 +13,5,15 +9,10,17 +11,4,13 +9,3,14 +7,15,4 +13,6,16 +3,5,14 +11,17,13 +2,13,6 +7,6,17 +11,5,16 +2,12,12 +16,11,15 +16,10,10 +4,16,12 +16,9,4 +8,14,7 +7,13,15 +11,17,5 +10,2,5 +16,7,10 +13,5,9 +15,12,6 +12,2,12 +4,13,10 +6,14,16 +9,9,16 +12,15,13 +2,7,5 +10,1,7 +12,1,12 +7,3,5 +13,14,5 +7,14,15 +16,9,10 +16,12,7 +2,10,7 +4,7,12 +4,6,12 +3,15,13 +5,14,10 +7,7,1 +12,16,16 +18,10,8 +4,10,14 +2,12,6 +12,5,16 +5,12,4 +11,15,16 +17,10,13 +11,2,14 +3,13,5 +17,8,9 +13,8,15 +10,3,11 +1,8,11 +3,9,12 +4,8,13 +4,11,9 +4,15,10 +7,11,3 +15,7,6 +14,5,11 +8,11,17 +15,8,13 +10,12,1 +16,9,16 +10,2,4 +17,5,9 +14,11,16 +5,10,4 +17,10,7 +10,8,17 +15,5,7 +15,12,12 +11,17,12 +16,7,7 +14,6,3 +8,4,16 +8,14,3 +4,8,15 +10,15,4 +15,5,9 +18,9,8 +15,14,13 +7,4,11 +12,2,15 +6,9,4 +15,7,16 +10,6,1 +16,9,3 +14,15,10 +8,2,10 +6,4,11 +12,14,17 +10,5,6 +10,3,12 +16,15,6 +14,16,6 +5,3,11 +16,8,13 +9,15,16 +12,5,3 +10,15,17 +12,12,16 +9,6,2 +8,6,18 +12,7,4 +15,10,2 +1,6,11 +5,4,8 +15,14,6 +6,4,16 +10,9,3 +4,4,12 +16,8,10 +11,14,11 +8,4,4 +12,13,3 +15,10,13 +6,15,4 +17,11,7 +1,10,10 +14,4,13 +7,11,1 +11,5,13 +10,11,1 +1,9,10 +5,5,7 +2,8,5 +9,3,8 +10,1,11 +15,5,4 +11,16,6 +6,15,16 +12,5,14 +8,7,1 +9,1,11 +14,11,2 +8,4,3 +13,10,15 +14,2,11 +5,13,3 +5,8,4 +12,16,5 +6,8,2 +17,8,11 +6,2,9 +1,11,8 +13,14,12 +13,5,13 +8,11,3 +6,4,15 +4,10,5 +13,13,14 +7,12,14 +3,13,4 +8,5,8 +4,17,9 +10,16,6 +17,7,6 +7,4,4 +9,5,13 +6,8,14 +10,16,12 +15,3,11 +17,5,12 +4,15,13 +9,7,18 +11,9,15 +18,9,10 +4,5,11 +15,3,6 +15,5,12 +3,14,5 +13,6,3 +9,11,2 +6,11,15 +10,15,15 +14,16,10 +3,11,6 +4,12,13 +14,14,10 +7,16,9 +10,17,5 +8,6,3 +6,9,18 +1,9,11 +11,11,15 +16,8,5 +2,11,10 +13,8,17 +6,1,9 +5,2,11 +0,8,9 +11,1,11 +6,16,5 +17,11,13 +12,3,13 +4,12,17 +18,13,8 +6,15,6 +2,8,8 +14,5,7 +6,14,5 +13,13,5 +1,10,11 +12,1,9 +15,5,13 +11,2,12 +4,15,7 +10,15,16 +13,12,4 +16,8,7 +5,6,10 +14,8,16 +9,13,6 +10,4,14 +14,4,14 +9,8,16 +12,15,16 +14,2,9 +15,5,10 +10,4,4 +7,17,13 +8,17,4 +11,15,14 +7,3,13 +14,7,14 +10,2,10 +2,11,13 +15,14,10 +10,16,7 +9,8,4 +8,16,15 +4,5,4 +5,12,14 +14,6,13 +16,4,10 +16,12,9 +15,12,3 +6,13,16 +11,16,12 +13,13,2 +5,4,11 +18,11,10 +16,13,13 +6,3,10 +17,10,10 +14,13,6 +16,6,15 +15,4,10 +17,10,11 +6,10,3 +10,14,7 +12,9,16 +4,9,5 +11,15,7 +11,12,3 +11,4,7 +9,11,3 +11,9,3 +16,14,12 +13,6,13 +15,9,13 +9,17,9 +9,6,1 +1,8,10 +7,2,14 +6,16,14 +7,5,2 +5,13,6 +14,11,5 +7,2,15 +11,6,17 +4,9,14 +14,14,11 +8,6,16 +3,9,3 +8,13,16 +16,9,7 +6,14,3 +4,9,3 +3,8,13 +15,3,10 +11,9,18 +3,8,5 +17,6,6 +4,3,9 +6,8,16 +13,2,6 +17,15,11 +14,6,4 +4,8,3 +10,10,3 +2,5,9 +9,13,18 +12,4,14 +6,17,11 +2,13,9 +9,7,1 +5,14,7 +8,14,15 +10,10,18 +11,3,15 +3,15,8 +11,15,4 +13,7,15 +14,6,6 +6,9,3 +13,17,12 +8,8,1 +10,4,13 +6,11,18 +12,13,15 +3,11,13 +16,13,7 +10,4,6 +7,6,15 +10,16,16 +5,9,14 +1,6,9 +7,15,11 +7,9,5 +4,5,13 +6,9,6 +12,3,9 +7,7,3 +17,6,5 +14,15,13 +9,11,18 +4,12,7 +6,6,5 +14,3,13 +7,15,5 +6,4,12 +4,6,13 +6,11,5 +7,1,8 +11,18,12 +5,7,12 +16,15,12 +3,14,7 +9,4,14 +3,11,8 +5,17,7 +12,16,14 +9,18,9 +10,12,17 +14,16,9 +6,11,1 +17,5,8 +11,3,4 +10,0,12 +8,17,13 +9,4,12 +4,2,10 +7,13,4 +14,2,7 +18,12,10 +3,7,12 +14,17,11 +11,10,1 +6,6,14 +7,17,10 +13,2,7 +11,16,14 +10,7,1 +7,4,15 +12,4,2 +12,9,3 +3,11,10 +11,5,4 +5,7,14 +16,13,15 +13,9,17 +4,2,11 +7,16,14 +4,11,14 +15,6,4 +16,6,5 +15,7,14 +12,17,12 +5,17,8 +1,12,12 +14,13,8 +10,13,4 +7,18,7 +17,10,12 +5,15,14 +17,8,12 +10,14,3 +7,14,14 +9,1,9 +10,11,18 +5,12,17 +7,6,18 +16,6,8 +6,5,3 +16,5,7 +9,11,16 +11,14,2 +3,10,4 +3,12,7 +6,4,6 +7,17,9 +9,6,17 +5,8,3 +7,13,18 +4,11,5 +6,6,2 +17,12,12 +6,14,15 +11,7,2 +4,9,16 +17,12,8 +5,16,14 +12,4,4 +13,15,8 +9,9,15 +4,8,7 +10,3,3 +13,14,7 +11,15,8 +14,12,14 +13,13,17 +10,16,8 +1,12,9 +12,18,10 +15,10,17 +13,5,3 +7,11,18 +8,18,11 +12,10,16 +14,8,5 +4,6,15 +6,4,14 +6,9,16 +18,6,7 +6,7,6 +16,9,15 +16,5,10 +16,7,11 +9,14,3 +14,5,12 +13,4,15 +16,6,14 +15,9,2 +3,16,9 +17,13,11 +16,10,6 +4,6,9 +10,16,10 +14,15,11 +6,15,10 +7,10,16 +8,13,2 +8,2,8 +2,11,5 +4,11,12 +6,6,13 +6,1,10 +13,12,17 +8,3,7 +3,8,10 +16,3,9 +15,3,13 +5,13,16 +1,11,13 +15,13,15 +15,2,9 +13,2,9 +14,14,8 +13,9,4 +3,13,6 +13,8,2 +7,1,10 +11,13,2 +14,10,17 +3,9,11 +6,5,7 +4,14,14 +8,6,5 +14,4,11 +7,7,15 +12,1,13 +12,5,6 +16,7,15 +15,13,12 +8,15,6 +4,14,7 +9,3,9 +3,11,4 +10,18,10 +9,12,3 +13,5,10 +15,13,11 +12,5,4 +14,9,2 +15,15,11 +5,16,9 +4,7,11 +17,6,14 +12,14,16 +6,15,7 +2,4,12 +11,11,16 +4,14,9 +2,15,11 +4,15,15 +10,18,12 +7,7,5 +9,13,15 +18,8,13 +10,18,11 +11,2,5 +15,9,5 +5,5,6 +7,15,7 +1,8,8 +11,4,12 +16,13,9 +11,14,12 +11,14,5 +9,4,4 +16,9,13 +15,9,3 +15,11,12 +15,16,10 +4,5,6 +1,11,6 +8,18,9 +9,3,4 +4,5,9 +5,18,9 +4,5,14 +8,8,16 +15,13,5 +5,9,2 +10,8,16 +8,4,11 +4,6,3 +3,6,8 +13,6,17 +10,19,9 +14,3,4 +14,14,13 +9,17,14 +6,5,6 +0,10,10 +16,11,13 +11,17,7 +16,10,7 +4,6,6 +11,6,15 +8,12,3 +11,13,18 +12,8,1 +1,7,12 +15,4,8 +16,4,11 +14,3,9 +13,11,14 +11,4,14 +17,14,7 +12,1,11 +8,14,5 +18,10,10 +2,10,5 +4,9,13 +6,18,7 +16,7,9 +15,13,16 +17,4,9 +15,17,11 +8,11,16 +9,4,17 +12,3,10 +3,15,10 +11,3,8 +4,16,11 +8,17,7 +4,13,11 +13,9,18 +10,4,12 +16,11,7 +3,9,4 +15,8,14 +6,14,13 +13,6,14 +2,5,8 +6,4,4 +6,12,5 +5,16,11 +10,6,15 +11,4,10 +11,3,7 +18,8,8 +5,7,3 +3,9,9 +18,10,11 +14,13,4 +16,12,6 +4,2,9 +7,11,17 +11,18,11 +9,7,16 +7,6,5 +13,17,14 +6,4,3 +3,16,8 +7,16,15 +8,16,4 +7,8,18 +10,11,4 +7,9,16 +2,9,14 +9,4,7 +10,0,9 +15,6,7 +13,11,15 +12,12,2 +9,18,11 +8,5,2 +10,12,18 +4,10,2 +4,8,11 +13,12,5 +15,15,8 +13,8,4 +3,15,5 +5,8,5 +7,3,6 +5,10,13 +8,13,1 +17,10,15 +9,9,1 +9,15,3 +8,4,2 +7,17,5 +11,16,7 +10,15,7 +6,3,5 +11,5,2 +13,10,2 +6,18,11 +6,11,2 +4,10,3 +8,10,1 +13,14,3 +3,10,8 +10,6,18 +11,9,14 +5,9,5 +8,5,5 +14,3,6 +1,9,7 +5,13,7 +10,3,4 +8,8,3 +5,16,12 +4,14,4 +8,18,12 +6,3,12 +18,12,6 +9,4,11 +4,4,13 +3,3,12 +1,8,12 +15,11,13 +13,12,16 +5,6,8 +18,6,11 +6,9,5 +15,7,9 +2,6,6 +12,17,7 +4,15,11 +6,13,4 +12,14,5 +3,3,7 +9,1,14 +14,8,6 +7,10,4 +2,14,7 +14,17,8 +3,10,16 +12,14,14 +10,10,16 +4,7,9 +14,6,7 +8,4,13 +16,5,5 +12,8,2 +6,9,1 +11,1,8 +1,7,10 +5,5,16 +13,15,15 +3,7,16 +7,5,7 +7,3,12 +4,13,7 +9,4,5 +14,14,3 +8,14,6 +10,8,3 +5,8,6 +9,18,8 +13,8,5 +13,12,2 +5,10,17 +18,8,12 +9,4,9 +3,10,6 +10,9,16 +9,17,11 +12,13,5 +15,7,12 +8,15,7 +17,4,11 +3,3,8 +8,15,16 +5,7,4 +4,4,15 +13,5,5 +13,16,9 +16,12,12 +10,6,13 +7,12,5 +18,10,12 +9,3,10 +10,3,9 +5,14,15 +6,1,11 +17,7,13 +18,13,10 +12,17,6 +10,7,17 +17,13,13 +2,7,13 +6,18,12 +15,12,8 +12,6,17 +8,17,6 diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_19.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_19.tst.data new file mode 100644 index 0000000..2c947d1 --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_19.tst.data @@ -0,0 +1,30 @@ +Blueprint 1: Each ore robot costs 3 ore. Each clay robot costs 3 ore. Each obsidian robot costs 2 ore and 20 clay. Each geode robot costs 3 ore and 18 obsidian. +Blueprint 2: Each ore robot costs 3 ore. Each clay robot costs 3 ore. Each obsidian robot costs 3 ore and 16 clay. Each geode robot costs 3 ore and 9 obsidian. +Blueprint 3: Each ore robot costs 4 ore. Each clay robot costs 3 ore. Each obsidian robot costs 4 ore and 8 clay. Each geode robot costs 2 ore and 8 obsidian. +Blueprint 4: Each ore robot costs 3 ore. Each clay robot costs 4 ore. Each obsidian robot costs 3 ore and 18 clay. Each geode robot costs 4 ore and 16 obsidian. +Blueprint 5: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 3 ore and 19 clay. Each geode robot costs 4 ore and 15 obsidian. +Blueprint 6: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 8 clay. Each geode robot costs 4 ore and 14 obsidian. +Blueprint 7: Each ore robot costs 2 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 11 clay. Each geode robot costs 3 ore and 8 obsidian. +Blueprint 8: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 2 ore and 7 clay. Each geode robot costs 3 ore and 10 obsidian. +Blueprint 9: Each ore robot costs 3 ore. Each clay robot costs 3 ore. Each obsidian robot costs 3 ore and 15 clay. Each geode robot costs 2 ore and 8 obsidian. +Blueprint 10: Each ore robot costs 2 ore. Each clay robot costs 4 ore. Each obsidian robot costs 2 ore and 20 clay. Each geode robot costs 2 ore and 17 obsidian. +Blueprint 11: Each ore robot costs 2 ore. Each clay robot costs 3 ore. Each obsidian robot costs 2 ore and 16 clay. Each geode robot costs 2 ore and 9 obsidian. +Blueprint 12: Each ore robot costs 2 ore. Each clay robot costs 4 ore. Each obsidian robot costs 3 ore and 19 clay. Each geode robot costs 4 ore and 13 obsidian. +Blueprint 13: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 17 clay. Each geode robot costs 4 ore and 20 obsidian. +Blueprint 14: Each ore robot costs 2 ore. Each clay robot costs 3 ore. Each obsidian robot costs 2 ore and 17 clay. Each geode robot costs 3 ore and 19 obsidian. +Blueprint 15: Each ore robot costs 4 ore. Each clay robot costs 3 ore. Each obsidian robot costs 3 ore and 14 clay. Each geode robot costs 4 ore and 17 obsidian. +Blueprint 16: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 9 clay. Each geode robot costs 3 ore and 9 obsidian. +Blueprint 17: Each ore robot costs 2 ore. Each clay robot costs 4 ore. Each obsidian robot costs 3 ore and 20 clay. Each geode robot costs 2 ore and 17 obsidian. +Blueprint 18: Each ore robot costs 3 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 17 clay. Each geode robot costs 4 ore and 16 obsidian. +Blueprint 19: Each ore robot costs 4 ore. Each clay robot costs 3 ore. Each obsidian robot costs 4 ore and 5 clay. Each geode robot costs 3 ore and 10 obsidian. +Blueprint 20: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 2 ore and 7 clay. Each geode robot costs 4 ore and 13 obsidian. +Blueprint 21: Each ore robot costs 3 ore. Each clay robot costs 4 ore. Each obsidian robot costs 2 ore and 20 clay. Each geode robot costs 4 ore and 7 obsidian. +Blueprint 22: Each ore robot costs 2 ore. Each clay robot costs 3 ore. Each obsidian robot costs 2 ore and 14 clay. Each geode robot costs 3 ore and 8 obsidian. +Blueprint 23: Each ore robot costs 4 ore. Each clay robot costs 3 ore. Each obsidian robot costs 2 ore and 19 clay. Each geode robot costs 3 ore and 13 obsidian. +Blueprint 24: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 15 clay. Each geode robot costs 4 ore and 20 obsidian. +Blueprint 25: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 2 ore and 14 clay. Each geode robot costs 4 ore and 15 obsidian. +Blueprint 26: Each ore robot costs 4 ore. Each clay robot costs 3 ore. Each obsidian robot costs 4 ore and 8 clay. Each geode robot costs 3 ore and 7 obsidian. +Blueprint 27: Each ore robot costs 3 ore. Each clay robot costs 3 ore. Each obsidian robot costs 4 ore and 19 clay. Each geode robot costs 4 ore and 7 obsidian. +Blueprint 28: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 2 ore and 11 clay. Each geode robot costs 4 ore and 8 obsidian. +Blueprint 29: Each ore robot costs 3 ore. Each clay robot costs 3 ore. Each obsidian robot costs 2 ore and 15 clay. Each geode robot costs 3 ore and 9 obsidian. +Blueprint 30: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 17 clay. Each geode robot costs 2 ore and 13 obsidian. diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_2.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_2.tst.data new file mode 100644 index 0000000..18f755a --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_2.tst.data @@ -0,0 +1,2500 @@ +B Z +A Y +A Y +B X +A Y +B X +A X +B X +B X +B X +C Y +C Y +A X +A Y +A Y +B X +A X +C Y +B Z +A X +B Z +C Y +C Z +A X +C Z +A Y +A X +B Z +B X +A Z +B Z +A X +A Z +B X +B X +C Y +B X +A X +A Y +C Y +B Z +C X +A X +B Z +B Y +B X +A Z +B Z +B Z +A X +B Z +B X +C X +A X +B X +B X +B Z +B X +B Z +A Y +B Z +B X +C Y +A Y +C Y +B Z +A Y +B X +A Y +C Y +A Y +B Z +B Z +C Z +B X +A X +C X +B Y +A Z +C Z +B Z +A Y +A X +B Z +C Z +B X +B Z +A Y +B X +A Y +A Y +A X +C Y +B X +B Z +C Y +B X +B X +C Z +C Y +C Y +A X +B Z +A X +A X +B Y +A Y +B Z +B Z +B Z +A Y +A X +A Y +B X +B Z +A X +B X +B X +C Y +B Z +A X +A Y +B Z +A X +B Z +A Z +A Y +A Z +B Z +A X +A Z +A X +C Y +A Y +A X +B Z +C Z +B Y +B Z +B X +A X +C Y +B Z +B Y +B X +B X +A X +C Y +A Y +B X +A Y +A Y +A Y +B X +A Z +A Y +B X +A X +A Z +B X +B X +C Z +C Y +B X +B X +A Y +C Y +C Y +A X +B Z +B Z +A Y +C Y +B Z +A Y +A Y +A X +B Z +B X +A X +A X +B X +A X +B X +A X +B X +A X +B Y +B Z +A X +B X +B X +B Z +A X +B Z +A Y +B Z +A X +A Z +B X +A X +A Y +C Y +C Y +B Z +A X +C Y +A X +B X +A Y +A X +B X +B X +A Y +A X +A X +A Z +C Y +A X +B X +A X +A X +A X +A Y +A Y +C Z +C Z +A Y +B Z +A X +B X +C Y +B Z +B Z +C Y +C Y +A Y +A Y +A Y +A Y +C Z +A Y +B Z +B Z +C Z +C Y +C Y +C Y +C Y +C X +A X +B Z +B Z +B Z +B Z +C Y +B Z +A X +A X +A X +B Z +A Y +C X +B Z +A X +A Y +B Z +C Z +B X +A X +B Z +A X +A Y +B X +C Y +B X +B Z +A X +B X +B X +A X +B X +B Z +B X +A X +B X +B X +B X +B Z +B X +B Z +C Y +A X +A X +C Y +C Z +A Y +B Z +B Z +A X +B Z +A Y +A X +A Y +A Y +A Y +B Z +C Y +A X +A Y +A Z +B X +A Z +B X +B X +B X +A X +A X +C Y +B X +A X +B Z +A Y +A Y +A X +B Z +A Y +B X +A Y +B Z +C Y +A Y +C X +B X +B Z +C Y +A Y +A X +A X +B Y +C Z +B Z +A Y +A X +A Y +A X +A Y +A Y +A X +A Y +A Z +B X +A X +C Y +A X +C X +A Y +A X +A Y +A X +A X +B X +A X +B Z +A X +C Z +B Z +B Z +A Y +B X +B X +A Y +B X +B X +C Y +A Y +C X +C Y +B Z +A Y +A X +C Z +A X +B X +B X +C X +A Y +B Z +A X +A Z +C Y +B Z +C Y +C X +A Y +B Z +B Z +A Y +B Z +B X +B X +B Z +B Z +B X +C Y +A Y +A X +A Y +B Z +A X +A Y +A Y +A X +B X +A Z +A X +B Z +B Z +A X +C Y +C Y +A Y +A X +A Y +B Z +B Z +B X +B Z +A Y +A X +A Y +A Y +A Z +C Y +C Z +A X +C Y +A Y +A X +A Y +A X +C Z +B Z +B X +B X +B X +A X +A Z +B Z +B X +B X +B X +B X +B X +B X +C Y +B X +B Z +A X +C Z +A X +C X +B Z +A X +A Y +A Z +C Y +B X +C Z +C Y +A Z +B Z +C X +A Y +A Z +B Z +B Z +B Z +A X +A X +B X +A X +B Y +A X +A Y +A Y +B X +A Y +B X +C Z +A Y +C Y +A X +A X +A Y +B X +B Z +A X +B X +B Z +A Z +C Z +B Z +B X +A X +A X +B X +A X +A Y +A Y +B Z +A X +A X +A X +A X +C Y +C Z +A X +A Z +A X +B X +A X +B X +B Z +B X +C Y +B Z +A X +B Z +A Z +A Y +A Y +A X +A X +B Z +A Y +A X +A X +B X +B Z +A Z +A Y +A Z +B X +B Z +A Y +A Z +B X +B Z +A Z +A Y +A Y +A X +A Y +B Z +A Y +A X +A X +A Y +A Y +A X +A Y +A X +C Y +B Z +B X +B X +B X +A X +B Z +B Z +A X +B Z +A Y +C Y +C Y +A Y +B Z +B X +C Y +A X +A Z +B X +B X +C Y +A X +B X +B Z +A Y +A X +B Z +A Y +A Y +C Z +B Z +B Z +A X +C Y +A Y +A Z +A Y +C Z +B Z +A Y +C Z +B X +A X +B X +B X +C Y +A Y +B Y +A Y +B X +A Y +A Y +B X +B Z +B X +A Y +A Y +C Y +C Y +A Y +C Y +A Z +B Z +A X +A Z +A X +C Y +A X +A X +B Z +B Z +C X +C Z +A X +C Y +B Z +B X +A Y +A X +A X +B Z +A X +A Y +A Y +A X +B Z +C Y +A Y +B Z +A Y +B X +A X +A X +A Y +A X +B Z +C Y +A X +A Z +B Z +B Z +A X +C Y +A X +B X +A X +A X +B X +A X +B X +B Z +C X +A X +C Y +C Y +B Z +B X +C Y +C X +A Y +B X +A Y +B Z +C Z +B Z +A Y +A X +B X +A Y +A Y +B Z +B X +A Y +B X +A X +A Y +B Z +B X +A Z +A Y +A X +A Y +B Z +B Z +A X +A X +B Z +A X +B Z +A X +B X +B X +A X +A Y +B X +A Y +A X +B X +B X +B Z +B X +C X +B Z +A Y +B Z +A Y +A X +B Z +B X +B X +C Y +B X +B X +A X +A Y +A X +B X +C Y +C Z +A X +B X +B X +A Y +B Z +B X +A X +B X +C X +A Y +A Y +A Y +A Y +C Y +A Y +A Y +A X +A Y +B X +A Z +A X +B Z +B X +A X +B Z +A X +B Y +A X +A X +A Y +B X +B Z +C X +A X +A X +A Y +B Z +C Z +A X +C X +B Z +B X +B X +B Z +B Z +A X +C Z +A Y +A Y +B Y +B X +B Y +A X +B Z +B Z +A X +B X +A X +B Z +A Y +A Y +B Y +A Y +A Y +A X +B X +A X +B Z +B X +B Z +C Y +A X +B Z +A Z +A X +A X +B X +B X +A Z +B X +A X +A Z +A X +A Z +A Y +A X +A Z +C X +A X +C Y +B X +A X +B X +B X +B X +B X +A X +B Z +B X +A Y +B X +A Y +B X +B X +A Y +B X +A X +A X +A Y +B Z +A Z +B Z +C Y +B Y +A Y +A X +A Y +B Z +A X +B Z +B X +A X +B X +B X +A X +A Y +B Z +C Y +A Y +B Z +C Y +A X +C Y +A Y +A Y +A X +C Y +A Y +B Z +B Z +A Y +B Z +B Z +C Y +A X +A Y +A Y +C Z +A X +A Y +A Y +A X +A Y +B X +A Y +A X +A Y +B X +B X +A Y +A Y +A Y +C Y +A X +A X +B X +A X +B Z +C Y +B Z +C Y +A X +C Z +C Y +B Z +B Z +A Y +B X +B Z +C Y +A X +A X +A X +B Z +A X +A Y +B Z +C X +C Y +A Z +A X +C Y +A X +A X +B X +C Y +A Z +B Z +C Y +B X +A X +A X +C Y +A X +A X +B Z +B X +A X +A Y +B X +A X +A X +B X +C Y +A Y +C Z +A Y +B Z +A X +B X +B X +A X +B X +B Y +A X +C Y +A Y +A Y +B X +A Y +B X +B Z +A Y +C Y +C Y +A Z +B Z +C Z +B Z +A Z +A Y +B Z +A X +B Z +A Z +A Z +B Z +B X +A X +A X +A X +B X +A X +A Y +C Y +B Z +B X +A X +B Z +B X +B Z +A X +B X +B X +B X +A X +B Z +A X +B X +A X +C Y +A X +A Y +A Z +C Y +A Y +A X +C Y +B Z +A X +B Z +A X +B Z +B Z +B Z +C Z +A Z +B X +A X +A Y +A Y +A Y +B X +C X +A Y +A X +A X +C Y +A Y +A Y +B X +C Y +A Z +A Z +A Y +C Y +B Z +A Z +C Y +A X +B X +B X +B X +A X +C Z +C Y +B Z +B Z +A X +A Y +A Y +A Y +C X +A Z +A X +B X +B Z +B Z +A Z +A X +B Z +A Y +B Z +C X +A X +B Z +A Y +A Y +A X +B Z +B X +A Y +A Y +A Y +A Y +A Z +A X +C Y +A Y +A Y +C Y +C Y +B X +C Y +A X +A Z +B Z +C Y +A Z +A X +A Z +A Y +C Y +B Z +A Y +B X +B X +A X +B X +A Z +B Z +A X +A X +C Y +A Y +C Y +C Y +B X +A X +C X +B X +B Z +A Y +B Z +A X +A Y +B Z +B Z +A Y +A Y +A X +A Y +B Z +A Y +B Z +C Y +C Y +B X +A Z +A Y +C Y +B X +B Z +B X +C Y +B Z +A Y +A Y +B Z +A X +A Z +B X +A X +C Z +B X +B X +B X +C X +C Y +B X +A Y +B Z +B X +B Z +C Y +A X +A Y +A X +B X +B Z +B Z +A X +B X +C Y +C X +B Z +A X +A Y +B Z +B Y +C Y +C Y +A Y +B Z +B X +A Y +B Z +A X +A X +A Y +B Z +A Y +A X +B Z +A X +C Y +A Y +C Z +B Z +C Y +B Z +A Y +C Y +A X +A Y +B X +B Z +B X +B Z +A Y +B X +A Y +B Z +A Y +C Y +A X +A X +B Y +B X +A Y +C X +B Z +B Z +A Y +C Z +B X +A X +A Y +B Z +C Y +C Y +A Y +A Y +B X +C Y +A Y +B X +A X +B X +B Z +A X +A Y +B X +B X +C Y +B Z +A X +A X +B X +C Y +B X +A X +A X +B X +C Z +C Y +B X +B Z +A X +A Y +C Y +A Y +A Y +A Y +B X +C Y +B X +A X +A Y +A X +B Z +A Z +B X +A Y +B X +A Y +B X +B Z +A X +A X +B Z +A X +A Y +B X +B Z +B Z +A X +A Y +A Y +A X +A X +B X +B Z +B Y +A X +C Y +A Y +C Y +A Y +C X +B X +B X +A X +B Z +A X +C Y +B X +C Y +A Z +A X +B Y +A X +B X +B Z +A Z +C Y +A Y +A Z +A Y +A X +A Y +A X +A X +A X +B Z +B Z +C X +A X +C Z +B X +C X +B Z +B Z +A Z +B X +A Y +B Z +C Y +A X +C Y +C Y +B Z +A Y +A Z +A X +B Z +B X +C Z +C Y +A Y +C Z +B X +B Z +C Y +A X +B X +C Z +B Z +C Y +B X +A Y +B Z +C X +A Z +A X +A Y +B Z +B X +B X +B X +B Z +A Z +A X +B Z +B X +A X +A Y +B X +B X +A X +A X +B X +B X +C Y +A Y +C Z +A Y +A Y +A X +B X +B Z +A X +B X +A X +B X +A Y +C Y +A Y +A X +A Y +A Y +C Y +B Z +B Z +A X +A Y +C Y +C Y +A Y +A X +A X +C Y +B X +A Y +B Z +C Y +B Z +A X +A Y +A X +B Z +B X +C Y +A Z +C X +A Y +A X +C X +B X +A Y +A X +B Z +B Z +C Y +A X +A Y +A Y +B X +A Y +A X +C Y +B X +C Y +A Y +A Y +A Y +A X +A X +C Z +B X +C Y +B Z +A X +A Y +B Z +C X +B Z +A X +C Y +C Y +B Z +B Z +A X +C Y +C Y +A Y +C Y +B X +B Z +A Z +C Y +A Z +B Z +A X +B Z +A X +B Z +A X +A Y +A X +B Z +A X +A X +A X +B X +C Y +B Z +B X +A Y +A Y +C Y +B X +A Z +C Z +C Y +A X +A Y +A X +B Z +A X +B X +C Z +A Y +C Y +A Y +A Y +A Z +C Y +A X +B Z +C X +B Z +A X +B Z +B Y +A X +C Y +A X +A Y +B X +A X +B X +A Z +A X +A Y +B X +A Y +B X +C Y +B X +A X +A Y +A X +B X +A X +A X +B X +A Y +B Y +A X +A Y +A X +B X +C Y +A X +A Z +C Y +A Y +C Z +B X +B Z +A Y +C X +A Z +A X +A X +B Z +C X +A Y +A X +A Y +A X +A Y +B Z +B X +A Z +B Z +A X +A Y +B X +B Z +A Y +B Z +C X +B Z +A X +B X +B X +C Y +B X +B Z +A X +A Y +B X +A X +B Z +A X +B Z +B Z +C Y +C Y +B Z +B X +B Z +A X +A Y +A X +B X +B Z +A Y +B Z +B X +B X +B X +B Z +B Z +A X +B X +A Y +B X +C Y +B Z +B Z +B X +C Z +A Y +A Y +B Z +B Z +A X +C Z +A Y +A X +A Y +B X +C Y +A Y +A X +B X +B Z +A Z +A Y +A Z +A X +B X +B X +A Z +A Y +A X +C Y +A Y +A X +C Z +A X +B X +A Y +B X +A Y +A X +A Y +B Z +B Z +C Z +A Y +A X +A Y +A Z +A Y +B Z +B X +A X +A X +B Z +C X +A Y +A X +A Z +C X +C Y +B Z +A Y +B X +B Z +C X +B Z +A Y +B Z +B X +A Y +B Z +B X +A X +B Z +C Y +A Y +B Z +A X +A X +B Z +A X +C Y +A X +B X +B Z +B Z +C Y +A X +B Z +C Z +B Z +A Y +B Z +B Z +A X +B Z +A X +B X +A X +A X +B Z +B X +A Z +B Z +B X +B Z +B Z +B Z +B Z +A Y +B X +A Y +B Z +B X +A X +A X +B X +B Z +C Y +B Z +B X +B Z +B Z +C Y +A X +A Y +B X +A Z +B Z +B Z +A X +A Y +B Z +A Z +A Y +A Y +A Y +A Y +C Y +B Z +A X +A X +B X +A Y +A Y +A Y +A Y +B X +B Z +C Y +B X +B X +A Y +B X +B Z +A X +C X +B X +B X +B X +C X +C Y +A Y +A X +B X +A Z +C X +B Z +C Y +B Z +A Y +A X +B X +B X +B X +A Y +B Z +A Z +C Y +A Y +A X +B Z +C Y +A Y +A X +B Z +C Z +C Y +A Y +A X +A Y +C Z +A Y +B Z +B X +B X +C Z +C Y +C Y +C Z +A Y +A Z +C Z +A Y +A X +B Z +A Y +A X +C X +A Y +C Y +C Y +A X +B Z +B X +A Z +B X +A X +C Y +A Z +B Z +A X +B Z +B X +A Y +C Z +B X +B Z +C Y +A X +B Z +B X +A Y +B X +C X +A X +A X +A X +A X +C Y +C Y +A X +B Z +A X +A Y +A Y +A X +A X +B Z +B Z +B X +A Y +A Z +C Y +A X +A Y +B Z +B X +B X +A X +C X +B Z +C Y +C Z +B Z +A X +B Z +A Y +A Y +A Y +C Z +C Y +A Y +C Y +A Y +A X +B Z +B Z +B X +C Z +A Y +C X +B Z +A Y +B Z +B X +B Z +A X +A X +B Z +C Y +A Z +A Y +B Z +A Z +C Y +B Z +B X +A X +B Z +B X +A X +B Z +A X +A X +B Z +C Y +B Z +A Y +A X +A X +C X +A Y +B Z +C Y +A Z +C Y +B X +A X +B X +C X +C Y +B Z +B Z +A Y +A Z +B X +B Z +A Y +B X +A Z +C Y +C Z +C Y +A Y +C X +C X +B X +A Y +A X +B X +B X +C Z +C X +A X +A Y +B X +B X +C X +B Z +A Y +B Z +A Y +B Z +C Y +A X +A X +B X +B Z +A X +C Y +B X +A X +A X +A Y +A Z +B X +A X +A Y +A Z +B X +B Z +A Y +A X +B X +A Y +C Y +B Y +B X +A Y +C X +A Z +C Y +A X +B Y +C Y +B Z +B X +C Y +C Y +A Y +A X +C X +A Z +A X +B Z +B X +B X +A X +B X +A Z +B X +B Z +B Z +C Z +B Z +B X +C Y +C Y +A Z +C X +A X +B Z +A X +C Y +A X +A Z +B Z +B Z +A X +B Z +B Z +A X +C Z +B Z +B X +C X +A Z +B X +A Y +B Z +C Y +B Z +B X +A Y +B Z +A X +B Z +A Y +A Z +B Z +C Y +C Y +A Z +B Z +B X +B X +C Z +B Z +B Z +A X +A X +A X +A X +A X +C Y +A X +B Z +A X +B Z +C Y +C X +A Y +B X +A X +B Z +A Y +B Z +C X +A Y +B X +A X +A Y +B Z +A Y +A X +B X +B Y +B X +B Z +B X +A X +B X +B X +B X +A Z +A X +A X +B X +C Y +A X +A X +B X +B X +B X +B X +A Y +A X +B Z +A X +A Y +C Y +B Z +A Y +A X +C Z +A X +B Z +A X +B Z +B Z +B Z +C Y +B X +C Y +A Z +B Z +A X +A Y +A Y +A Y +B X +B Z +B Z +A Y +B Z +B Z +B X +A X +B Z +A Y +A Y +A X +B Z +A X +A X +B Z +C Y +B X +A X +A X +A Z +C Y +A X +A X +A X +A X +A X +C Y +A X +A X +B X +B Z +C Z +B X +A Y +B Z +A X +A Y +B Z +B Z +B Z +B Z +A X +A Y +A Y +B X +A Y +A Z +A Y +B Y +A X +B Z +A X +A Y +C Y +B Z +C Y +A X +B Z +A X +A Z +B Z +A X +B X +C Y +A Y +A X +A Z +C Y +A Z +A Y +A Y +A X +A X +A Z +A Y +B X +B Z +B X +B X +C Y +A Y +A X +B X +A X +B Z +A X +A X +B Z +C Y +B X +C Y +A X +B X +C Z +A Y +B X +A Y +A Y +B X +C Y +B Z +A Y +B Z +A Y +A X +A X +A Y +B Z +B Z +A Y +A X +A X +B X +B Z +A Y +A X +C Y +B X +C Y +B Z +B Z +B X +A Y +B X +B X +A X +C Y +C Y +B Z +B X +A Y +C Z +C Z +C Y +A Y +B X +B Z +B X +A X +B Z +A Y +A X +C Y +B X +A Y +B X +A Z +A X +A Y +C Y +A Y +A X +C Y +C Z +B X +A Y +C Y +B Z +B X +A X +B X +B X +C Y +B Z +B Z +B Z +B X +B Z +A Y +B Y +B Z +A Z +A X +B Y +A X +B Z +A Y +B X +A X +B Z +C Z +B Z +B Z +A Y +B X +A X +A X +B X +A Y +A Y +A X +C Z +C X +A Y +C X +A Y +A Z +C Y +A X +B X +A X +B Z +A X +C Y +A Y +B X +C Y +A Y +A Z +A Y +A Y +B Z +C Z +C Y +A Y +A Y +B X +C X +A Z +B Z +C Y +A X +A Y +B X +A Y +C Y +C Z +A Y +B Z +A X +C Y +B X +B Z +A X +C Z +B Z +C Y +C Z +B Z +A X +A Y +A X +B X +B Z +B X +A X +B Z +C Y +A Z +A Z +C Y +A Y +C X +B X +A X +A X +B X +B Z +B X +B Z +B Z +A X +B X +A X +A Y +A X +C Z +B Z +A X +C Z +C Z +C X +A X +B X +A X +A Z +A X +C Z +A X +A X +B Z +C Z +C Y +B Z +B X +A X +A X +A Y +B Z +A Y +B X +B Z +C X +B Z +B X +A Y +B Z +A Z +A Y +A Y +B X +C X +A Y +A Y +C Y +C Y +B Z +B X +C Y +C Y +A Y +A X +A Y +A Y +B Z +B X +A X +B X +B Z +B Z +A Z +A Z +A Z +A X +B X +B Z +A X +B Z +A X +B Z +B X +C Z +B Y +A Y +A Y +A X +A X +B Z +B Z +B X +A Y +C Y +B X +A X +B X +C Y +A X +A X +B X +C Y +C Y +C X +B X +C Y +A Z +B Z +B Z +B Z +B X +B Z +A X +B X +A X +A Y +C Z +B X diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_20.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_20.tst.data new file mode 100644 index 0000000..644ccc8 --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_20.tst.data @@ -0,0 +1,5000 @@ +5602 +9939 +7502 +-7162 +-8449 +-6157 +8518 +-467 +-1389 +509 +6834 +-8896 +44 +-4782 +-5921 +3499 +9837 +-5056 +9570 +2172 +1386 +-1028 +1019 +-4235 +3361 +-582 +3291 +1646 +-708 +7055 +3791 +8596 +-8357 +8034 +-3063 +-6657 +-8499 +6940 +8205 +8264 +8081 +-6891 +-4639 +4194 +-6747 +-8689 +-5757 +-9613 +-9422 +3591 +6136 +-5616 +6254 +2195 +1191 +3845 +7235 +4676 +-3869 +3551 +781 +8419 +-4569 +-353 +-5224 +6438 +4046 +154 +2336 +-2486 +-4608 +6002 +5888 +2772 +-3023 +-183 +6163 +-9139 +9939 +-4956 +4642 +-280 +9214 +6718 +1879 +7249 +-3069 +7735 +-2548 +3905 +-1275 +-5817 +542 +-8935 +-9933 +-6605 +-5117 +1744 +5857 +-32 +-8559 +6898 +6689 +8929 +8864 +1924 +5338 +-3672 +-8981 +3408 +5907 +-8432 +-1901 +-2938 +-7002 +-4010 +4506 +-5633 +4465 +-5485 +-1708 +-1946 +8196 +1090 +-1901 +2912 +3143 +-74 +1983 +1263 +-5193 +7396 +-2865 +681 +-5580 +-350 +376 +1027 +9845 +-6794 +8485 +-4190 +-6962 +8038 +6909 +4660 +1239 +2214 +1673 +5167 +5624 +-6694 +2622 +-8039 +5602 +3465 +717 +-7256 +8954 +9355 +-3927 +460 +-7790 +-3513 +-9258 +-2199 +-4370 +3416 +-2381 +1337 +9094 +-144 +7301 +1700 +-6655 +7354 +-3708 +-7784 +-2890 +-8677 +4749 +6226 +-2055 +75 +2027 +9253 +-1101 +-8217 +5297 +999 +8032 +5246 +1404 +-9020 +-9779 +-7144 +6890 +3738 +-4131 +3118 +-3095 +-7282 +8223 +2251 +9342 +5853 +3800 +6497 +-7131 +1406 +2126 +-5631 +-4633 +5496 +9914 +2394 +-8921 +4558 +-510 +-3682 +2251 +2055 +3784 +9959 +-7083 +-2919 +-5108 +1609 +-8438 +5826 +2011 +-1275 +7432 +-9240 +1622 +8689 +846 +-7731 +9630 +9002 +-1231 +3744 +7882 +-4426 +-7148 +-928 +1585 +-9554 +9770 +2575 +-439 +1412 +8981 +-4030 +-7991 +4734 +5368 +-6600 +7392 +-6309 +-7362 +-5327 +-1334 +5300 +-1547 +-2907 +9295 +-2818 +9063 +6176 +-2477 +-8900 +-6585 +-531 +8289 +7 +1736 +-8238 +-1894 +6167 +357 +-956 +7215 +1818 +6611 +-8708 +2612 +6233 +6174 +-368 +-6893 +2082 +4884 +-9968 +3119 +9608 +6422 +-3469 +-8828 +7461 +9938 +9422 +-8489 +1412 +-8319 +1924 +-3877 +-1551 +7947 +9888 +-7453 +-9579 +-8342 +2255 +-2075 +-5397 +-1285 +-3885 +751 +-8805 +-7860 +-5344 +-6833 +6074 +-4236 +-7640 +-4146 +-392 +-8016 +-7575 +-9381 +-6513 +-7203 +-3491 +3073 +-2217 +-9049 +1925 +-422 +1482 +8739 +2147 +1636 +-8549 +-7046 +6919 +-5722 +-363 +3677 +-2952 +4802 +5889 +-2525 +5201 +7522 +-4425 +-1162 +-2249 +3197 +2627 +3175 +2214 +9094 +4541 +9280 +-2028 +-3955 +217 +5866 +-9993 +2575 +-4873 +1586 +-1045 +-2640 +-6879 +-6958 +-534 +-2312 +-3690 +5673 +-2596 +-9042 +8525 +-8331 +6918 +-5284 +-9636 +5206 +2131 +-1633 +-3408 +-1096 +-4883 +-2020 +-5063 +-166 +-41 +1367 +6863 +-8943 +9436 +-124 +1151 +3815 +-2986 +-1964 +-8074 +7021 +-6068 +8572 +5897 +2988 +-6936 +50 +5191 +3504 +1737 +-7183 +-9211 +-3070 +8186 +-6404 +6586 +1739 +-3310 +8596 +7030 +4361 +-9066 +9442 +412 +9113 +8980 +-7657 +9966 +1904 +-3158 +-2869 +-4737 +-4680 +6559 +9179 +7158 +-94 +2980 +-7061 +1488 +4871 +4532 +8657 +6691 +6131 +9094 +7907 +1702 +-2821 +-9111 +-3497 +9449 +1011 +-3102 +3478 +-4608 +-6476 +8401 +5388 +4136 +-4886 +-3782 +544 +5949 +-3090 +3063 +-1946 +1639 +5675 +6112 +39 +9599 +-3264 +4093 +-3672 +5614 +-4028 +3586 +-8325 +-877 +-9725 +581 +-9012 +-3335 +-7378 +7774 +-1807 +595 +-3200 +7765 +3536 +-363 +-4653 +9050 +-6137 +-6413 +-6404 +3261 +6122 +5582 +-2067 +7128 +7988 +-3699 +-3051 +8371 +321 +7200 +-2690 +-1051 +-2858 +-9895 +-9739 +-5943 +3831 +-510 +-8510 +-275 +5475 +6872 +-3296 +6226 +4985 +-9850 +2661 +689 +-884 +-726 +1641 +-5359 +-8824 +5007 +-9870 +-9548 +-4596 +-4601 +-7881 +-4455 +-4614 +-4451 +-2318 +-6074 +-8023 +-7203 +7896 +-7756 +2163 +-4464 +9611 +1690 +-9042 +-4510 +-416 +7522 +3847 +-7677 +8922 +-2845 +-3551 +-2124 +6424 +2240 +-8472 +-9757 +-2997 +154 +223 +3068 +-2412 +-3090 +8236 +7048 +-5853 +9574 +-3229 +4304 +5582 +-2905 +-2371 +-3416 +455 +9685 +8276 +1132 +-2499 +1527 +6367 +-7325 +-8432 +-7339 +-1761 +-9016 +-365 +964 +-1722 +-3331 +-5013 +5909 +-9746 +-359 +17 +-7344 +-7183 +-1981 +-7974 +-7404 +7294 +5647 +9188 +3317 +-4259 +-8051 +5193 +1701 +3915 +-9042 +-4745 +-6352 +-3756 +-1994 +-4270 +5232 +5619 +1631 +6898 +-4811 +-5131 +5692 +-9303 +-2843 +4519 +9152 +9676 +-6160 +-5335 +-2715 +9121 +643 +9412 +2766 +-1680 +2430 +2175 +-8844 +-1198 +6907 +5717 +-7067 +-4504 +-6842 +244 +-2396 +-9630 +-686 +-7640 +-4648 +8312 +1029 +8003 +5925 +6302 +4353 +6726 +7832 +2668 +2530 +-6107 +-8973 +3699 +-5400 +-5535 +9348 +76 +1656 +651 +-2501 +-1257 +-7113 +6476 +4285 +9289 +-3521 +6858 +2963 +5080 +-3999 +-5049 +1670 +-8454 +6424 +1172 +-8003 +-7975 +3175 +-8011 +717 +3730 +7100 +1617 +1737 +-2445 +1774 +7046 +7344 +4943 +-105 +-3491 +-6891 +-5935 +5043 +-7382 +5861 +-9579 +6772 +9922 +-3797 +5874 +3775 +9155 +-2430 +5934 +-1484 +-5749 +5832 +-8431 +2481 +-2762 +4867 +3338 +4752 +827 +-8051 +-1484 +9676 +-3684 +7447 +-5180 +2583 +7376 +4400 +-2029 +-3102 +-7076 +1715 +-7596 +-290 +1823 +-8282 +-6914 +-846 +-2851 +-6035 +-9463 +-3229 +9151 +-1957 +-1078 +9355 +-183 +-3159 +5988 +-6107 +-8112 +1803 +4974 +3890 +1412 +-9710 +6111 +-2371 +-4378 +8378 +-7498 +1617 +-9206 +-3768 +-3217 +-2198 +135 +-6373 +-2574 +-5583 +9589 +8867 +-7038 +-332 +-2113 +-5155 +1891 +-9959 +-421 +7569 +-7543 +-996 +-5002 +7730 +5738 +-4734 +2977 +-1445 +-8071 +9923 +-7156 +-141 +2814 +-1015 +1108 +5272 +-6371 +589 +9641 +-14 +-9688 +3260 +7780 +8815 +9906 +-390 +-4590 +-6892 +6111 +8276 +-6021 +-8767 +9799 +589 +-9617 +9314 +-8305 +1736 +4428 +9851 +-5946 +3921 +-814 +9080 +481 +-8807 +6647 +5888 +-1951 +6039 +8747 +4303 +-8563 +6767 +2878 +6767 +-4452 +6664 +7051 +9766 +5128 +-1281 +-1121 +-3488 +-2198 +-6432 +-2533 +5356 +9890 +-996 +-3178 +5729 +-7640 +7988 +8247 +-7633 +5851 +717 +-2632 +2518 +-3082 +5339 +-4083 +7765 +4888 +1852 +-1361 +9125 +-7316 +-3578 +6227 +-454 +7450 +-7387 +-7877 +8632 +6196 +0 +-3651 +-2698 +9840 +-8655 +8186 +-1321 +-1197 +-1793 +-4343 +4008 +6770 +2496 +5375 +70 +9080 +-2727 +-858 +1094 +-6438 +6234 +75 +-750 +9450 +1602 +-2004 +-6037 +7373 +-98 +8187 +-7824 +-8738 +-5830 +7569 +544 +-6755 +-1796 +1844 +4704 +1024 +4432 +3847 +5876 +6252 +-4353 +5636 +8957 +-6740 +-9100 +8335 +3840 +510 +8380 +4687 +-3847 +2081 +-9514 +-5913 +5628 +5471 +-9759 +515 +6396 +-6995 +9594 +-2326 +-9846 +8003 +-7877 +-3050 +7331 +-1210 +2548 +-4727 +8860 +-2665 +8366 +2940 +4784 +-69 +-4579 +4327 +2609 +-714 +721 +-344 +-9742 +-7066 +-598 +-2316 +3769 +-7191 +7452 +6303 +-1198 +-3153 +1591 +5259 +1030 +-2876 +-7327 +6282 +8274 +5858 +927 +4367 +-8820 +-4809 +2977 +8017 +-9084 +-9757 +9481 +56 +-1475 +-167 +1064 +1679 +-1795 +9874 +5186 +-5049 +-4028 +-8100 +-8062 +-6766 +3307 +9552 +-7365 +-6582 +9853 +1800 +6051 +-1015 +7344 +-3090 +-4406 +7606 +5530 +3704 +-8807 +2077 +9858 +-2538 +-7945 +5968 +-8438 +-7500 +-9346 +-2571 +6600 +-3398 +-4406 +4753 +2442 +8938 +9139 +-1231 +-1174 +-9936 +6436 +8739 +-4066 +2025 +-5787 +2251 +9940 +-359 +-9460 +153 +-7491 +3704 +4694 +4852 +-4322 +-4029 +-9630 +594 +5511 +-2266 +-2840 +-2241 +-229 +780 +5456 +7229 +4303 +-2662 +3325 +4305 +6972 +5418 +722 +-250 +6047 +-491 +681 +2246 +-4131 +3050 +-1277 +4859 +-986 +-4106 +-5442 +5389 +1693 +-9066 +3519 +2194 +4604 +-5312 +2126 +-6340 +-6455 +8076 +2178 +4267 +4933 +9170 +3065 +-5582 +-9548 +4615 +-9696 +-8171 +1686 +1591 +-5826 +4350 +9307 +7579 +4920 +-6953 +-1032 +-9612 +4976 +-21 +-603 +-4548 +-9968 +-3589 +4024 +2416 +-5661 +1496 +-2199 +-5726 +3141 +8441 +6756 +-752 +9071 +-4321 +-9439 +229 +1040 +8380 +5226 +6047 +-5543 +6797 +-3634 +2183 +481 +7955 +-9376 +9348 +-2892 +-7600 +-5999 +-2785 +-3302 +-3290 +-9247 +2079 +-6254 +-5165 +4012 +643 +1242 +-8550 +-4404 +715 +-6838 +-473 +3197 +1983 +4982 +2713 +-1820 +7249 +-921 +2560 +-2919 +7095 +-8677 +4766 +1120 +-6063 +3360 +292 +4506 +-2029 +9563 +-6893 +-6519 +1988 +6008 +8815 +1532 +-8835 +1511 +6501 +-7855 +-68 +-1666 +6107 +8911 +2991 +6300 +5833 +-4653 +-5000 +6110 +-1084 +-6373 +3280 +-69 +5888 +-157 +1999 +1827 +-7633 +-3880 +-2625 +9637 +-7002 +9870 +-1884 +-3782 +2106 +-2638 +-5976 +-7644 +-8468 +-8958 +-2960 +1216 +2531 +-6542 +1585 +6369 +8551 +7955 +-5433 +-3410 +9696 +-7015 +8154 +8717 +7781 +8591 +-8850 +-2080 +-9490 +-9613 +-8877 +9762 +725 +-5473 +-251 +-3178 +4414 +2621 +4892 +2336 +6047 +-6547 +-1485 +8877 +-1566 +5624 +-1294 +-4295 +-6947 +-907 +-6219 +-3950 +-384 +-9446 +-1053 +6370 +4208 +-1589 +8888 +642 +-3513 +2897 +-2445 +1966 +-2404 +-8171 +801 +-848 +591 +-5569 +-418 +1458 +-8072 +-9042 +-4447 +4646 +-66 +-3888 +-2922 +9389 +2645 +7331 +-4097 +-5854 +-4545 +3080 +-8211 +3255 +9370 +6390 +-8633 +-1215 +-7720 +4046 +1024 +969 +-5223 +9412 +-4866 +-2098 +1907 +-8240 +4088 +-900 +9270 +-359 +-4974 +5066 +6100 +-2006 +-4864 +-245 +-5222 +1932 +2293 +-3455 +4137 +-4473 +-7920 +8210 +-7651 +7579 +953 +-5077 +-7131 +-8347 +8046 +1048 +465 +3918 +-663 +-3219 +6416 +9519 +-985 +-8499 +2634 +-2637 +8966 +-465 +-9638 +-6445 +-7820 +2293 +2963 +-7203 +-4179 +6509 +-1214 +6227 +2387 +-2020 +-3477 +5949 +-6539 +-7235 +3041 +9598 +-4574 +7359 +5487 +2004 +-2088 +4513 +3611 +6305 +-3264 +3719 +7523 +-6877 +-1720 +591 +2240 +3044 +-5768 +3677 +364 +-4680 +9031 +-5131 +-2231 +5777 +3773 +-5111 +8888 +-1704 +-575 +9253 +-8260 +3244 +7029 +4539 +6247 +9058 +7753 +-2546 +2163 +7524 +-6976 +5128 +6806 +-8238 +6741 +4999 +7761 +-9283 +-9735 +4750 +6007 +-6213 +-6508 +-9523 +-9283 +9882 +-5222 +5531 +-422 +-6309 +-684 +-4929 +-6715 +8469 +-5518 +5230 +1077 +-7860 +8020 +-1285 +7696 +2194 +-2412 +291 +-7589 +4580 +5626 +-5855 +6128 +1904 +2548 +-7889 +-9056 +1243 +-5579 +-6433 +-8719 +9153 +5567 +-9061 +4513 +-699 +-9423 +2905 +2114 +3839 +-4500 +-6711 +5082 +6831 +-2662 +1621 +-3063 +-5850 +1460 +-3647 +-1687 +1496 +-5617 +2838 +-2877 +-5207 +6896 +-6833 +9845 +8575 +9940 +-5222 +4263 +-9379 +3820 +-9299 +-810 +-7796 +-7113 +1337 +3140 +7582 +7006 +3607 +-243 +-1936 +-5027 +-6494 +1774 +9794 +1021 +9870 +1705 +-4029 +9282 +-727 +9229 +6789 +-9772 +6977 +5807 +9374 +-6363 +-8790 +4556 +7308 +-1434 +7896 +7048 +-800 +-7083 +6856 +903 +-6185 +2698 +-5353 +-6032 +4949 +18 +-594 +-4577 +-6683 +-230 +693 +6011 +8759 +2511 +-6758 +5292 +651 +-1357 +-8175 +5743 +-4479 +3510 +-4577 +-2229 +1702 +-4877 +9174 +-5063 +5266 +8722 +-1687 +1154 +1004 +1586 +3921 +6105 +-4569 +268 +4250 +-632 +-2790 +-1410 +8789 +5077 +2736 +-8894 +364 +4187 +1992 +510 +3354 +3880 +655 +714 +-7860 +-8773 +3950 +606 +-2464 +-4343 +-6900 +9151 +10000 +-1025 +-3997 +-7583 +9171 +7824 +-1657 +1307 +1121 +-3061 +-9447 +-6022 +-141 +321 +-9509 +-8420 +-7008 +4150 +3592 +-6552 +9445 +7633 +6664 +5160 +-3104 +3200 +-6752 +-9241 +-5088 +-1410 +-6586 +-2710 +6901 +5043 +9905 +-9563 +-9956 +-9799 +-9651 +2447 +-2159 +-2727 +346 +-6900 +-2412 +-1094 +8572 +-68 +-395 +-6818 +-3472 +6859 +-6433 +9036 +6931 +9784 +5687 +8274 +-390 +-119 +-2575 +581 +-5389 +7878 +5201 +9630 +3572 +-3511 +-7061 +-4808 +-467 +-5131 +-5980 +1924 +-2972 +1803 +-1982 +2856 +-5533 +-1205 +-3082 +-2755 +4667 +-1480 +7822 +3200 +-9446 +-2504 +-2934 +6918 +-4976 +4630 +-7431 +-4727 +-7886 +-8347 +2121 +-67 +-3192 +-1566 +9413 +-4510 +-3396 +4102 +-8893 +4139 +-6561 +8082 +-2435 +6302 +-5172 +7868 +-9134 +-8155 +4063 +9171 +-5530 +-8851 +-9954 +-7674 +-9655 +2394 +4416 +-1302 +2231 +9315 +4303 +6112 +-9977 +8829 +5876 +-2687 +-5722 +-3625 +-6107 +4630 +3216 +8491 +-6213 +-2188 +7332 +1974 +2515 +1466 +-5128 +2740 +3256 +-4745 +1942 +-9689 +-7813 +-2271 +7186 +6804 +-7113 +-439 +9643 +-213 +-6640 +5654 +5496 +-658 +8511 +4892 +-350 +-9363 +6976 +-8992 +7723 +-7988 +-1534 +-2504 +9892 +-6086 +7901 +5679 +-5962 +7874 +711 +9495 +-1063 +6433 +758 +4591 +800 +-4734 +2522 +4368 +-1205 +7629 +-7867 +3302 +7701 +8657 +4092 +3570 +-8255 +8585 +2567 +9373 +-1205 +2846 +4416 +-3217 +9958 +7737 +3878 +-1104 +8724 +5652 +-578 +-8076 +2531 +5727 +-5826 +-9258 +24 +7327 +6936 +22 +-4490 +-603 +8748 +-7936 +1565 +859 +-545 +8141 +3568 +7940 +9349 +-884 +-6973 +-1073 +-5568 +-6829 +491 +-2371 +-7181 +-5612 +2624 +-9678 +5063 +5493 +-1503 +7854 +6353 +-3335 +9348 +-1159 +7479 +5896 +7523 +-8891 +-5927 +-5059 +3495 +1496 +-4479 +-3943 +6928 +476 +9565 +2705 +8415 +9436 +438 +1432 +2255 +-689 +8720 +-1941 +9886 +2855 +2211 +6558 +-1197 +1940 +7522 +-2504 +-1370 +6118 +2212 +-881 +1751 +3592 +-1797 +4845 +780 +-8087 +4607 +-2392 +-2240 +5050 +-3427 +6915 +-4116 +-1887 +-2269 +8531 +6702 +-2923 +-6653 +-6420 +-4029 +4150 +-2709 +5118 +-3022 +-9200 +292 +9962 +-473 +-6318 +-7480 +-5726 +3608 +8195 +-9424 +5329 +-5323 +2005 +9837 +-7501 +-421 +9801 +1602 +-2335 +7249 +-585 +-3885 +8700 +589 +7954 +-1744 +-3251 +8959 +8430 +8082 +9411 +205 +9459 +-7377 +-6138 +8855 +2410 +-3783 +-1084 +7415 +-2006 +1354 +5070 +-6640 +-9777 +1019 +-410 +2947 +-4485 +3874 +4808 +-2728 +-1285 +-6074 +5990 +4361 +4406 +-2383 +9936 +-7488 +1364 +-2198 +-7935 +-8031 +5683 +9000 +2615 +-6866 +-6748 +-1455 +-301 +-712 +-2550 +-2322 +9750 +3677 +-5101 +-6185 +9983 +5622 +-517 +3361 +6608 +6714 +8860 +4940 +-4869 +3485 +-8571 +8377 +7172 +1465 +-8761 +3128 +-6833 +7868 +-7710 +-3672 +-3076 +5034 +1335 +-4842 +1693 +6196 +-6884 +-2693 +-8076 +2098 +6210 +9677 +-610 +-183 +-9919 +5700 +-1424 +-4970 +-6888 +-2275 +-5899 +9385 +1988 +-3615 +1047 +2851 +-3708 +2473 +2657 +-5656 +606 +67 +-8671 +-2448 +7406 +2214 +6811 +1528 +1337 +4350 +-5145 +-5473 +-5530 +-6219 +4986 +-7055 +9067 +1518 +-6775 +624 +-8621 +8078 +362 +-2727 +5344 +-1707 +-8655 +-7236 +-5161 +-3134 +-9696 +-4121 +1737 +3252 +-365 +-3373 +-4005 +5708 +-4967 +1894 +7479 +7950 +-8943 +-1826 +6465 +257 +9683 +-5335 +7223 +-4495 +-9648 +-4631 +-5564 +-1107 +-4386 +-5023 +-9605 +-9181 +-3706 +-1325 +5464 +-3229 +-6824 +-1244 +-5898 +8934 +4593 +2794 +4751 +1252 +6890 +-2070 +-542 +3519 +7677 +-7197 +-3503 +7373 +1200 +-5512 +3561 +7196 +-8678 +-6756 +-2999 +6623 +2707 +7949 +-8844 +-726 +-3894 +-5111 +-1877 +3003 +-6074 +109 +9758 +1043 +2388 +-4608 +-7055 +5032 +8381 +9698 +8184 +-77 +-8178 +2698 +3661 +-1882 +7528 +6367 +-258 +2470 +-7794 +4695 +-5865 +4295 +-194 +-5379 +2140 +-3371 +-7921 +3764 +-946 +-250 +-9181 +-4746 +507 +1702 +6266 +4132 +-6534 +-8000 +3105 +-7258 +-5504 +2121 +-9153 +-8838 +7988 +4416 +5400 +-5400 +-2179 +7772 +-542 +-6183 +-8938 +-9489 +-3472 +6880 +-5312 +4051 +-9172 +4444 +-9064 +7759 +9633 +-1157 +1123 +-4240 +1230 +-332 +6958 +855 +-5555 +-8542 +5407 +-6586 +-4300 +905 +9819 +-453 +-8774 +-2727 +7528 +2236 +-3956 +2943 +5197 +87 +-3483 +-4760 +8636 +-1200 +-5648 +-6407 +-7815 +310 +8053 +4917 +-3674 +7069 +-8724 +5354 +-3061 +1098 +-4524 +734 +-2665 +8321 +233 +3214 +7757 +-5920 +8789 +-5519 +3194 +-5262 +1003 +-2316 +-2573 +5211 +879 +8020 +6815 +-3415 +-1676 +1876 +-2130 +3836 +-8331 +-9159 +1330 +8235 +-7651 +6802 +-4606 +6234 +-8854 +-6651 +2559 +-3178 +-2008 +2467 +-4843 +5528 +-4711 +-5799 +-5214 +-219 +2398 +1398 +5475 +6697 +6924 +7016 +8660 +7295 +-7281 +-7835 +8283 +669 +4346 +2675 +6237 +-6062 +3496 +3354 +-4708 +-5340 +-4971 +8580 +7798 +1437 +-1094 +8136 +6764 +2486 +8585 +-3157 +-3190 +2960 +9370 +9929 +-1023 +-1948 +-5964 +-491 +4700 +-1386 +-1831 +-1761 +-8209 +7149 +6856 +-4954 +-8995 +4373 +-3051 +6236 +1846 +4206 +4198 +-2923 +-4554 +3395 +-5364 +-5660 +3132 +-5726 +4672 +2251 +3033 +-7936 +35 +1 +4668 +-2125 +257 +7294 +-6183 +1934 +-6048 +-6185 +6756 +6245 +6934 +4920 +7041 +1999 +-4497 +2925 +9837 +1662 +-3215 +9673 +-5903 +-5205 +2778 +9802 +-4784 +1484 +-1947 +-77 +-4734 +1914 +56 +-6243 +-598 +-2254 +2730 +-556 +-695 +8490 +-8970 +2674 +-3839 +7725 +-2548 +-4485 +-4915 +-4153 +6236 +8340 +-5447 +4701 +-9508 +9650 +-9953 +7415 +9174 +1983 +7715 +-7516 +-4630 +-2020 +-1859 +-4094 +3076 +-2510 +-2790 +-9232 +9712 +-253 +6763 +-2250 +6540 +2240 +5717 +-9984 +-1795 +-2373 +-5244 +2981 +-3214 +7831 +-6833 +-3723 +-7903 +-9942 +-9611 +9694 +1109 +2118 +35 +8953 +-7842 +-9277 +-575 +-6329 +9342 +-4244 +-7560 +-3361 +7584 +-9972 +9568 +4702 +775 +-8711 +-298 +-6432 +18 +5192 +-2538 +1220 +5465 +-9375 +-7651 +7009 +-1967 +6159 +-8577 +-8925 +15 +-21 +-1616 +-8043 +-5571 +-5998 +-7607 +-5783 +-846 +-9282 +-1292 +6558 +7093 +-8512 +4548 +-6285 +-6144 +-2543 +3677 +-1205 +7172 +5214 +-4733 +8272 +-5172 +-9455 +4610 +-5442 +2473 +-5502 +8992 +-6171 +7280 +7796 +1891 +-8051 +1685 +-1094 +-8108 +8706 +2655 +-2300 +2213 +3783 +3113 +624 +-622 +-8550 +-7972 +-3615 +1615 +7711 +-3622 +-998 +-8356 +8458 +-4593 +5080 +-7843 +-9620 +1777 +-5159 +1461 +-3590 +-9426 +3465 +-8225 +9885 +8131 +9868 +-8333 +-5971 +956 +4556 +2737 +-7203 +-6766 +-8827 +3770 +1584 +9008 +-1834 +-5451 +9170 +-2004 +6047 +3080 +-2248 +7635 +4939 +311 +6119 +509 +-2075 +-6450 +1624 +-6903 +-4384 +-3248 +9611 +1532 +-3156 +-7668 +-6111 +5683 +-7972 +3132 +-5593 +-2525 +-9049 +-5684 +8575 +1067 +1676 +-7874 +-7178 +-391 +-7674 +-4029 +3677 +8860 +-5576 +6856 +8423 +8321 +-8885 +9231 +-627 +2529 +-3817 +9973 +-1685 +-9696 +4765 +-7327 +-3114 +278 +-3711 +-3214 +-311 +9137 +-5207 +974 +8384 +-6640 +-3930 +475 +-8107 +3430 +-5433 +-4521 +-7640 +-6473 +777 +-2915 +-7813 +8683 +2532 +-1586 +1937 +-531 +-3992 +-2727 +-8264 +-3568 +-8238 +4613 +-7084 +9296 +1725 +-2134 +2766 +5511 +7198 +-5913 +-3410 +8412 +1403 +611 +-4873 +8132 +6870 +595 +-5468 +-1160 +-626 +3131 +-5433 +-4687 +1440 +5266 +-4266 +-7200 +-5768 +-5631 +8086 +689 +-9729 +5885 +8283 +5718 +-6974 +-2533 +5620 +4575 +-1845 +-8711 +-3401 +-9218 +-6794 +-5569 +-2632 +164 +2874 +-9384 +-1556 +-6612 +8547 +-4066 +4238 +-8443 +-5662 +2579 +-626 +-8237 +2183 +-8146 +4925 +-5825 +1581 +5266 +7186 +-7983 +9762 +-286 +4003 +-2226 +7723 +-7386 +7174 +3869 +-8064 +-2972 +2697 +-9585 +-3847 +4295 +6061 +-395 +-1292 +4076 +-137 +-9566 +-9848 +-2328 +-9857 +6991 +-8656 +2449 +-9699 +3033 +7249 +-183 +1149 +4676 +-4869 +-8260 +5045 +4026 +-8193 +-8499 +-7508 +-3984 +2612 +-3041 +4814 +-3336 +8800 +-4284 +-836 +-4695 +6 +1123 +4749 +1247 +5654 +-5144 +1788 +-1015 +5356 +-280 +-6905 +3211 +581 +-4593 +-4633 +-496 +581 +4734 +9153 +3385 +-6182 +-8225 +-1247 +-6181 +4134 +998 +-9572 +-7938 +-2791 +-1535 +-9225 +2609 +-9907 +-5098 +-247 +-7282 +-7046 +-7061 +-6936 +-342 +9694 +-3930 +-3310 +-6107 +9230 +3482 +-9696 +-357 +-4838 +4305 +4261 +8342 +-3229 +-7223 +-3974 +-4574 +-1407 +-8313 +2786 +2365 +-3488 +-8335 +-5580 +-7812 +-1972 +638 +-9977 +8850 +9896 +4778 +4561 +-5301 +-2225 +6048 +-6311 +-3803 +-5693 +-8751 +6208 +-7999 +-9634 +5465 +-2519 +-5799 +7049 +-8748 +9497 +1367 +-6318 +-2938 +9888 +5293 +7311 +3783 +8141 +969 +7952 +-9807 +-6756 +8062 +-377 +7027 +4017 +-1326 +31 +9067 +-4977 +-2045 +5832 +3703 +4698 +4295 +-655 +-6239 +159 +9466 +8931 +-7185 +-6032 +-7573 +4488 +-8863 +8860 +-9748 +-6703 +5358 +-4104 +7327 +2456 +7686 +-3277 +-5927 +9312 +1666 +753 +9758 +8496 +-9962 +-2464 +3020 +-2915 +5581 +8325 +-8761 +6119 +9130 +-4625 +-1023 +447 +4611 +8237 +-6271 +-2810 +-4374 +-2269 +6617 +-1668 +-3726 +1172 +-7455 +-1304 +9862 +6455 +-2349 +2661 +-674 +-3602 +-79 +5494 +-4438 +159 +-280 +-7099 +3130 +4717 +-2096 +-4240 +-9143 +-3178 +1030 +-5435 +5844 +6907 +-6588 +-8622 +4483 +5066 +-3740 +-1182 +6842 +4523 +-6420 +5448 +-8236 +7715 +8518 +-238 +-9578 +6501 +-4244 +-2920 +-8010 +1487 +5192 +-9604 +2513 +6677 +1988 +-7024 +-1174 +-9400 +1352 +7006 +2077 +-2027 +3051 +-2944 +1337 +1007 +1317 +9466 +3309 +-262 +2698 +8020 +3113 +9348 +-7031 +-9630 +-7257 +4104 +-2499 +3811 +-6360 +8422 +-641 +-9630 +-8761 +6356 +4303 +7158 +7522 +-2509 +-6435 +-3361 +-7284 +-4630 +7981 +3457 +-846 +6156 +-3442 +1629 +4347 +-702 +1029 +-3992 +-262 +-2354 +840 +9004 +6028 +717 +2746 +-3217 +1670 +9643 +-8898 +-4838 +9195 +1891 +2981 +7933 +4821 +772 +-7555 +234 +6886 +7203 +-436 +9008 +6985 +6830 +-9187 +-66 +7331 +3272 +-911 +2950 +-651 +-5854 +4604 +-4956 +2111 +8156 +353 +-8613 +-5175 +3383 +-6372 +1740 +4541 +2158 +-2632 +754 +510 +7247 +2299 +-9382 +5808 +3659 +-1797 +1035 +7998 +5682 +8305 +4390 +1172 +-2362 +-933 +-5063 +-8454 +-4218 +-7251 +-2997 +-1849 +3794 +-195 +-5799 +-5697 +-6352 +127 +-7994 +9047 +-1987 +-5145 +-5755 +1511 +6767 +-1448 +4989 +7246 +2229 +3886 +4327 +-7547 +7318 +7415 +607 +4884 +9462 +4698 +6388 +-9447 +8968 +-2322 +-1547 +5492 +-4362 +-7247 +1172 +-5622 +3978 +8779 +5186 +9553 +7089 +-743 +-7397 +9206 +7981 +2594 +9688 +7267 +9068 +-6308 +-6509 +7064 +-4378 +-6752 +-7244 +-9483 +5404 +-2778 +-8190 +9394 +8011 +9347 +-1824 +-3551 +4210 +-1198 +-2952 +-9863 +-5299 +6156 +5130 +-7114 +-4710 +1862 +6877 +6159 +-8112 +3196 +-2960 +1894 +-9857 +-2198 +-8100 +-7882 +4304 +5193 +3877 +8954 +-5985 +-8101 +-6678 +5919 +-3752 +-2429 +8143 +2828 +-1142 +-3088 +4782 +-5144 +-2801 +5990 +1021 +-7235 +-2641 +5929 +5838 +-9258 +-8022 +7922 +7417 +-3177 +7008 +7735 +561 +-9027 +-8989 +-2371 +-8790 +-5921 +714 +8763 +8423 +-7405 +8566 +1090 +-3937 +-160 +-9832 +5570 +-1284 +9360 +-2859 +8044 +1715 +-7466 +1680 +3050 +6595 +2985 +5870 +8744 +8252 +3580 +-928 +-1294 +5910 +-6487 +-7640 +1784 +4894 +-4650 +-1019 +-9258 +2367 +4527 +-6137 +-3959 +-6984 +-9774 +9167 +-8824 +-4163 +5192 +4698 +7225 +7174 +249 +-7017 +-3200 +475 +6976 +-4397 +581 +-7516 +5280 +593 +203 +-616 +-1049 +-7412 +-6997 +-8106 +-4967 +-974 +-8499 +654 +31 +8335 +-6159 +1548 +-2477 +-8776 +885 +-7815 +-3836 +-1403 +-2925 +-8854 +9056 +-9067 +-9298 +9017 +-3981 +-9684 +6259 +9620 +4994 +-6355 +-1996 +9444 +-4907 +-7855 +1525 +-4829 +2518 +-686 +-6877 +-8891 +1361 +-6322 +7819 +908 +-1809 +974 +-3344 +-3410 +8722 +4294 +6013 +-9613 +-9103 +1642 +1870 +537 +-3741 +-6994 +-1154 +-9568 +6 +5942 +-3240 +1398 +-6366 +2274 +288 +5654 +-8072 +-7061 +-1160 +9959 +6689 +-4031 +8047 +-7491 +1434 +-7797 +-2174 +-1198 +5909 +-9153 +-9096 +5342 +6559 +-8278 +-2849 +-2280 +-6202 +6920 +8430 +-8068 +-1817 +-8606 +3459 +8607 +-1826 +-6185 +3394 +-6600 +2982 +1341 +3479 +7294 +-843 +-7416 +6047 +-2225 +-112 +-2728 +9230 +-7972 +-7284 +-2257 +-1466 +-5027 +6472 +-5425 +-8569 +2557 +-2857 +-1563 +3050 +2456 +9382 +-9548 +-7271 +-3379 +8428 +-2297 +-263 +9880 +2328 +-7094 +4404 +-7640 +-2742 +8892 +-8955 +1367 +-5229 +-6007 +-2631 +-7875 +4534 +-4226 +3567 +-665 +9620 +4139 +556 +8360 +2456 +2183 +-5612 +3700 +9845 +-4455 +2313 +-7300 +927 +-7867 +8791 +-4121 +-9366 +7881 +1460 +7737 +4580 +9544 +5754 +-7038 +1774 +9252 +8775 +-146 +-6369 +491 +8934 +5387 +-852 +-243 +7730 +4554 +4892 +1624 +9929 +-6316 +-8924 +-810 +5849 +-9676 +-2982 +-1893 +1367 +1702 +-4320 +4727 +1025 +643 +-7565 +4817 +-5410 +-6639 +8822 +-2842 +1658 +2740 +-921 +5480 +640 +-2046 +8132 +9123 +6390 +-7055 +-4407 +7157 +583 +2374 +9767 +8199 +-7466 +-4590 +2278 +4730 +-4719 +362 +-4404 +9902 +3976 +2480 +7200 +-4763 +-6157 +-9082 +636 +6205 +-7022 +-4394 +5968 +-214 +-314 +-4329 +1429 +-8024 +-6766 +4404 +-1115 +9030 +-1326 +-957 +-1916 +-1198 +1715 +-7466 +-8420 +4250 +7418 +811 +1330 +-3602 +-5592 +3706 +8368 +8338 +-4713 +-8182 +-4250 +-6703 +9252 +-110 +569 +2290 +1519 +6622 +-5852 +-842 +2327 +3631 +6247 +-6044 +3303 +-3214 +9241 +-7668 +-6638 +-2566 +-6794 +-7114 +6677 +3129 +-8542 +3480 +-422 +9641 +9465 +-2915 +9020 +8819 +5789 +2022 +-444 +2183 +-5473 +9752 +-7057 +-5803 +8908 +-8139 +3856 +-1576 +-3226 +-4087 +6495 +207 +-2972 +3957 +-1273 +-5059 +35 +6534 +-5335 +-817 +-6352 +-1503 +-5905 +2920 +-8171 +9314 +-5465 +1942 +4008 +8257 +-2225 +-3927 +7154 +7200 +-1504 +-1799 +6983 +-5158 +-2613 +6758 +3113 +-5400 +-7184 +-5799 +8435 +4128 +-8073 +2830 +7 +-5530 +1067 +7060 +2185 +-4932 +-9298 +-2737 +1736 +-2567 +-3357 +-2756 +4701 +-2486 +4411 +1836 +9083 +7160 +5329 +6408 +7743 +6390 +6334 +-7293 +-4276 +-418 +-9984 +2938 +2921 +8706 +4373 +-2430 +2614 +-146 +6188 +-9458 +2527 +8778 +-7190 +-1843 +-2575 +-8043 +-4322 +4821 +-6769 +-9087 +9389 +3545 +4881 +-5460 +-2199 +33 +-8339 +7060 +6252 +8392 +-3402 +-2756 +-6404 +-77 +5936 +-2624 +-9446 +-1015 +-1984 +905 +-12 +-8948 +-2225 +7711 +-384 +-6720 +2442 +-1352 +9947 +5971 +-3901 +1246 +1629 +4527 +-9035 +9144 +3041 +-8431 +-1133 +-2197 +8559 +-719 +-5868 +-1972 +5492 +4088 +8744 +-3157 +5201 +-8277 +2251 +-8117 +-7430 +-6715 +-6334 +-6450 +-3146 +7762 +6311 +6589 +6513 +4800 +-3431 +8774 +4177 +-5197 +-7973 +6765 +-8023 +-391 +-2788 +5614 +1019 +-9646 +-1852 +-2727 +-518 +-6420 +1098 +-1053 +5508 +4480 +-3965 +2748 +4526 +-8859 +4881 +9348 +5801 +643 +9218 +-1576 +-6992 +-1151 +-5531 +-6588 +1620 +-6343 +4951 +9791 +1247 +-3138 +9832 +-1849 +-4790 +7994 +-4510 +9399 +-4954 +-412 +-7657 +8896 +-375 +9553 +8447 +-5818 +-2536 +-4841 +-4665 +3661 +7554 +9838 +-3399 +-7460 +5619 +-9714 +6995 +4674 +-6189 +-4625 +5858 +-4574 +5568 +-5059 +3367 +-6467 +-4635 +-7061 +-3135 +-6694 +3113 +-1829 +1120 +-258 +-4822 +2054 +-1445 +-5837 +-4483 +4137 +2767 +-4294 +-4932 +-1779 +-6137 +-603 +-3733 +-553 +8668 +-3041 +4658 +-4230 +-58 +-9127 +-2936 +4790 +-2972 +3524 +4031 +8932 +7931 +1555 +-1929 +-8741 +-2118 +-2857 +-992 +642 +-1494 +2963 +-3817 +7497 +1346 +4626 +7852 +9174 +9703 +-8838 +-8155 +1893 +8599 +1606 +6564 +9539 +-9075 +7582 +-6780 +1375 +7350 +-1001 +3202 +3631 +1371 +-8498 +9375 +8078 +-6046 +-9742 +-5052 +-5465 +1284 +5533 +5789 +-5923 +-9147 +-6552 +9584 +-8171 +6188 +-2198 +-8033 +-5115 +-1817 +-6842 +-9936 +-2486 +-1389 +-4712 +-247 +-550 +-8299 +-673 +-4147 +3396 +-5855 +4190 +-9709 +2036 +1890 +-15 +1594 +-4110 +7458 +4875 +-1807 +-3980 +-363 +-9123 +1907 +2981 +1779 +-492 +-1335 +-9537 +7859 +948 +-2860 +-4590 +6054 +8419 +5492 +9994 +-9049 +-8992 +-9153 +-6185 +-1293 +678 +-6850 +-8026 +-6219 +-8815 +-4083 +3640 +4402 +7145 +6119 +-8906 +6871 +-1785 +453 +9051 +8711 +-4760 +3297 +1779 +-1415 +5941 +-7119 +-4322 +8860 +2649 +-3562 +6656 +-4746 +-2056 +6111 +-6896 +-2846 +1998 +-3061 +-4971 +-9204 +-6715 +7423 +6137 +-984 +-8283 +-1047 +472 +-1463 +4234 +-7181 +-375 +8744 +2385 +-392 +4527 +3176 +6983 +5998 +-6053 +-1031 +-601 +-8347 +7198 +-835 +4667 +-2318 +-6877 +-3770 +-6347 +2583 +-520 +-7644 +-1400 +6205 +-9087 +-2006 +5536 +-5325 +-2589 +9317 +-3917 +-3239 +-9942 +-7104 +-5894 +5211 +-7307 +-9796 +6714 +9084 +2950 +7215 +6934 +1248 +6586 +-2147 +4298 +-4026 +-4407 +-9159 +3949 +5495 +-2760 +2155 +5689 +-7644 +9566 +3196 +-5058 +4953 +2313 +-5496 +-7785 +1418 +9676 +-3895 +-7156 +-4745 +-2199 +-2288 +7842 +-9756 +5972 +9543 +5919 +1741 +4350 +8518 +9438 +-1680 +-8656 +-6558 +-2082 +6451 +6233 +-8237 +5642 +-6091 +-7203 +-8521 +-1505 +-5962 +1406 +-3119 +-1161 +-208 +1688 +-575 +-2201 +-4923 +-527 +8366 +-1381 +-7934 +3132 +640 +207 +9784 +2740 +-897 +2306 +5668 +-4276 +-3314 +-82 +3289 +6410 +7249 +-2708 +-9356 +9514 +1519 +-686 +683 +7998 +-5504 +98 +-2755 +8624 +6608 +4143 +-3041 +-424 +-4244 +-8175 +-7691 +-925 +-4479 +1021 +9922 +9848 +-3215 +-2679 +678 +1724 +-5389 +-6397 +9519 +-2271 +5140 +-3301 +-4606 +-2629 +-6756 +8747 +-6828 +-208 +9489 +-8656 +-7327 +9819 +-3267 +7328 +2569 +7389 +-7498 +5941 +-8954 +2929 +5281 +1399 +-4601 +-114 +-4614 +-9937 +-2960 +-4887 +-8437 +6856 +-1060 +-4710 +-4063 +-8117 +1406 +5579 +-9942 +-1919 +-6672 +5107 +9519 +4803 +1728 +-4677 +-9634 +1823 +4334 +-6366 +9056 +7396 +1531 +6834 +7150 +-511 +3017 +1639 +8335 +9771 +-1198 +-4220 +3532 +8446 +-8346 +-1681 +-3935 +-3314 +8895 +-8596 +-8333 +9442 +3132 +5931 +9696 +5435 +7785 +4437 +-6974 +4250 +-3192 +-2574 +3840 +-6232 +9956 +-9705 +-622 +3301 +-7657 +-5252 +-5708 +2287 +4350 +-4969 +8877 +8830 +-5364 +6331 +7027 +-2365 +1446 +7244 +1636 +-4805 +-6021 +-8071 +6802 +-8101 +-7344 +4262 +-71 +-6866 +-5772 +4690 +-348 +-5250 +2088 +6531 +-9695 +-9042 +-4524 +1676 +708 +-9016 +8414 +-8075 +-1231 +9539 +-4822 +-7216 +-3851 +721 +9835 +1691 +6674 +-8976 +9027 +-6954 +8689 +-6411 +-6741 +3878 +1828 +4350 +2219 +8892 +-136 +-3654 +-846 +-7905 +-5120 +3117 +5511 +-420 +1044 +1782 +2114 +-7386 +-1551 +7136 +4434 +4524 +-3926 +-640 +9342 +2865 +7819 +2077 +-8763 +-1916 +-3345 +-5108 +4274 +1978 +-7466 +9948 +-5176 +-2869 +-166 +-41 +1353 +-440 +-8649 +-9425 +-4614 +2011 +5631 +-3310 +-3623 +-4510 +-6517 +-2810 +-6271 +4012 +-2282 +9705 +6279 +7868 +-1749 +-9075 +4989 +3338 +436 +-2419 +2674 +-8829 +9845 +6665 +-3740 +4102 +8649 +5090 +2235 +1882 +-7554 +-7905 +8838 +-2817 +717 +3676 +-7695 +9616 +9444 +1833 +-9267 +1169 +-960 +-391 +1035 +-622 +-5525 +-7407 +6789 +-312 +-3368 +-3926 +9480 +2655 +-874 +8706 +-6127 +-7644 +7760 +7331 +2947 +4113 +-1739 +1326 +-7886 +-7976 +7029 +3047 +-8606 +-7885 +-313 +-938 +9582 +9750 +4506 +8829 +9148 +3678 +2416 +9527 +4521 +4466 +795 +9639 +8863 +8279 +5678 +-7131 +-1389 +5126 +-9036 +-9517 +9231 +-8621 +9771 +-7543 +6756 +8122 +7107 +3338 +2572 +682 +-1467 +-2470 +-9826 +8354 +-3839 +7415 +7668 +-8011 +5640 +1064 +3010 +8343 +-7350 +9568 +7154 +6055 +-2318 +-7466 +-6285 +445 +-7145 +7992 +6789 +1169 +-5452 +3588 +4044 +-9548 +-8333 +9467 +-8851 +-4470 +9694 +-6099 +-2464 +2316 +-5177 +-5632 +-8776 +-9084 +8559 +-2241 +5082 +-8743 +3132 +9064 +-5615 +-3267 +-1563 +6576 +-4808 +1993 +-8948 +8354 +-5209 +-4479 +6074 +8712 +-7303 +7357 +-7460 +4700 +-3026 +-1750 +-1872 +8377 +2278 +-2771 +9188 +6099 +-8028 +-2625 +-7511 +-3296 +119 +8173 +-7516 +6909 +-332 +-6323 +1445 +9282 +-9425 +5839 +-436 +6530 +-7196 +7921 +-7087 +-6465 +-8780 +5219 +613 +4395 +2238 +-5809 +2923 +-6974 +-1023 +1751 +-4590 +-1223 +5462 +-3491 +9462 +-3970 +-2528 +-8201 +-7642 +-7534 +-946 +7257 +-2737 +1732 +-1958 +-4633 +589 +8235 +-8684 +9418 +7126 +7637 +6910 +1329 +-5722 +4595 +-7303 +348 +7911 +1766 +-3722 +-3291 +-639 +-1103 +1794 +-3582 +9943 +9393 +-2577 +-8489 +8518 +9902 +7941 +2278 +-3464 +-7083 +7186 +-5772 +-9016 +-9095 +4374 +-9849 +1113 +-1898 +-2997 +-3712 +-6670 +-1381 +3794 +-5530 +1759 +-8901 +-7460 +-4718 +234 +9540 +-5077 +-3041 +8720 +-2485 +8863 +-3813 +2195 +3156 +-9768 +-1782 +-4777 +-2071 +7272 +-8060 +7522 +-1526 +8305 +7117 +3283 +6806 +-3993 +-846 +-1680 +6859 +-9098 +4288 +3126 +8627 +401 +-5413 +-2057 +-6359 +-6913 +-6366 +5266 +-392 +5709 +-1813 +6112 +5945 +2480 +5041 +-178 +-9867 +5896 +-1094 +-6925 +7783 +-7538 +-6586 +-3972 +-289 +4404 +-6021 +469 +-1032 +671 +5916 +1246 +-8708 +2240 +1488 +581 +-6138 +8943 +-7 +8436 +-146 +9652 +4416 +-1533 +-7790 +-6335 +-8000 +-1570 +-9632 +1542 +-3315 +3132 +1 +-9779 +4881 +9652 +2602 +5909 +4035 +-8795 +-5783 +-7850 +-4861 +7431 +-7882 +-4614 +-960 +9011 +2055 +-6756 +4237 +2194 +-9866 +6822 +-6068 +2854 +-9995 +-1532 +9252 +2555 +-8235 +3272 +9611 +6480 +3895 +-9422 +5387 +-9725 +-5870 +8959 +6271 +1060 +-3959 +-1812 +8492 +-7610 +6859 +-7992 +8156 +-1856 +-3054 +-4999 +850 +4999 +-1326 +8285 +-4384 +6112 +-9446 +-5784 +-299 +6135 +-8472 +-913 +-434 +-3000 +-2562 +-4431 +8640 +-3310 +-5312 +-262 +-1134 +5647 +2088 +-9634 +2120 +8199 +-9277 +4805 +-810 +5447 +7289 +9568 +7304 +-8060 +-7964 +6968 +-5535 +7524 +-9763 +1232 +-167 +-6486 +6589 +2236 +-7491 +-412 +-5580 +-7180 +6480 +5851 +-706 +6 +-6023 +8503 +8585 +3950 +-9049 +348 +5531 +9130 +985 +-2106 +-5799 +-2865 +-5737 +6758 +-7491 +-9747 +-4906 +8264 +-584 +645 +-9755 +8336 +-3699 +5126 +6611 +-7860 +3267 +4987 +-8780 +-3371 +8949 +4132 +2624 +-1750 +4802 +8640 +-2536 +2558 +2522 +2170 +2331 +-4163 +2767 +-6906 +-2901 +9054 +-9777 +-7183 +7696 +-2008 +4790 +-6153 +7249 +-384 +2662 +-7416 +4472 +-2445 +4029 +1220 +5988 +1165 +-5231 +-3842 +-4133 +-1420 +-7885 +8700 +-6927 +9776 +5929 +-3159 +5972 +-484 +8401 +-1241 +-8925 +-9464 +-6224 +-8226 +-9423 +-1281 +6495 +7524 +260 +-1812 +-3022 +9767 +8082 +498 +-9579 +-4139 +3703 +-2915 +6360 +2497 +-9084 +-5953 +9754 +826 +-3022 +-8391 +643 +4862 +9771 +-7336 +-1321 +-2818 +7186 +-2479 +-8128 +5201 +-7695 +-186 +7781 +1874 +-1463 +-8592 +-8986 +8240 +-5259 +7396 +1894 +-9839 +-1052 +-9548 +8841 +-473 +-7534 +-8863 +-5849 +-9522 +-5028 +3869 +-8922 +-8972 +9902 +9444 +-3210 +-3491 +8522 +8569 +2595 +2322 +-9229 +5193 +-7659 +5727 +-980 +5491 +-4114 +-5168 +-3267 +3744 +-9514 +7119 +-8849 +5896 +-4843 +-6220 +-3177 +-8649 +9011 +8302 +8077 +7822 +-475 +-4104 +-7010 +-5893 +-5460 +-3686 +6535 +-385 +756 +-5582 +-9016 +8585 +1027 +-1410 +8086 +1326 +-9926 +1289 +6806 +8898 +-1617 +-2972 +2614 +-1578 +4869 +6012 +-9324 +9802 +5174 +-7511 +-9544 +-3965 +-5683 +8506 +-3802 +-491 +-6581 +-5580 +9382 +-1570 +8017 +-5462 +-5325 +-1302 +8369 +-8948 +-5631 +8342 +-3498 +-7608 +-4525 +868 +5192 +-2062 +-5815 +5339 +-3118 +3524 +-6105 +-466 +-6285 +5404 +-9343 +-6103 +-777 +-6534 +-6314 +-995 +905 +-6328 +-1323 +-3681 +4128 +1552 +8353 +4404 +4076 +1225 +5348 +-6410 +-1561 diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_21.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_21.tst.data new file mode 100644 index 0000000..a889a99 --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_21.tst.data @@ -0,0 +1,2877 @@ +zfbd: 5 +wnqf: pnwq * htpn +tdrp: wrpw * vvwp +clfw: rnzp * zvhb +gncs: 10 +tlmm: 5 +lslm: rbdz + tcvs +wgcp: twsp * ldnm +mhvf: 3 +gsjw: 7 +zjdb: zfwg + hlzh +drbt: 7 +ncwt: 7 +nsdv: czts * nlpw +mrgj: 3 +pjcc: 1 +lqrj: pnpq * msnb +jfrn: 3 +zjqc: 3 +rpnz: 4 +btzp: dlpt / gsfg +jcfb: 5 +fcjc: fpmd * lpll +wpmd: mjjf + hqrf +bgmt: cnbd + lrmc +fwzl: zsdn * fqjs +mwzp: svsg + tzgm +jglm: pwsp * bvmg +bght: 5 +dlcc: fbzq * szlg +hlzh: gfwz * dlcd +pfpw: srwl * wlwr +drql: 8 +wvls: 5 +qzzm: dczl + ddpz +qslq: lgqj * nmdl +rhvw: 3 +lcnj: 2 +gblp: qblf * rqlf +bczw: zssh - rrsr +pblq: mvbt + gzpj +fmsz: 4 +jjfb: vpgn * ztqq +ntgz: 3 +rdrb: zmrl * wsrq +mppd: qsjp * szdm +bjss: qhdc * bgsc +dgsb: hsmc * gpbn +mmgq: 19 +vfmn: flmm * dprg +dgtz: zslp + bwsz +cqwt: 3 +hjpg: 3 +pmqs: 15 +jcqq: 4 +gzcn: 3 +qsdh: 3 +ggwc: mfpf * lvgv +qdlh: 2 +vpzr: 2 +bpfv: 10 +qwwm: 1 +flph: nrcn * smcv +cpzl: 3 +wdzn: gdtc - hczr +tbmp: 8 +bggp: rjtz + jjfn +gspd: 4 +wstv: 20 +hnzd: 3 +mbbl: gsdl * cfjw +zjsw: 5 +llcz: 5 +wnrj: pltj + vvhn +wvhn: 2 +gdwp: ghlq * hlhs +bsnf: hdqn * mqjq +rvsm: 2 +qjcl: fnbl + qshl +qrhr: lsdw / hhsg +frvm: 1 +lqpq: 5 +jfpl: wzbj * sdbq +prfr: 2 +vpgn: pszd * tcfg +swqv: 2 +hqgh: 15 +rdvm: rcmw * hnzd +bbmb: rjgz * mqgr +bscv: 3 +zfsh: 2 +lbzm: 4 +wwgb: 4 +zcgg: njmq * gvmg +njgl: 3 +gvfn: 12 +hjpw: 8 +gblz: jjgj - vzld +fzfp: 5 +gvtz: 6 +ssdf: zzcw - tlmt +fgjh: 14 +bttj: smlh * gtzh +wltg: wfcv * vqsw +gcrr: srqs / rdtb +shvd: zfsh + dhdq +fdzr: zvvp * rsfc +wjwc: ncbv * wqnq +vpds: 11 +jcmg: 2 +cbsd: pzlz + zsqs +ztpf: 9 +dgsg: 20 +tcvs: drbt + ggjn +dlqw: mwsf * rqll +bfms: 5 +fhrh: vwgf + nrvh +cbhr: 3 +rhmn: fllz + vcvw +zgbm: 2 +qqzm: 6 +tddl: lzdj + qrjw +bwwp: 10 +vmqr: 5 +frlr: tgtf * bszs +jdll: zbnv / hwnh +jvrg: hqfn - jmcs +cjss: 4 +bjsc: 3 +zqcm: gcqn * lzwr +cldl: gtvj + ndqt +fpbw: 3 +cfbt: 2 +rdhn: 3 +zrdp: fcpp + wdnj +mzjn: nwjd + zrdp +vhld: 3 +ccrm: 3 +wdnj: jmct + mjvl +zcsz: qpbr * rvsm +jzbq: ccgc - wldt +nglc: zlsz * gbll +tzqw: stqf * zffp +gcnj: 3 +shrq: hbfm * bbpj +cldj: 4 +nqwp: jmgc + pfnf +hctq: 2 +hbfm: 3 +wqpn: hrsr + qlzj +fjfd: vdzg * pflw +fqjs: 14 +tjwn: 13 +tqmc: 3 +lbzg: 4 +zhds: qqzm * tptb +cspt: chsr - bfms +jvnl: qjrd + shrq +dvnq: jbdw * pprv +jqgc: 2 +dmgj: 3 +sprr: 13 +zhfn: 1 +cwlg: wrhr / cwwv +whql: 18 +vtml: 1 +lgjj: rjpt + hsdq +mlmd: hqwm * ftqb +vsdb: qfqf * rmlc +vnwm: ctbl + msmc +sdbq: 2 +rrmb: jwgh + ppbs +rcmw: 3 +dcqb: hhjf * zwvf +lcdl: 9 +crww: nchh * cfbt +twzt: jzdb * vzwd +jdft: 2 +mbsl: 2 +hnrf: rjhg + lffp +tgpl: 2 +hbbd: 12 +czfn: dczc * bztw +vznj: 3 +sbhl: 5 +zlvf: tgjz * sjvt +fbms: 17 +jgfp: zspf + tpgj +gbqq: pwsb * lnft +gzmg: jjnq / bggz +mznj: 3 +dwcn: mwqf + qtdf +rczp: czfb * lvwq +hmrp: cjvp * rqvt +fswg: zvzq * tggd +rhmq: lvnt * lpbb +zchp: djln + jmsv +lmpb: jmqh * lthd +wmwm: fpnj + bbmb +rnfn: 2 +hdpd: bdwr + qsff +zvhb: 2 +zbhc: 7 +qlnv: 5 +fwlb: 2 +zhjv: dzlh + bplp +wlqn: jgdz * phtr +ssrb: whth * gzjf +twmg: pzgm + rlmj +dwns: 2 +bvjv: wbcl + nqdh +bggz: 2 +vdzg: 3 +vphr: 3 +chrl: zqvz * jcws +jsts: 5 +zpsn: 2 +gsdl: dlrb * nbtg +lhng: 8 +tmqc: dhhg / gjsf +gfwz: vwqt + drdl +zvzq: 5 +qsvf: wgvp * dswc +qlnp: 3 +lvmq: 11 +rznh: 2 +tjdv: swfw * hnrf +wzmj: 9 +rzvz: fbdb * qdvz +zrzf: 3 +tzsc: 2 +zvhf: 2 +qfss: jdtm * szzm +gjjt: 3 +tlds: 5 +tfsr: 5 +swdd: drgg + hgwm +sttj: zvts * cwcj +qfjq: ztmq + bjss +crhc: rpmg * gcnj +sssh: lzvd * swdd +zmdb: bzpc * gfqb +qptl: 6 +trvm: 2 +prrq: 3 +ghmh: 16 +rntv: ftfb * vgdb +gjhh: vlzz * fpfm +mptc: 2 +tlvg: 14 +mlgw: twqw * cfzv +vghn: 2 +wbql: 4 +vgwt: 5 +cjvp: 2 +nvcl: 4 +dqzs: 3 +jmqh: 3 +zcbq: 3 +bmrb: tqnm / vlgf +nqcn: dtgf * mnsq +fgjs: 5 +bvlc: 7 +hcwt: 1 +wzcf: rtzn + lfff +whgs: 3 +szzb: 2 +hgwv: 3 +qczn: 2 +gvrr: 2 +swws: snpf + dmzq +cmpp: snqf * llcz +mlrd: 3 +nrbd: 2 +mmbr: nllh * lcnj +pzqz: vqjj - bzmg +mvtj: flqt - szgn +hhcj: 6 +mptn: 2 +crwj: 15 +tpgj: svzb * hnlh +qdfb: 13 +wqdr: tjtl + jcdh +pdrl: gzpt * pjhw +cztj: ztml * nbnh +jsgs: flhf + dwmv +pnmf: 2 +gvtv: 7 +vdvh: 4 +frvq: jtlv + lhvw +dfdz: tzqw + lhhp +qrqg: zhjv * hdhc +cmvf: rphw * gzcn +njmq: tqrc / nwvg +nhsv: qrss + vmsm +jmcq: 13 +fbsc: 2 +qstp: 4 +rpst: 4 +pnwq: 13 +htvv: wscf + pdbj +zlpd: 15 +wgjc: 3 +wtbj: 7 +crjq: pddq * nzcz +cppw: bsnd * lgmg +nmpb: 3 +pgbp: pwll - ccsd +gftq: 10 +mlzd: 4 +stnz: 5 +gpnl: 5 +bnsd: qhmm * fvbd +tvdl: 18 +srwl: 2 +zjbq: rcrb * wsbj +qzdj: 7 +zlvv: 10 +jzcb: 8 +psjj: ndjc + zpdb +cwgq: zvbw - zdjr +sbst: 2 +bgsc: wrnz + mmgq +stqq: hmrp + gzlb +jnzj: 2 +wvzb: mlds / cpbv +nfvh: tvwg * psll +wvpd: 5 +zphm: 2 +jrsq: dqzs * fnjv +hhjq: hfgw - lnsn +hqwm: 11 +vsfv: grfv + vlcb +fmsp: 1 +rqdl: 2 +shfs: 5 +ltln: 2 +pcss: 3 +frth: qcwm + plbb +ggtb: tcqm * jwcp +hhmp: fgnd + nmtw +qpls: 14 +dvvc: 6 +tjvp: bzsv + vmvr +mmlv: 4 +ncbv: 5 +gcpj: qdvq * dbpr +gllb: 9 +wpbp: 6 +bwmh: htnl / lbft +lfgc: 4 +qmqn: 14 +gqbr: 11 +vlhc: 2 +lbhq: fcgv - mffn +plrj: btzp - zhcc +ccgc: gdvv / vdwn +fqjh: cdff + rgql +qdvj: 17 +zzdd: jths * ccbw +wzhw: rszl * lrwt +bqsq: dhsn + twwz +dlft: 7 +mbjm: brnv / mpnh +vltn: pshj / slzj +gzqg: 2 +wplp: vjnq - sbrz +vbqv: fvwq + bpfv +vdlq: fzbl + tpzc +jmbr: zhmm + lgnp +gjpc: 5 +hnsm: 4 +ppvn: 8 +lvlc: qhzc * thnj +drlm: 2 +ntcp: 2 +jths: zhdd / hdmh +jnqb: 4 +dbpr: 3 +bftw: 2 +dtzp: 3 +bpfr: dwns + bzqz +pjlc: sprr * mddr +spjj: 17 +tphs: rnmz - zscq +qzwh: blmb + mbcq +nwmb: lqzq * glgf +psll: hwrr + hrlm +rzrj: 1 +rjgz: qslq + qnsh +zdvg: 2 +fvtf: 11 +rjbd: grhh + wnwp +lqjq: 3 +cqbw: zvdt * sjvr +hzff: 14 +pmbn: 5 +dqwz: sdfv * wchv +crql: ffbf * hpjf +jssv: 2 +mfhw: dwrh * jcfb +bwnr: 2 +mwqj: zhfn + ddrr +pzgz: czdw + ftzh +gcpn: 6 +rvpf: bnlv * mztq +nqsm: 5 +mvdw: 3 +gzpt: bpng + zbhj +hzdf: 16 +wwsc: 20 +trwg: pbcf * mgdr +zhcp: cgss * ltln +pnwj: 10 +rrsr: 1 +sprw: 8 +rqgq: 2 +pbvt: 12 +jbqn: 2 +jwvm: rdnm * zrzf +hqcm: drhl + msbw +pbcf: jtgj + hrlh +gqqz: 2 +flrh: 3 +fbrb: jjrn + bjnh +grmh: nbnm * wnfn +rdtb: 3 +fvbd: 3 +pvmh: cvwd / vghn +lfqg: lqzj + lmvh +lrwt: fswg - rfcn +jbbh: jcvj + ppgt +nvwd: 2 +bghm: 2 +pjpp: mbwv + lnls +jlmg: swwd * vncb +zvhd: njqv + rwgh +hswj: bbdf + ghch +szzm: nbdt + bsnf +lhns: 2 +cvbw: jpjq + jwqm +cmhv: 5 +nbnh: mqrb * bsrr +sqjd: vbnq * ssdf +zvdw: sznf + bgmt +snfw: 2 +qtzr: pglg + fbqp +ngwd: gtcv + lljb +nbrq: 5 +dtdb: sprp * zgnq +jsvj: 2 +wfzl: qsbm + qpcj +zcpp: zglf * qfpw +mjqf: jgsd * bchm +fmtc: 2 +ctwj: 3 +zrnm: 3 +ttwb: pqvj * rcdw +szsl: 5 +qdsj: pnfg * fvqb +zmjn: wsvh + vtml +llbb: dnnv * wspz +wfzd: 2 +blpd: 8 +rrzs: jzfv * vsjs +prht: 6 +vlgf: 2 +jwqm: gbqq + hwjh +lvlh: jmwn * zcgg +gtcc: qvct - sndn +rcmn: brpv + lrbb +tjcv: zjqm * hmhc +bsmw: mqrl - gbhf +ddnd: ghdc * tdrp +bhcd: gsgd + lslm +shln: 4 +rldv: gbwq * qzhl +plbb: 16 +qsfs: 3 +fdrr: ljtz * jrcj +wrwq: 5 +cwpz: vhbf * ztbz +glcc: 3 +vwbf: 17 +htmn: whgs * ppvn +fwtt: 4 +hdng: gbsh + sclr +lmjl: lrmt / nmpb +vmrr: tlqc * ntmn +srss: 3 +vrtq: 4 +wdnt: bwsc * mlbb +zlnf: 2 +wpmr: 7 +wtdz: vczs * vncp +swwd: 2 +tcfm: 18 +vlml: 5 +jldt: jrvv + lgdd +vswl: 3 +qslr: nrbd * qtsn +rlwh: crql - bzlj +vbsj: wzfm * gfvz +zpcr: 7 +jzdl: fmrp - vfsb +gcch: 4 +fszl: vpdp * wlhh +wwrl: qslr + nzgn +qhzh: 13 +wwrp: 17 +nncc: jbls + rfvt +qhvd: zngg - cnwd +ptsn: 1 +scsf: ftvm * tlgj +lfbh: gqwm + twbm +gtvj: 14 +hzwh: 2 +hzpz: 5 +fvwq: 1 +chbs: 2 +ftmj: wgpn * vcsf +lfzb: 2 +tsbv: bthm + mdrt +wfgw: 2 +btdn: 5 +jztc: tdbp + ghzr +ncld: 7 +gjsf: 2 +wsjn: tlqt / gvrr +vzld: 2 +dvhb: 5 +grsc: mqgl * qlnv +dhdq: grbp - grmh +bhvz: qbbc / ldhd +zgqc: 5 +tmcf: 7 +zfwg: clfw * dglt +bwsz: 6 +dwmv: bsfb + dsnd +fvpb: 3 +zcvc: dcfv * jcnh +cndv: 5 +tcfg: 3 +zslp: 1 +drjr: 3 +wnjb: 3 +rrrc: mvpd * jctj +fgvn: qtwv + gpvn +dzcv: wbmj * rzhr +pzgm: fmct * wblf +tptb: 7 +vccg: 4 +lfcv: rsbr * cqjl +cbdr: mqdh + ggsf +fzpr: qwwm + nsmc +pbzn: 14 +gbll: 5 +rjhg: dhdm + pmgl +czfb: 10 +vlcb: 5 +lflc: 2 +tqtw: thsv * ntgz +dvnt: 3 +jjnq: jgrn * zjzb +nlgt: 9 +vqsw: 12 +dsnd: 4 +vrfz: 2 +zlps: 3 +hvjh: 3 +hbnc: 3 +nzgj: sngd * wthh +smlz: 4 +fgvc: nwwh * blpd +srtb: dcgm / zjtq +fptp: 8 +wscf: njrb * dwrt +hrlm: rgqf * jcpt +btfq: cjzc * zsjn +rjzw: hvfp + zmql +brnv: bmpj * jgmh +wblf: htsb + httv +fcpv: 20 +tfll: wbbj - vfmd +qwwv: 14 +wfcv: hrjq - wgjc +hjmm: 2 +nphn: sqsm + cnjf +psjz: 2 +plrp: zjsw * hglg +pzvl: cchf * gwhl +hnnl: 7 +hdcd: 19 +gsfg: 2 +swfv: wnbq * rqdl +dwdt: zccv + spmf +bfsh: 1 +ztgd: 4 +mzhn: qhcb * cbhf +gdgw: 4 +bqln: qqcm + ddtg +brld: 2 +mpzr: mgrw * tzbv +mtgf: 4 +slpc: ntgr * tftb +mtcn: wstz * jcgl +qmwd: 5 +csvq: 5 +mqhd: mtqw + bdzf +lmmp: rjdw + bfdj +jwgh: wzsp + splm +qsnc: mwhr * pzqz +dntp: zrbt * wtqh +fbrw: rcmn + bnsd +rhgw: 2 +hdqn: smgw + mvtj +hdmh: dmgj + pdmg +sdfh: sgrc - gfcz +fgvl: 6 +dswc: 5 +sdrr: 3 +wtlb: 7 +fgnd: wdzn * fghs +lhnb: pwbj * dvbm +zlsz: 19 +nqrr: 7 +zbdf: 13 +frjd: ltws * hjpg +hmfc: 2 +dnfn: 16 +pptt: 5 +zqcs: wcmm / sbst +vzbv: 4 +zzrm: wrvs + bjdc +zwsw: vtvz + bdvp +cvnc: 5 +dlcd: 7 +nqbq: 2 +hwwc: 1 +nhhb: 5 +blfw: ldmq + gmbp +phtr: 2 +qmmq: vbzr + bwwp +rjjv: ltjt + jmhq +qffg: 4 +wchv: 3 +qccj: 7 +vwsw: ntqf * sgqj +qnss: 2 +jmtn: 1 +mzts: mptn * stnz +pqvj: 4 +fmqr: 3 +hbqs: 4 +nhww: bpmh + tqtw +vhbf: 2 +tpgg: dcrr - mnvl +hqfn: 18 +nqdz: jqpr / mtct +bgqr: 1 +rbcd: 4 +rszl: 2 +vvvt: 3 +hwrr: cllg + pcvg +ftzh: 5 +ttbl: wctc + bgbt +jhbw: 2 +rzgw: 3 +zjgz: zqgz - fdls +mnbv: wpmd * fhqp +zglf: 3 +lgdd: 1 +hzss: gbrh * jnhg +mtcq: cbsd + fptp +ndzj: 5 +qgdh: 2 +tlqc: 2 +dmgp: 13 +hsjt: ggvj + wmpp +tvpw: stpq * pfsd +jjzr: 4 +dlrt: 5 +twwz: dnqf + dpwb +vnbc: 4 +btdr: wjmw + mhvj +nmmp: 6 +hbqh: 12 +pdbj: zjdb + qhjj +tmmh: 3 +shnt: rpgb + qrbp +qnfr: jvgw + vjww +wnbq: hrbz * qjcl +mtpn: 4 +mfbj: nqwp / blcn +hlqj: 1 +qjvn: 4 +rgql: 4 +ptsz: mnbv - zglh +bwfq: lqtn * qngl +vsnh: wmwq * nqbq +fhfr: 2 +hsmc: pfpw / scpv +fscp: 6 +wzcr: lbzg + zmnj +crdp: 2 +fglh: jwdb + hcjr +dczc: hqlv * vptz +gdjj: glcc + dlvq +dgtv: 7 +ljtz: 2 +qsff: 7 +rqfq: mqvf + fpjl +zbgn: mwtf - njgl +cmjv: mpgs - wpmw +ncnb: 13 +nvwl: vbjb + sjlc +vplg: jdsp * qdgv +rslh: zpcr * nmbp +wpvf: hhmp / mptc +bdph: 3 +qmcp: gmts + swhm +qngl: 4 +rjpt: 3 +zhdd: ddbn * wtlb +bqcd: 17 +tzdc: 13 +bftg: qpls + hmss +crnv: 17 +bcwm: lvzt + llfc +prdr: 15 +dvpv: hvth * pfzb +bdwr: cqfp * tczb +nljr: jllm / sltm +vqjj: fncj / lbzn +mpqh: 2 +lnqs: 2 +rpgb: 2 +ffrr: psvv * wqdr +tmlf: 7 +bvdn: dmdb + ljft +fzbn: 3 +vrvv: nzfb - bjdt +pghh: 2 +hbzt: 7 +wtqh: 2 +lznq: 14 +mgrw: zwvl + nvcl +vqnl: 2 +pprv: 2 +vvcv: 3 +lldb: qsnc * hzwh +lwgm: 2 +zlrm: tgcg * rznh +mgmq: 3 +wphc: lwbm + tgph +wlhh: 2 +dmgd: 2 +qvgj: 3 +vptz: rnhf + qmzq +nqcl: 2 +llwg: cztj - cgsd +jgdz: 3 +vhfn: zcvc + rtmz +qhzc: pjsb + vwbn +gnnq: 3 +fgmq: 3 +fnbl: ztzs + pwfl +pflw: wbbz * hbqq +dzzq: zzjq + rcvn +lhhh: clpw * mbdl +trwt: lmjl - lwdt +nlfn: pzgj + jvrg +dvdl: lqwz * dcmr +lwtj: cbhr * lhfz +twfr: vvcm * stqq +hpsv: 3 +wcmm: ttzz * zlhg +jcdh: 10 +gtlr: 1 +qvnw: 2 +sjvr: 4 +dwdw: lvwd - qshv +rngg: gblz * fmqr +dnzc: 2 +wsvn: jhqj * grwr +sgqj: gcpn + qdvj +nllh: gjbh + vvgt +tnnw: 2 +tqnm: jvct * nzpt +ppbc: lnqw + wmst +wwcm: 13 +rchl: lhns * nclw +lvcp: 2 +wpgn: 2 +qncb: 8 +csgs: brrd / qcwt +gsgd: cjtd * lmhj +qbdb: 2 +jnhg: 7 +nfmj: fbff + bmhl +cwwl: ctbp + ztpf +tqcj: nmww + cdvg +grwg: 3 +mqpp: jwhv * rgmn +glmv: rfcr / gzrf +htsb: qhfc * fdrr +jmct: 1 +qtcf: fdqt + gncl +mdvp: 2 +jpdc: mzts * hqgh +dnqf: 1 +rdfh: 5 +ttzz: 2 +btrt: 2 +wbzr: qdht + mlzd +zdjr: 1 +ggpb: hhqm * vmcw +wbmj: 2 +dhhg: fglh * mphq +bnbw: zchp * rbjf +hczv: 2 +wlfn: hhjq * ghdl +lgmg: 3 +mrcb: mpdj * vnwm +rvzd: 20 +qwct: rzbt * tqpq +gmqr: 7 +nmbp: hlqj + rzsv +qhvp: 1 +jdwp: 2 +nszf: sssh * ndrv +jfvs: rhgh / zptw +gjcg: hswj - wfbd +rnsd: wntz / vrtq +lwqb: tcvt * slsc +zgph: qznj * fcfp +ffvr: 5 +msmc: 2 +qsmf: zcbq * gjjt +hhjr: 5 +qdlt: 3 +rvbn: fbrw / rzhn +pnwh: hpsv * pwrn +sbfh: flph * vpds +wfgr: 13 +zvdl: zrlw + wrfw +fmhd: 12 +wbvs: cspt + hnwt +zsvw: 5 +ccpz: nbrq + wrwq +tghq: zlrl * dwtf +zfrl: 3 +zlhg: gmqr + fddm +lpbj: 4 +mcns: jlsf + vfmn +bjms: 8 +hwvm: jtbl * mhqv +gdmj: qrwn * svjf +wjbf: lgzw * wpbp +zvnt: 4 +qbcq: 2 +fqhj: 3 +tpwp: vncw * qbgw +msnb: dbgw * vvlf +smgw: bvlc * gllj +jrcj: 3 +smlh: fpvp + wrzj +msqg: ccrm * nqsm +dhtz: fhrf - cbdr +qvvt: dlrt * lbgj +sjqz: pqnp + zntr +hpcd: tzsm * njjn +mgmd: 18 +vjww: tpbz * hmgl +hhlq: 15 +jspz: trwt * qsnh +jzfv: 4 +cnwd: ltrl + fdzr +hppc: 3 +vzvq: 4 +qpcj: 5 +bbpj: npnh * gczw +gmgn: 5 +dcfv: ljfc + hdpf +rsfc: 2 +nmth: gjrf * pnmf +bqht: 5 +zhgq: psph + dwvv +sppf: zjpl * slfj +lzmt: 7 +vwnm: 10 +cjtd: rnfn * jfrn +tlnr: pdbg * qfqn +mbzb: 11 +qlqd: zlps + vfhq +cdvg: 4 +tqsq: 2 +rjwz: 5 +bplp: 6 +hgdt: dsnr * mlrd +jlqc: vslg + zlwj +mpgf: 5 +swhm: lhgz + rfrd +hglg: 5 +vvbv: 5 +phvl: 5 +jtsq: qbgl * hjtb +gtfn: 11 +tggc: 3 +fbqp: jdsg * tpwp +vbjb: 1 +dwmd: flnz + nqws +mjqj: 2 +tvnr: jrjd * nqsh +nqvn: dplr * mfwc +brtb: sjdj * cwwl +bcfv: fppb * lwlw +nqws: dllh * nsqz +jddq: 2 +sjvt: nldl * jrrz +hqvd: 12 +zqbf: dgzr * qmbs +lrjw: lmmp * wpgn +qsqv: 7 +vcbs: 3 +fcpp: hgwv * vtsd +ttwg: 2 +dnjt: 3 +zzmc: qlsj * nbzn +dwvv: vfnq * bcbz +pjhw: 2 +pfzb: 6 +cpvn: 4 +vrft: dvmw * zbdf +wpwc: mfbj * nvwd +jgmc: 2 +djqd: 2 +cglm: cwlg - crhc +qrlp: tjdq * hjzm +gfcz: cbtf + wsvn +dbsp: 2 +dtsb: zwfr + zbww +cmwp: 2 +hgwm: 10 +wfmt: dvpq + ftmj +hnlh: 5 +lsjt: crmb * mhpr +vtdm: shnt * vbbn +bzbp: vnrb + dlcc +nrlv: cvjs * qtcs +wnls: lhwc * twfr +rqcv: 17 +fbff: rpnz * nhnz +qznj: ccdl + htrl +szdn: 10 +dfbs: dzcv + mbvd +lpdw: 7 +zptw: 4 +hqlq: mjqj + vhdb +mvwc: 3 +vjzb: qhfn + vplg +jvvm: 3 +ltzz: rbmm * zbmw +qrbp: rllh + btfq +mztm: gmgn + mtgt +gddt: 2 +nmph: 2 +sgqt: 14 +rhnj: 13 +jwhv: 7 +hnwt: wvzw + sqcs +bwll: frlr + wvsq +tlfw: 9 +ntgr: 2 +hhqm: 2 +bslv: 5 +llph: vmqr * srpb +qmzq: qczn * zmft +clcd: psjj + jsbf +lpll: 2 +vmvh: 2 +jqsc: vrvv / vwcq +zmdj: lmrn + clvb +bfcb: sjqz - rhmq +vcfv: 2 +cbnj: 9 +hftg: qvgj + cfww +dhdm: 8 +qhwr: pcwt * hrwm +fhqz: fmdg * sppf +drdl: 2 +jfvg: 12 +psqq: 5 +gpvn: rdrb + zdmq +mtsm: 3 +lpqf: hpcd + frvh +shlw: vrsn + nbvq +clpw: 4 +wwld: 2 +bpmh: 4 +dgvv: wvzb * nmph +dglt: pgrb * tljm +hbfh: 1 +vlhh: lldb + vtpv +hndv: csgb + rlls +rzhn: 2 +bmjf: 2 +fncj: nwvs * jfnp +bfdj: vdqw * ttdg +dctp: lswz + lhng +jvlw: 2 +tvtm: mqzr * ptrr +snpf: 5 +drhl: vmft * pbvf +mjnw: 2 +stfd: fbdf * tqmc +gzpj: 7 +vlnb: 2 +dcmr: 3 +gbhf: gzbf + rbqm +lbzn: 8 +ccjd: 2 +fgtz: 3 +hvmh: 2 +fwtm: dmlf + gjqm +tlwc: mjpd + pzvl +vhmg: dtdz * cppd +dfmw: tgpl * jnwh +mjcv: pjsg - tsmw +sqds: svbl * pvws +gwhl: 2 +pbtp: 5 +djsp: 1 +dllh: 2 +fpvp: wgqs + ngwd +gczw: 2 +lhcl: 4 +pjts: fvns + wphc +qwrv: jbnp * pcqq +jcsw: spjj * cttp +bcpg: 11 +vlzp: 6 +qgpd: 1 +rfcn: rbpl + vbqv +sfpn: fmtl * bfmp +dzpc: tttd * pcss +pdmg: 4 +bhpf: nnbg * rthm +vncb: 5 +jztj: 5 +wsvh: rsqc * zbgn +hsnb: wztg - rvmc +hgtm: jddq * mjcv +hrcw: 3 +sjlc: jvqj * lflc +gllj: 6 +phmr: 3 +sdcb: 5 +jcws: wltg + cbtb +cblw: 2 +svql: 5 +vghb: jsvj + wpvn +gnzw: 3 +pghb: jlqc + fgvc +fwwp: 3 +ftjb: 3 +rnhf: 11 +nflw: jnzj + vsjr +wstz: vpzr * csgs +nbzn: dqjj + lwph +tttr: 3 +bbmw: 1 +fwhn: tpgg / wqpn +mlfw: 3 +wrzm: rzbs + bjms +cbjv: 5 +tlqt: zlrs * wplp +sqcs: 1 +wlwr: lfmv + cjjr +lrqn: wpmr * mpnc +bbbn: vwzv + qbdb +wdvr: ffhd / wlpm +glbb: 12 +dqdj: 19 +mfln: 3 +hgcv: 2 +rpqg: mppr * hjmm +splm: wwwf - gcch +vfrl: ztdl - nldz +lfmv: 4 +jhhd: 13 +ggjn: 1 +qtvl: 6 +svvn: 2 +vfhq: 3 +fvqb: hvsr * szzb +stvr: 4 +wrfw: 6 +jnfc: vthr * wtbj +qfhs: hzss + dlbm +swjr: vwlc * jzbq +cbtf: dnfn + bwmh +ldhd: 2 +glgf: 2 +plpn: 3 +qlzj: 1 +hcsl: 2 +lhhp: rhvw + mfbn +ccbw: 2 +qbtp: 2 +sqlt: hqgj / mjjc +gzlb: mlbn * thvv +svjf: 6 +zmpr: jsjm * czpq +jllm: rvbn - zlpd +gjrf: 3 +cpcn: vnpc * dqdj +nzgn: 15 +qhfn: 12 +znqv: rrzs + qrsd +blqz: 3 +qqpn: gstv + sttj +nrww: bcwm + dffp +jjrn: vmvh * bhmp +tdvz: jbdb * mcns +fbwt: 2 +mrzp: 5 +thvv: 5 +tghh: wbzr / lfgc +znhv: whvd * sbhl +sjhg: nrjh * vlnb +blts: 2 +lvwd: szfc / dwdd +grwr: 3 +tljm: 2 +pbmp: zlwq * pchs +vbhz: mjqf * smjw +pdcb: nfct * whfg +mhvj: ncwt * jbbh +wrvs: 1 +wmfc: zjpq / bmjf +cchf: 17 +vncw: zgmv + prbm +dfmj: 2 +mpmp: wfnc + chfp +fqtc: 5 +rvmm: 5 +gtzh: dlqw / cpvj +vtsd: 2 +ghlq: 2 +qbcm: ldng + dthb +pfwf: 10 +dsnj: hprq * vzhd +ztjj: 13 +mffn: gzlc * qjdf +ggzs: 7 +pzvz: 14 +gncl: sprw + lcdl +fvdn: gjpc * vptc +jddt: pjft * hdng +zwph: 3 +zsdn: mpmp + znqf +mmnl: nrlv * jtsq +qvch: 6 +rzhr: 3 +njzv: 2 +blhj: pscl * nhqn +rtlf: zqbw - rzvz +pjft: 5 +lgqj: lvmq * qbtp +frvh: 1 +tqls: pwhn + slpc +szpp: 2 +tttd: wfzd * pjts +jptd: 4 +jwdb: 2 +rsbr: 3 +ctbl: 11 +pqfv: 20 +zzpn: 2 +dmdb: 2 +vdgf: bhcd * srss +ldnm: 2 +nsrr: fvfd * lnqs +phfc: 2 +swbm: 2 +ssnw: 20 +fpvq: dzdn + vnln +hfgw: 13 +jcbn: 2 +dmss: 5 +jlcd: 11 +csgb: 1 +jtsv: fwwp * rwzb +hdwq: vgdp - tsjm +bhlh: qmrz * sphz +frgb: 5 +zdmq: 5 +cjjr: 3 +hzrq: dgtv + qmwd +dlvq: nvwl * vprv +mpdj: 14 +ldjw: 2 +bwtd: wwsc / zccn +cfww: 5 +qlmc: 4 +jmgc: fbrb + czfn +gjbh: fcpv + htmn +grfv: bnpf + frjd +wjrh: lvlh - fpfb +trch: 5 +nbdt: dnss * dmnn +njqv: zjss + mgmq +vstd: 1 +pfgb: tswm * vbhz +root: rnsd + vlzj +rwtl: 8 +rbmm: 2 +jcgl: 2 +mbcq: 7 +vnqs: vzns * llwg +ftfb: 4 +nrcl: 2 +ggsf: trnd * dphh +ppbs: jqjq * jptd +dwzm: wbvs + nhbc +jvct: sqwh + swlj +qtsn: cmpp + zvnt +gbrh: 12 +dfcq: pzjm * psjz +dplr: hjnp * fqjh +zrlr: 5 +qjwt: ggtb * qmmm +ldmq: 5 +lqjf: gnwf * fbws +mqdh: vmrr + flqr +vwgf: 4 +hnct: vnmp * mhjq +pzgj: pbcp + gzfc +lbft: 7 +mvbd: hjvb + bzrr +bvsm: 3 +hwsn: 7 +znft: 8 +vvrz: 19 +jvrm: ldjw * mvvg +bsfb: 2 +vmft: 8 +bdzf: 10 +rfpm: 5 +ffhd: qqtl / drlm +hdsr: 3 +qqdb: vbct * zqcp +qrfc: 2 +zjbg: 6 +hqvg: 5 +qqwh: vqct * fwhn +djsj: 2 +jrvv: 18 +hctl: 3 +cllg: wdnt * tjdv +hdbc: zgph + bwll +gvzw: vbsj * gvlv +schf: 14 +hfwm: 3 +dwrt: gjbn * jbcl +mqjq: 7 +mgvz: 11 +jjgm: 5 +zcwd: 6 +btpj: vmzr + mfrf +mdzv: 3 +pcsg: wlgz * szhv +qdgv: 5 +dnmb: vphr * cblw +bfmp: 3 +dnpq: nmrw + qgpd +flqr: 3 +jsdm: zjbh * lgjj +vcbb: pmwz * gjft +szgn: llph + pjlc +jsjm: lglc + frws +vdfq: rhfw * pjbd +vfnq: 2 +mlds: vrlp + rslh +ssmj: tzsc * bvjv +spsd: 3 +mfbn: 4 +nzfb: gmwr * cdpz +dlbm: zmtb + gvzw +fcjw: bfcb / vhld +hlvz: vrfz * pzvz +vnpc: wlqn + gdjj +ctdj: ghmh - hrcw +lrbb: fzmt * fwpv +fdqt: 6 +pjbd: lhnb / mcpp +mbdl: swbm + vfrl +hcvt: ltbd * bqfl +ltjt: 10 +hrlh: 5 +vmcw: 4 +fpnj: jcbm + mjpv +wgrs: 3 +bthm: 11 +chlf: qgfh * tnnw +zsnz: qgmc + zmpr +flsp: jvtm + tcfm +vbnq: 3 +wjnb: 14 +czts: 3 +qslv: qzwh * phfc +vnrb: szcp + bcwv +lwdt: mdvp * mwzp +qjrd: 13 +dhzd: 10 +hvgr: zjbq + fwlb +tnps: 7 +fpmd: gnrs * zjqc +fdls: 3 +lmhj: 2 +qbgg: ghbb + qqpn +jgmh: ntdp * jcmg +nzpt: 2 +vdlb: 8 +gzrf: 2 +cbrb: pmqs + rvzd +jttc: wlqr * jnmz +gvmg: 5 +stpq: 2 +fpzr: 3 +bwpf: pghb * dblp +wvzw: tgcl * pvqc +bdbr: 12 +ztmz: 2 +vzmv: dgvv + wjwc +tjcm: bcpg * zzmh +scjl: 7 +gcqn: wwld * qstp +hcpp: 1 +tzbg: fccw * qsvf +wrhr: mlwj + bcbp +mnvl: cbtm * dtrv +cpqp: ffrr + glbb +qhzz: 9 +ddpz: wvhf - lfqg +mhqv: dbnw + zvdl +wbcl: tjcm + cmsj +psms: 3 +pczd: 4 +cqzt: 4 +lfff: mqtr + zqtq +svsn: 2 +tppt: zrcm + sjhg +twqw: 2 +jqsj: srgn + phsl +zdtq: frvm + dhpp +zngg: hjjq * hsnb +swzg: mzhn + cgbt +flhf: tmqf * fzpr +cbpg: 5 +dbgl: 3 +hbbs: 2 +zjpq: bghm * mdbh +fddm: bglh - tnps +lglc: 15 +pqdm: mrsv + cflr +slbz: 7 +hdpf: hbbd - mvrd +stht: nwhz + cpqp +rmff: 7 +rmrz: fhbq + ddpj +srgn: btht * sdrr +lhwc: gtfn + hzwz +fllz: hgtm + vtdm +tgjz: 2 +wthh: 3 +szdm: hwmr + ccpz +wzbj: 5 +rwzb: 17 +zzmh: 3 +brrd: bbrp * qnss +wnwp: nfmj + bhht +rpdd: 5 +mwhr: qlzm + wnjp +ztmc: 10 +zpzm: grwg * vprf +lqsl: 5 +clvc: qctc * csdn +nfct: grsc + tnnc +hwnh: 2 +wntz: wffr + qrlp +rlmj: wgcp + bddg +jfbv: 2 +fcdn: 2 +pfnf: qdfb * ztjj +cdzz: 2 +vhml: 5 +wctq: 3 +stcc: ngws - srnb +vwdh: 5 +nccf: njtf + zlvv +mppr: 5 +rgdc: 6 +njjn: 2 +dlpt: jjdh * dmgp +qsnh: 2 +szqv: zhhd + nsnz +qcpw: sqcv + jvzt +tvwg: 3 +jrth: 4 +csmg: qjvn * lqjf +bdvp: htph * hjpw +lljb: gbtt - jlcd +tgcg: wzcf + bsmw +jmwd: 4 +mpfg: 8 +lpgr: ngvn + njfd +vzcw: fjhb + jnzl +mdnp: 4 +zffp: vbwz * phvl +slfj: 2 +pmwz: tphs + dzpc +qgmc: dtdb * hctl +blth: nlfn * vgzm +zjsm: 2 +lhgz: cmjv * pslw +djjg: tlvg * spfq +vvcm: 2 +wdmc: qlrt * nhhb +rcjt: 3 +grrw: 3 +cqfp: 2 +rzfs: wfzl * sddm +nrvh: mmlz * wbfd +nsmc: tmmh * vcgj +hmss: brtb / sntq +zmnj: prht + lzmt +cpbv: 4 +qnpd: pslg * zbnn +nbtg: nqcn - hbqh +qbsf: 5 +ztml: nccf + wjbf +lclq: 13 +qlrt: 5 +gfqb: 6 +dmfz: 8 +wsgc: 5 +zwvf: 2 +mqrl: mtgc + vmzg +htpg: 2 +ffhf: ztmc + bpnp +hnlm: 13 +cvwd: nqbt - mhng +mmlz: 5 +wcvd: 12 +hcpn: 2 +vhdb: djjw + dfbs +vncn: gsjt + mmbr +czsh: scsf - bjsc +mhjp: pqfv + vhfn +zndh: 9 +sngd: 5 +vvdn: 1 +vggh: 1 +qlgj: dlzb * rvmd +gnpg: cldj + dwtp +mddr: 3 +dczl: rvpf / snfw +nlhj: 13 +sznf: cgcc + jgbd +cmzl: wgrj * rdhn +bzqz: 5 +dqjj: nnsh + flrh +psph: jnqb + nwmb +scsn: rpvj * gnnq +rlln: 6 +csdn: cndv * bslv +hgdr: 11 +dnrt: 4 +cmwz: lbvt - rhmn +gwcp: 2 +jpfz: mnfm * wfgr +gbwz: 2 +vcnz: 5 +ltss: rgdc + mbld +dmhw: lqrj + vvdn +lfdm: dtdv * mtcq +ldll: tptt * gvtv +jfls: cbwq / hftg +ghch: 12 +hsls: jnfc + pnwh +dvmw: 2 +zcbr: gdmj + tthw +qshl: wspv * lznq +rmzb: 3 +vtps: 2 +czpq: pcsg - cjss +nrcn: 2 +qssn: 3 +fvnb: qncb + rbts +wsvj: 11 +ftvm: 4 +nzjd: jqsc + ffdl +nldl: 3 +fthh: wgrs * btzv +vbmh: 3 +jbls: btrt + tlnr +cmsj: clcd * qwmg +blqj: wnql / sfsm +vprf: scsn - hsqm +gcvq: nhww * gvgr +cwvz: 2 +dtdv: 2 +mnsq: 7 +vrsn: 5 +llfc: 4 +zbnv: gnzw * fcgr +dcqr: 2 +gdds: 1 +npfh: 4 +vhjd: 10 +brns: 3 +wbbm: 2 +spfq: 4 +vsjs: 19 +pwhq: vcrb + gdds +wnfn: 2 +nqbt: cmwz / dnpq +wmdn: 3 +mqqn: 2 +bgtf: 17 +hjwb: thnw + pnwj +wnrl: 4 +znqf: csft * mtcn +zqtq: sznl * dcnv +jlml: qrfc * tjwn +tzbv: 2 +hprq: jlln * ndtj +pszm: ldzg + lvqq +phsl: 3 +zpvw: zpzm / mdzv +zwcs: 2 +flhw: hnct + cggw +cggw: 10 +lswz: 12 +ddbn: ztgf / qvnw +mdrt: dqwz + slbz +plmc: ghdb + lmzg +ztdl: ffjf * zfrl +qngr: 4 +lqsn: 5 +jrrn: 3 +lgcb: 3 +dnzs: jwbd * psqq +mvrd: 3 +lbgf: zmjn * jlwv +wpjj: qcnl * swcn +nhbc: vswl + bwtd +dfwj: frvw * rvmm +tzsm: 5 +wgmp: rtpw * pdrl +cjcr: 2 +pdvb: 6 +wpll: rdvm + qgnm +fpjl: 18 +pntb: qfhs * mtsm +bzlj: 2 +hncs: msqg + zqzl +vjlg: rczp / rhgw +dprg: 5 +fbdb: wbsb / nsdp +vhcs: 16 +mwtf: qqdb + nljr +jnwh: 5 +hjhf: 5 +rwgv: nhhd + bvdn +rbbn: hzpz * svql +gmpg: 6 +bddg: 3 +hgld: 2 +grjv: cdfc * qmqn +rrsb: rzfs - gspd +wnql: vcbs * hhcj +zvvp: fsbg + lfbh +vpph: 17 +qsbm: 8 +hjvb: 4 +wjmw: fbtm * brns +gqwm: pvts * tzml +njfd: wpll * zgqc +hchs: 3 +mpnc: 3 +srpb: 3 +dwnh: hqlq + bqln +pwfl: hwvm * zlnf +bwsc: 3 +djln: pmjj * lfzb +wrpw: 4 +gfvh: nwbd - fgbv +wgpn: 2 +wspv: 2 +mqzr: tzbg - lnbg +tpbz: mpgf * dmss +sbrz: 1 +lmcm: 3 +pnfg: 2 +jgbd: 3 +tlmt: 5 +fqsb: vwsj + vnqs +qmrz: lfdm + hqpp +hsdq: 14 +cbtm: 13 +frjq: jvwg * njms +htpb: jttc + dsnj +ptrr: 2 +pgrb: 3 +hggw: 4 +bjvw: fpzr * dhtz +sgcz: 2 +rqvt: mrzp + hfds +smjw: 5 +rzln: 3 +svsg: tppt * rfqp +zdws: bczw + gvfn +nnsh: 12 +mtgc: mhjp * qngr +wlzb: htpb * gbwz +flmm: 3 +bnfb: 3 +frfw: wmsc * hbbs +mzmt: 2 +zfdf: 17 +mmwg: ptqz * tqls +shhs: vhml + qvnb +vwsj: mqhd * sqlt +cgsd: jmbr + chrl +lrmc: lqsl * sgtr +vdrr: mzsd + pfwf +rgqf: zhgq + bgtf +lzdj: zmdb - jltt +shwn: vzcw - dvvc +vwct: 3 +fcgv: fvdn + pjpp +ddhl: jmtn + msvg +sfgg: sggs + plrp +tnnm: 5 +plbn: bhpl * mcrn +lmvh: qvjc * hqgd +nsdp: 4 +tpzc: 5 +ztgf: tmpd * djqd +wsbj: 3 +vzhd: 4 +wbcn: 19 +qtdt: wdhm * jvfq +ttnj: 3 +jcvj: 15 +dznm: fzfp * mzjn +dghs: 4 +jdsg: 2 +pzpd: 3 +hrsr: 5 +wzsp: twmg * tgvj +rnqg: 2 +mmzd: 3 +lffp: hbqs * pcnh +twbm: mlgw * pbtp +thsv: 3 +tjtl: bgzf + slrj +qlzm: vgsc - qwqn +mlbn: 5 +ndrv: 5 +bglh: vjlg - sgqt +nlmf: blqz * vsnh +fpdm: mhvf * jjgm +rfqq: jmwj * lqmh +dgbh: 7 +dtrv: 2 +mjpv: hvwc + snvn +ffjf: 3 +zlrs: ndzj * vtps +nhqn: rpst + ltss +pdtc: jqgc * rbcd +lpwb: 3 +zclb: dvnq + gpgw +vmvr: 13 +wvsf: lrjw / zlbg +rfcr: ssnr + rtcl +zvbw: ndbm + tdwh +fpqw: 2 +ccsd: 11 +fmtl: 3 +jhqj: 6 +ntqf: 17 +lrrn: 12 +hvms: 10 +lmrv: 2 +nmdl: pvqw * wcwq +vwqt: 5 +qsqs: jwvb * szqv +nmrw: trrn * gndq +ntdg: szbd * vnbc +fwpv: 2 +ghhs: rjcq * mpfg +sfsm: 3 +cfgs: pptl - ssrt +tftb: vslv + gcrr +clvb: rngg * vvvt +wvhf: drvr + rfdz +lhwj: 2 +zftq: fshz + gqhm +gjmp: 13 +wnqt: mgpb / qffg +pvps: 7 +fcnz: pngb * vccg +htpn: 5 +mjfz: 2 +zntr: rpqg * zbhc +zffw: cbnj * mfln +vptc: wcvd + tntn +fgbv: swfv / zqhr +dczs: 3 +bzmg: hbql * hgdr +fvdd: 5 +qjmj: 1 +hjzm: jpfz / pcpb +ptgq: 5 +dnnv: 2 +qwmg: 2 +tsns: qbgg * gsjw +nppv: jwfv * hnsm +pwjl: frjq - ttwg +dcgm: qtzh + wpwc +jgsl: rrrc / fpbw +wjqg: 13 +qtwv: tmgj / vqnl +zlwj: lbgf * pdlh +pqds: ztmz * fmsz +ghbb: 2 +jlln: qmcp + rldv +lbgb: dztw + flhw +bndj: 3 +tsmw: 5 +vtvz: jmwd + znhv +gjqh: bdph * zndh +hrwm: gzmg * vcfv +mnfv: 2 +dmlf: qglb * bwpf +rwgh: 2 +zvff: bnlb + prrs +jmzp: 3 +vvgt: hsls - lfcd +gtcv: 18 +vsjr: 11 +bmpj: 4 +rpmg: wjsm + lnhq +cnbd: zwph + vdfq +pcvg: ncnb * mmzd +bzvl: 11 +pngb: zzdd / wbbm +bzrr: 3 +vdqn: 6 +wffs: 2 +rbqm: gcvq + vdjt +spmf: vzlw * wmdn +qhfc: 2 +dvfv: pmbn * gbhz +zhbr: 6 +psvv: 2 +zhmm: vpts * wtbc +mlwj: hwsn * bggp +rzbs: drjr * cqwt +mfpf: fhnh - qjhj +dzlh: 1 +zlrl: qzdj + psft +qdrn: 4 +zwfr: 1 +tdqq: nfgf * nflw +bdhc: cvnc * trch +czms: 2 +sldj: 14 +lqvf: mfhw + jqsj +chsr: jbdj * lpbj +brpv: wzhw / fvqp +bbdf: 17 +prcj: jsts + ffvr +wgrj: tqsq + jtsv +zqbw: vcbb * fvvv +bzvg: 6 +jgrn: 13 +pcqq: 2 +zwzq: dwmd + znqv +mgdr: 3 +rnmz: ngcf * brld +sglw: pvps * bzvl +hcdn: hdcd * hppc +fbtm: mlvw + cdzv +wnjp: zffw + lrqn +lfmw: 13 +lqzj: hdsr * mgvz +wpvn: jmcq * fgmq +zjtq: 9 +qzhl: qdrn * jbrb +wldt: dmfz * plhw +dgfs: 3 +fccw: 2 +gjbw: 4 +zglh: 10 +lsdw: cldl * wfgw +stzj: 2 +pptl: qnpd / tlch +qjhj: qnfr + dntp +glrs: jrth * bdhc +vjnq: pzpd * drql +qrsd: hbzt * hdpd +zlbg: 2 +hsqm: jcts - lpwb +msbw: tzdm * dchs +cvrs: 3 +wbbj: rmrz / vhjd +dphh: 2 +szcp: qdlt * cpvn +qfpw: 7 +lmmg: 2 +jmcs: 5 +cwwv: 8 +fpzf: 5 +fpfm: jfvg + gblp +jcgt: 2 +sbfb: 19 +hdhc: 3 +wmwq: ppbl + hsrw +gmts: qzzm * fwjf +lqtn: 7 +flnz: rccq * gddt +phnn: cvrs + jqlv +rqrq: cbjl * dgbh +qmbs: 9 +pwzt: hcpn * gjcg +zzjq: 3 +bbrp: qwrv + jzcb +rwjm: 5 +qvgn: 3 +rjcq: 4 +dvpq: lbgb + cbpg +hdwz: scjl * dvnt +vffh: sdcb + qvbr +zjzb: 2 +fpjg: zjbg + dctp +pjsb: vfwg + bttj +sqcv: 7 +tcvt: ppdv + rwtl +lmrn: hvmh * dznm +gzlc: 9 +tgtf: 5 +cwcj: dwdt / rwfb +lsdv: djsj * bgfg +mbvd: 3 +whfg: 2 +czdw: 2 +cgzp: 1 +rdqq: 3 +rnzp: fgtz * mrgj +qmmm: vlbn * rbbn +ldst: 5 +vwbn: dvhb * fqsb +cqdh: lhhh + tqqb +ccdl: frmv + fhfr +mfmz: flsp + mppd +wtbc: 5 +sqsm: 3 +nztt: mwqj + prdr +sdfv: 2 +lclr: 3 +vqct: 2 +qrwn: nzrd + nmqh +hfrr: 8 +zbmw: jbqd * fpjg +lnvs: mfjn * tbsd +jdcb: vgbr + zhbr +lmzg: 20 +mcrn: 2 +vqmg: 2 +tlch: 2 +rbdz: lmcm + vlzp +nnbg: 8 +cqqc: gdgw * lbjj +szbd: 3 +qtcs: lclr * hzhg +mssm: qlrm / qccj +smcv: 17 +rrnl: humn - rdfh +vlbn: wmjd * wzcr +nwwh: 17 +ztbz: mrpw + ptsz +dgjj: 3 +cgbt: rcjt * zrlr +qshv: jdcb * rjbd +rphw: 3 +lnsn: 4 +nvvl: 3 +jtbl: 2 +lhph: 2 +rcvn: 3 +hwjh: hcnd + hcdn +pmjj: gnpg * zpvw +pbcp: bcfv + cfrr +wvsq: zhds + mjhc +qvbr: 2 +tswr: fpdm + prjl +mvpd: qhvp + blqj +hzhg: 2 +hqgd: 2 +vslg: llbb * hlvz +pltv: 2 +gwnc: qblv * qhfj +btht: 3 +zgww: 4 +pglg: ghjs * cbsj +zgnq: cppw - tbmp +jwvb: 3 +ptqz: 2 +lthd: 13 +vzlw: 7 +qvph: cglm * vghb +gzjf: 9 +mphq: 2 +jcpt: 2 +rmlc: 2 +nwvg: 2 +rqlf: cbjv * wnjb +mdbh: ctwj + twzt +mprv: tvtm - pzgz +mfjn: 2 +gnwf: 4 +ngcf: pszm * lvcp +hmhc: 2 +vlzz: 2 +qfqn: 12 +zvdt: 4 +zqgz: szcw + pmrn +jlsf: jfbv * nqrr +jcts: pdzw * hmfc +jmwn: wwns * tzwv +hbqq: 2 +vgdb: 2 +gvfz: ncbs + cpbr +mfwc: 7 +prjl: hzff * qgdh +hpjf: 3 +jjfn: sflp * csmg +qpbr: lhwj * vgtt +jdfq: hbfh + qwvh +fsqd: phnn + mgmd +fhcw: bzvg * whws +ddtg: wvsf + gvtz +mgpb: qcpw * cnml +nzrd: 2 +mpgs: zcbr + rfcm +hwmr: fqrr - fmhd +rccq: 11 +hvth: 4 +zbnn: tnnm + tvnr +rfdz: rslm * plrj +zmtb: hzrq + rqrq +lvwq: lgcb * wnrj +wzfm: 9 +vwlc: rnvl * vbmh +vlzj: grvc * qbcm +dtnn: 3 +qdwb: 4 +ncwv: 3 +sgtr: 20 +cbhf: 6 +dpbw: 4 +qvnb: 2 +ghdl: 4 +qsbv: 2 +vvhn: jbzb + ggjg +tmgj: 12 +lgnf: btdn + fpcc +msvg: vlml * pwhq +tggd: fwtt * bhwm +szfc: fdbh + stht +ncbs: jwvm + jffh +jpjq: jpdc / htpg +nwbd: slsl * zhqj +pmgl: 3 +nwvb: cwbr * jcqq +blmb: wcfl * vfds +wzhg: blfw * qsbv +jtfv: fmsp + bdhh +tgph: fzbg + jhhd +wpmw: jjzr * bqsq +mjjf: 10 +zqvz: djrn - hcbl +vbct: mspg + lwgm +qvct: sfgg + ltzz +pqnp: tvdl * rjwz +vbzr: 3 +ztqq: srtb - mfmz +wlpm: trvm + pptt +fdwm: fgvn * qbjm +vzns: 3 +bcwv: 1 +jctj: fbsc * pfwz +zrcm: qbsf * wsvj +hdvn: zdtq * jztj +qgnm: 2 +nwhz: sglw + zsmc +fsbg: djsp + dgsb +jmwj: 2 +lrsd: 5 +tjzm: 2 +jbnp: dwnh / cwgq +mqts: 11 +gstv: tghh * ldst +fhbq: chlf + pntb +pgdd: dllv * tsbv +fwqf: qwmw * zcmj +ggjg: 4 +mvvg: wfqb / hgld +chhl: 7 +wfqb: fvnb * jzwc +pscl: 2 +dztc: 5 +bdhh: 8 +wlqr: vnbf + fhqz +pnpq: 2 +ssmf: 1 +qgfh: plbn + ntcp +zcmj: wstv + lhcl +tdwh: 2 +clwv: znft + gbfl +qphb: zjvw + jvrm +nrjh: 3 +dvfj: cpcn - lpgr +vtsm: qsjt + vwsw +gzwt: 2 +zlwq: 2 +vmpw: 2 +cttp: 10 +rcdw: fbrt / fcdn +rllh: 3 +mjhc: 1 +tsdj: 4 +pmrn: 17 +pzjm: vncn - jgsl +bqfh: fcnz / mmlv +mbld: 1 +jtlv: 3 +pwsb: 5 +qjzr: sqjd * zvff +swfw: 2 +vrlp: jddt + wtfd +gzbf: bmvs * phlz +fvzh: ccgt * zvhd +mspg: 5 +qltq: ggzs * rbwd +fbws: 2 +pshj: cfgs * mbsl +rtmz: lrsd * tsvq +lbgj: 5 +bgbt: npfh + bqqc +nlpw: vwbf * wvml +gbsh: 8 +llpq: snws * prrq +slsf: hcpp + gcpj +wctc: 2 +fszm: 4 +ngwc: 9 +ltws: 8 +snws: qmmq * hdbc +mtqw: 1 +nbnm: 3 +qblf: 3 +vvwp: 3 +grgb: qjwt - crww +dwrh: 5 +gjqm: ctfw * tddl +vcsf: hfrr * fbwt +hpsz: 2 +rjjb: jlmg - zwwp +jbcl: 2 +vpwc: nrzm * bbnm +fzmt: 15 +qbjm: fhsv - mbjm +njrb: zblc * vgwt +jwfv: 2 +fpcc: 3 +zjss: dfct * spsd +vvgc: szdn + lpqd +cftp: 19 +qrgg: schf - fqhj +cqjl: 3 +sprz: lqcb * pltv +nhnz: ngwc + hcwt +crmb: 7 +dzlc: cftp * psfs +szcw: fqtc * zrnm +vzwd: 2 +mpnh: 2 +qlsj: 2 +vprv: 2 +qhjj: dpbw * whql +qdht: dfcq - njzv +lwph: fvnf * hggw +qsht: 7 +jrjd: 2 +wvml: 2 +gbhz: 5 +ldng: lvlc * vlhh +nldz: 2 +ghdb: 4 +vcgj: 2 +hsrw: 2 +nmwz: dcqr * rljr +vnbf: fvzh - vfsz +zvts: 13 +jvqj: 3 +fdbh: hzbn + qvph +jzdb: 5 +dwdd: 2 +jtdp: nqcl * vsdb +hqpp: fzbn * vdgf +dchs: wvls * zwcs +fvqp: 2 +gbtt: hqcm - zjgz +hjjq: wfvg + hvms +tgbt: nfvh * nztt +vfwg: bpfr * wmwm +lzvd: 3 +cdpz: lqvf + dvpv +jtgj: 6 +pjsg: cvsv * mpzr +jvwg: 3 +jhsh: qghf * frgb +ttdg: 11 +twlg: ntbf * fgjh +qbgw: 2 +zspf: 1 +bgfg: mssm + zdws +cwbr: shfs * vlhc +httv: tlds + vrft +gzfc: jdfq - fjfd +zbhj: zlcp + rjzw +ssfv: dnrt * jgcj +fmrp: qsqs - ssmf +cfjw: bmft - gjmp +lqcb: wjrh / nrcl +zblc: 2 +humn: 4977 +cmnn: 3 +pbgb: 2 +lnqw: cmvf + jmzp +dcnv: hvnt / bftw +sqwh: rmff * mpqh +gjbn: 4 +wdhm: hfwm * bmrb +hqlv: 3 +cppd: 2 +cfqg: 14 +fqmq: ttfs * vpql +mnbr: 3 +zrbt: rqgq * gtcc +pmnj: 3 +tcqm: 2 +vjzj: 3 +rzqd: ptsn + swws +lgnp: dvfv * rwjm +qhdm: 10 +gpbn: 3 +dpzp: 1 +vdqw: 2 +qnsh: btdr + glmv +mqrb: qlmc * cwsv +vqtl: dmhw + qphb +nzcz: 3 +hvnt: gwcp * hnlm +jnzl: dghs + pbmp +rzsv: tgmm * mjnw +tgcl: mznj * ftjb +jqpr: vtpc * rzqd +slzj: 2 +vncp: wfzr + zswd +pqqw: ptgq * hvjh +hlqs: pgdd / lgnf +mcpp: 3 +jcbm: lgnr + cspm +pdbg: 2 +zpdb: 5 +zzcw: sqds + jtdp +qhfj: qptl * mqts +qnhs: crdp * qtcf +gbwq: 5 +bpmb: mbrb + zqwv +ghdc: chbs * rfpm +zsqs: jdft * jtfv +nsnz: 16 +rgmr: 3 +ctgr: 13 +bszs: 2 +ddpj: hhzh * mlfw +ljft: 4 +sndn: pgbp + qrqg +sjdj: 2 +mmtz: 6 +lwbm: 2 +jjgj: 9 +tptt: 4 +pfsp: 10 +hscl: sfpn * fpqd +twsp: 4 +pfwz: qssn * hbnc +wslc: qlrn * lqjq +hhbc: 5 +pcnh: 5 +lqzq: pqvd * zfdf +jdsp: 5 +ndbm: 5 +jvfq: 3 +nmtw: lmpb * vltn +lqwz: tmmb / lmrv +dhpp: gqqz * vpwf +nsbn: tfsr * pwzv +fshz: 3 +qcnl: 3 +cgcc: zfbd * zsvw +jltt: bgfz * fszm +tntn: 1 +pvqc: 8 +zccn: 2 +qqcm: fsqd + qsmf +qhmm: 11 +bzsv: gmpg + chhl +qtdf: 5 +pvws: 4 +jwbd: 5 +zscq: jdll / ncwv +vfds: 2 +jgcj: qltq + jbdr +mspn: tnwn * dgfs +fzsr: 6 +qdvq: 3 +jlvz: 2 +dgvd: 2 +cbmf: 2 +cbsj: 3 +nqsh: 4 +wcqb: plmc + rhnj +rbpl: hqvg * stzj +bmft: llzc * frfw +pdzw: 5 +frmv: qvvt + dbsp +ztmq: jhsh + pdtc +jsbf: 3 +nqnq: nszf + ftth +cvjs: ltsp - vqmg +wgvp: 5 +vmzr: jrsq * bscv +mzsd: pbzn + gllb +tsvq: 5 +clhh: 5 +mtct: 2 +wbbz: 3 +ssnr: tghq * qlnp +jqjq: hcfp + bfsh +hczr: zlrm / jhbw +dllv: 8 +jmhq: cjcr * lqsn +sprp: 3 +bgzf: 13 +jbdb: fsmq + zddd +stqf: 2 +rfcm: tjvp * wvpd +vfsz: vzmv * jgfp +vvlf: 2 +rqts: 4 +dthb: llpq * wlzb +vpdp: wrzm - cqzt +lnhq: pwzt + rzrj +lpbb: cbrb / bqht +rbjf: 3 +mztq: nwvb - vvgc +fbzq: 2 +rbts: gpnl * jldt +wfbd: mvwc * gbhl +nchh: bwjp + pvmh +fppb: 2 +ssrg: rrnl / blts +zsjn: dtnn * vzvq +fvnf: 14 +ftth: zphm * cmqj +vdwn: 3 +tmqf: 5 +bqfl: 3 +dtft: hldc + vvrz +vfzl: lwqb - shlw +hvsr: 3 +chlc: gzwt * rdqq +qwmw: 4 +ftqb: zgdw * mnfv +ctfw: ggwc + ttwb +cbjl: fcjc / qvch +hwmc: shvd * vdlb +wbfd: cpzl + cqld +crfb: tmcf * dzzq +mwsf: wfqz * rzgw +cqld: 4 +ltbd: wnqt / hczv +gjhj: wpvf + spvf +ltrl: 6 +pglf: phmr * jvnl +ctbp: pqdc + trml +tsjm: dfwj * vnmt +msrf: hpzw + qhdm +hqrf: 1 +rsqc: 3 +rvmc: 2 +bjdt: cvbw + vqtl +qjdf: qdsj + pqds +hzwz: 6 +hlhs: 3 +hvfp: 6 +qcwt: 4 +hhzh: jfvs - qtzr +hldc: qrdg * mzmt +rthm: 4 +fvvv: 2 +fjhb: bgqr + cqqc +ccgt: dgbj * pmnj +zbww: vvcv * jcbn +sznl: 5 +fcgr: rlwh * vqrd +nhhz: nglc + pjjp +tthn: nmth * hpsz +hrbz: 2 +zhqj: wpcc - nqvn +zgmv: 11 +jtwc: vhmg / jlvz +swlj: 17 +blcn: 6 +pjjp: tlfw * fzsr +fzbg: 1 +qcwm: vwnm * rgmr +sggs: hwwr + msrf +fhqp: 5 +srqs: gmvs + gfvh +sphz: 2 +vfsb: whqf * nphn +bmvs: 4 +rtcl: jfls * fpvq +ndqt: hjwb * plbc +hcfp: 6 +rzgr: 8 +drgg: 3 +dsnr: 4 +hwbt: 2 +ppbl: 5 +vwcq: 3 +gjft: 5 +vpql: 2 +dffp: 13 +cfrr: jsgs + hqvd +gdvv: ddnd + zvdw +wztg: sjlg + rdpw +smnh: 3 +dlzb: 2 +bqqc: 7 +fzbl: 2 +gsjt: dtsb * mbzb +fsmq: tlmm + vggh +dbgm: 5 +wcwq: 5 +bztw: hmwl + hwbt +wspz: htsc + lnvs +hcbl: 2 +plhw: 3 +nqdh: slsf * fhrh +rpvj: hhbc * tjzm +jfnp: qlqd + jbqn +bhht: 11 +tswm: stcc * szpp +rfrd: tjcv * nsbn +zzhh: 5 +hqgj: zsnz / zjsm +wbsb: hzdf * jtlb +tgvj: 3 +mwqf: vdlq * csvq +vtpc: 4 +pszd: 3 +nrzm: 2 +gmbp: 12 +jrps: 2 +lpbl: 13 +swcn: wdmc * fvdd +fhsv: qsqv + tlwc +rtpw: 4 +pqdc: 2 +qdlv: lqpq * rnqg +qwpj: 1 +sgrc: vdvh * qnhs +gmwr: gwnc + ssrg +grbp: 20 +fvfd: 4 +rhwj: wffs * hvgr +hnrv: 16 +gnnd: 3 +pcpb: 2 +mhdf: 2 +bcbp: ssrb * zsbv +ztzs: vdrr * qvrb +mnfm: 2 +wlgz: 5 +drqs: rwgv + dnmb +jbdr: swqv * gmqb +rqll: 3 +nfgf: 4 +qvjt: 5 +cspm: tgbt - npqg +nsqz: 17 +ldzg: dgjj + hnnl +pvts: 5 +lcfw: rqcv * qsdh +fhrf: shln * ssnw +zsbv: 4 +bhpl: 4 +wrnz: wjnb * bndj +pddq: dtzp + gncs +qqjv: 2 +fmct: 2 +zlcp: blhj + bbmw +cstn: lclq * mhdf +vtpv: wdvr * wtdz +cpbr: nlmf + zqcm +dmzq: 1 +pltj: 4 +jmsv: wpjj + mlmd +ngpj: 15 +qdvz: ncld * mcpz +vthr: 2 +szhv: 13 +gnrs: pfsp + wctq +mcpz: 2 +ndtj: 2 +hlsb: prcj + nncc +bcbz: qsht - qjmj +dtjw: nqnq + jjfb +grjm: jrrn * fmtc +dblp: pwjl + zwsw +htph: 4 +trml: 6 +psbv: rnwd + hjhf +qqtl: ppbc * mrcb +cvsv: 6 +hjtb: 4 +jbzb: 3 +vgtt: 3 +jtlb: lzvs + qwpj +zswd: wgmp / hsjt +vcvw: crjq * wnrl +rvmd: 4 +dzdn: dwzm + thjg +qlrm: hdwz * qrrm +jcnh: 2 +mngs: ddhl * ccjd +fhdw: 5 +zmrl: 2 +vdgn: 2 +wcjq: bjvw - hcvt +zssh: 14 +vgzm: smnh * fvtf +cdfc: 4 +fvns: 3 +qrdg: zzhh + zcwd +lzvs: 9 +bmhl: 3 +dvbm: cwtj + ldll +rgmn: 2 +rslm: 3 +cjzc: 2 +jlpg: 6 +lgwf: pblq * shwn +lzcv: zlvf * vhcs +dqbs: pdcb * hgcv +zmql: 1 +ngvn: hnmf * mtpn +qvzs: 4 +qvjc: 7 +rnwd: lhph * wzhg +nwvs: vzbv * hncs +jbrb: bqfh + tsns +zrsd: lzcv + fngt +mlbb: 2 +svzb: 12 +qrvc: 2 +bjdc: 6 +htvm: 11 +wmjd: 2 +lvnt: 7 +zhhd: vdqn + fqvr +jvgw: wmfc * wslc +dgbj: dvfj + bdmh +vmzg: ctdj * dbgl +qwqn: rlln * sgcz +wpcc: tzcb / sfrp +mtgt: 2 +ntdp: 3 +qglb: zzrm * qfss +sltm: 2 +bzpc: drqs + gdhz +mhng: mqpp + bzbp +ljfc: 2 +zrlw: pghh * qrgg +tjdq: zdvg * cstn +bdmh: cmzl + rrsb +gmqb: wsgc + nsrr +dcrr: smlz * jglm +jbdj: cfqg / qdlh +vgbr: 1 +hmgl: gjqh + qqjv +gbhl: 2 +wcfl: dnjt * cbmf +jbqd: 2 +srnb: sprz * mtgf +vqrd: 2 +bgfz: pjcc + gdwp +mbrb: 10 +bhmp: qtdt + lbhq +nmqh: qlgj + zsvb +pwsp: 2 +fqrr: qhzh + bwfq +gvlv: 5 +hvwc: clhh * rwdg +qrrm: twlg + qdlv +thjg: tmqc + zcsz +bjnh: mmnl - nhhz +sflp: rjjb + hqnd +vdjt: 17 +gmvs: ssfv + zrsd +jzwc: 2 +bgdg: ttnj * rmzb +mbwv: pglf + mztm +ssrt: 4 +qsjt: qrhr * jlpg +slrj: 16 +zwvl: dbgm + bwnr +qrjw: wcqb * vvbv +jlwv: 3 +lpqd: 2 +mfrf: dpzp + wsjn +pslg: 4 +ghzr: tdvz + dqbs +hbql: 5 +qwvh: frvq * lpdw +tgmm: 4 +tmpd: gqzc + qjzr +gdhz: 5 +rnvl: 5 +wmpp: 5 +ffbf: wnqf / rzvb +mqgl: 8 +cbtb: glrs + zftq +pcwt: 2 +qrss: 1 +htrl: jhrj * gftq +njtf: 13 +wfnc: dvdl * bpmb +chfp: mjfz * cwpz +zqzl: ggpb * tqcj +qctc: qhwr + jsdm +wlqv: 2 +fdmm: jrps * cqdh +lnls: htvv + jcsw +lvqq: qslv / hctq +whqf: 3 +vwzv: wwcm * hdbm +dwtf: fszl - dlft +rhgh: jspz + bhlh +lqlb: 11 +tzgm: hnrv / svsn +bnpf: 5 +fcfp: dgvd * bnfb +zqwv: 1 +nclw: vfzl + zzmc +htsc: 5 +vpwf: 5 +djjw: 4 +bsnd: bldn / zvhf +jbdw: 4 +btzv: 2 +rdnm: 7 +rdvt: 2 +vnmt: grrw + qvzs +qtzh: dwdw * nltc +fqvr: 1 +jffh: vsfv * cmwp +hpzw: 1 +jhrj: 2 +lvgv: wnls + clvc +plbc: 3 +ggvj: 3 +tlgj: dths + nhsv +zjpl: rchl + hdvn +rdpw: 1 +lzwr: 13 +pvqw: nmwz + ngpj +tshc: 7 +qsjp: vcnz * vmpw +fnjv: 9 +vfmd: svvn + clwv +tmmb: jssv * wwrl +dhsn: fpbl + dfmw +njms: 3 +tnwn: rqts * jcgt +frws: 14 +tthw: dpcp * qvjt +lfcr: rpdd + fwqf +qbbc: swzg + mjgw +nbvq: 2 +rsvp: 5 +cgss: lpbl * zwzq +lnft: 5 +trnd: 5 +htnl: lgwf / cmnn +tbgg: sldj * ttbl +mqvf: 5 +wwns: 3 +gqhm: bhpf * wvhn +vbwz: 3 +wfvg: 19 +djrn: 9 +vbbn: 13 +mhpr: 3 +wwwf: cqbw + tshc +hhjf: lpmc + dczs +tzjq: tdqq + dwcn +sntq: 2 +lvzt: rzln * trwg +bnlb: hchs * lshw +bbnm: 3 +gpgw: 3 +ffdl: sbfh + tbgg +rcrb: 3 +lfcd: gwsn * mvdw +thnj: 5 +qvrb: 5 +pwzv: qhzz + rntv +tzdm: fhdw + fqmq +trrn: 3 +jnmz: gjhh - bqcd +sfrp: 3 +hjnp: 5 +bvmg: snqw / hvfn +snqf: 5 +snvn: blth + zhcp +sjlg: dhzd * vwct +szlg: mvbd + grjm +wmsc: hgdt + hlsb +vgsc: vpph + grjv +hdbm: dnzs + mdnp +ntbf: 3 +cflr: gqbr * lmmg +wtfd: 11 +mjgw: hwmc + lcfw +psdt: 8 +lhvw: 7 +vnmp: 5 +lqmh: 6 +csft: zzpn * fdmm +pzlz: szsl * dgtz +rzbt: 4 +vcrb: qvgn + wwgb +gbfl: crwj + fgvl +nmww: 3 +ghjs: 9 +cbwq: ztgd * qwwv +gwsn: 2 +dwtp: fbms - lbzm +rbwd: 5 +rfqp: 3 +fdwl: 2 +jvzt: lfmw + fscp +nltc: 2 +bnnz: jfpl + tzdc +qbgl: 4 +dtgf: vpwc + cgzp +dztw: 1 +zgdw: 17 +gqzc: gjbw * qqwh +rlls: hhjr * czms +wrzj: gzqg * zmdj +pbvf: qdwb * jvlw +hfds: fthh * fvpb +gndq: 2 +whth: 3 +lgzw: fhcw + hcsl +tqrc: jtwc * dfmj +fhnh: bnbw + qhvd +vpts: fcjw + mspn +qlrn: 16 +bsrr: 10 +grvc: 7 +slsc: 2 +dpzd: prfr * lpqf +ndjc: 5 +rbgn: 11 +whvd: 5 +dbgw: rsvp + pbgb +dpcp: 5 +bpnp: 11 +fbrt: mbbl + fwzl +zjqm: tswr + jlml +dbnw: dtft * tttr +tzml: 3 +gvgr: 2 +lbvt: zgbm * dtjw +llzc: 18 +gfvz: 2 +lrmt: mmwg - qfjq +wjsm: hhlq * psdt +zjbh: pdvb + fpzf +rjdw: 1 +jrrz: 3 +zddd: 11 +fpbl: 3 +rwfb: 2 +phlz: 5 +tzcb: gjhj + ssmj +zjvw: wzmj * shhs +bpng: 7 +nhhd: 2 +wgqs: lsdv * zpsn +mjpd: 7 +mrsv: czsh + crfb +rzvb: 5 +dths: 1 +hnmf: gtlr + dcqb +zwwp: 2 +prrs: 10 +lgnr: btpj + rtlf +rfvt: qtvl + cmhv +bldn: rdvt * wfmt +mlvw: qsfs * dfdz +pwhn: frth * zcpp +wqnq: hwwc + rfqq +lpmc: 7 +hmwl: 6 +dgzr: 3 +ntmn: 3 +dfct: 3 +mhjq: 5 +whws: 2 +npqg: pqdm * nrww +wsrq: 5 +wfqz: wwrp + dgsg +lhfz: 17 +qblv: 13 +zsmc: gvfz * tqrw +cwsv: 5 +fmdg: 2 +prbm: wcjq / cdzz +fpqd: 6 +psfs: tzjq + lsjt +fghs: 2 +bhwm: 4 +tdbp: tfll * wbql +tzwv: 13 +zmft: 3 +zqhr: 4 +cfzv: 3 +pchs: 3 +nwjd: ntdg + hscl +cwtj: 1 +jwcp: pfgb + fwtm +ppgt: 16 +pslw: rrmb + djjg +slsl: 5 +pwll: bgdg * pczd +fpfb: mprv * hndv +jvtm: hlqs + lqlb +vgdp: jztc / bght +mqtr: jgmc * lrrn +tqpq: 4 +tqrw: 2 +ppdv: nvvl + rjjv +wfzr: rhwj + stfd +jqlv: 4 +sclr: 2 +zhcc: 4 +lnbg: vstd + mmtz +mrpw: qwct * crnv +cnjf: 4 +ddrr: 7 +rwdg: fdwm + dzlc +psft: 6 +bnlv: mnbr * zclb +ltsp: 8 +wmst: vznj * nlgt +vczs: 5 +flqt: zqcs + nsdv +grhh: pbvt + jzdl +hrjq: 10 +rhfw: 2 +dtdz: 17 +lbjj: 4 +gwhg: pqqw + nqdz +pwbj: 3 +fwjf: lfcr + wjmj +jdtm: 5 +thnw: 3 +smjv: 9 +rjtz: hdwq / jdwp +pdlh: 2 +tczb: plpn * stvr +mjvl: 6 +hwwr: 7 +spvf: lwtj + vtsm +cnml: 4 +cpvj: 3 +qfqf: smjv - mqqn +lshw: 3 +jjdh: 2 +mvbt: 6 +zccv: 5 +fbdf: 10 +bwjp: vjzb * ctgr +mjjc: 2 +wffr: grgb * tsdj +mqgr: 19 +hcnd: bdbr * qbcq +npnh: 4 +hqnd: dnzc * gnnd +plrb: 3 +rtzn: vwdh * wbcn +cdzv: qrvc * bnnz +rljr: gwhg - tvpw +scpv: 2 +hvfn: 3 +hcjr: psms * vffh +bchm: nzgj + dmgd +vnln: 7 +pwrn: 3 +zqcp: 2 +svbl: nmmp + rzgr +sddm: zgww * vdgn +pfsd: 3 +wjmj: wlfn + wjph +fngt: nlhj * dpzd +hhsg: 2 +wjph: 6 +dmnn: plrb * wlqv +qghf: tmlf * wjqg +vmsm: 5 +tnnc: nppv + rqfq +frvw: 19 +zsvb: 3 +qhdc: 4 +vslv: mngs + sdfh +hzbn: ghhs * zqbf +cmqj: tthn + rbgn +dpwb: 5 +tqqb: sbfb * dztc +jgsd: bbbn - chlc +dnss: bvsm * psbv +dlrb: 4 +qhcb: 18 +cdff: fgjs + fpqw +gdtc: nzjd * cwvz +lwlw: 4 +pqvd: 2 +drvr: htvm * ffhf +tbsd: lfcv - tggc +ngws: swjr * bhvz +snqw: bftg * vjzj +ttfs: fdwl * jvvm diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_22.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_22.tst.data new file mode 100644 index 0000000..dd6419f --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_22.tst.data @@ -0,0 +1,202 @@ + .....#.............#.....#......##.......##...............#..#....................##................ + ....#.#.........#.#..#.##....#...#.#.......#.#.#.#..........................................#......# + ............#..#..............#.##......#........................................#..#...#....#...... + ............#.......#..........................#.#.................................#.........#...... + ..#.....#.......#......#.......#.....................#.....#...##...#.......##....................#. + .........................#....#....#.......#..........#...............#...............#............. + .......#...............#...#...............#.......##.....................................#.#....... + ..............#.....................#..#............#.........#.........#.#...........#...........#. + #............#..........#.#....#............#.......#...............................#............... + ...................#..................#.............#........#........#...#.#.......#...........#... + .....##.......................................#.............#....#....#.....#.......#.......#....... + .............#..................#...............................##............#............#........ + ......#..........#...#............#.............#........#........#.....#......#..............#..#.. + ..................#..............#.#...#.....#..........................#............#.........#.... + #..#........#......#...............#........#....#.................#.....#......#................#.. + ........#.............#.....#........................#.##........#..#...............#........#...... + .........###...........#...#........#.#..................##.......#...#..#.......................... + .....................#..........#...........#..#........#..#.#........#.#..#............#........... + ..#..........................................#.#..#......................................#.......... + .....#..#..#....................................##...................##.#.........#...#.......#..... + .....#....#.#....................##..#..........................#...................#.........#..#.. + ...#........#..#.........#....................#..........#.........##...........#.........###.#..... + ...#...##......#..........#......................##.....................#............#.#............ + .......................#....................#............#.#.....#...................#.............. + ....#.....#..........#.................#...........#............#...........#........#....#....##... + ....#.#..............................#..........#.....#.#.........#...#.#.....#..................... + ..#..#..........#.#...##.#..............................#.#...............##.....................#.# + .##............#..#.......#............#.#..#............##..#...........#...#...#...#.............. + .....#...............................................................#...#...................#...... + ........#..#.........#..................#.............#...#..................#...............#...... + ...........##...........#.....................#..#.....#.........##................................. + .#.........#...#.....##.#...#.....................#...##..#......#..........#.............#..##....# + ....................#.......#.....................#..............#....#.......#..................#.. + ...#.......#..................#....#........#........#........................#......#..........#... + ..................#...............#....##........#...#.........................##.....#............. + ..............#..............##.......#..............#...#.........................................# + #.............................##................#...#..............#............#...#....#.......... + ...............................#............#.................#..#.#.......##.....#................. + .....#.........................#..............#...............#.........#........................... + ......#..........#..#.................#..........#.........#........................##...#..#....... + ............#.#........#....#.#.......#......................................#.............#........ + ....................#.......................#..............................#.......#....#........#.. + .......#.................#...#......#...........#..#.#.................##...........#.....#...#.#... + ...#...................#........#..............#.#.....#..........#.............................#... + ......#.............#..#...#.....#...##.....................#.......#..........#.....##............. + #.#..............##..#..........................#....##...#......................................##. + ...##...............#.#..#................................#......#..................#.....#.#....... + ........#......#........#..........#.................#..#..#....#.........#...#..#.........#........ + ##.........#...............#................................................#....................#.# + ..#..............#...................#..........................................#................... + ....#.#.##.....#......##.#.......##.#........#.... + #................##.....##.........#.............. + ......#.........#....#...#....#......##........... + .#..................#..#..##....#..#.............. + .#............#........#......................#... + ............##......#...........#......#....#..... + ...##..............#.....#........##......#...##.. + ...##.....#..#...........#....#........#.......... + .............................................#...# + ...#.......#.......#.............................. + #.................#.##.....#....#.......#.##...... + ....#.....#..#............#..........##.#......... + ......#.#.#.......#..#..........##..#.#........... + .......#.......................................... + ..#.......#........#..#.........#................. + #....#..........#......................#....#...#. + ..........#......##..#...............##.##........ + .#................................................ + ..#.###...................#...#.......#........... + ..#.....#.#......#......#..#...#.............#.... + ..#.........#..............#....#..........#..#... + ...........#.#.....#...#....#...............#..... + ..#.....................................#......... + ................#.#........###.....#.....#.#....#. + .........................##....................... + .#.....#...#.#..........#...#..#..#............... + .............#........#..#...#...#.........#....## + ..#...##...##.....#......#.##..................... + .#.#.....#...............#........................ + ......#.........#.#..........#....#.#............. + .............................#.......##........... + #...........#..................................... + ......#....#..###.#..#.....................#...... + ............#...#..........#...................... + #...#.......#........................#..#......... + ...#............#......#............#........#.... + ......#.....#..#...#...#........##..#..#.......... + .................#.................#.............. + ........#......................#.........#..#..... + ..................#................#.............. + ..#...#.......#................................... + #..............................#..#..##........... + ..#.......#.#......#...#..........#............... + ...........#........#..#.....#...#.....#.......... + #..........#............#.....#.................#. + ....#....#.#...............##....#................ + #.......#....#..............#.#................... + .........................#......#.............#..# + ....................#.....#......................# + ..#........#.........#.......#..................#. +...........#..#...#..#........#....#...............#........#..#.#......#............#..........#..# +........#......#........#...............#....##.................#.#..........#..........##....#..... +..........................#...#..............#.....#.#......................#..........#..........#. +#....##..................#...#.....#............#..............#.................................... +#........................................................#.......................................... +..............................#.................#..........#...#.#.....................##.........#. +.....#.#......#.#........###..#.........#...#...........#............#.............#....#........#.. +.....#..........#.#..............#......#.................#.......#....#............................ +...##....##...##...........#......#...#.....#.#......#........................#..................... +#...#......#..................................#...#......................#..#..............#..#....# +.......#......#..#.............#..#...........................................#......#.#....#.#..... +##.#..#.#..................#................#.#.......................................#...#......... +.....#...............#.......................#....#............................................#.... +...........#...........................#.......................#....#.....#.....#..................# +............#.......#..........#......................................#.#.................#.....#.## +..#........#...#.......#..#...#..................#...#.................#.#....#...............##...# +................#...................#.#.......#.......#............#.....................#.......... +.........#......................#.........#........#........#....#.#....###............##.#......#.. +.......................#.........................#...............................#............#..... +#.......#...#..#......................#..............................#...........#.........#..#..... +.##....#............#......#............#.....#...........#...........#......#....#................. +...............#.....................................#...............#......#.........#......#...... +...#......................#..........#.......##......##...#................................#.#...... +...............#..#...................#................#.#.......#.......#..........#.#............. +.#...#...#...##.....#.......##....#......#......#.#.....#...............................#....#...#.. +...............#..............#.#....#.#...................#..#.......#............................. +..........#..#.#..........#..........#....#.#..........###........#.......#...#.................#... +#........#...........###..........##..................#..#....#.......#.#.........................#. +.#..#.......##...............#..........................#.................#...............#.#......# +.#...#................#...............................#..........#..#....#..#....................... +..............#.......#.............................#.............................##.........#...... +......#...#..........#.........#......#...........#.........................#....#.............#...# +.........#..#.#....#.............#...............................#.....##..............#...#...#.... +..................#.......#.......#.............................#.............................#....# +.###......#......#.#.#.....#..............#.#.....##..........#..............#...................... +......#....#........#.......#.#.................#........##..............#.#....#...........###..... +..#.##...........................#......#.............................#.....................#....... +.....................#......#...#.............................#.#..#.......#.......#...#.#...#...... +....#....................##...............#..##......#......#......#.......##..........#...........# +..................#.........#...........##.............#..........#.......#..............#.......... +..#.............#...................#.............#.##.#......#......#................#....#........ +...........#..#............................#.#.#.........#..#........##....#........................ +.#.........................#.#.....................#......#...............#..........#.............. +....................#.........#........................#........#........#...........#....#.......#. +..#...........................#.#.......#....#.........#...#....#.#.......#..........#..#........... +.#........#.................#...#........#.........#......................#.........#.#............. +.....#....#....#...............#........##..................#..#...........................#.......# +....................#..............#..........................................#.......#........#.... +....#...#.#...............#..#..#......##...............##.............#.......#.................... +.#.#....#.#.......#...#......#......#....#.#..............##.........#.....#...#........#........... +.....#...#..#........#.........#.................. +#..#...............#...................#........#. +....................................#.........#... +..........#..#..........#..#.........#............ +..................#.........#...................#. +#.........#...........#.........#...............## +............#......#.....#............#........... +...................................#.............. +.......#.........#............#................... +.....#.......................#.................#.. +..............#...#.......#..........###..##...... +.........##.......#...........#.......#..........# +..#.#.....#....#........................#....#.... +.......#..#......#...........#.#.................. +......#.....#....#......#.................#.##.... +...............#.........................#........ +...#....#.................##.#....#..#............ +.....#..........#..#..............#.....#......... +...#..................#............#....#......... +...........##................................#.... +..............#................................... +..........#...#..#.....#...................#...... +#..................#............#.......#......... +......#.....#..........#.......................... +.........#....#...........................#......# +..#......#.....#..................#............... +...............#....#..#.................#..#..... +.#.#....................#................#.......# +..#....#..............##..#....................... +...#....#.......#...........#..#......#........... +..#...............#....#.##.............#......... +................#..........#...................... +..##..........#......#......#.......#.#...#...#... +..................................#...#..........# +.....................#....................#....... +...#.............#...#.......#....#........##.#... +............#....#.#.#.............#.............# +.................................##...#.....#..... +...............#.#.#.#..........................#. +.........#..................#....#...#.....#.#...# +.............#....#.#...................#......... +..#.#.............#.............#........#........ +...#......#............#........##......#......... +.....#...#.#...........#..##...................... +....#.........#.....#................#............ +....#....#........#................#.#........#... +#..#...................#............#............. +....#.........#..#..#.....#.............#......... +.....#..........................#.............#... +....................#.........#.#................# + +24R45L6L8L40R44R35L45L36R46R24R39R16L41L44R46L13R15R8L27R42L12L16R9R50R45L21R11L47L25R23L50L18R28L35R1L24L43R32R21R33L13R6L6L14L2L21R45R12L45R35R3L50R5R43R26R44R9R17R37R22L19R50L23L20L31R42L46R38R17R9L28R23R15L9R12L24R30L46L26L13L6R23L4R7R17R28L34L9R37R47L44R47R50L45R43L5R5L28L49L43R49R14L16R24L34R42L26R49R31L16L49R31R27R31L31R2R41L38R26L46L44L20R16R22L50R20L46L26R44R14L21L18R9L7L26L7L35R23L48R20R30R15L41R38L5R4L47L7R48R8L21R25R7R37L45L30R12L47L39L45R41L47R44R16R43R48R8L11L22L17L18L26L13L35L11L48R20R35R48L30R29R44L31R10L28L29R6R12L38L38R29R28L7R23R49R18R14R18L49R16R13L38L4L47L24R19R33R21L12R45R44L32L48L42R4L30R11L19L42R15R40R41L7R7R5L23R49R8L14R36L14L29L26R10L40R13R24L9R41R27L17R25L6L5L6R17L11R32R11R39R17L49L13R47R1L49R47R12L50R9L35R48L1R34R24L43R32R6R22L15L34R25L19R37R24L15R20L45R17R29R30R10R22R6L13R15L35L40R44L40L8R29R4L25R4L5R31L18R26R47R7R37L46L2R18R30L30R2L12L18L43R23R41R38R2R43R50L46L12R31L37L23L10L23R27R21R46R27R49R41R37L28R2L6L29R26R49R19R27L2L12R12L7L32L13L18L43L24R48L39L44L46R19R23L13L14R50R3R15R38L48R2L44L14R22R36L45R10R27L24R37L24L26L15R21L34R3L5R16R30R7L40R7R7R37R47R46L29R32L30R22R21L14R4L44R5L50L36R25R38L44R27R10L37L10R20L47R24L14R45L47R27L42R16R3R10L45L4R22R48L24R5R13L23R7L46L18L16R26R42R34R9L36L33R44L32L12R32R25R30R6R16L31L50R17R40R34R30L29L26L18R11R21L38L3R25R34L25R13R13L45R48L9L36L5R1L17R31R24L31R3R45R32R38R28L44R10L33L41R23L32R9R14L43L18L13R11L30L39L50L34L10L19L15L47L13R14L33R37L20R50R6R35R20R24L39L2L24L24L21L7R1L8L3L45R39L32L31L16L12R44R15L50R40R1R31R17R38L31R31L43R42L30R43L43R18L1R39R42R44L23L10R14R12L22L24L13R13R37L5R27R28L19L38R10R24L26L38L24L10R48R6L34R44R32R32R38L33R34L41R29R30L23R16R25R40L23R25L19L4R9R20R3R43R45L9R24L14R6R23R45L26R6L12L45L1R5R37L5R21L26R39R25L20R49R8R17L13L27L33L46L3L37L10L4R14R7R6R5L40R44L18R21R48L33L36R47L42L44R20L1R42R6R37R21L28L50L21R33L20L11R43L17L36L41R40L35R44R39L17L27L27R10R15L14R28R44L46L6L40R19R37L13R18L27L29R1L8L37R24L48L1R22R30L7R13L12L9L20R37R34L28L39L18L26R40R27L3L7L14L50R19R13L42L30L46R42L43R12R40L20L49R38L38L44L17L19R38L2L5R27L31L19R23R45R14R16L47R35R40R19R38R4L17R26L4L33R34R23L50R3R20R16L45R24R15R31R14L25L29R38R34L7L27R40R50R2R23L19R16R29R10L44R39L38R18R40L37L35R39R13R27R24R23R16L27R19L42R7L13R17R7L38L5L1L42L9L39L16L26R15R16L22L7L14R7R20R42L47L43L47R29R23R45R34L17L21R2L43R35R17L47R24R43R4L25L7L19R17R48R19R1R8R37R21L41R42R21L44R48R40R12L45R44L2R9R30L48L30L49R46R13L50L10R34R15R9R13L3R5R3R6L45L11L30L23L6L43L1R27L7R4L15R49R9L30R16L14R29L36R45R17R49R7R20L46L39R34R11L23L44L33R45L30L19L7R50R27L24R27L10R28L5R12L35L42L19L33R39L16L19R27L47R30L40L33R15R43R34L30R24L32L13L24L4L46R19R37R2L25L49R16L36R38L48L1R11R15R14R2L10L11R21L19L19L9L44R22L48R44L31L46L2R32L35R48R34L30L40R29R17L42R46R37R10R44L22L30L39L23R16R9L44R29L11R37L43R4L41L19R34R16L38L50L35L49L10R47R10L10R24L22R30L40L9L17R47R41L28L9R4R28L11R28R18R45L8R34L5R41R8L40R15L38R48R8R8R11L2R27R8R20R2L20L33R22R48L5L44L15R26R20R47R22R2L30L10L40L21R47R14R28R19L45L12R44R40L21L22R36R40R50R8L35R3R6R10L44R3L42R22L2L42R16R39R23L15L35R2L38R11L10L33R27R6L19R28L37L44L19L31L31R39L49L50L2R15L16L14L43L8R7R45L2R42L21L26R30L21L35R50R48L19L46L22R33L37R21L20R9L17R22L34L2L24R6L10L44L24R31L24L26R23L15R46L5R12R46L28L37R23L20L9R20R44R5L43L27L4R41R31L21R35R17L39L26R25L31R36L17L47L22L4R19L32R35L13L35R4R22L5R15L2R23L30L14R50R21L31L26L21R19L33R10L45L36L29R42R27L18R44L43R44R18L29L37R46L16L45R50R47L35R36L4R27L26R9L33L22L37L21R6L38R35R39L36R24R11L50R44R39L5R28L41R34R30L20L3L24R27R9L12R16R36L10R19L28R26R10L13R44L30L47L38R17L49L19R16R13L28R9L44L20L44R39L30L22R40R45L44L3L9R22L9R14L5L25R13L31R19R38R33L32R11L41R29R21R11L32L48R4R4R26L47R22L46L12L41R48R1R34L38R44L40R37L2R20L30L8R14L1L38R35R33R33L29R7R32R10L35R25L16L39R21R13L35R43L21L20L40L34R2L48R30R39L13L46R23R47L48L38L8R9L16R32R43L40L43R49R16R11L29L38R45R30L22L5R15R42L48L33R22R9L42R20R9R28R28L41L46R9L48L41R1R50R43R19R29L11L2L18L49L36R44L22R23R31R25L7R34L20R43R41R1R35R17L4L46R31R38R42R7L10R43L39L35R27R10R21L49L10L40R10R43L25R30R27L38L30R40R50L46L10R1L41R33L1L27L36L45R45L20R37R6L36L41L19R14L1R38R41R21R3L34R46R13R44L10L40R23L1R10R17L6R27L40L31R33R26R32L10R12R47R2R30R50R16L42R7L50R50R46L14R7L19L23R40L44L1R10L49R14R18L6R27R9R40R16R26R17R31L31R15R23L17L47R7L23R38L39L9L18R39R11L27R2R25L39L5L29R16L11R7L26R32L37R26L11L48L49R26L50R16R1R34R20L15R13R12R16L38R39R17R18R9R1L43L44R14L4R48R10R15R50R21R34L10R22R2L44R18L4R6L10R1R49L7L11L30L13L36L13L40L34L21R13L21L19R45L32L50R36L46R39L26L48L41R20L40L29R5R7R45R47L11L13L36R21R5R34L35L45R16L48R21L50L37R13R17L5R44L7R34L17R24R46L43L38L19L37L39R17R29R13R12L1L19L47R14L30L16R31L2R29L1R18L26L49R49R36R42R11L40L45L23L27L47R21L4L18L34L24R38L2R10R1L22L24R11L29R4L46R47R42L41L13L29L16L2R42L10L21L29L23L5R15R19R39R29L14R25L50L16R44L16R25L36R6L37R43L10R11R44R46L37L2L39R35R11L14R48R21R10R11R47L11L25L48R20R22R50L40L3L42L47R33R2R41R15L49L35L8L28L7R41R26L26R9L19L1L40R23R19L2L50L43R9L28L50R15R27L18R36L46R30R24L18L5R45R12R14L35L22L47R23L33L46R27R48R46R9R26R45L4L46R25R34L2R46L36L19L24L21L16L3R50R13L45R46R27L32L23R3L12R12L46R28L4L29L24R30L25R20R36R27R2R25R23R23R43R43L29R30L25R47L3R15L33L19R35R9R2R38L1L12R45L19R33R35R47R24R29R50L36R47L33R41L28L6L49R50R13R31R31R38R31L15R16L47R47L21R24R40R17R18L49R6R2R9R27R37R29R33L48L17R12L20R20R50L20L5L22R45L2L2R48R8R46R11R15R22L36L12L26R34L2L30R49R17R5L20L2R48R41R42L16R2R3R27R45L37L6R27L24L29L40L32L38L31L9L20L15L3L19L30L35R21L1R4L17R43L38R34L10L21R48L7R25L45L19L40L50L34R31R41L23L14L20L11R44R4R3L12L29L45R35R47L33R43L8R40R26R2R20R24R16R32R5L39L35L13R30R19R38R7R49R35L47L21L24L43L30L22R24R43R25L17L50R19R12L5L11R2L47L10L45R3L1L32R28R14L29L21L30R7R49R12R24L19R29L3L17L5R43R32L6L15L47L33L29L49L8R28R8L38L39R10L25R43L19R5L36R42L44R29L12R9L1L3R1R48L10R43R50L23L30L48R25L48L46L43L17R10R46R20L20L5R14L19R6L5L27R43R47R40L7R32L11L17L41 diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_23.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_23.tst.data new file mode 100644 index 0000000..baa7dae --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_23.tst.data @@ -0,0 +1,70 @@ +#...####...#.##.##.#..#####.########..#...#...#####.####.##.####....## +#....####.###.##.......##.....#.....##.#.#..###.#.....#......##.#.#.#. +..##..#.##.#.#.####.#.#..#.#..####.#.#....#.#.######.....##.#.#...#.## +.....####.#.##....#...##.#.##........##...#...##....#..#........###### +#..#..#...#..#.#..####.##....#..#.##..###.##.#..#..####..#.#.#..#.#..# +........#.###....###.#.#...##....#..###.#....#.#..##.#.#.....####..#.# +....###.####...#....#.####.#..####...##.##..#...#.#.#...###.##.##..### +##..#..##..#..#.#...#..##..###.#.#.##.#.###..###.##.#.###..##.##.###.# +#..#..#...#.#.....##..##.###.....##...#..###......#.#.....#..#####.... +##..#.###...###.###.#..##..##.###..#.#.#..#.###....##...###.#......##. +###....#####.#..#.###.....##.#.#.#######.....#.....#.##..####.#....### +###.#...#..#.#..#.....#.##.##.....#####....##.#..###...#.#.#.###..#.#. +.....####.#.#.##..#.#..#..#.#....###.##.#.##.#....##.#..#......#...### +##.#.#.##.#...#.#####.#####...###.###..#..#.##.#...#..##.###.#......#. +####.#..##.##..#.##.#.####....#.##.###..#.#.##..#.####..##...###..#### +#######....##.#....##.###.#.##..#.###.##.#..##..#....##.##...##.##..#. +###..#....###...##.##..##..##.####.##.#...#.#....#.##..##..#..#...###. +.#.#######.##.#.###..##.#.##..#.####.#.#.#....#.#.###.#.##....##.###.# +##...#....#..###.#..#.#....#.##.#.#######.#####...##...###..##.#..#### +...##.#...##.#.##...#.##..###....#.##..#..#.###..#.##..##.##..#####... +#...###......##.####.###.....#.#..###.#.##..##.###...........#..#.#... +.#..##..###..##.##.##########..###..#.#..#.#.#.#.........##.##..####.# +#.#...####.####....#...#..#.##..#..#.#######..#..#......#.#####..#.##. +....##.#.#....#......##...#.##.#.#.#.#.####.#..#.##.#.###....#....##.# +####.#.###.#..#.######.##.####.#.#.##.#..##.#.#.#...#..####..#.#..#### +.....##.#...#...#...#.#.........####...######..####.##..##......##..#. +...##.#.###..#.#.....#.#..#.##...####.####....##...###...##..#..##.##. +..##.##.#.##..######.########.###.###...##..##.#.....#.###.######..##. +#.#.#.#####.....#...#.#..##.#..#..#####.###...##..#.##..###.#.#..##### +.##.....##.###.###.#.#.##....##.#..#.#.###.#......#..#.##........##### +#..##.###.#.#.#.#.#.#.##....#.##...##.#....#.###.#.##.###..###.####..# +....##......##...##..#......#..#.#....#.##.#.#...##.#...#..#.....#.... +#.###.#####.##.....#.#.###....#.###.#..#######......#.#.#...###.#..### +##########...####.#.###..#.#.##..####.#.#....#.####.#..#.##.....##.#.# +..#..#####..##.#..#.....#####...##..#....#..###.#....#.#......####.##. +##...#.##...#####.####.##..#..##..##...#######.#.##...#####.###...#.## +#..##.#..#.#######...##..##.#.##.####..##.#.###..####....#..###...##.. +.#.#..#.#....#####.##....#.#..#.#..#.##.#.##..#....###.##...##.#...### +.##.#.##.##.#.#..#.#.###....#####..#..###..#..#.##.##.####..#..####... +#...#####.#...#..#..###.#.##....##...#....###.###.##.#.#.##.##.#.###.# +...##...####...#..#.......##......#.#...#.##.#..#..########.##.##...#. +#####.##..#..##..#.....##...##..##..##......####..#.##.#..##..#.##..#. +##.#....####.#.#..####...#.####..#.##...##.#..#..#....#.#.#....#.##..# +...#.#.#.####.#..#.####..#.##.##.#####.###.###.#...##...#..##..###.... +.#....###....##..#....#.........#.#....##.####...##..#.##.#..#.###.### +.#.###.#.#..###.....###.##...####..#...#.#..##.#######...####.#..##... +##........#.##.#..#.##..######.#..#...#.#.#..##...##.#..#.####.....#.# +#####.#....#..#.#.#.###...#..#..##....####..##..#..#.#.....#.#..#####. +...###.######.##.##.##.#.....##....##.#.#..#.###.#.####..####.#...#.## +.#..####.###.#..##.....#.#...#.##..#..#.####.##....##.#####...##.#.### +###.....#.#.###.#.#.####.#.#..#.###...####.....#...##..#.#...#...####. +#.#.##.###......####..#.#..##.#..#.##.#..#.#.##.#.###...##.##.##.#.#.# +..#.##.#..####.####..##...#..#....####....###.##########.##..##..####. +.#....##.#...#.#.######.####.###.....##..####......###.####.#####..... +.#..##.......####....##.#####..##..##.###.###..######.#.####...#..#... +#..#.######...#..####..#.#.....#..####.#...#.###..#.##.##..#.#..##.#.# +....#.#...#..#..#..##..##.###...#.#.##.#..##..########.#.#######.##.## +.#...#.#.###....#.######..####..#..#.#####...#.##....#.####...#.##...# +.#.##....##...##...#.....#..#####.###.##..###....#....#..##..####.###. +..###.#....##.##.##.#.##.##.#.#..#.#####..####..###..###.####.#.##.##. +#...###.#...##..#.........#####..#..##.####..##.###..#.##...###..#..#. +#..#.....###.#.###....#######..#...#.##.##.#.#..#.....###.#...#####.## +..######.#..#...#.#....##.#...#######.#.#.#.#....#..#.##.#.##..#.##### +###..###..#.#...#....#.##.###..#..##..#.###.#.#....####..#...##...###. +....#.###..#..###....#.##...####....#####........##.#####....#.....##. +##...#....###...........#.....#....###...#...#.#.#...####.####.....#.# +##.##.##.#.#..##.###...####.#..#.##.......#...#..#.##.......##.#.#.##. +.#..##.###.#.####.###.#.#.......######....#..#......#..##...#..#..#.## +#..####.....###..#####..####..######.##.#.##.###..#..#.##.#.#.##.#..## +#.#.#.#..#.#.#.#.###.....######......#...###.#.#######....#.###...#..# diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_24.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_24.tst.data new file mode 100644 index 0000000..9f2a0a7 --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_24.tst.data @@ -0,0 +1,27 @@ +#.######################################################################################################################## +#>v^<>^^>.v><>^v<>^.<>^<>^><><>v><^v>>><.<<<<^v.^<><^v>>^v^>v>.<^<^>^^^>^v>v><.vv<<.^^.<>vv<<.<>^^>vv^<^v># +#<<.>.>^vv<<^^<><<<^^^^.v..^<^v.^<>vv<<.<v^^v^^vv<>vvv^>^>.<<.vv<>^^>>v^^^<<^.^<>^.v>^v.>v<^^>^>v<<<<><>>vv<<>>v^>.<^v.>^>^^vv^<<>^.^v^^v^<<<^v>^<>^^^v.^>>>^^>>^<<.<<<<.><<><^.<.v.^v>>vvv^^v><<<.<>>><^v>v^v^>^^<>v><^>>^v<>>>v>^<.^..>.<^^.v^^<<<>><><>.vv><^>vv<# +#>><<^>.><>>vv><>>>^>.^<>><^.<^<.><^>^<>^v<^v^v^<>v<<^<.<>^>v<^^v.^^><.vvv^^^>v<^v>.>.>^^<^<^vv<<.<<^vv^<^.<<^v<>.<^>v>>^v^>vvvv><>^^^v^>>.^vv<<.^v^># +#.>^v^<>v<>>><<<^<^.>^>v>v^^v<>^^v<>^v<>^^vv^v>><<.^>>v^^>^v>^v<<>.<^v<<^<<<.<<>><<<<<><.^>v<^>><>^.>^^v^v^vvv><.v^<<<^<>..>^^.v>^^^>>^>>><>vv>^.<<^^^^.vv>v.>v>v>>^v<<>><>^>^.<^v^<^<# +#<.^^>^<<<>^><>>^vv>>v.<^^..^^.v.><><>v<>v^>>v>v<>v^..^<>.>>>v>v^<><^>><><.<>>^v.^.vvv># +#>^.^v>.v^v^v<>^v<<<^v^<<<><><>>.v^v>>^.v.v>><<.>^>.>>>.^vv..^v^.v>v>.>.>>><^^^>.^v>^<<><# +#<^^<>>..<^v^v^><^v>>>^v^>v^<.>^^v>^<.v><^>^^>^>v<>^<<><>><>v.^>vv^^.>v>v<.>v><<<<.^^<<^^.># +#<<>>^vv><<<^<^<^v.>v^<^.>>v^><>>v^v<<<^vv^v><^v<^^>v<^v.>>vv>^v^<.<>^>>vv><^>>>vv<^^^><# +#<^><^>^^<.>v^^>v><^v.^<^^<v>^^v<.>^.vv<^v.>>v^.<^^>v>^>^^<^v^>..><>vv.v>>>vv.vv>>v<<<<^>>>v<^>v>>^<# +#.^>vv^vv<>v<><^v>^.^v>>>v^v<>>>>^v>^<v.vv.^vv^v><^^>vv><^v^v<<>>v<^v.v^v>><>v>>v>>^vv<..^>.^>^^<>><^<^>^<<<^<..^>^>>vvv><><^^>.>v<.^.^>v<<>v.><^.<>.<>^^v<>^^>^.>v.v>^>.v<^>v.><<>^^^v<>.>vv>^.v.^^^^^>^><^^.>><<>.<.<>^><^^.vv.v><>>.v>vvv<>>vvv^.<<>><><>v>v>>>.^v>>v^v^><>>>>v# +#>^v>^v^>..v>^v.^.<<^>^>^<<>v^>vv^<^<>^v^^>>v<^vv^^^<>><<>>.>>>^v<>^>v<# +#>^v>>><><><^<.vv^^^<^>vv<.<^..<.>.><^<<<>v>>.<>.>v.vv<<^^v^v>.v><>>^^>^<^^.^.^>^v.>>vvv^<# +#>>^<^vv<>^^^><>.^>>>><<<>>^>^.<.^^<^.^.^>>>^^<^>>v.v<<^^<^^>vv<><>v>>><^vv.><.<>>>>^<^>^vvvvv.vv^v.>># +#<v^<>>.vv^v^><>>><<<>><^^v^<^.<<><^<^>v><^v>v^v><^<>v^^v>v^<^>v>^.<<^^v><<.>v>># +#>v^<><<^>v^.^^.v^>>v>^v<<<<>vv^v.>^v.>>^vvv^><<^<>v.v^<..>>^^>^v>^>^^<^><>^<^^>^<^^<.^vvv.^.<<<<^<# +#>.v<>^>>>^.v^>^<>^.<<><<^v>^>>^v<>v>>.^>>^>.vv<>^<><.^^.vv^.^^>^v>.^>^v># +#^^^^<<^^>v.><>^>v.>>^^<>v<><.^.v..>>^v^v>^^>.^v>>.^v^v>v<<<>v>.<>>^<^vv>^v>>vv>^v>vv><<>^^<^<^vv>.^># +#<^<<><>vv<^^v.^<<^.v^>^^vv^^v^>^^vv>^>^v^^.vvvv^>^v^><.>^>>v><>^.^^<>>v>v.^<<..vvv><<<<.# +#<<<>^^^>^^.v.^><<>>v<>^^v<>^v.<^^^^^>>v>^v>vv^^>^.v>>^^^.>v>>>>v>>^^v<^.>>v.>v>^<# +########################################################################################################################.# diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_25.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_25.tst.data new file mode 100644 index 0000000..5663d2d --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_25.tst.data @@ -0,0 +1,117 @@ +11-00 +2--2==212=12 +1=0110121=2 +1=012-21-=121 +1==0-1121-=200=2212 +1=1210===00= +11210021-0001010- +12=1-10-1- +212-2==221-210-21 +1=-01=0-02-2-=-222= +1=022000===-22010 +1=01=12202 +11= +202-1 +2-12-2=--1 +10-=-00=101=-0-=-0 +1112-1 +2--1201 +1=1==-020=1- +1--0-=2-0022- +1=-1-21-200-102= +11=100021210 +1=2=01=2-=01-= +1=0120-11-0-=-2=-2 +1=-20221=2=-2= +1-0 +1=00=-=11100--=2 +22122 +1=102222 +1210=1=001-=000 +1--200102022-= +102=12=-1== +100= +20-02 +10 +10==-102 +11=020-0210-1-2012= +12-11=0-1-= +20=- +212=1-1-10 +1=20=1-=2-11=0 +1=22 +120=2202=12200 +1-0-1 +211011-11= +2=120=--==0==--0-0 +110-0-=-10-1-112 +1=2=1-=1-2 +1=12==10 +10=2110 +22222-1=01-1 +111-=2=22-==-00 +10===2-2=21100-1= +100-21-0-1=021 +2-21=0 +1===002012=2=-1121 +122222-101=1-==2-2= +112=0 +2--212=0 +110--2-0022--01=- +1-0-0=0-1011-2-=0--2 +1=--0-2=1 +2= +1=1 +1022=1--2---120 +2-1=2-22--21=1-212 +22=-11-0=-1 +2==210022= +11=000=002-2002-1= +2-2=02=0 +1=00-=----= +1=121-2 +12-2=2-=2=2022 +2=110=1=2=02 +2 +1=0--02-121 +1200-2000=0 +1==--021--2=- +12-1=22=-02--2- +1=1=1--121-1221 +2-0212= +21-==0-201- +20212=1 +111-- +22-2=-1 +112 +2=2-==101 +1-=1 +12211=010=-=10-- +2211 +21-110-1-22==-10 +121-1- +22000=-=2-0=012 +212-02 +102 +2-110=11=-- +11=11===0 +1=210-0120 +1=--1011 +2=00022==21-1=-2 +21=1-==2---2=0-2 +1220-11=022122 +21210=01 +1==1-2 +2=2 +11-11122=- +200-0=21202-= +2=-11 +2==2=0=1120221 +101010 +1=2=-=--=-2-0= +111=0=-- +1=0121-=2 +1==1=1 +2-0222=2=- +12= +10-=0-2 diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_3.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_3.tst.data new file mode 100644 index 0000000..0467fc3 --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_3.tst.data @@ -0,0 +1,300 @@ +gtZDjBcmpcDgpZcmmbgtdtqmCGVCGGsvhCFCCqvmCMMM +JrhfzfLTNfJhPnhQnfzHfCFFQFSGvMFCGQFsQSMSVs +TllTRrfNNlfzwhtZBZgtRDBp +vMdwjZdjwjvjdTZZvCcQMGnQMQcbcgLLCL +rsVhfmssPWzDVGCLJSbCgPLSQG +lfWNDHDgfszFRTFtwwNjdv +GLPqVqdVGCLCdczjMjzMfzld +JnWQvJDmvWBtlMzhrzfHQgcz +tDtJDDDDtWRRmBwJwWtpPRsGCGScLPGSqspNCS +ChVzZzfNDzNJmBQfjjJfmH +MrTMPMncGMJvPPvPWTbrMWvgmBgQwgdpwmdpdpjwpHQcdw +SPvvvbqrFvMvZzJzsFVzVJNV +mvBbvMFqbMMVVmtCBHpDdDPTDspdNWPDVP +zjSfftcQtwtSfQSpNDppsNsjPNdRPP +fgfStJShrgvvCLLv +GmFnNNwbFFbhQQGQnGwwwfBgnMMqVDBZVVBMfMVzVz +vWzRRHzTHcgfZDVfBgfH +SSTvrvRcPpcvjFGwNGbNpbwQwz +FFgbZZFZgFmpstLgmbtzqNrwVPlMPlSWWrMPNp +QQhTvjhcvjjvTcTcTfCcSRwwWzwzPMrzWNNWVVhwrwWq +GRQBfCRnGGTcDvBfGvffCCjnFZtFFgStJLbLHbFLJZdgmd +pppdjcrMMRDJLJdRcwRDrwssqHGGDHsZHHsvBVtvmVHV +nlCFWzGzzQFlSlhGWnPzFbSsBZmsssmVVmsBvnHqvNVqqm +lFTTTCSQSTrdGJJLJG +jpsGMgsmghQwQsMmhlQshjtTNTRTnFqRWnnqRfFnnt +SLBCHrcvZHbSvSZrSvSWnfvVNvftVlFRTqnRTq +JrzdZbBcHBCrrlHrrSsMgmGpJPDPQmpgQgPG +cmcZHgwgMgHSLmtjLfWPNNrWBNfffp +JTqGTsClHslVVRVCVGVJGnBrjdnnrdBNvjPNBNBrWvnW +VVlQlqTFJlzzlsVGsRCZMthHDbwbFhgcbwHchg +qgZjgjjbssqgsjlNqjhTtdrfQdTdWLLnDVfHtHWd +zcGMBDDzcLnztfQQQz +JSppJcBScMmMFFBRCpRCMmGlggvjhbhlNlglwbslCZjhDZ +hvhmqcqwwcTBvvwQnRQnRnTRFzFzQz +jWLPPtPsgMtpdLMLWllpgLLQFQhFJjnVrzFrVFhnRzJJrJ +WPWffgtSdspdhSMdlSdtfBbHmSvqbNBCCmcBmcvcCH +frVcrVcggfSZJfbbJvBd +hwWQnwhWQmQmThTSsdvvSMBTBzcb +wGnFFCGlQwntGtCtwntwDmFwRgLrHqNRqqcNNgRrHHLggCjp +wRSwwHDMsRGHvNBNjTgvjgJD +mcLcFCclWQWQpPQWVQcQcvvNJjrNBTrvgJgBvTRvCg +VFPbQLchQLSRfbMtdHGH +lfVrhnlRRqrJZVDJdHSWCvJCJSbj +BFsgcgMNNQgSvbfCff +ffNPcMtzqPlnmRGh +ZJplFmRJmWRJRWmTJCvtTtnLCtndCqtqnr +SQsVPQHBQZNSNSLCfSLrcLcrrr +VMjPjbNMDsVHmRllmZpZWmjh +LcTLRbJhhdhLJbbclfVvfWQVWFRWFFfq +rZNttSNvtgsPPFsqBFPWQF +HGCSmHrrwNnHGMLpDhbzzpmJJv +VlSWzRtWSJqWdfhdqBdF +mTDHsmmmcHpgrCgCrTsMMtqfsFNsZqfdMZMNbd +TDcpvrpHCprCpHrmcQvTHgTQzSnLJnPPJlLzwJtRVJwLjJ +vZSWZJZJFvhZldZHdvvlphZSNGNnmzwCPNHNHGNrrRHGCPmP +bjfgcbjTQTFQBnGRRBCBNwBnCz +csqscsbssQLsgQcLgLQLQTQpFdlhdvdZdpZWhJplShWWtq +QgQvHnfflfBwQCfwlfglnQQccNcRqGGcjmcsGjddwdzsJc +DhZbTLZTDMVTsRzsqsRjszTz +FSZVtMLMMWbSgqSvPQlnpH +MMPllnnBmfSHvBgCLf +whZjGRJdjcNjjhRjCvgCfbSvCZLHfpZs +RRWGWwNRWwhwclmrgFmngFPMWm +VVHQGDGDGsdRrmZBQZRCVHZCNcSTTPMwwvTTwSSNqBqvgMvN +nfhdLfjFnJpblLbJjWhtnjWPScNnwSTPTPqTvgngNNvSvS +fpWljtpLjflfLfzlhZGQHZQVddHrrQRDRz +VCHCjwCwMSZSqQzhhQqcWZJD +GGGrFFgNRNNgmfnTdgmWQpczvPvQPWQJGDpzzc +lgTttRTgmfNRntrTTngrCbjCwJCHjLBBHlMVMsbB +szgPPlCblggVszhLmzvcvNrqpjNqmrqqpGvG +wBQDtBfQDtFvLjjctLqTMr +ZFWWdDLQFwSfDSBSQQBWnnnQVdbhgRVbsHzsshbClzzCVggb +VpVsHVcqcMVMMNHpsspstbMqzBztJZTBBfJfzTvZfvWJWSTv +mDDQgCQQQHdrwgSvZSmJJZvWfJJf +drCjggDlPdgrlbjNcnhcHsbpsj +cNNDRRpDcNcTpppsqHLQGLfRLvHzLH +lFntJjtbFFlsmsjvnGqHWLfhfqzzQh +sgPbjBJtPgbPJblblJgbgbwdBTwDCwpwrdZZVcCcDppc +GGclMjLnnjCMchcChLMLcnnzRFJDZJSRSzzzzDSShszPRS +VHgFQgwVwfNNpQVfHzQsPPPJDbmZbJDJbS +HfNVWdHVvgHgVWVNppNWVHwTlvBFcClBCjcTLTlBnnLrTL +GTLdlJhffQwDRvWLrp +HVZVNjjsPqzNjNNmNgDWMrRQpWvWRHrDHBWp +VCqVzjPjCpVqCVPCsbctcnblcGlTbGnlbFJf +flHdfdBNdZcflBMjqMjBNfZQhvJbGvqvsshJQsJCJDWvvD +gFTzRRpzRTwbgbLmtCvsJhWsChrWCrtWCC +VzzzFbVRLPznmRBffPNBHNMdlZfl +FFFMwCqJFFmrRwgnbLrL +GpjGpQHQpfjdjDRnLrbrRQmJzzgg +BphfhDcNcHNvPBvSqJMWJS +NndbWpDBNbjvWLZqWsWQ +JPFFTSPfgcMgftQQGjvTmsGqzssG +gPgcfcVFgcHqSqVhbBCHlpbbpDlhDD +FSdfWFTTBnjsDCjsmrrT +pQzLRVLppLGcQjqbmVDJsChCvCbVsm +qHLRGqqZzGjLqBNMFdnHlNlBFN +DjqbfBTchDjqqCjjCTWNTbdzSVzGZQGBwZnQnVwpSSnQ +ssJlPrtvMsRLrrJQGNZJSpZpGzSG +rlFssHsvPRPMvFmtHvtqjhTgjbqhWqNmNqgDNh +vcpnRqwwLLbvvcGpDQWDFSCgMrWWQWRR +gtNfBfllrFlHrlrl +ZPzftBmsNBNBPJBZPmZPNtmPdGLsqbwqpqcndVLLGpVGvqgV +vRBfQqqBQPfbrFvPBvPbhLDVDVDQZVVtZtlWLLLt +jcJmFFwnhJVZLWVl +sHTcmNNHzncmcjmdsBCrBCPCrBBqCFrqzb +bbZRnGmNnBGGMNRTgCmWWGGSrvSvFHvzFvFQDF +LjwphpdPdLpLJVqfJrQzDzfrvQHSvDcQrQ +DJphdwDsnmbZsTZM +rdNrZNBSzSztnNzWCcNpHlMwlwHWlM +QqLGLJvLjtvQWhgHgchHwHJw +GtjTGtDRqvfLRGnrzsmZmfrVFBrV +TdMhZrTTNvwphcLL +WnnmffmDWnWPsPCJNpNcpNVNQp +fsjbWfFFfnmmDsFDnnflSSdczlMdTHTzTTRRBdtT +cMcPcMcwgWJMjWWhFWCCQCmqCFdh +bSLVLblnNnLbVfnsbSbCChSQdChptpdqZrmCmZ +DLGNfnGVDNDHbfzjRcRgqHMRBJPc +HVFVlVHjzjjlCJjHjCjnvDrggrgLdqzddMqrzz +SSfBTmtNdLqngvrm +TwnNfPWWpBSBNtTHZCGlPHCQJHZHPV +prvccpFQpMcQBwsvssshdwSTPD +qbGHVbNJGqwdPgDrTsDJ +fGbGqqlGGHflqLlzZBBrRcrtrZlp +fCSPhltMBmPmbdgd +DjvJJscvTsHHDbWzBWsWbdwgLB +VVHDZvTppRcJVFFppvvRJDJqMSGqCtZdthttrnthSZMGCr +ZcSrSdrhDjBDDCmZdZmZjhwVHwqVVsMwgswVVwMfhw +PNvzTPNbnzcPbGQNJTvqwsWgVgVMMWpQqwgHpp +JTPGPTzNttnbRTPlPtNNRlFrFmBcmDljjmBFSCmLZZBr +mNvRRCVMtNRdFNtMtBHHprpHgJgJWwpBnprg +LZDDlSLlTslDfbcpJJWndwcscnwr +qdZZGSDhMVRCGtmC +VGFjjgBShGdGzQczcGRG +MppqCDfCMwfLDfvNmrtWstRcMPzRMRsRsPQS +NwDCffLppbqqrqvTBngSbnBHglZllH +vdllJVDzmVDVqvvWvdqJlcWrCsfCsfSSsSJfCSfQQCCbCQ +jnTHZPZHMjZhMjTpHgMpgnbNqBstnfrtSSrBSNssCrfN +LHLTFLjTMTTTwjHhpHTcwmDcWVDlvRDmvqwWlW +rqQsSStdmsdLqlNNPGlGlV +FpFpzJNTcHzRHRHlGwFVLFBLFGVvlw +WCCjWRNJTJWhQhbhrbnd +jsQjfrRTRwzSsRTgNchlnlhqcnlQmQ +dFDtdFBDddHLJpVpHHtVbtHFCWlWlGlNlmGggNqgglmcchqb +dLDHMVdLtBBDBFVJBFthtJHRTvsMSvsTrTSRvPPjPzSwRP +CSPpSrLlrlPrPchLnSlbDbbRttDVhbGRDDJRtD +fzfvmzTMmfsFszsHZsHMHVfwtbjBDDGjtRBjQQGGJb +HmvmTFmqmTsHqzzzzdTsMMScndccdLppnLCSPcCLrVgr +pfMflRnfrnjrpjnFzDpfDMmMLRTLZVTgLsvdZgLLZHSVWZRd +tBGNhwPGcNBBWwZddsSTTPgVLPdT +JwthtwbbhNBQhwhbBCrzpnprnWnprlzWlClD +PPnZZjnFNDjlJJhtMddfTTdD +QGLHFWvQJtzfpvCt +swqSmmQWLQwFWLwwRcqNNBnnbgPqbPNbglVZ +GCLSjjZGZhpvGtBgjJlnJDhhJMVDPnJlJP +mNtQQwNzQRHWdJHnPTsddlln +zQrfmbtNbcQcrzmrRBZqBcvpjSGLZGLZBB +zGNzgsjDssvNbPlWJfJq +RLMVSRMLhCLZSMZHDSJWvpcqfbfhvpJqcWPv +dMVHLFHLZMLRLLFRHHHVZMgDTntgstGwznzGGnzjDFwG +wCLCHLBwzBtQRLHLbNFFfdqdDqVrVfBN +JGvljmgGZvMlfDRRnnnZnfND +GppRlgJlSllSgjMsmllpTjcCLczWztPWPwwwzWThtcQh +WvHbvvWnFHszDRSltcCctCFD +gCmJmCCPTPqpgrZtjdRtDRplcSjS +rJJrQPPJQmrmrhGTznCfLMMbfvWfbCWQ +TqBWtTbFBNNRRtwQpJJvvvZPpTSQ +fRMfsMssrGhSmMwSQvvZJm +VggcVlsCgHnVFnndbbnR +NdrSSWBNPPSWWHPPlwlLZHLZLMhjlLLH +pVptMTgVTzLwZTzlbF +qsRmRJtsMvMqgqgRvCdcSrWSPcWrDmmdBN +nbJnfqWcmCMnSBSHwzWBsHHz +dVpdvdppdptppDlvlHcczSgNcgww +VGTdTVtGtRLFPTDbcfCmmcCQJQjcrT +VTjrjrjTlTjQMdpGrWMSHvSG +wnNJbDmttnwnhNwcJmNGdvWvMSfvMfhSSppSdp +JznFnNsGnzzGFDJsFNmLgVVQZBlLZjQTLTjTls +hpngHwcpWHgjjfhzTJBfBB +RFFbFlQlSdRsbRQQMGPRGdSGjBvvNTvzZMBvjzBBTJTvMBBT +GPSSPDDDFzGlGGRzLzGGPRWqnprcgCHwCHpwHWVcncLV +LLlLGffQLPRThRwP +MpZjbmznWqmqZznmzmpZqZnMRgPBCTPfgRTTwTjhwBPPghjP +VnZpMsMMJnWsmnJpJmzrtFlGQFrHGvSvfHStNV +MQqHMQPnqmpDdTLLRnDjsj +NGFzwgtLBtFFGrrCtzgfgCNgSsdTDSSTsdssjDdSlZRjTSBs +zCwNLthfrbCgzzhqhmccJPhQHVmV +SndBVcgdqcRBRcdPBBcVcQTSSMLMlTssMNMWsHMsLQ +GmJvZvhqpvZtNwwWLTTLwMMm +JFJpzFGZqjvhGZcjBPcCBBPnnVBc +rJWbqTvwvJNbPDPPvLcZvPDp +QMnfBsjmFPLcHRDfPp +lQlMlmtFsMMBstljlnGhtMhmGNqJqTcWNNbWdGwdNNJCrTrq +LcjcNCQNQWDpRDjRTj +vWvszVVSsBGWsTJRFHRJTTSTRJ +vvGbtqbGVVBqtzbqvBdzVLWNLClwnwMLWlQNMfdPQP +TWBZsWrjzZzWBrBsrrsTLNNJvFnJVmlSFFQnGpmnSJJS +qdCggdqqqhhqwhRbCwbCPqhlJFPPGJQVvvvnpVVmPnnFvS +ffgCfghDqDdCsGWZjTsLrsfW +QzQSSQmzSsLQcLmrcsLzccgqCnwqCtZDnDnrZwgnqTTT +hFRHHRPRPMtWPGVPRlMljRPCgWBBDTgJBgnwqTZDBZDWDB +jPjPHRMjjvdjVFhdNfbsbbQfbcddmNtL +jJlTqMqJtdztJqzcSJSlTdSlprLsRRHwcRRrsrHbrnnRHsHL +VVVMWNNWmNmLnPLRHrLp +NGhfvvVWBNfNNCNCQTMqjzgTQBSSSqll +SSSRMRSRpnMRHLqWLfPlDGlGWldD +hbNtlmvrNrsVDWsGPfPfqG +jvbBNmvlJjRcCzHFppCJ +hhWWPjnBGBGnjqBWSnhhsNLllLNcLczJcqcTlLTlfl +FHvFFMHwdmvrDbwCbbvHwdHnZTMLzTNTczflJTZclzNLlLcJ +HdFFvdDvpCDdrnwrGhBQhWRRpsjQWWQW +sBsvtJtdRdjNbWWrTllqlNgg +nSZSnPPZzMSnSlScWWWgrVWCrqgrWMWr +lzSncQcLZLzlwDvtdDdFdFJJhHvJ +lpsTLDlTtFtlWHPDvvgPfgMrQQJM +zmNbzcNjzldjwmbdbhhjcjRgfwrgvMwMMSRJSvQQvrRf +ZhjqcjzNhmzNqBqNznmcWHplCFGnpCtFsGWHHWsH +ZPGQBFHFbhSrHqtfSrSr +nMdznzzMDTnjMQrMWtrMptplqpqS +wzjczJmccTJCmcVghZBJbPBQBbVh +wLLMJbqSBBnnJhbvbFSSRRlztTrHzrrrrd +QNNGVPjWPGVqltTHWCqCdH +sjNGmmGVGgQNGDVmsVpgqQVpMDhvbLwMffZfhZbLnfLLLZwb +gQLcQrMtBPdwSBsSlmBm +TfCpTJnTbfqgsgwgppsSzp +jVbvTnvWfJnJjjbfCjWWjrFPrLMtcDPgLMQQRtgZVF +gwpHvpgwngGHcnvNvgnmsqCzmMzlfqmmqzHHCm +JrdSLdBVPRDtRtPfPPzCJhjqmljzmmqszzsM +SWLDDtVdrZWtSBRZfRcwgFGnpNFpnTnWnTvT +rpcnHrwrhWccNZDDBBgBVCSW +nmzFRRjFmmJQNDJC +qznMlqGnzRtRGvqGFRPrdMhwTpTLfLcppLHp +wthvbmhmChWMRJLJzngZpzLLNC +SsdBVjSTjBdffBFfcSdVHfTrnDZGpQgNZHNnLZGpJngJGLng +sSdTcdVScdcrccjcrBPrBSjcvmRRwlWPhwmqtgWhMPtmMMqR +CJJBdBCrHdBhtRHctBQhRMrBwZpwZWNZNSNTwSNpQWpZsSSW +LVFnvnbDjLsDPsPqFFvPvDnTzSTwNwPZpSmpSpgmgZWNTW +LjlflbFjsvVlrHcrHtrfcChH +tVLJGNRtfBBNGBrfrbzmfhPsrsPC +DWWDQHQgllSFqFzcsJmzzSSzmrrs +MJFQDgMqnHlDvFdGNBNNZGNVVvjV +wnNwGCBBFNWBqjFBnLLGVDHhHmDPHvZTjTvTrPvD +bMbttVScMJQtdgSgstbJRSPmrTHmHmrmmSDZlrPrPDhv +cMbgpsbVbzbdRMRFWLqzBfLGwwwwfW +JpSnGSGpbGgsWWPHJrdfsT +MNsRqNNvMQDTLWHlffNHLN +qqmtRzRvCRRQDqjqjDmsmRpZwSZbcwbnCcCSBBnSSnnC +TWqlqpRqRptqlRhrmtGGzhbSrSdz +VgsBVMvgVZfZvPsMVNvfZfvVbSPdhFPFhbzLhJdGFJmLhhhL +QZgvZgvHwbwHbMsMRllRjDRDnQRqlRjl +fsPQwnHnHLLfnBBnwwGtjTGRWTWTWwhV +jblbdjZFDMbGllqTGTtVlq +gmdMgZMbjpZDcrrDgdmszsPLpQfpBPPnNQNLLz +HRsPPGMhLPMrnPchPSwStjbSttSvtHSqQw +dfsCfpCJVJCvdFBFwStwjj +gTNWmWfTNVZVJzZWpWJgTpfhnDrMnDclgDlDrDRnRcMLDs +ZQZQJMqdwmZvqfPmwRjpBBjHjnshnjtt +zcTPTLDTFWLGTrTSWPcDSSHjRlhRsDhHslslssBRljjj +TrNFLbTWrGNZvmvVQPQV +htfLgmtSLcTWNLcT +slbHlBBGbqRsblBHvdNJJcjFFNBTVWWWcn +bbQsHMMblHrMsGRqvQhwCTQCwtQCzSpfmS +zmqdphmFmSpTzhdqhFmwjjGbtcvDbcGGjllGQjSP +HJFrMCsVLrHRRMCNrVMVnctvstlGcQlPtGGjQtGlvP +RFLHLVWrNgVJzwzwfgffwdfp +vdMjSmMMpmMWhRpndRmZnhvHqLpGHcJGGGDLHHLGcfcLfc +lPBwwrsCgLFggcqqLW +TWszsWNBTNdmSRvjbZZT +zFlBGpzzzLLNjBwPcwwmcNPfWNQn +VHSHRJTJDSVVnmcVVPpWmpnf +DMZHHrDHHrJrrZrShZsHGbMBbFgGjGCgjpFlBzzb +FVMpsvTqvqMssVsWZSrqWFvwlGDGwQzwfwQQNLzDlwlZwf +hPbgBHhJJcJPwCwDpNllCCHC +pnjbBmjgbgmqtSmsTtsF +DHZHmfTmCfjDZHMZmzffHHnQwwTBdQwbSdBGBQwhBQTQww +cqstRFWNtLrNFwdVShlBSlhBRl +StJWpLptNWLtJcpqPrFHDjZzzvnDDHPCZjPvvz +hzffhGVGGhzRqTBLTqHL +sFFFsMQlwJMsmrBFSNHTHNqrTS +pbdsJMdJMJbwbmJJtbTtgnffGgVVChvD +FvJnFnCpQTddSSmFdFpPPsVhppDjBzjDVhDV +RgZMZbsgzlDPlhjb +cHHHRgRZgfHHZGZfHZcLLHrrCrmJCmddrsvdJsmvFFQG +dpJDdZwLnvdvFmFMmHjslMLH +CGCztgPhWCWhzzzNNPGfrrWfmbbsmmHjFHDMsbHMsjFPjbHm +rNQDGzzhCCfNrzrDzChTcZZvQcTRJpTwdvQpVc +VpvNGhGHGNhHbPsbVbvfFtLCzSCFSBsCFSFCLB +MlqJwTnrRRrRnMlQMHfHzHzWFWtmTzLWFC +ljZDDHqqjqRbpNhjNNgcgc +qrQtDzcQzbrcfdbqrQrthtscSsvpvnsSHpTpLpspmsSs +CVwNNVRNBSHsLSFBTv +CVVVNZjlVlGwlGlljNlWJVrrfqbPQQqHqJhhftbfDJqf +lpmrPDPDjPlmWrVzPztZwFjtFbBnRtZbbcRL +dnqJCCgQdNqbqRbRbBLt +QGhGddGCTdMHNTGgshgJhzvSmWWPSsnprpPzWzsWlr +hCJHTdJJNvTdSSNssjvfwgntwDgtgwDGCtZwtRRB +mbllFmFMFbMVWWLpbpZwwBZTZnnVwnTggtDB +MmzLQpFPTmPzHvfJNNzhNs +dzgBwzlgrrBrVLLlwLBgBlgRScDMMDDswMsHZRGDsZGZmM +HPfPbjCFJjCvfnnsjsDDcccmZsRSMc +hCvHfWPPnvJhPWpqNNhqLqzLqLLd diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_4.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_4.tst.data new file mode 100644 index 0000000..c7fb3fc --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_4.tst.data @@ -0,0 +1,1000 @@ +48-50,48-49 +5-89,5-5 +17-57,55-96 +24-67,23-25 +89-99,11-89 +34-71,35-71 +13-17,16-95 +13-93,5-12 +11-91,1-11 +4-81,2-11 +53-82,52-53 +5-98,4-97 +4-78,3-3 +20-81,21-80 +79-83,77-82 +76-87,43-87 +14-93,12-62 +13-94,15-95 +22-75,14-53 +67-90,67-79 +1-82,1-82 +5-80,83-96 +28-57,56-56 +53-91,52-54 +21-97,2-36 +8-18,10-98 +7-91,12-91 +11-88,19-95 +22-88,21-88 +31-69,9-48 +2-3,3-43 +5-95,2-6 +5-85,5-79 +51-91,51-69 +41-91,41-64 +23-37,24-95 +1-28,3-94 +6-93,6-98 +8-65,34-66 +2-8,9-38 +3-75,2-4 +40-77,37-76 +51-51,11-51 +95-95,3-94 +90-90,81-90 +26-61,26-61 +1-96,97-98 +41-84,90-91 +94-94,1-94 +52-89,74-90 +9-11,10-74 +57-67,56-62 +29-98,30-78 +20-88,18-54 +11-81,10-82 +85-87,26-86 +8-45,46-78 +16-33,20-49 +73-93,16-93 +35-36,29-36 +4-98,98-98 +24-30,30-80 +64-99,72-97 +8-33,8-47 +88-96,93-99 +23-46,35-49 +41-60,40-41 +5-83,4-6 +76-76,15-76 +37-70,69-71 +11-77,11-12 +57-65,65-97 +20-46,46-62 +76-84,8-77 +10-29,29-53 +16-50,6-17 +20-99,19-19 +11-12,12-72 +24-91,77-92 +37-73,72-73 +50-52,73-89 +37-99,25-76 +1-88,1-2 +18-64,17-63 +19-52,17-52 +5-86,6-87 +13-87,14-87 +23-82,19-92 +56-79,57-79 +25-68,26-67 +5-95,94-96 +38-50,38-39 +32-75,32-75 +23-69,23-69 +25-54,18-25 +33-79,34-67 +38-62,38-65 +62-75,69-78 +2-17,3-17 +12-20,19-96 +7-7,4-8 +1-92,2-93 +29-70,69-77 +7-54,2-54 +9-34,16-34 +4-20,7-31 +4-89,4-47 +12-91,9-96 +8-79,9-80 +32-91,31-91 +1-4,5-55 +85-94,84-95 +73-74,6-74 +51-70,52-70 +21-75,7-27 +13-38,37-39 +42-97,42-98 +33-45,28-45 +12-14,13-98 +91-92,90-91 +66-83,57-83 +8-79,9-67 +59-72,71-72 +33-71,3-33 +13-38,12-38 +18-93,18-52 +28-80,12-26 +87-88,2-88 +7-89,7-85 +26-27,27-27 +12-97,12-97 +36-95,32-91 +25-33,25-32 +4-39,5-75 +40-58,41-58 +8-60,8-93 +9-69,70-70 +19-34,35-68 +47-47,38-47 +1-70,1-70 +39-82,38-83 +17-98,17-99 +56-86,37-56 +2-2,4-96 +5-97,97-97 +52-93,52-77 +39-66,38-66 +9-99,4-99 +25-37,24-37 +2-99,1-98 +13-15,15-15 +10-51,5-9 +38-99,19-96 +6-38,37-78 +94-98,95-99 +8-89,29-89 +2-98,1-98 +13-99,99-99 +1-76,1-25 +8-97,8-97 +9-90,89-93 +24-52,7-49 +30-97,45-99 +26-62,26-59 +15-27,21-30 +80-81,64-80 +65-76,2-76 +9-9,10-99 +3-6,4-82 +78-79,20-79 +11-50,49-49 +10-12,11-68 +1-5,4-85 +8-10,9-95 +16-86,16-87 +11-81,10-11 +36-87,75-87 +55-92,54-99 +3-18,18-84 +4-73,1-2 +16-66,5-76 +29-73,29-79 +60-91,67-91 +82-82,47-82 +31-38,31-37 +44-44,21-44 +93-94,65-94 +13-79,2-12 +4-97,5-97 +40-78,40-41 +69-99,1-69 +8-97,8-96 +27-27,26-79 +60-96,71-88 +24-57,18-25 +1-26,2-27 +53-81,69-81 +3-96,2-96 +9-99,9-97 +45-48,46-56 +6-36,5-30 +45-73,46-73 +28-41,27-42 +4-91,90-94 +6-39,20-44 +3-3,5-65 +17-98,18-65 +15-98,15-96 +29-88,65-90 +10-61,60-62 +26-91,27-91 +78-96,95-95 +6-22,6-17 +40-56,40-57 +4-5,6-98 +78-83,51-83 +8-78,8-78 +26-87,26-86 +4-94,3-4 +5-55,2-6 +40-50,19-56 +55-68,2-94 +39-41,9-40 +68-76,68-69 +51-60,50-59 +9-48,2-10 +13-96,13-63 +1-90,4-91 +1-7,6-99 +25-67,25-66 +13-94,14-93 +27-28,28-70 +39-41,25-40 +8-53,9-53 +56-89,57-88 +4-56,50-56 +22-76,15-17 +7-98,69-76 +12-46,11-46 +1-41,3-72 +43-55,44-76 +9-81,9-81 +45-95,45-94 +12-68,12-69 +90-96,74-85 +67-68,68-68 +50-73,2-73 +6-17,6-97 +70-76,71-99 +9-43,9-43 +9-76,8-75 +66-90,65-66 +13-99,12-14 +1-2,3-91 +53-86,52-53 +3-57,3-96 +81-92,80-92 +6-18,17-88 +70-94,69-69 +17-17,18-88 +4-92,4-93 +41-61,47-61 +25-52,25-73 +78-97,12-97 +39-54,38-46 +39-52,39-58 +8-99,8-51 +52-58,51-52 +5-45,6-46 +3-99,98-98 +84-87,84-98 +58-87,86-88 +6-72,71-73 +41-42,41-86 +27-42,27-77 +14-15,14-74 +43-43,40-43 +17-95,17-93 +44-66,65-70 +4-99,5-99 +43-43,44-86 +64-75,63-71 +4-99,5-99 +6-29,6-99 +19-84,18-83 +72-72,10-72 +9-14,13-88 +3-98,98-98 +9-81,10-81 +13-69,13-70 +3-87,1-87 +22-61,10-62 +75-90,75-90 +69-99,68-87 +94-94,91-95 +2-3,3-96 +5-93,48-93 +43-45,33-49 +85-87,2-86 +51-52,52-62 +50-91,40-49 +1-81,21-81 +51-56,51-56 +22-23,23-37 +25-27,26-67 +58-59,23-58 +37-85,84-85 +12-97,12-96 +14-38,2-13 +33-81,32-44 +34-65,46-60 +3-28,27-28 +11-54,11-55 +2-93,1-93 +28-28,28-50 +10-82,81-83 +77-82,77-82 +33-63,49-63 +2-84,89-91 +37-90,36-91 +46-85,45-85 +97-97,14-97 +5-18,6-19 +7-94,6-95 +17-87,12-86 +11-85,39-85 +7-94,7-93 +9-98,9-96 +18-18,19-96 +62-62,34-62 +24-36,24-91 +72-91,4-91 +7-84,7-83 +9-93,9-87 +22-99,21-99 +32-46,31-32 +32-70,69-97 +13-89,12-88 +10-10,11-89 +46-46,47-64 +51-51,24-52 +5-51,3-3 +46-90,99-99 +6-96,5-95 +50-96,50-97 +96-96,4-70 +13-36,12-35 +19-90,13-20 +12-43,42-95 +1-83,1-84 +3-5,4-70 +24-97,25-98 +27-40,1-50 +37-82,36-83 +47-95,47-94 +2-80,2-58 +64-83,63-87 +42-52,41-44 +26-97,1-97 +35-45,35-78 +6-45,28-82 +11-17,11-16 +67-67,44-67 +2-95,2-94 +22-95,22-94 +20-43,21-92 +33-60,59-76 +6-75,7-75 +3-90,96-99 +38-76,41-76 +18-98,6-19 +2-65,64-77 +3-88,2-88 +14-94,13-93 +40-89,71-99 +44-93,44-72 +48-62,48-61 +6-27,6-26 +43-53,43-54 +4-97,36-98 +8-13,12-83 +15-96,7-96 +18-91,17-18 +11-13,12-55 +31-92,19-94 +44-87,14-45 +18-51,17-18 +23-24,27-27 +23-46,24-88 +12-90,13-90 +37-70,34-70 +1-98,88-98 +2-93,6-95 +73-99,74-98 +4-46,2-46 +50-52,51-75 +45-91,46-90 +11-85,58-94 +26-43,26-44 +56-95,55-94 +10-93,11-92 +1-99,1-99 +8-95,7-7 +19-69,9-18 +18-90,9-60 +74-93,13-73 +62-90,61-72 +7-53,52-95 +44-82,4-44 +17-88,17-88 +26-27,26-89 +1-9,1-62 +13-40,39-62 +2-93,1-92 +91-91,17-91 +57-58,58-85 +23-98,97-99 +16-48,16-48 +25-61,61-87 +14-47,13-84 +46-96,47-94 +8-98,7-99 +3-5,4-97 +38-83,28-82 +7-99,6-34 +23-91,38-84 +33-35,34-63 +14-55,55-55 +34-50,11-35 +3-69,4-69 +67-99,99-99 +38-94,2-59 +2-98,2-97 +77-79,42-78 +6-45,44-45 +39-79,61-93 +5-92,5-97 +4-61,3-64 +47-48,48-67 +11-23,10-23 +2-99,9-99 +31-99,30-81 +28-87,29-88 +8-31,2-13 +3-17,16-83 +29-58,57-59 +4-75,15-35 +49-94,48-93 +23-85,84-84 +7-92,7-97 +53-91,91-97 +26-95,1-95 +9-22,7-9 +13-63,62-95 +54-55,54-97 +80-88,79-88 +1-44,2-44 +3-83,1-4 +95-95,26-95 +23-26,23-26 +19-35,19-34 +17-34,34-34 +39-89,75-97 +42-84,84-84 +60-95,61-94 +6-88,5-88 +2-68,1-68 +16-76,15-16 +30-93,9-96 +10-91,11-91 +36-88,35-36 +24-67,45-66 +41-58,16-96 +84-85,83-85 +10-59,18-59 +33-70,69-69 +58-69,57-58 +4-6,68-85 +3-91,91-91 +99-99,2-98 +33-94,93-95 +68-69,27-68 +4-4,5-14 +98-98,2-97 +5-91,90-92 +2-91,2-90 +37-81,80-80 +9-51,54-69 +45-59,46-59 +8-69,7-69 +20-21,21-29 +45-83,88-91 +22-87,20-21 +4-77,3-76 +50-81,49-49 +47-59,58-78 +22-85,21-84 +3-86,7-91 +63-83,62-63 +10-58,7-57 +14-88,14-88 +18-67,16-28 +39-50,39-42 +9-85,8-85 +7-28,7-8 +72-72,19-73 +25-27,25-56 +40-43,40-43 +10-26,25-25 +29-99,30-99 +9-14,13-92 +9-17,10-56 +93-94,1-94 +31-67,30-68 +15-84,84-84 +45-46,8-46 +10-93,10-94 +31-48,5-94 +49-93,92-92 +45-80,40-67 +63-94,7-93 +2-94,1-66 +26-44,41-53 +51-94,1-94 +5-93,4-92 +14-86,85-86 +9-52,8-10 +24-61,23-62 +1-78,77-79 +6-97,17-96 +43-65,19-43 +45-99,35-99 +58-58,20-57 +22-89,64-85 +12-22,21-80 +6-36,36-36 +1-92,87-92 +26-99,26-97 +7-85,1-85 +20-98,20-98 +2-51,2-54 +73-95,74-95 +16-54,15-17 +4-95,4-96 +11-98,11-98 +67-79,66-80 +61-61,62-63 +50-62,12-50 +9-80,9-81 +1-1,3-87 +16-61,15-23 +31-35,34-40 +13-89,12-90 +89-91,90-95 +20-60,12-81 +2-65,1-66 +38-96,56-96 +23-23,12-22 +96-96,11-95 +8-37,36-97 +2-26,1-26 +30-71,37-73 +71-87,70-70 +31-99,31-82 +6-39,2-7 +1-99,3-99 +29-73,32-81 +33-37,33-36 +15-41,14-40 +32-33,33-90 +23-85,22-24 +26-93,26-86 +3-97,2-98 +10-92,92-94 +29-55,30-55 +9-75,29-96 +6-94,93-97 +63-63,52-63 +24-78,5-5 +38-67,37-67 +14-32,13-32 +35-94,36-94 +23-92,24-92 +9-36,8-36 +63-95,62-62 +37-78,3-78 +34-51,17-37 +84-85,13-84 +1-95,1-98 +18-56,18-19 +17-78,13-16 +6-52,15-44 +13-33,14-33 +10-88,11-89 +61-80,61-79 +6-98,98-98 +1-91,1-85 +60-86,10-87 +3-96,95-98 +34-99,33-98 +19-21,20-91 +7-96,8-96 +2-90,2-90 +36-96,36-96 +76-96,60-75 +8-44,7-44 +9-28,10-28 +10-95,7-95 +56-68,29-82 +10-97,18-99 +68-97,45-97 +19-92,2-92 +6-97,5-97 +74-74,73-73 +20-70,20-70 +18-66,19-67 +91-94,7-92 +4-47,4-47 +11-93,12-93 +33-54,32-53 +54-64,55-63 +20-99,20-21 +39-82,56-68 +4-36,36-47 +30-41,25-31 +65-69,69-69 +20-71,71-74 +16-36,24-54 +2-96,95-98 +11-70,10-12 +5-36,35-95 +36-92,36-37 +37-78,32-87 +28-89,15-88 +9-63,62-62 +2-94,4-94 +85-85,72-85 +30-73,7-31 +10-36,10-36 +75-97,47-95 +23-23,4-24 +49-88,36-87 +25-25,26-42 +33-86,26-86 +13-76,76-76 +60-60,60-60 +3-23,24-24 +4-85,10-85 +7-38,8-37 +40-85,41-84 +46-86,47-87 +8-38,7-38 +76-78,9-77 +80-94,57-94 +86-96,86-97 +35-89,10-67 +45-94,35-81 +8-93,7-8 +22-48,23-47 +21-94,20-94 +63-72,60-73 +89-89,57-90 +34-41,41-78 +5-5,2-6 +1-79,1-80 +79-82,80-83 +37-37,38-53 +65-93,64-96 +33-85,33-33 +7-98,44-57 +2-5,4-69 +19-69,18-68 +80-81,7-81 +19-99,20-99 +5-34,4-14 +4-88,88-89 +51-91,59-93 +33-60,33-58 +32-67,27-94 +8-98,7-8 +34-43,44-69 +10-80,10-11 +7-73,11-73 +23-69,24-69 +68-83,6-68 +2-35,5-35 +1-4,3-90 +88-89,30-89 +57-99,14-63 +16-29,17-28 +67-82,62-77 +20-65,19-66 +37-69,61-63 +58-94,94-94 +1-72,72-72 +7-11,10-47 +18-59,59-59 +57-57,37-58 +60-81,54-72 +2-86,1-87 +7-78,7-77 +59-69,59-65 +15-16,15-73 +15-82,16-92 +8-88,57-88 +36-92,36-88 +59-60,24-59 +4-22,1-3 +44-60,45-60 +90-95,35-89 +21-30,20-30 +4-83,83-83 +16-99,7-17 +11-18,19-95 +45-94,44-94 +3-11,3-12 +9-70,8-10 +1-8,8-78 +1-5,4-97 +30-55,29-31 +7-89,8-89 +47-47,46-48 +66-96,38-84 +33-34,33-73 +2-23,1-22 +52-64,53-91 +9-34,19-61 +25-57,25-57 +1-98,97-98 +79-89,76-80 +28-80,28-80 +13-77,76-78 +3-88,2-88 +69-72,70-72 +91-91,22-91 +77-95,76-94 +84-92,84-91 +55-99,56-99 +1-91,2-91 +33-36,27-36 +79-84,62-74 +52-54,18-53 +26-37,25-27 +55-85,40-85 +58-74,10-59 +6-53,6-53 +42-49,42-47 +47-79,80-97 +11-24,25-91 +83-87,86-87 +1-88,1-96 +55-63,54-62 +76-76,8-76 +3-78,78-99 +1-86,8-96 +44-70,43-70 +25-27,26-91 +65-98,97-97 +14-64,15-65 +9-36,8-35 +78-84,77-85 +42-58,41-59 +60-92,59-60 +95-97,14-86 +8-82,7-83 +5-58,5-59 +5-99,6-99 +4-13,1-4 +57-86,43-58 +11-82,11-11 +4-87,1-5 +6-7,7-11 +6-22,2-7 +15-49,14-49 +39-97,99-99 +12-49,13-90 +70-80,71-80 +46-95,66-94 +94-98,13-94 +3-11,11-11 +13-23,12-23 +11-98,11-98 +20-99,8-20 +28-87,27-87 +16-21,21-61 +2-91,7-56 +7-7,8-71 +74-74,67-74 +23-88,1-74 +1-99,2-98 +34-85,40-86 +6-85,6-68 +28-31,31-49 +13-40,13-40 +55-56,56-56 +70-72,26-71 +93-94,34-93 +45-75,44-75 +4-10,10-50 +65-74,65-77 +39-87,6-59 +11-85,3-85 +8-46,12-46 +9-9,10-95 +30-41,27-92 +13-97,9-96 +21-62,22-63 +54-69,52-53 +17-99,18-99 +75-92,7-76 +38-39,38-90 +50-69,49-50 +65-87,65-99 +6-98,6-96 +34-62,40-90 +33-47,34-48 +33-95,34-95 +42-99,43-98 +70-85,1-71 +37-63,38-63 +12-17,17-72 +28-31,29-92 +18-69,8-17 +41-96,40-95 +7-86,7-86 +68-78,67-73 +4-6,7-99 +8-86,86-87 +5-6,6-37 +88-94,89-95 +33-74,33-74 +86-87,86-87 +29-55,62-78 +23-38,13-38 +9-44,10-89 +18-67,19-97 +3-83,1-66 +55-81,55-81 +6-72,7-71 +5-55,6-55 +14-99,14-97 +39-83,16-40 +11-73,55-73 +4-68,5-67 +66-73,26-73 +3-92,3-91 +36-59,33-35 +72-73,4-73 +1-83,2-83 +25-88,25-43 +45-71,45-73 +9-96,95-95 +4-5,7-23 +48-50,4-49 +45-96,44-96 +50-87,49-50 +98-99,27-96 +4-40,40-78 +3-94,94-94 +7-34,25-26 +72-79,23-72 +2-84,3-83 +78-96,25-78 +77-94,73-94 +63-66,62-65 +25-80,24-80 +10-33,78-90 +25-55,24-54 +58-62,23-64 +61-62,62-84 +83-83,46-84 +23-30,31-92 +8-95,94-99 +35-65,34-64 +12-19,12-18 +21-25,24-43 +54-79,54-84 +37-56,37-57 +77-77,15-77 +57-88,55-88 +7-93,8-93 +5-89,3-66 +33-63,32-33 +9-52,51-96 +7-97,6-66 +3-58,1-3 +26-85,25-84 +11-63,10-12 +52-54,53-54 +23-68,22-22 +14-96,14-95 +4-41,3-21 +4-6,5-83 +97-98,1-97 +13-90,73-88 +11-15,7-10 +65-80,24-81 +48-82,48-83 +81-87,4-81 +40-47,40-47 +15-87,14-75 +30-50,29-30 +26-65,64-64 +37-37,7-37 +51-51,49-51 +5-71,7-70 +18-54,53-54 +47-48,48-60 +26-98,25-97 +5-6,5-81 +3-98,3-99 +9-22,21-22 +4-97,1-1 +36-36,37-77 +22-35,4-23 +18-95,19-96 +14-94,14-96 +43-46,47-50 +80-91,81-91 +20-67,5-81 +8-87,9-86 +30-69,23-30 +96-99,2-96 +59-75,74-76 +20-66,19-66 +10-85,10-65 +9-82,8-38 +32-66,54-66 +23-64,63-65 +1-89,1-90 +1-95,1-94 +12-82,7-64 +55-66,60-66 +3-93,3-42 +45-87,15-88 +3-50,3-76 +7-86,8-79 +39-39,40-85 +57-86,52-52 +17-84,16-18 +63-99,64-99 +83-94,83-94 +12-85,11-86 +18-89,17-17 +12-25,13-87 +9-12,10-15 +62-92,85-88 +26-97,26-94 +16-94,94-94 +47-83,47-83 +25-86,85-88 +1-99,1-98 +47-87,87-99 +9-99,9-97 +8-73,2-73 +45-47,46-85 +18-95,18-96 +41-41,40-41 +1-4,4-61 +4-95,5-96 +8-79,78-80 +6-81,9-81 +7-90,1-7 +6-22,6-22 +32-82,15-59 +19-93,13-93 +43-48,12-99 +45-45,46-59 +27-69,1-28 +78-78,59-79 +12-57,57-57 +4-39,4-77 +55-91,91-91 +27-87,92-95 +83-87,87-98 +22-84,22-31 +3-91,3-22 +45-86,57-62 +68-82,55-82 +96-98,3-97 +12-32,1-32 +37-71,37-71 +31-59,31-59 +86-88,79-88 +4-92,3-3 +40-91,17-91 +51-52,52-74 +2-97,1-98 +50-83,82-83 +34-34,35-41 +6-47,5-5 +5-65,5-47 +32-77,33-85 +21-68,22-67 +12-45,46-95 +45-48,38-46 +39-84,35-40 +4-60,3-4 +67-83,68-84 +24-92,25-93 diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_5.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_5.tst.data new file mode 100644 index 0000000..3c93ae0 --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_5.tst.data @@ -0,0 +1,514 @@ +[Q] [N] [N] +[H] [B] [D] [S] [M] +[C] [Q] [J] [V] [Q] [D] +[T] [S] [Z] [F] [J] [J] [W] +[N] [G] [T] [S] [V] [B] [C] [C] +[S] [B] [R] [W] [D] [J] [Q] [R] [Q] +[V] [D] [W] [G] [P] [W] [N] [T] [S] +[B] [W] [F] [L] [M] [F] [L] [G] [J] + 1 2 3 4 5 6 7 8 9 + +move 3 from 6 to 2 +move 2 from 8 to 7 +move 3 from 3 to 8 +move 2 from 5 to 3 +move 5 from 9 to 7 +move 5 from 3 to 5 +move 1 from 4 to 2 +move 3 from 2 to 1 +move 2 from 9 to 6 +move 4 from 1 to 4 +move 6 from 5 to 8 +move 1 from 6 to 3 +move 8 from 8 to 9 +move 5 from 9 to 2 +move 1 from 3 to 4 +move 11 from 7 to 2 +move 1 from 4 to 1 +move 1 from 5 to 9 +move 1 from 3 to 9 +move 1 from 9 to 5 +move 21 from 2 to 6 +move 2 from 8 to 4 +move 5 from 8 to 6 +move 4 from 9 to 7 +move 2 from 5 to 6 +move 5 from 4 to 2 +move 4 from 7 to 2 +move 20 from 6 to 9 +move 7 from 2 to 7 +move 1 from 2 to 6 +move 7 from 9 to 6 +move 3 from 7 to 9 +move 7 from 1 to 9 +move 3 from 7 to 4 +move 1 from 2 to 5 +move 1 from 5 to 2 +move 1 from 1 to 9 +move 23 from 9 to 1 +move 1 from 2 to 4 +move 1 from 9 to 6 +move 1 from 1 to 5 +move 20 from 1 to 7 +move 1 from 5 to 9 +move 12 from 4 to 2 +move 2 from 1 to 3 +move 1 from 3 to 5 +move 4 from 2 to 9 +move 2 from 6 to 4 +move 9 from 7 to 4 +move 11 from 6 to 7 +move 7 from 2 to 8 +move 1 from 5 to 7 +move 2 from 9 to 7 +move 1 from 6 to 4 +move 6 from 8 to 2 +move 3 from 7 to 1 +move 6 from 2 to 4 +move 1 from 3 to 2 +move 7 from 4 to 3 +move 1 from 8 to 5 +move 3 from 6 to 7 +move 1 from 2 to 9 +move 1 from 6 to 7 +move 4 from 4 to 1 +move 1 from 3 to 1 +move 22 from 7 to 6 +move 3 from 7 to 6 +move 4 from 7 to 6 +move 5 from 4 to 5 +move 26 from 6 to 2 +move 8 from 1 to 9 +move 2 from 6 to 5 +move 9 from 9 to 5 +move 2 from 9 to 4 +move 1 from 5 to 3 +move 1 from 9 to 5 +move 1 from 5 to 6 +move 1 from 4 to 3 +move 3 from 5 to 8 +move 1 from 6 to 2 +move 1 from 6 to 1 +move 1 from 1 to 8 +move 4 from 5 to 2 +move 7 from 2 to 4 +move 8 from 5 to 3 +move 1 from 5 to 7 +move 12 from 2 to 8 +move 6 from 3 to 8 +move 1 from 7 to 6 +move 10 from 3 to 4 +move 11 from 8 to 7 +move 6 from 8 to 3 +move 11 from 7 to 4 +move 1 from 6 to 3 +move 6 from 3 to 1 +move 6 from 1 to 5 +move 15 from 4 to 7 +move 1 from 3 to 5 +move 7 from 2 to 3 +move 5 from 5 to 9 +move 2 from 3 to 8 +move 1 from 9 to 4 +move 1 from 9 to 7 +move 1 from 4 to 5 +move 5 from 7 to 8 +move 13 from 4 to 1 +move 8 from 8 to 2 +move 2 from 2 to 7 +move 7 from 7 to 4 +move 1 from 5 to 1 +move 1 from 5 to 9 +move 3 from 8 to 9 +move 7 from 9 to 8 +move 1 from 5 to 2 +move 6 from 8 to 2 +move 6 from 7 to 6 +move 2 from 2 to 7 +move 2 from 8 to 3 +move 3 from 4 to 5 +move 1 from 7 to 1 +move 3 from 3 to 5 +move 4 from 4 to 6 +move 3 from 6 to 3 +move 11 from 2 to 9 +move 5 from 3 to 4 +move 1 from 1 to 4 +move 7 from 9 to 4 +move 1 from 6 to 4 +move 5 from 5 to 4 +move 9 from 1 to 3 +move 4 from 6 to 3 +move 2 from 1 to 7 +move 3 from 9 to 8 +move 1 from 9 to 5 +move 5 from 3 to 4 +move 3 from 4 to 6 +move 3 from 7 to 5 +move 4 from 2 to 4 +move 10 from 3 to 1 +move 2 from 8 to 9 +move 1 from 8 to 4 +move 2 from 2 to 9 +move 5 from 5 to 8 +move 2 from 6 to 3 +move 4 from 9 to 4 +move 2 from 3 to 7 +move 2 from 6 to 3 +move 1 from 6 to 1 +move 1 from 8 to 5 +move 1 from 5 to 8 +move 1 from 4 to 8 +move 17 from 4 to 2 +move 11 from 4 to 2 +move 1 from 8 to 6 +move 28 from 2 to 3 +move 10 from 3 to 1 +move 3 from 8 to 1 +move 1 from 7 to 8 +move 1 from 7 to 1 +move 1 from 6 to 5 +move 10 from 1 to 5 +move 20 from 3 to 5 +move 3 from 1 to 6 +move 3 from 8 to 1 +move 18 from 5 to 1 +move 4 from 4 to 6 +move 4 from 5 to 1 +move 1 from 6 to 8 +move 7 from 5 to 8 +move 2 from 5 to 3 +move 34 from 1 to 8 +move 4 from 1 to 7 +move 36 from 8 to 6 +move 6 from 8 to 4 +move 3 from 6 to 4 +move 1 from 1 to 2 +move 1 from 3 to 2 +move 1 from 3 to 5 +move 1 from 1 to 8 +move 1 from 7 to 2 +move 3 from 2 to 8 +move 3 from 8 to 1 +move 2 from 7 to 5 +move 5 from 6 to 4 +move 31 from 6 to 4 +move 1 from 7 to 3 +move 13 from 4 to 7 +move 2 from 5 to 9 +move 1 from 1 to 9 +move 1 from 3 to 1 +move 11 from 4 to 9 +move 12 from 4 to 3 +move 4 from 9 to 1 +move 1 from 9 to 8 +move 1 from 5 to 9 +move 3 from 6 to 5 +move 3 from 5 to 1 +move 11 from 7 to 8 +move 6 from 4 to 8 +move 3 from 3 to 8 +move 5 from 1 to 6 +move 1 from 7 to 3 +move 5 from 8 to 3 +move 2 from 4 to 7 +move 8 from 8 to 4 +move 5 from 8 to 2 +move 2 from 2 to 1 +move 7 from 9 to 2 +move 5 from 6 to 7 +move 6 from 2 to 4 +move 3 from 9 to 1 +move 3 from 1 to 4 +move 2 from 2 to 1 +move 5 from 1 to 2 +move 6 from 2 to 9 +move 4 from 7 to 6 +move 2 from 9 to 6 +move 1 from 2 to 5 +move 1 from 6 to 5 +move 5 from 3 to 1 +move 1 from 5 to 3 +move 2 from 6 to 1 +move 1 from 9 to 7 +move 3 from 7 to 3 +move 4 from 8 to 4 +move 1 from 5 to 6 +move 9 from 1 to 4 +move 4 from 6 to 8 +move 2 from 7 to 4 +move 2 from 1 to 9 +move 10 from 3 to 1 +move 7 from 1 to 3 +move 1 from 1 to 2 +move 1 from 2 to 4 +move 2 from 3 to 8 +move 6 from 8 to 9 +move 2 from 1 to 2 +move 30 from 4 to 3 +move 29 from 3 to 7 +move 2 from 2 to 4 +move 7 from 9 to 5 +move 6 from 4 to 8 +move 5 from 8 to 9 +move 5 from 5 to 7 +move 1 from 5 to 4 +move 17 from 7 to 9 +move 6 from 3 to 9 +move 4 from 3 to 7 +move 1 from 8 to 6 +move 17 from 9 to 8 +move 8 from 9 to 3 +move 1 from 5 to 6 +move 9 from 8 to 7 +move 3 from 9 to 5 +move 1 from 4 to 5 +move 2 from 6 to 1 +move 3 from 3 to 8 +move 2 from 3 to 5 +move 1 from 3 to 8 +move 10 from 8 to 4 +move 2 from 1 to 9 +move 1 from 8 to 1 +move 1 from 1 to 5 +move 1 from 8 to 6 +move 4 from 4 to 5 +move 1 from 3 to 9 +move 3 from 9 to 6 +move 1 from 9 to 8 +move 2 from 9 to 1 +move 2 from 1 to 7 +move 1 from 9 to 1 +move 3 from 4 to 6 +move 2 from 4 to 9 +move 1 from 1 to 8 +move 2 from 8 to 1 +move 5 from 6 to 2 +move 2 from 1 to 4 +move 2 from 9 to 1 +move 2 from 6 to 3 +move 2 from 3 to 1 +move 2 from 4 to 7 +move 4 from 1 to 5 +move 15 from 5 to 4 +move 4 from 2 to 5 +move 7 from 4 to 2 +move 4 from 4 to 5 +move 1 from 3 to 9 +move 3 from 5 to 2 +move 9 from 2 to 1 +move 3 from 5 to 4 +move 1 from 5 to 3 +move 1 from 9 to 7 +move 1 from 5 to 8 +move 4 from 1 to 6 +move 1 from 3 to 2 +move 2 from 1 to 2 +move 3 from 2 to 8 +move 14 from 7 to 2 +move 2 from 6 to 4 +move 19 from 7 to 8 +move 1 from 7 to 1 +move 23 from 8 to 2 +move 33 from 2 to 1 +move 1 from 7 to 1 +move 7 from 4 to 3 +move 1 from 6 to 2 +move 15 from 1 to 7 +move 6 from 2 to 8 +move 1 from 8 to 2 +move 1 from 2 to 8 +move 2 from 3 to 8 +move 3 from 8 to 5 +move 1 from 6 to 1 +move 2 from 4 to 7 +move 1 from 5 to 9 +move 3 from 8 to 3 +move 1 from 2 to 6 +move 18 from 1 to 4 +move 1 from 6 to 3 +move 2 from 5 to 1 +move 2 from 8 to 2 +move 5 from 1 to 9 +move 15 from 4 to 9 +move 5 from 9 to 5 +move 1 from 1 to 5 +move 1 from 1 to 3 +move 1 from 1 to 2 +move 3 from 2 to 8 +move 9 from 9 to 8 +move 11 from 8 to 4 +move 1 from 8 to 3 +move 4 from 7 to 8 +move 3 from 3 to 1 +move 3 from 3 to 7 +move 3 from 5 to 8 +move 3 from 5 to 3 +move 5 from 9 to 7 +move 9 from 4 to 3 +move 1 from 8 to 9 +move 9 from 3 to 7 +move 2 from 3 to 2 +move 1 from 4 to 1 +move 1 from 8 to 6 +move 10 from 7 to 1 +move 2 from 2 to 6 +move 2 from 6 to 8 +move 2 from 9 to 4 +move 14 from 1 to 9 +move 3 from 4 to 7 +move 1 from 6 to 3 +move 2 from 8 to 4 +move 8 from 7 to 5 +move 6 from 7 to 5 +move 12 from 9 to 3 +move 3 from 9 to 8 +move 8 from 8 to 2 +move 7 from 2 to 1 +move 1 from 7 to 2 +move 6 from 7 to 2 +move 7 from 3 to 6 +move 1 from 6 to 3 +move 7 from 2 to 1 +move 5 from 4 to 8 +move 2 from 7 to 9 +move 1 from 2 to 7 +move 4 from 6 to 1 +move 2 from 8 to 1 +move 1 from 7 to 6 +move 2 from 6 to 1 +move 3 from 3 to 7 +move 1 from 4 to 6 +move 7 from 3 to 8 +move 6 from 8 to 1 +move 1 from 9 to 7 +move 22 from 1 to 9 +move 2 from 7 to 2 +move 3 from 3 to 2 +move 5 from 1 to 3 +move 2 from 2 to 7 +move 2 from 6 to 9 +move 3 from 9 to 4 +move 2 from 4 to 5 +move 1 from 4 to 7 +move 1 from 1 to 9 +move 13 from 9 to 7 +move 3 from 9 to 5 +move 14 from 5 to 3 +move 5 from 9 to 5 +move 2 from 9 to 7 +move 9 from 5 to 3 +move 15 from 3 to 2 +move 12 from 7 to 3 +move 3 from 2 to 7 +move 8 from 7 to 5 +move 4 from 8 to 9 +move 1 from 9 to 6 +move 1 from 7 to 5 +move 14 from 2 to 7 +move 2 from 9 to 4 +move 1 from 6 to 5 +move 18 from 3 to 2 +move 5 from 3 to 9 +move 2 from 3 to 6 +move 2 from 4 to 8 +move 15 from 7 to 6 +move 1 from 9 to 1 +move 2 from 8 to 3 +move 1 from 7 to 9 +move 6 from 9 to 6 +move 2 from 3 to 7 +move 3 from 5 to 8 +move 8 from 5 to 3 +move 2 from 7 to 9 +move 22 from 6 to 9 +move 12 from 2 to 3 +move 1 from 1 to 9 +move 1 from 2 to 6 +move 1 from 6 to 5 +move 6 from 2 to 6 +move 7 from 6 to 3 +move 20 from 9 to 4 +move 5 from 9 to 3 +move 7 from 3 to 5 +move 14 from 4 to 6 +move 2 from 4 to 1 +move 2 from 8 to 3 +move 2 from 1 to 5 +move 9 from 6 to 1 +move 20 from 3 to 4 +move 5 from 6 to 8 +move 1 from 5 to 9 +move 1 from 9 to 6 +move 9 from 5 to 7 +move 1 from 6 to 5 +move 2 from 3 to 4 +move 4 from 8 to 2 +move 2 from 8 to 4 +move 3 from 3 to 7 +move 5 from 1 to 7 +move 4 from 2 to 7 +move 1 from 1 to 3 +move 3 from 3 to 6 +move 4 from 7 to 3 +move 1 from 1 to 4 +move 3 from 3 to 5 +move 1 from 1 to 7 +move 28 from 4 to 3 +move 20 from 3 to 5 +move 16 from 5 to 6 +move 3 from 3 to 2 +move 2 from 3 to 6 +move 6 from 7 to 5 +move 1 from 3 to 6 +move 1 from 2 to 1 +move 10 from 6 to 8 +move 2 from 1 to 5 +move 1 from 4 to 8 +move 1 from 6 to 9 +move 2 from 2 to 5 +move 10 from 7 to 4 +move 2 from 3 to 4 +move 1 from 3 to 8 +move 1 from 9 to 4 +move 6 from 4 to 1 +move 10 from 8 to 6 +move 1 from 1 to 4 +move 8 from 4 to 9 +move 3 from 1 to 5 +move 14 from 5 to 8 +move 2 from 7 to 5 +move 3 from 9 to 7 +move 5 from 9 to 5 +move 2 from 7 to 3 +move 16 from 6 to 9 +move 3 from 6 to 3 +move 1 from 1 to 5 +move 1 from 1 to 4 +move 1 from 7 to 3 +move 2 from 6 to 1 +move 2 from 5 to 7 +move 2 from 7 to 1 +move 3 from 3 to 8 +move 12 from 5 to 4 +move 1 from 5 to 8 +move 1 from 1 to 4 +move 9 from 4 to 1 +move 11 from 1 to 7 +move 10 from 7 to 4 +move 3 from 3 to 7 +move 1 from 1 to 7 +move 5 from 4 to 5 +move 8 from 4 to 1 +move 1 from 4 to 1 +move 5 from 5 to 4 +move 2 from 7 to 5 +move 2 from 7 to 3 +move 9 from 1 to 7 +move 16 from 8 to 5 +move 3 from 8 to 7 +move 6 from 4 to 3 +move 17 from 5 to 1 +move 14 from 1 to 2 +move 7 from 2 to 4 +move 5 from 2 to 6 diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_6.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_6.tst.data new file mode 100644 index 0000000..0a60bba --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_6.tst.data @@ -0,0 +1 @@ +pnnfhnhshrhmhwwmwzmznmnwmwfmfhfjfcjjtgtbggpdgdjjbjrjsjpjrrmddmgmpmddrhddnfnfzfpfvpfpprhhlffmtffqhhdtdcdsswsdwswmmfvvpdprrnnhhhtffnfbbznbznnvdnnbffjrfrbfrbrgbrrntnggrqqwtqwwgjgsswgwqwtwwsvwvbwvwrwlrlppzfzwfzzpmzzhqqzqlzlglzzmrmwrmwwvmwvvnppjfjttlffhjjjsccbggnffqgfgjjnccmdmzmllvnlnznttlvlttvnvgnvvqvmvqqzrqqcgglzzwtztwwmjmzjjnddsffqrqlrrvsvdvldvvlgvlvccdzczcqcpphggtnthhhtbhtttcjtjcjgcjcbbrhbbfrffgjgdgzddcttczzsccbpcpddcpcggmjgjddtcccthccfrccmdmhmddnwddfldffntnptnpttcptcptpfphhmfmwfwmmlblgbgvbvlltqltldttfcfcclgcllmplmlbbjnjzjnzzttnvvgddshddsqddggsqgqddsggdhghjgjhhgchhdmdjmjddgdhghrrphrrpnnqhhjwwqrrcmmslmmszzpgzpzzrmzmznzllnjnnlnbbdvdsdffbpffcmmnznqqcbbzvvjnjvvwqwgqqpnnzwnzwnzwwwlpwpzzfqzfqqwnqnbnfnqnbqqbggqnqdndrrzzlffbbgqgfgrfrqqsddnqnqjjgssqwqwcqcpcrrqppwpjjfnfpffhphwwmcwwznwznnplptlplnlsnlsldslslsffwtwftwtbtdbbjsjcczwwfllwtlwtlwlvwlwrwppsggvcvrrqcrqqvmqvmmbrrsbsfspspjpnnmpmqmcczgzffqmfmtmpppwzppzrpzrzsrrpqrpqpmpvmpvpttbqtqmtmjttqdqgggcppclcjcpcsppctpplpdpcppcmmdzmzddvhvhnhrrldllcwwbnwnssshlhrhthggtmggbjbjwwbvbttjllvrrfggngvngnmmvzzrrmddmcddztztctfccqpcpcqqvqppqcqdcdhhvhssgfgzgwwzmmnssvwwbqbhbnhnphpqqjcqcddfwfttqjtqtlttglljgjbgjgnnsqqvrvffqvqfqbffljjpffssqdsqstqqqldqqmhmsmsqqwtqwqdqgdgjjfbjffgbbrhhqghgppqgpgmpmmfzfhhfrhffgmfggpzgpzzhtzhhlbhhqbbzvvnvqnntptmmbhbdhdwwmjjcnnmsscqcbbtjtvjvwjvvmsmjmtmpmgghttcztzggpddbfbfgbbdsdrsrrqfqjjqfjjhzhtzzmdzzcgzgdzzmvmmfmjmgjmggmppbdppmzpppvfppzhhfsfwfhhpjpmmrjjpssdccjpjpwjppvdpphcpcjcfjfwjfwfjwfjjqcqcwqqqsmmmbbgdgwwpcwwdfdlflrltlgtthfhfjhhlthtddlgdggsjsrrdpdcppgttphpgpwppmpzmmrjmmvjvgvgfglfgllbqlqhllszzlwwhzzdfdcdtctptwtztfzzmjzjtjtrjrcrnrjjmwmnnbddgvgtgsstjsszmpqdmzgqflrbrspjmtzjcrmlzltmhgblghnwqvwwqwzbpnfrpdpblpjgshfccfbjfsnwvvhnjftsdnsgtzzjtzpmtfdvzrhtqpblhwgmqtgpbfvbdmsnrrrvvbstpsznvbbwgjfqjrhdvwvgptpglpfddhddmtglmjlpwlvfpbtbmgbplbzrlpdlvqzcwhbscpszgfstjpfdvfpmljlngrbgrdnnblzqrfpzsdvblpwbtnhdjclldvwvbwcwzfzbdspgwpfqjfbdbrqcshtlvcrdstnzggbwqnzbrfzbpnrtmvpbvdhcvdsdshgtvhfgdzljflppqbwclnvbhbczvrscjhlbgbfvwdjhnjsgmvwhpfgwbbmnndpnglfrmtfdzvqgfjdqfhgrhvpbqndmqnqccgwswwdsqjnbjtjbjdbqgjnmfbdvlnfwbnrdqgvgzzhmmbbdzfdvvpwhpbwbnzdcdpchrwlhfsjnhhjggvplmqggwjdsvjtpnpnqgldjjdcscrdltssjdrpcrfbgbcjfplhzgwbprfcslhpcngtszrghmwhzdqscbfrhzdwcffzvmjrmcjcstfvhplvrsglgsjnjtrpddsdfqjsndjnfmvdhfgdbzzflqhsrrwmrnlpqzmcddqbqvvzgtlztpgjnddtcnbmqsjlhmcszrmcjvwzpptlfqsmpvgnzvrjdwzpdwqgbmdgdtvjlmfczthjbcgfhbqpnmlbmrwwhfptzlbmfdhssznjcvjbmnjtnvzjhzczlrrdnttmmcbnzhqpplzqwgttwrnwfvmnptgqlfrnzvqpjfgrzwmlcwvtptvcvrlsrdwdgqfvffspmdbnnrqjttpqvhvdpbcrvzptwnhhfsqzchmncvttcdgdnlppcfzpmjpvbvqhlvplwvrmmbbggbwttwmvsqjlllsftprsmtmnzjcqfzblrllzgshfljchrjwjlpvhpbrtrsschzltrblgjnbgdnmwdggjhqggntblnhsvfgsbcblhmctbqzqwmhqnjhpzjfqpjdgwpzhczcftfcpdhvzhzccmwmrfrbqshzmtpqgpbbvfqqbjbmvnlnlwjtzrpmhdlffccrqcfgsjfszbrzrfztntchtmgmbhjgmlsqzcbtqqjzzlghtzzqmlnnvsgsvbbjfgqsqbqmqrdzwpwdgbggpdvhvnlzshhntprjdwhnwfvdjzpqgflwrvwgtmfdmfdztcbtfnjdrvgdwwczdgphnvdgrbdchprqldfjrvcsflcmlcmzqvqgsgnzcgmrhccgcmptcdzhbcdgdtppwztfstzqqzqrdzlnzthggjmpcflmbcmdrrjnnpbpqfmjbzqbtsjjgdlmgncbmgspqqvbrvzrdjscpzjsdtcdvsdwqlmwrngttswnrsbqctvhgfnnwblpcqzdmzpfchplslspmghvgcqntmlrfhgpcbpspvfhnvqvglsqzsnsdzddqpbsjhlclslngbwvvgjhwfcncqsmqwbptzvpzlzslsjjjldjpwpfrdlfbjphqcjtsgqdsdfdjhqgdhcppndwmhmmldvvmblcqcqfqhltbcbvrnghjfmtgqwtwljtczvqlnmgscjhqdhnzwhzvzzqnlsrhqvljqpgpwghfqlhjjrrhvnmnnrbnlhdcjctwtlhmhhmhjvcgzdrzmdjrvqzgnsttjdwglgwlcmbcdnjprgfsbbdzzngbqdrvwwwhbtlnnmzqdjttsrrpvlfdqnfhhtdtvmpcjgdwtbnqmwmtszdqfmbhjsjpqqddzfggwjhbtlnqfgcwbjzdtcpcpzgnrmnvwlpgmwfjlpgppdfrfvvjwsfcdqdnpcpjbqsvhttssgptqjghctrbgntlfjzdrfjccsprsjlrrwrzsmnjsqslmpdtrvhlqbnmgpjthpqdqmnvrtzlhhzzfzbrcclpmpcszhbttgrtcpgcpjwpdbfpfvgspsgtvglwthqcmcvmrfmclwlvjlsptfgmtlrnsvjrnfwzhdcsmgztpzfcvzwdztpppvqpvqfpdrsfnlhrbqwrsqjtwjmhnpwmqmpdgdhbtbpfwnmswffdqffdggrdrpmngvpzplmmwlddnhcvjjzqqfsbbtfmzdwnpvbjrshmllczhgvwwcbcbtfrfnplqjwmjlvpwwgfrtffwddwppsgtnlmpvfnhfzcsgjbqbjmbvpnqppsrvwnlzvcmjqgtbzrdsnrgwbfmrvnflgccrssfvcwgllqqbbcthzmbtnsmbzbcczhtzcvmthttpltrtdmgspctvtpvqbhmnnpnjwmhpqclmjsdrbjwvjbtzcjlqbjsvbgdwqzflnwzcfjwtrhjgfshfmwbjfwpnhjsmtpgbpwlfjjnmdlrhchmnfmgmgcrftmwbzshdwbhndgwtjbrrvbwprqppfmgfmfllpcjgrwdmtzddthsjlgjljv diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_7.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_7.tst.data new file mode 100644 index 0000000..d083766 --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_7.tst.data @@ -0,0 +1,942 @@ +$ cd / +$ ls +dir gts +68377 jvdqjhr.jvp +dir lwhbw +228884 nqth.gcn +dir pcqjnl +94844 ppwv.zsh +97889 rqpw +dir sqhw +dir vllgn +dir wdtm +dir ztfdwp +$ cd gts +$ ls +846 grwwbrgz.wft +72000 mrnhn.psz +155241 qvnbd.dqs +6655 tndtmwfv +$ cd .. +$ cd lwhbw +$ ls +99946 lrrl.lth +$ cd .. +$ cd pcqjnl +$ ls +76420 gdg.lvr +dir gljcvm +161390 hlnrq.mjj +dir lqwntmdg +dir lrrl +dir qgpr +222006 tndtmwfv +$ cd gljcvm +$ ls +264381 tmwzlzn +$ cd .. +$ cd lqwntmdg +$ ls +dir jjfwr +dir rfqbmb +$ cd jjfwr +$ ls +dir cfhjvmh +$ cd cfhjvmh +$ ls +dir gzfgc +$ cd gzfgc +$ ls +134989 cfhjvmh.wwh +$ cd .. +$ cd .. +$ cd .. +$ cd rfqbmb +$ ls +dir cbrvhz +dir flcw +dir mnd +$ cd cbrvhz +$ ls +131072 wdtm.rjr +$ cd .. +$ cd flcw +$ ls +216675 wlfwpb.wpg +$ cd .. +$ cd mnd +$ ls +28976 hzzzzvmr.lsz +$ cd .. +$ cd .. +$ cd .. +$ cd lrrl +$ ls +dir cpmvnf +dir dcfmtw +dir ggnwqcj +7864 lgsc.smg +42042 mjfdjrgt +dir mrnhn +258288 nqth.gcn +dir nwjggvr +249578 qfnnncr.ftw +dir sqpgr +dir wgpqg +3196 wtpmdqhd.snd +$ cd cpmvnf +$ ls +dir srtqvcv +$ cd srtqvcv +$ ls +dir mrnhn +$ cd mrnhn +$ ls +dir fbrwd +$ cd fbrwd +$ ls +163166 nqth.gcn +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd dcfmtw +$ ls +31712 mrnhn.tgg +dir nzpdtfr +dir sntcbctt +dir vzhvjp +dir wdtm +$ cd nzpdtfr +$ ls +dir qwtwps +130527 rhhlfg.tcj +160893 rwbwp.rmr +dir vcthd +$ cd qwtwps +$ ls +dir cmf +$ cd cmf +$ ls +73595 wdsjg.thm +$ cd .. +$ cd .. +$ cd vcthd +$ ls +15016 cfhjvmh +$ cd .. +$ cd .. +$ cd sntcbctt +$ ls +dir lrrl +dir mjfdjrgt +dir npqj +$ cd lrrl +$ ls +258433 clgfwbb.htg +166151 fbt.cnp +$ cd .. +$ cd mjfdjrgt +$ ls +64472 csphnrqr +222554 fbt.cnp +30487 vqb.grr +$ cd .. +$ cd npqj +$ ls +154071 mtn.pjq +185929 nqth.gcn +$ cd .. +$ cd .. +$ cd vzhvjp +$ ls +161341 mrnhn.wvw +$ cd .. +$ cd wdtm +$ ls +224565 cdd +dir jrswcjq +dir smgbdw +$ cd jrswcjq +$ ls +173122 blm.znb +$ cd .. +$ cd smgbdw +$ ls +307533 cfhjvmh.ppp +$ cd .. +$ cd .. +$ cd .. +$ cd ggnwqcj +$ ls +dir bfjvt +146815 fbt.cnp +279655 nljrr +152735 qpv +$ cd bfjvt +$ ls +193338 qlfcz +238188 qnz.llm +$ cd .. +$ cd .. +$ cd mrnhn +$ ls +dir cfhjvmh +dir cjsrvg +32604 fbt.cnp +231569 fpjfth.mmc +dir hghjzpgc +270425 mjfdjrgt.fdt +273944 mjfdjrgt.twj +141791 ztswsbs.pjs +$ cd cfhjvmh +$ ls +306620 lrrl.mgd +$ cd .. +$ cd cjsrvg +$ ls +303619 dffrqscq.nct +16738 lrrl.rbb +63842 zbbwj +$ cd .. +$ cd hghjzpgc +$ ls +dir mgnq +273152 mnszcbnv.fzj +$ cd mgnq +$ ls +dir ttmctqlc +250332 wdsjg.thm +20054 zpzml +$ cd ttmctqlc +$ ls +9006 nqth.gcn +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd nwjggvr +$ ls +dir bwmglvmt +202937 lqqmqzl.vqj +dir lrrl +dir wmjp +dir zvlhngjm +$ cd bwmglvmt +$ ls +dir bszd +244726 dnwvnsn.npc +dir dqdrngf +226857 jvcn +dir lrrl +288079 mjfdjrgt.ttw +172669 vqr +dir wtqgd +$ cd bszd +$ ls +3937 csn.mft +198599 vpbccpm +$ cd .. +$ cd dqdrngf +$ ls +26680 lrrl.gch +150627 tndtmwfv +$ cd .. +$ cd lrrl +$ ls +dir bzrs +27874 grjbtv +$ cd bzrs +$ ls +71351 wlfwpb.wpg +$ cd .. +$ cd .. +$ cd wtqgd +$ ls +58033 lrrl.cgp +16732 vnznzhc.bzr +137407 wlfwpb.wpg +$ cd .. +$ cd .. +$ cd lrrl +$ ls +dir wrtp +$ cd wrtp +$ ls +267582 nwmj.rlb +$ cd .. +$ cd .. +$ cd wmjp +$ ls +155158 szhljp +dir tzqqmmp +163989 zwz.jvq +$ cd tzqqmmp +$ ls +140115 qgwcfnvr.fzt +$ cd .. +$ cd .. +$ cd zvlhngjm +$ ls +dir fjt +214803 mjfdjrgt.zrb +dir qsvwfb +187556 tcqgvqr.gmv +185730 tndtmwfv +301659 wlfwpb.wpg +$ cd fjt +$ ls +57947 mnchj +$ cd .. +$ cd qsvwfb +$ ls +23145 dzrgbhgf.dcm +$ cd .. +$ cd .. +$ cd .. +$ cd sqpgr +$ ls +dir bpnlrhsb +dir jvdh +dir zplwvj +$ cd bpnlrhsb +$ ls +22875 wdsjg.thm +$ cd .. +$ cd jvdh +$ ls +95461 ftmzfwt +$ cd .. +$ cd zplwvj +$ ls +dir gtd +$ cd gtd +$ ls +50675 lgjbhr.jmc +$ cd .. +$ cd .. +$ cd .. +$ cd wgpqg +$ ls +65679 wlfwpb.wpg +$ cd .. +$ cd .. +$ cd qgpr +$ ls +dir fhnnc +dir jzmpcc +dir lrrl +dir wdtm +$ cd fhnnc +$ ls +84726 tndtmwfv +$ cd .. +$ cd jzmpcc +$ ls +dir mjfdjrgt +dir mrnhn +dir wdtm +120156 whz.cts +134435 wlfwpb.wpg +$ cd mjfdjrgt +$ ls +234188 wdtm.bpt +$ cd .. +$ cd mrnhn +$ ls +dir gphqmvpn +dir gvtgqn +$ cd gphqmvpn +$ ls +23807 nzl.hzv +$ cd .. +$ cd gvtgqn +$ ls +225267 fbt.cnp +132455 mrnhn.vcn +$ cd .. +$ cd .. +$ cd wdtm +$ ls +dir cfhjvmh +dir mjfdjrgt +119601 mjfdjrgt.rhc +226225 wdsjg.thm +191042 wdtm +$ cd cfhjvmh +$ ls +130491 dgdcbwqp.czm +$ cd .. +$ cd mjfdjrgt +$ ls +87408 djd.ccj +152868 mjfdjrgt.zcn +22605 srdfwwtj.rcp +$ cd .. +$ cd .. +$ cd .. +$ cd lrrl +$ ls +26548 zwrctnn.lln +$ cd .. +$ cd wdtm +$ ls +dir jszntstc +$ cd jszntstc +$ ls +210953 gwgmnvsh.nhb +277302 msqjtrdm +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd sqhw +$ ls +dir djw +dir dqnhzbh +dir lwp +dir mjfdjrgt +211273 mjfdjrgt.hls +dir mrnhn +$ cd djw +$ ls +98290 cfhjvmh.jpr +$ cd .. +$ cd dqnhzbh +$ ls +43311 bdf.pzd +68801 cfwdq.rbz +dir cmfhw +dir cwtm +77978 nnzhntgh +138343 nqth.gcn +81692 tzhltsq +dir zwhs +$ cd cmfhw +$ ls +dir dsbjlmrf +215307 fbt.cnp +dir lch +217372 mjfdjrgt.dzq +228751 tndtmwfv +dir tpgszv +$ cd dsbjlmrf +$ ls +92510 pzq.hcl +$ cd .. +$ cd lch +$ ls +171339 czhsjn.ttq +$ cd .. +$ cd tpgszv +$ ls +215263 nvgcfqzb.gww +$ cd .. +$ cd .. +$ cd cwtm +$ ls +105200 twrb.ljq +$ cd .. +$ cd zwhs +$ ls +35576 gnt.zdh +68204 mfg +207974 njb.lzw +$ cd .. +$ cd .. +$ cd lwp +$ ls +65175 jcwncw.tms +208506 tndtmwfv +$ cd .. +$ cd mjfdjrgt +$ ls +dir hlgqdqb +153252 mjfdjrgt.njp +dir pdsdjdlz +144949 phsnm.bvl +287686 zlszpmlv.gsf +$ cd hlgqdqb +$ ls +128570 fdbls +dir lmhrtp +dir mjfdjrgt +184639 mjfdjrgt.lct +168706 mmlfd +159454 mrdljff +dir pzcnzs +dir rcmzfm +86088 tndtmwfv +$ cd lmhrtp +$ ls +251922 cfhjvmh.njw +$ cd .. +$ cd mjfdjrgt +$ ls +61866 nqtrmm.zts +24980 wlfwpb.wpg +$ cd .. +$ cd pzcnzs +$ ls +123265 fbt.cnp +$ cd .. +$ cd rcmzfm +$ ls +dir gjls +$ cd gjls +$ ls +109021 cnzz +$ cd .. +$ cd .. +$ cd .. +$ cd pdsdjdlz +$ ls +103346 zhfhrzmr.qqm +$ cd .. +$ cd .. +$ cd mrnhn +$ ls +dir tmldr +140361 tndtmwfv +$ cd tmldr +$ ls +169607 dvchnsqr.ltc +$ cd .. +$ cd .. +$ cd .. +$ cd vllgn +$ ls +58389 tndtmwfv +$ cd .. +$ cd wdtm +$ ls +dir cfhjvmh +dir cpcqz +dir gmrgsmpp +290978 jbfn +179525 mjfdjrgt +dir mrnhn +dir nvgmrpdf +dir vpm +67780 wlfwpb.wpg +dir ztp +$ cd cfhjvmh +$ ls +dir hqf +218467 lfl.vpp +dir rgq +147778 rhntpj +dir tgmw +$ cd hqf +$ ls +207656 blvtl.zhg +$ cd .. +$ cd rgq +$ ls +54691 cfhjvmh.mhw +201230 jjhr.lml +22759 mgqdg.qsj +$ cd .. +$ cd tgmw +$ ls +153570 nqth.gcn +$ cd .. +$ cd .. +$ cd cpcqz +$ ls +dir cfhjvmh +17143 fbt.cnp +dir ftpm +dir lrrl +92760 lwdzptgw.gfv +dir mrnhn +151636 tndtmwfv +dir vqt +$ cd cfhjvmh +$ ls +17554 wlfwpb.wpg +$ cd .. +$ cd ftpm +$ ls +244476 crpfc.bwn +290894 dhdnh +210196 lhf +58166 nqth.gcn +$ cd .. +$ cd lrrl +$ ls +229894 btrbfh.twr +269093 cfhjvmh.pbb +277722 fvhtjpg.pvb +236232 gztc.lbh +dir mjfdjrgt +230753 qgjrh.zsf +dir sdvhlnz +$ cd mjfdjrgt +$ ls +186105 lrrl.zng +226081 lsdzz.gsj +33416 nqth.gcn +109966 wgtclbvt.nct +160015 wlfwpb.wpg +$ cd .. +$ cd sdvhlnz +$ ls +219905 cngbvwz.zsm +284092 dgjz +dir lcmlmr +22135 lrrl +dir vdcbcvzv +dir wdwgp +dir zllqgnhj +$ cd lcmlmr +$ ls +dir lrrl +$ cd lrrl +$ ls +104034 cpv +$ cd .. +$ cd .. +$ cd vdcbcvzv +$ ls +263858 qwsmpvdv.lfr +dir sldsnqld +$ cd sldsnqld +$ ls +3116 hvsb.vrj +166766 wqfg.ztg +$ cd .. +$ cd .. +$ cd wdwgp +$ ls +11714 wdsjg.thm +$ cd .. +$ cd zllqgnhj +$ ls +113285 hrjtqzvf +$ cd .. +$ cd .. +$ cd .. +$ cd mrnhn +$ ls +212363 bhldtsnn.jbp +194936 wdsjg.thm +$ cd .. +$ cd vqt +$ ls +46371 lrrl.ztz +215875 rnggjsg.hsw +255959 vnjhm.frz +277765 vwvjnrjp.mwq +$ cd .. +$ cd .. +$ cd gmrgsmpp +$ ls +dir fbcv +275639 fbt.cnp +dir tnrmj +65119 vtfjqtw.tqg +117334 zsg.grj +$ cd fbcv +$ ls +dir htmwl +292840 wwwspsb.hrb +$ cd htmwl +$ ls +34803 dshcw +10573 dwtd +$ cd .. +$ cd .. +$ cd tnrmj +$ ls +dir cfhjvmh +dir wqtnrwg +$ cd cfhjvmh +$ ls +110464 wlfwpb.wpg +$ cd .. +$ cd wqtnrwg +$ ls +283055 mfgllgv +$ cd .. +$ cd .. +$ cd .. +$ cd mrnhn +$ ls +2633 tndtmwfv +$ cd .. +$ cd nvgmrpdf +$ ls +32919 pnc +$ cd .. +$ cd vpm +$ ls +dir ddz +dir dhmphrn +dir grr +132419 mgfdgw.vlt +dir nbccdd +dir plw +183717 pvgbbjgt.wbt +dir qsmg +120729 stbh.rvz +101652 ttqc +$ cd ddz +$ ls +4672 hrnnrzd +217020 wdtm +$ cd .. +$ cd dhmphrn +$ ls +dir fwbmb +dir gdq +dir lrrl +dir mrcnm +dir mrmmr +161427 rllvrpzl.vcg +$ cd fwbmb +$ ls +258937 dfd.wrl +103543 gtfgscfg.jjc +$ cd .. +$ cd gdq +$ ls +133691 bzgt.llh +278010 cfhjvmh.nhj +191344 cjbcnfz.rjb +269115 fbt.cnp +$ cd .. +$ cd lrrl +$ ls +dir gqqsg +dir gwbtt +dir mrnhn +140500 nqth.gcn +dir pdtm +220764 tndtmwfv +dir vvsvfchb +$ cd gqqsg +$ ls +dir gvn +dir hzfmdhw +34666 vfzbvl +dir wdtm +$ cd gvn +$ ls +206457 cfhjvmh.thh +133435 hsdsstt +dir lrrl +dir rwvbmlq +127003 sjqvt.lzl +136402 wlfwpb.wpg +60537 zwjfrqf.nvl +$ cd lrrl +$ ls +15291 mrnhn.ltr +190429 wlfwpb.wpg +119328 wln.msz +86384 zbhzvrc.gbj +$ cd .. +$ cd rwvbmlq +$ ls +186907 nqth.gcn +$ cd .. +$ cd .. +$ cd hzfmdhw +$ ls +9653 fbt.cnp +dir lvdhtg +301280 nqth.gcn +dir nwnp +241354 vzrbbj.bfb +$ cd lvdhtg +$ ls +dir cfhjvmh +dir hzpzz +296694 mjfdjrgt.mpj +65800 nqth.gcn +dir pbfhn +dir wljjgs +$ cd cfhjvmh +$ ls +87654 htlq +203005 vhmthzjb +$ cd .. +$ cd hzpzz +$ ls +153446 brfstm.nwc +47585 cfhjvmh +258754 wdtm.gpt +150809 zlwq.hgr +$ cd .. +$ cd pbfhn +$ ls +dir mjfdjrgt +$ cd mjfdjrgt +$ ls +16108 rmfwpm.fnt +$ cd .. +$ cd .. +$ cd wljjgs +$ ls +228757 bqf.jll +$ cd .. +$ cd .. +$ cd nwnp +$ ls +124842 lrrl +$ cd .. +$ cd .. +$ cd wdtm +$ ls +122771 fbt.cnp +252697 lpqf.bvg +264813 mrnhn +165228 pgn.wnw +dir vsls +292567 wlfwpb.wpg +$ cd vsls +$ ls +250070 dvbv +$ cd .. +$ cd .. +$ cd .. +$ cd gwbtt +$ ls +dir mjfdjrgt +2327 nqth.gcn +20064 sdjvgv.sfr +$ cd mjfdjrgt +$ ls +96726 fbt.cnp +4801 lrrl.fgv +180291 wspcp.brw +$ cd .. +$ cd .. +$ cd mrnhn +$ ls +dir lrrl +dir mqcstf +271459 nqth.gcn +190006 zdln +$ cd lrrl +$ ls +160260 fbt.cnp +281732 tfpprjj +$ cd .. +$ cd mqcstf +$ ls +222125 gntrdss.zcw +dir pdbbbmn +58613 stwlp.wpl +$ cd pdbbbmn +$ ls +250947 mjfdjrgt +$ cd .. +$ cd .. +$ cd .. +$ cd pdtm +$ ls +55975 wdhn +$ cd .. +$ cd vvsvfchb +$ ls +10547 hpwmnjgc +157960 tcc +$ cd .. +$ cd .. +$ cd mrcnm +$ ls +106708 cfhjvmh +264809 ffqfm.slz +dir lrrl +dir mjfdjrgt +174610 wlfwpb.wpg +90207 wwhwvdc.zvc +$ cd lrrl +$ ls +305034 fbt.cnp +240756 jmfwlmzv.gjc +77875 wgfpcscz.mdn +$ cd .. +$ cd mjfdjrgt +$ ls +26073 mrnhn +$ cd .. +$ cd .. +$ cd mrmmr +$ ls +287663 qlc +$ cd .. +$ cd .. +$ cd grr +$ ls +dir tgb +$ cd tgb +$ ls +203808 psssw.nzs +$ cd .. +$ cd .. +$ cd nbccdd +$ ls +62162 wfmhzh +$ cd .. +$ cd plw +$ ls +185632 ljwvnppm.bcc +$ cd .. +$ cd qsmg +$ ls +164538 lrrl.flr +dir vbvtzmsg +dir wrrtctvd +$ cd vbvtzmsg +$ ls +15318 mrnhn.qlh +$ cd .. +$ cd wrrtctvd +$ ls +249219 lggjwn.mfj +$ cd .. +$ cd .. +$ cd .. +$ cd ztp +$ ls +241178 fzc.swf +dir hns +223340 lbmzvf +dir wdtm +195144 wlfwpb.wpg +$ cd hns +$ ls +dir fshzss +77792 mjfdjrgt.qcm +85013 nlpsw +274710 pmclgp.lvz +dir spdzjs +$ cd fshzss +$ ls +297058 fbj.qjm +131320 wjbhllz.mnf +$ cd .. +$ cd spdzjs +$ ls +165766 nrzthq.rvj +10584 zfhqhm.njj +$ cd .. +$ cd .. +$ cd wdtm +$ ls +dir vnmg +$ cd vnmg +$ ls +83938 mrnhn.wwd +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd ztfdwp +$ ls +152895 swjdzqdh.ngv +215804 tndtmwfv +68954 wdsjg.thm diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_8.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_8.tst.data new file mode 100644 index 0000000..c400166 --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_8.tst.data @@ -0,0 +1,99 @@ +020110220332333020110144320304042020444223003535441353331002333431100300241023221210123003331021020 +002120010112022233203323334422340102033151553341235324543343233301202102130210343113312320222102020 +000000000301021002423224442341031145215244543444223314545524515335404222310244314423023331200102012 +011200302010212334422213334343335452314532352111122533515334412241512412033340322004232020212310011 +110111200102310120411101020333232255345143342245212323552344535253214434143032323213200301101020121 +122001020113011314043121413025543341512335111452355331355351515421515411500421204113413212021112302 +011210211003201420103123304513544114145311452334355144111521441452154223512022101102111221311323311 +011030200312240341224434214241313322323544154242345656634321531531424124544551344224331443202111303 +031023120224010220144244342511241334331166432443322363352643453525244443222142533014331212133113031 +331033331100013013431114214253543323143222523423236646456363626622312534521454454123324132323233200 +313320023430241044213221132131122135436564345625426422255326234363243521151144414344130023210131130 +002203011410101343345413454143416333665335233566235623536644652644522345535525153521230411343303211 +022030323311323124542521154345356626352343324652424464566645425223224521453553252234321033403323130 +331222243010032043452454232565665256426536435254566436633323343652534544214412242551144312310221231 +231133233004211422411531255443363333555345434532475762623642433466363266634413551244254134333243030 +020231113200002214145443133533534653326664654474363645366343345466265644554325342415122332200024311 +311032340032414323451542554464466352256347635357637447736577667463426532442564245132242343241314212 +210342413212232542421452232234546643373633347344743377376553465333423522425436534352355150302110320 +012302042023135125251364365232626547463576733637455663764376436734352545425434331543241124042312202 +304042410233125532432523224245663443763753734647533535565636563665334542556665554245524241400402122 +100324144335411111343624365526556753335435457754653754663647544353454443256623466532421524442220212 +004310002315421423634565264237567445665436743333467647547754434765353667542365233361541321530411122 +340100133133254351662534562377644656735477678648447854646765556636735646456562322345353223545130204 +223422234555541234336653556365464346366386775667444744567758637737757667635354324626442355153142402 +301202352352311332364654446567354376644665887886878854847858588356564773766244445222614543212440041 +121010254322255546522625235356663453785775455846758588786788567566653645763532436352663334521520342 +223123122512444365553626454767563488464886467858877655766685458675437556363673526236645213411512224 +003314511142456453664565476333555654845565878476575468776548666885476777366354622652365442341232330 +100434351354142623236353735657745766665557455465675844665578767675874476556574642555262344222545124 +310035122251134332246455666547787878577677667587668567788744875844888844364453536232254344234442004 +332355524421462334544344655646458867688886798865795569865997666688465755335745555656646243433122421 +212252432545222565265377376368574784887787696558698987968675547855656555445333366624445325141553342 +113535121253534442546646364347455675758878676575695576785998796454646647555637657565266546254424513 +023531155256556443573534665476784478579889966685965558767695667786588646763565366352565623135242132 +332235311465633455637577656876574774599858977857599877979855878694546488485435736564352255345534352 +423312331346353345545646578646466549968669789766955768696578957665488458568376747735452426221223133 +042131555255526335474354376567744577697576655686887997959968659596857774864465577464334245541411144 +314335533542324633457667677854784879668896688676989899996875778858675674784535777333543532331142411 +342431321343652634443346854886679789759856968779866777899677797959996774647753365556465426225312415 +443122331352464374355445874586585857875568898788666678776787986756859447544446666763365552244452322 +434332122456323647344556476668759666569568769987679766689798887678765548587477474536465533643451422 +012515214225433447464677777487776597697976998888987789798887796967785955887765466437333665342324523 +151212435544622335634548655777875966867886867777679699887698988956977857868655457465635544364542154 +425332155643342656676678888575989888788767888899689899798688796666757955465858667777362363434424542 +531532414223243445466348848575895777968779899997887798776667989655588765447757447347342252524115215 +155245334655555376575664568856876978978787888977789987998877778796686666588544843473375333466131323 +442223263655353573545578848875879796997899897789887987979686977788898887848487563664644353624212355 +532342436423523433743374566649565796978689677778887988977986779775985585775684847364464225436344143 +144131162643455446377457566657777998676869667898877798979888978868889578745676553337663625625354412 +212531125562654464546354657756555595879978788779777999979988869895856856488587466676673534564554215 +515521136425625643733788668547967896969879989899779977888986996776697776777887634766746536654352314 +533115456346557773554457648785576555967877979777897997977979879979889786544548474557775226255314122 +432554142445363766476368787846679896977899887779797978979969889696765986666844737665565256236231155 +125253442625345476646468778468579567787976888987879797899978977695756855477657433457362446432521533 +451335344244435635354545558745856999567779868887799878899867977959975677866558447464563253543641554 +412221312464362643575387865576575778679997969899879799897898997777656968646646747476434353234412443 +132123436534443354553586484485777568678779897878779989966877968659558598445764456573762542646254544 +024143156436353736354736885476858987768978898698789976987668878886568974574565737457544455543452243 +413135313643263775675578866878568599957868689889887898688888897699957964455656556464353643525222353 +151155234625524455454576866886566769799886776697778986968676996687578554546778475347663665445441542 +225335432336665664467554464786765996688599897886876679899878795577796866847588643664352344525425543 +231314414363454365656445447648785668665699968677877867679686575989979554888874435546345632362455211 +215225154624264466667536475884866766856799777898688869799678789658958655666655664763723652345235254 +035354151466424636347656474544888889966575676978876877797665689589954588444647355553546242434541533 +001253252266442433343367457848868577696576876956987767987878766766685545864636355333223636351531525 +432114153244234344474473336455665467595685659677769775776598955788485844764764774633253355345153344 +440231335123622442356777766866685464699576999777998779679677676798556674878735743562224245652132511 +321533313113424533355576556587855784598797699998756887876998858868457756543476743664332364153212141 +003415211213442534357575744467674686668987887956977567898997789587764784753377657636326255155213240 +224445525333436434526743474634674544887785577959758998579798555487687877644644777665225554533252422 +114025431113445462556535777346657775747764689775588768859877487468477864653336547436625221413353402 +444431445545324552322733365535555774656466544687955795855665775645668663457547655566226341423452434 +410445115125126462226236353755455888548674587788447578688475766447586446763443644432535242233435244 +124340412535436432636663557555763744747854587474866557668648548584743443577534342355356535325312231 +200313132541126432532542747437536486654767558545587875558487658465577773437664544545354413212211212 +101333454545223643623655465756576356785656755457885765456674785763465474656725224222541315314114031 +131233142323341366245232435554365765545574774767785475776848668453355554474332533326544433554514201 +321411402434455156645353526473756763444567846554465464446465455445745336435566265254512531525210112 +030131034355454454644464565464475577344753366858566476585577545346763733342656446563454444451042420 +123233024345514531322525463344645673755773347575544437475656346736346777342352464432215452454013411 +014322323421235432556233655455544546633674634474456664346664375533773475562242423541545331424443423 +103044012005453352356343445634325645434337637364655565435774676736733553262634342435541343244030000 +320224321434222311444445623462256346445463567453434633465443337646352226626622452524224345304403330 +212420324020443535541356556336654222753455556557453353546474577342535554563532343321131244211234443 +122201202000423112251512562424625443344753367744337643545467743645523543344535431154212330403302410 +302200224224202341324112146243633653523426575646533673677763345633345645554351214352331400423031333 +123001320330302415435532414224224226352235334353577574436324344226425624263133551342153034141032032 +213131040401103044255424155325562642646633364323565455323646566426224245451451423431324433130343033 +231211142003310021532152553311226325626362465244625533422332633634454451545253314415220400420413203 +312320130422410131322514243524545532465435666446335525623552365342455442353243151122403024303312021 +133332233112042420435241253424143243654366264342464546256332442465235435334432132240241304411322221 +333302213333240222002452421142454145262355663455246362444253326353144344554554324413300122011222021 +202310030210410440001115535553444131333333663342464256255352255253344353414423520402213424030101331 +020120023231001430421410113431542415212332151336254445313532121145524443121220343020012020230032230 +210023323121322121303302233233245321224455333332343322323215223451525532222223304043001030230132022 +002222021003231011234340303045243412535411232132142332533521354111141433134004443142111110122121100 +022122131333022231003311233440122445251415343142141523345254553214425533033042143220401300010213100 +122110132221332212341431023220242412121544355542132225542445544553234342030402442141111321103231211 +122021200131211021314010312001241211235253115315252213451111223452204220130001212341202130012001221 diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_9.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_9.tst.data new file mode 100644 index 0000000..63f30fc --- /dev/null +++ b/AdventOfCode.Tests/Data/2022_Input_Day_9.tst.data @@ -0,0 +1,2000 @@ +U 1 +R 2 +D 2 +U 2 +L 1 +U 1 +R 1 +U 2 +R 1 +D 1 +U 2 +L 1 +R 1 +U 1 +L 1 +D 1 +L 1 +D 1 +U 2 +R 2 +U 1 +L 1 +R 2 +U 2 +L 2 +U 2 +R 2 +D 2 +R 1 +U 2 +L 2 +U 1 +R 1 +L 2 +U 2 +R 2 +L 1 +R 2 +L 1 +D 1 +R 2 +L 2 +D 2 +L 1 +D 1 +L 2 +U 1 +R 2 +L 2 +U 2 +D 2 +R 2 +D 2 +L 2 +D 2 +L 1 +D 2 +L 1 +R 2 +L 2 +R 1 +D 2 +U 1 +R 2 +L 1 +R 2 +D 1 +U 1 +R 1 +U 2 +D 2 +R 1 +D 1 +U 1 +L 2 +D 2 +U 1 +R 2 +L 2 +R 1 +D 2 +L 1 +U 1 +D 1 +U 2 +D 1 +U 1 +D 2 +R 2 +L 1 +D 1 +U 1 +R 1 +L 2 +D 1 +L 2 +R 1 +L 2 +U 2 +R 1 +L 2 +D 2 +L 2 +U 2 +L 1 +U 2 +R 2 +L 2 +R 2 +L 2 +U 1 +L 1 +U 1 +D 1 +U 3 +R 2 +L 3 +R 2 +D 2 +U 3 +R 1 +L 3 +D 1 +U 3 +R 2 +D 1 +U 3 +R 2 +L 3 +R 3 +L 2 +R 1 +U 2 +R 2 +U 3 +D 1 +U 3 +L 2 +D 1 +R 2 +U 3 +R 3 +L 3 +D 3 +R 3 +U 3 +L 3 +U 1 +L 2 +U 3 +L 1 +U 1 +D 3 +R 3 +U 1 +R 1 +U 1 +L 3 +R 2 +U 2 +L 3 +D 1 +L 2 +D 2 +L 2 +R 2 +U 3 +D 3 +R 2 +U 3 +L 2 +U 1 +D 2 +R 3 +L 1 +U 1 +R 2 +D 3 +L 1 +R 1 +U 1 +D 3 +R 2 +D 3 +R 2 +U 1 +L 2 +U 1 +R 2 +U 1 +R 2 +L 2 +U 2 +R 3 +L 3 +D 2 +L 1 +R 3 +D 1 +U 1 +L 2 +R 1 +D 3 +U 3 +D 3 +U 1 +R 2 +L 3 +R 1 +L 3 +R 2 +D 2 +U 1 +D 1 +L 3 +R 1 +L 3 +R 3 +L 1 +D 2 +L 3 +U 2 +D 1 +L 1 +U 2 +R 3 +L 2 +R 3 +U 3 +L 2 +D 4 +U 4 +R 3 +U 2 +L 1 +U 3 +D 4 +L 2 +U 3 +L 4 +D 4 +R 3 +D 3 +R 1 +D 2 +L 1 +R 2 +D 3 +L 1 +R 2 +U 3 +D 4 +R 4 +L 2 +R 4 +U 3 +R 4 +U 4 +L 4 +D 3 +R 4 +D 1 +U 3 +L 3 +R 1 +U 2 +R 3 +U 4 +D 2 +U 3 +D 2 +L 2 +D 3 +L 4 +R 2 +U 2 +L 2 +U 4 +D 2 +U 4 +L 4 +U 2 +R 3 +D 4 +U 4 +L 3 +D 3 +R 4 +L 3 +R 2 +L 4 +U 3 +D 2 +L 4 +R 1 +U 2 +L 3 +D 1 +R 2 +U 2 +D 4 +R 1 +U 1 +R 2 +D 2 +L 3 +R 1 +U 2 +R 1 +D 4 +U 1 +R 1 +U 3 +D 1 +U 2 +D 3 +U 3 +L 2 +U 4 +R 1 +L 2 +D 2 +L 2 +D 3 +U 3 +L 3 +U 1 +D 1 +R 1 +D 2 +L 2 +U 2 +D 3 +R 1 +L 4 +U 3 +L 5 +R 5 +L 4 +D 4 +R 4 +L 4 +R 4 +L 2 +R 3 +D 3 +R 2 +L 4 +R 2 +U 5 +D 5 +U 1 +R 4 +U 2 +R 3 +L 4 +D 2 +U 3 +D 4 +U 2 +D 5 +L 5 +R 2 +U 3 +R 1 +D 1 +R 4 +U 5 +R 3 +L 3 +U 3 +L 1 +U 5 +D 2 +U 3 +R 1 +D 5 +L 4 +U 3 +D 1 +L 3 +R 2 +U 1 +L 2 +R 2 +D 4 +R 2 +L 3 +U 2 +D 1 +L 1 +R 4 +L 1 +D 2 +R 1 +L 5 +R 4 +U 2 +R 2 +U 1 +D 3 +R 3 +L 1 +U 5 +R 2 +D 3 +U 3 +R 1 +U 4 +R 1 +D 2 +L 1 +D 4 +L 1 +R 5 +L 5 +R 5 +L 1 +U 5 +R 2 +U 5 +L 2 +D 3 +U 5 +L 4 +D 5 +U 2 +R 2 +D 2 +R 4 +L 4 +D 5 +R 2 +L 2 +R 5 +U 2 +L 1 +U 2 +D 2 +R 5 +U 1 +L 5 +R 1 +L 4 +D 4 +L 3 +D 4 +U 2 +L 2 +D 5 +U 4 +R 3 +L 6 +D 3 +R 2 +U 2 +L 2 +U 1 +R 6 +U 5 +R 2 +U 2 +R 1 +U 5 +L 3 +U 2 +R 5 +L 3 +U 3 +D 2 +U 5 +L 5 +U 4 +R 6 +D 2 +L 6 +U 1 +L 5 +D 4 +U 3 +D 3 +U 5 +L 6 +U 4 +D 3 +U 4 +D 6 +R 1 +U 4 +L 1 +D 4 +U 5 +R 2 +L 3 +R 2 +U 2 +D 1 +L 3 +R 6 +L 2 +U 5 +L 3 +D 1 +L 2 +D 4 +U 4 +L 4 +D 1 +L 2 +D 2 +R 5 +L 2 +R 2 +L 3 +R 2 +U 2 +L 1 +U 4 +D 4 +R 5 +L 3 +U 2 +D 3 +R 6 +D 3 +R 3 +L 4 +U 5 +D 3 +R 5 +U 4 +R 2 +U 4 +L 1 +U 6 +D 6 +L 1 +R 2 +U 6 +D 5 +L 1 +U 3 +L 1 +D 6 +L 3 +U 4 +D 6 +U 4 +D 3 +L 3 +U 5 +R 2 +L 5 +D 3 +R 2 +D 2 +U 1 +D 2 +R 2 +U 5 +R 4 +U 1 +R 5 +D 2 +R 2 +U 5 +L 6 +U 3 +L 7 +D 1 +R 4 +D 4 +R 7 +L 7 +U 7 +D 4 +L 4 +R 6 +U 6 +L 7 +R 3 +L 6 +U 6 +R 5 +D 4 +L 6 +U 1 +R 6 +D 3 +U 5 +D 3 +U 2 +R 7 +U 5 +D 5 +L 2 +D 2 +U 4 +L 3 +D 1 +L 1 +R 2 +L 2 +R 6 +D 4 +L 7 +D 7 +R 4 +L 6 +R 3 +L 3 +U 7 +R 3 +L 5 +D 6 +R 3 +U 5 +D 3 +L 4 +U 7 +R 6 +D 6 +U 5 +R 3 +L 3 +R 6 +L 3 +D 1 +L 3 +U 5 +D 2 +L 3 +R 4 +L 7 +R 5 +U 3 +L 7 +D 5 +U 6 +D 5 +L 6 +R 6 +L 1 +R 3 +D 4 +L 5 +R 2 +U 4 +R 2 +D 4 +R 3 +D 2 +L 3 +R 2 +L 4 +R 5 +U 7 +L 7 +D 3 +R 5 +L 1 +U 4 +R 5 +U 4 +R 6 +L 1 +R 4 +D 8 +L 2 +U 7 +L 3 +R 3 +U 1 +D 8 +U 5 +D 3 +R 3 +L 2 +U 2 +D 8 +R 3 +U 4 +L 6 +D 7 +R 7 +U 6 +L 7 +U 5 +R 1 +L 2 +U 4 +D 1 +L 6 +D 5 +R 7 +U 7 +R 8 +L 7 +U 7 +D 3 +L 3 +D 4 +L 1 +R 6 +D 5 +U 1 +D 8 +R 1 +L 2 +U 1 +D 2 +L 3 +R 7 +L 2 +D 8 +R 5 +U 6 +D 4 +L 1 +U 6 +R 1 +D 4 +R 4 +L 2 +D 4 +R 1 +U 2 +R 8 +L 6 +R 8 +U 8 +L 3 +R 6 +D 3 +R 2 +L 3 +U 6 +D 6 +U 4 +R 7 +L 3 +R 2 +L 4 +U 3 +R 7 +D 8 +R 1 +D 6 +U 7 +R 2 +U 2 +L 6 +U 5 +R 1 +D 1 +R 6 +L 2 +U 3 +D 2 +L 2 +D 5 +R 4 +L 1 +D 7 +R 6 +D 4 +U 2 +D 5 +U 3 +D 8 +U 6 +R 5 +L 6 +U 7 +L 3 +R 8 +U 3 +L 2 +R 3 +L 5 +R 3 +L 2 +U 9 +D 2 +U 5 +R 7 +U 9 +L 9 +R 6 +L 7 +D 1 +L 4 +D 3 +R 7 +L 6 +R 9 +D 6 +R 4 +D 8 +L 1 +U 5 +R 9 +D 9 +U 6 +L 5 +R 4 +D 2 +R 5 +D 1 +R 6 +D 3 +R 8 +L 1 +U 2 +R 5 +U 3 +L 1 +R 8 +D 6 +L 5 +D 7 +R 3 +U 2 +L 7 +U 3 +D 4 +L 2 +R 8 +D 6 +L 3 +U 5 +L 1 +U 5 +L 4 +R 7 +U 6 +R 1 +D 3 +U 3 +D 2 +R 4 +L 5 +U 2 +R 6 +L 8 +U 6 +L 9 +D 3 +R 3 +U 9 +D 8 +L 2 +R 7 +D 6 +R 1 +D 8 +U 8 +D 2 +U 4 +D 8 +L 9 +R 8 +D 8 +R 7 +U 8 +L 8 +U 8 +R 7 +L 8 +U 3 +D 6 +R 7 +D 2 +L 5 +U 8 +D 7 +U 6 +R 3 +D 7 +U 9 +L 7 +R 3 +L 1 +U 9 +L 7 +U 2 +D 7 +L 5 +R 9 +D 2 +R 7 +U 6 +D 7 +U 3 +R 8 +U 9 +L 8 +R 8 +D 10 +L 7 +R 3 +U 5 +R 5 +D 9 +U 10 +L 2 +D 4 +L 2 +U 1 +D 3 +L 3 +U 7 +D 6 +L 6 +D 7 +L 8 +U 1 +D 9 +L 7 +U 4 +L 3 +U 6 +D 2 +L 5 +U 10 +D 9 +U 8 +D 1 +R 10 +U 4 +L 1 +R 7 +U 2 +L 5 +D 5 +R 7 +D 1 +R 4 +U 2 +D 6 +L 7 +U 10 +R 3 +L 9 +D 7 +L 2 +R 5 +U 10 +D 10 +R 9 +D 5 +U 3 +L 7 +D 5 +U 6 +D 7 +L 6 +D 10 +R 7 +U 8 +L 4 +D 9 +L 4 +U 5 +R 9 +U 9 +R 3 +U 2 +R 2 +D 1 +R 1 +U 6 +R 8 +D 10 +U 2 +D 9 +L 8 +R 1 +D 1 +L 9 +R 8 +D 9 +R 5 +L 9 +U 10 +D 4 +R 7 +U 4 +L 3 +U 8 +L 2 +U 9 +D 9 +L 1 +R 4 +U 2 +L 4 +U 3 +D 7 +U 11 +R 6 +U 9 +D 6 +R 7 +L 1 +D 7 +R 2 +D 6 +U 2 +L 2 +U 4 +R 6 +U 6 +L 11 +D 7 +R 9 +L 2 +D 10 +L 10 +U 4 +L 6 +D 11 +U 9 +L 1 +R 10 +L 7 +R 4 +D 5 +L 3 +U 2 +R 9 +L 9 +D 1 +L 11 +D 5 +U 6 +D 5 +U 9 +R 1 +L 7 +U 3 +R 7 +L 2 +D 6 +R 3 +U 2 +D 5 +R 9 +L 3 +D 11 +U 9 +D 11 +R 2 +D 7 +R 9 +U 4 +D 6 +U 7 +R 10 +D 3 +L 4 +R 9 +D 3 +L 7 +R 7 +L 11 +D 6 +R 9 +D 9 +R 3 +U 3 +R 3 +L 6 +D 11 +R 2 +L 10 +U 2 +R 2 +D 11 +R 7 +D 8 +R 2 +D 10 +U 5 +D 3 +L 10 +R 1 +D 5 +R 4 +L 10 +U 5 +D 9 +U 2 +L 3 +U 3 +R 5 +D 4 +L 1 +D 1 +R 10 +L 4 +D 8 +L 5 +D 5 +L 3 +D 5 +L 3 +R 1 +L 3 +R 4 +U 9 +R 4 +D 12 +L 5 +R 4 +L 11 +D 10 +U 3 +R 2 +U 5 +L 6 +D 5 +U 5 +D 10 +R 12 +L 2 +R 10 +D 11 +R 12 +U 5 +R 4 +L 4 +U 2 +R 12 +L 6 +D 3 +R 2 +D 1 +U 9 +L 6 +U 6 +L 10 +D 8 +R 9 +L 1 +U 1 +D 5 +U 4 +R 10 +U 5 +R 10 +D 12 +U 6 +D 9 +U 3 +L 8 +R 8 +D 7 +L 6 +U 7 +R 1 +U 6 +D 9 +R 2 +U 11 +D 7 +L 12 +D 6 +L 5 +U 8 +R 8 +L 8 +D 3 +R 7 +L 11 +D 1 +L 5 +D 5 +U 8 +D 2 +R 8 +L 6 +D 7 +L 3 +D 3 +U 9 +L 1 +U 8 +D 7 +L 8 +U 4 +R 12 +U 7 +L 10 +D 4 +U 7 +D 7 +U 5 +L 4 +R 9 +D 5 +R 4 +U 2 +R 1 +D 9 +U 7 +R 9 +U 12 +D 4 +R 8 +U 4 +D 10 +L 10 +D 11 +L 8 +R 11 +U 5 +D 4 +L 3 +D 1 +U 7 +L 5 +R 13 +L 2 +R 9 +L 6 +R 6 +L 2 +U 10 +D 11 +U 13 +R 11 +U 6 +L 7 +D 11 +R 7 +U 4 +L 1 +D 9 +R 7 +L 11 +U 13 +L 8 +R 12 +U 5 +R 9 +U 11 +R 3 +D 11 +U 9 +L 8 +U 6 +D 6 +L 11 +U 4 +D 3 +U 11 +D 1 +L 6 +U 5 +R 10 +L 10 +R 8 +L 12 +R 4 +U 3 +R 8 +L 8 +U 4 +L 10 +U 9 +R 8 +U 3 +D 2 +U 4 +D 10 +L 6 +R 10 +U 8 +L 9 +R 13 +D 8 +U 10 +D 10 +L 13 +U 1 +R 4 +U 11 +D 12 +L 1 +R 2 +U 12 +D 7 +U 9 +R 13 +U 5 +D 6 +R 4 +L 6 +U 9 +L 5 +U 8 +D 4 +L 5 +U 6 +L 8 +U 1 +R 3 +U 8 +R 2 +D 5 +U 12 +D 9 +L 2 +U 3 +R 11 +U 9 +R 7 +D 10 +U 2 +L 3 +D 3 +U 9 +D 6 +U 1 +R 9 +L 5 +R 2 +L 2 +R 11 +D 7 +L 10 +U 13 +L 6 +R 11 +U 6 +D 11 +U 4 +R 10 +D 5 +R 4 +L 6 +U 3 +L 8 +D 6 +U 14 +R 3 +U 1 +L 6 +R 7 +U 9 +L 9 +D 10 +U 10 +D 12 +R 9 +D 12 +R 4 +D 12 +U 9 +R 9 +U 2 +L 11 +D 13 +U 12 +L 7 +D 14 +R 4 +D 14 +U 11 +D 5 +R 10 +L 2 +D 11 +L 3 +U 9 +R 4 +L 8 +U 8 +R 7 +U 7 +D 5 +R 8 +U 5 +L 3 +R 7 +D 6 +R 12 +U 3 +D 8 +L 8 +U 3 +L 8 +R 7 +L 13 +U 2 +L 8 +U 14 +R 5 +L 1 +D 14 +R 10 +U 14 +R 6 +U 14 +D 5 +U 13 +D 1 +U 12 +R 7 +L 2 +U 4 +R 10 +U 8 +R 12 +L 2 +U 7 +D 9 +L 6 +D 3 +U 7 +L 11 +U 8 +R 7 +D 5 +U 5 +R 13 +D 9 +R 14 +U 8 +R 14 +D 8 +U 1 +L 13 +R 12 +D 7 +L 6 +R 3 +D 10 +R 10 +L 6 +D 12 +L 5 +U 14 +D 1 +U 8 +R 5 +D 15 +R 11 +D 10 +L 11 +D 13 +L 5 +D 3 +U 15 +R 6 +L 12 +R 12 +L 15 +U 5 +D 8 +R 13 +D 10 +R 4 +L 6 +U 8 +R 6 +D 15 +U 6 +L 13 +D 15 +U 11 +D 6 +U 7 +L 1 +R 5 +L 1 +U 7 +D 15 +L 1 +D 7 +U 6 +R 14 +D 4 +R 5 +U 4 +D 5 +R 13 +D 5 +L 1 +D 11 +L 3 +D 3 +R 13 +L 15 +D 4 +R 4 +U 5 +L 10 +U 14 +D 2 +R 9 +U 8 +R 1 +U 13 +L 5 +U 12 +R 10 +U 8 +L 9 +D 7 +R 10 +L 8 +R 13 +D 12 +L 2 +R 4 +D 14 +R 14 +D 2 +U 4 +D 14 +U 1 +L 3 +R 7 +L 2 +D 10 +R 10 +L 1 +R 5 +D 6 +L 5 +R 11 +U 15 +L 6 +D 4 +R 14 +D 6 +R 1 +L 12 +R 15 +L 10 +U 1 +D 3 +R 2 +D 2 +L 8 +U 9 +D 14 +L 4 +R 2 +U 14 +L 11 +D 12 +U 5 +L 11 +R 5 +U 14 +R 9 +U 12 +L 12 +D 9 +R 10 +D 4 +L 3 +U 4 +R 2 +D 9 +U 5 +L 13 +U 5 +R 15 +L 4 +R 10 +U 8 +R 3 +U 13 +D 4 +U 4 +L 8 +U 1 +D 13 +R 10 +U 13 +L 5 +U 7 +D 2 +U 15 +R 10 +U 12 +D 9 +R 12 +L 3 +D 7 +R 7 +L 3 +R 14 +L 9 +D 4 +R 8 +D 1 +R 1 +U 1 +R 14 +L 7 +R 10 +D 14 +L 1 +U 12 +D 8 +U 1 +R 13 +U 12 +D 4 +U 8 +L 8 +D 8 +L 4 +R 2 +D 6 +R 2 +L 3 +D 16 +R 6 +L 16 +D 16 +L 2 +R 16 +D 15 +L 1 +D 4 +U 3 +L 5 +U 4 +L 4 +D 9 +L 2 +R 8 +D 7 +U 7 +R 12 +U 12 +R 3 +D 8 +L 12 +D 12 +R 13 +U 8 +R 5 +U 2 +D 3 +U 11 +L 13 +R 4 +L 5 +R 9 +D 9 +U 14 +R 15 +L 16 +R 13 +D 11 +U 13 +L 10 +D 11 +L 10 +R 4 +U 7 +D 17 +U 7 +R 10 +U 11 +L 2 +D 8 +U 3 +R 14 +U 13 +D 8 +U 6 +L 2 +D 9 +L 1 +D 4 +U 16 +D 4 +L 13 +U 1 +D 13 +U 12 +R 17 +L 6 +R 17 +L 17 +R 13 +L 9 +U 12 +L 15 +R 17 +U 3 +R 2 +L 12 +U 7 +L 12 +U 9 +L 15 +R 9 +U 3 +L 13 +R 8 +L 3 +R 2 +L 17 +U 14 +D 16 +L 13 +D 2 +U 17 +D 6 +U 8 +L 5 +D 10 +L 3 +D 3 +R 7 +L 16 +R 8 +U 13 +L 17 +U 16 +L 9 +U 8 +D 12 +R 10 +U 11 +D 10 +L 17 +R 3 +D 7 +U 13 +D 11 +R 7 +D 16 +U 4 +R 12 +D 12 +U 11 +D 2 +L 9 +D 6 +L 4 +R 5 +L 13 +U 7 +L 12 +D 1 +L 15 +U 8 +R 4 +U 15 +R 15 +D 7 +R 8 +U 9 +R 5 +D 12 +R 12 +U 2 +D 13 +U 2 +L 6 +D 8 +U 12 +R 6 +D 16 +U 4 +R 9 +L 6 +U 18 +L 7 +R 15 +U 8 +D 18 +L 11 +R 16 +D 2 +R 7 +D 8 +L 10 +U 15 +L 13 +D 7 +R 13 +D 14 +R 2 +L 14 +D 4 +L 10 +R 13 +L 18 +U 15 +L 17 +R 18 +D 2 +U 7 +R 18 +D 4 +L 1 +U 12 +L 1 +U 16 +D 6 +R 7 +U 9 +L 1 +U 13 +R 2 +L 8 +D 5 +R 18 +D 16 +R 8 +D 2 +R 13 +L 16 +R 18 +L 10 +D 6 +U 4 +D 15 +U 3 +D 9 +R 17 +D 8 +L 4 +R 17 +D 15 +R 1 +D 18 +U 1 +R 5 +L 7 +D 18 +U 16 +D 2 +L 11 +R 7 +L 12 +D 2 +U 8 +L 17 +U 18 +L 10 +R 16 +L 5 +R 1 +L 10 +R 14 +L 4 +D 15 +R 8 +D 15 +L 12 +D 5 +U 11 +L 1 +R 8 +D 11 +U 5 +L 12 +D 11 +U 9 +D 12 +R 7 +D 11 +U 2 +R 15 +L 2 +R 8 +U 2 +D 8 +R 14 +L 4 +D 1 +U 4 +R 4 +D 2 +R 5 +D 9 +L 10 +U 8 +R 13 +D 15 +R 18 +D 5 +U 5 +L 1 +U 1 +R 9 +D 2 +U 6 +R 5 +U 5 +R 17 +L 2 +D 1 +R 3 +D 5 +U 13 +R 10 +D 10 +R 13 +D 5 +L 1 +U 14 +D 17 +U 15 +R 16 +L 9 +U 12 +L 17 +R 19 +U 1 +D 4 +U 14 +L 7 +R 16 +L 5 +D 4 +L 14 +U 13 +R 10 +L 19 +D 1 +R 17 +D 6 +L 19 +U 11 +L 14 +U 15 +D 10 +U 17 +R 16 +U 12 +L 13 +D 1 +R 11 +D 10 +L 4 +D 15 +L 18 +R 2 +U 5 +L 2 +U 9 +D 16 +R 8 +D 13 +R 19 +U 14 +L 10 +R 13 +U 3 +R 2 +U 11 +L 2 +R 2 +U 12 +L 14 +U 15 +R 6 +D 10 +R 8 +U 14 +D 9 +L 2 +U 3 +D 8 +U 7 +R 10 +U 16 +R 3 +U 9 +L 16 +D 1 +R 1 +U 12 +R 12 +U 8 +L 19 +U 14 +R 9 +U 5 +L 15 +U 7 +L 17 +U 16 +R 19 +U 17 +L 1 +D 7 diff --git a/AdventOfCode.sln b/AdventOfCode.sln index 77eae18..a498403 100644 --- a/AdventOfCode.sln +++ b/AdventOfCode.sln @@ -3,7 +3,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.32929.386 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventOfCode", "AdventOfCode\AdventOfCode.csproj", "{30F2887D-526F-4068-A581-E20BAF52F900}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AdventOfCode", "AdventOfCode\AdventOfCode.csproj", "{30F2887D-526F-4068-A581-E20BAF52F900}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventOfCode.InputFetcher", "AdventOfCode.InputFetcher\AdventOfCode.InputFetcher.csproj", "{105BF947-9878-4995-B16B-F8093A53EC66}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventOfCode.Tests", "AdventOfCode.Tests\AdventOfCode.Tests.csproj", "{03C0BB76-6521-4B51-B267-346E88678D79}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -15,6 +19,14 @@ Global {30F2887D-526F-4068-A581-E20BAF52F900}.Debug|Any CPU.Build.0 = Debug|Any CPU {30F2887D-526F-4068-A581-E20BAF52F900}.Release|Any CPU.ActiveCfg = Release|Any CPU {30F2887D-526F-4068-A581-E20BAF52F900}.Release|Any CPU.Build.0 = Release|Any CPU + {105BF947-9878-4995-B16B-F8093A53EC66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {105BF947-9878-4995-B16B-F8093A53EC66}.Debug|Any CPU.Build.0 = Debug|Any CPU + {105BF947-9878-4995-B16B-F8093A53EC66}.Release|Any CPU.ActiveCfg = Release|Any CPU + {105BF947-9878-4995-B16B-F8093A53EC66}.Release|Any CPU.Build.0 = Release|Any CPU + {03C0BB76-6521-4B51-B267-346E88678D79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {03C0BB76-6521-4B51-B267-346E88678D79}.Debug|Any CPU.Build.0 = Debug|Any CPU + {03C0BB76-6521-4B51-B267-346E88678D79}.Release|Any CPU.ActiveCfg = Release|Any CPU + {03C0BB76-6521-4B51-B267-346E88678D79}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/AdventOfCode/AdventOfCode.csproj b/AdventOfCode/AdventOfCode.csproj index 0ff1ded..ab3abdc 100644 --- a/AdventOfCode/AdventOfCode.csproj +++ b/AdventOfCode/AdventOfCode.csproj @@ -13,6 +13,7 @@ + diff --git a/AdventOfCode/Common/AOCExtensions.cs b/AdventOfCode/Common/AOCExtensions.cs index 22b02b9..ca3760d 100644 --- a/AdventOfCode/Common/AOCExtensions.cs +++ b/AdventOfCode/Common/AOCExtensions.cs @@ -8,7 +8,15 @@ namespace AdventOfCode.Common { public static int ToInt(this string str) { - return Convert.ToInt32(str); + try + { + return Convert.ToInt32(str); + }catch (Exception e) + { + return 0; + throw e; + } + } public static IEnumerable> Chunk(this IEnumerable source, int chunksize) diff --git a/AdventOfCode/Common/IgnoreTestAnswerAttribute.cs b/AdventOfCode/Common/IgnoreTestAnswerAttribute.cs new file mode 100644 index 0000000..ca8cda2 --- /dev/null +++ b/AdventOfCode/Common/IgnoreTestAnswerAttribute.cs @@ -0,0 +1,20 @@ +using AdventOfCode.Models; +using System; +using System.Linq; + +namespace AdventOfCode.Common +{ + public class IgnoreTestAnswerAttribute : Attribute + { + private AOCVersion[] _versions; + public IgnoreTestAnswerAttribute(params AOCVersion[] versions) + { + this._versions = versions; + } + + public bool ShouldIgnoreAnswer(AOCVersion version) + { + return _versions.Any(x => x == version); + } + } +} diff --git a/AdventOfCode/_2022/Day10/CommunicationCPU.cs b/AdventOfCode/_2022/Day10/CommunicationCPU.cs index d37e049..06e0ebb 100644 --- a/AdventOfCode/_2022/Day10/CommunicationCPU.cs +++ b/AdventOfCode/_2022/Day10/CommunicationCPU.cs @@ -66,7 +66,6 @@ namespace AdventOfCode._2022.Day10 _cycle++; //Increase it after we draw CRT screen but before we do the cycle check for part A if (_version == AOCVersion.A && CHECK_CYCLES.Any(x => x == _cycle)) { - Console.WriteLine($"Cycle {_cycle} has register value of {_registerX} and a strength of {_cycle * _registerX}"); _sumOfStregnth += _cycle * _registerX; } } diff --git a/AdventOfCode/_2022/Day10/Day10.cs b/AdventOfCode/_2022/Day10/Day10.cs index a0e80a8..94d55ba 100644 --- a/AdventOfCode/_2022/Day10/Day10.cs +++ b/AdventOfCode/_2022/Day10/Day10.cs @@ -7,6 +7,7 @@ using System.Linq; namespace AdventOfCode._2022.Day10 { [AOC(year: 2022, day: 10)] + [IgnoreTestAnswer(AOCVersion.B)] public class Day10 : AOCDay { protected override AOCResponse ExecutePartA() diff --git a/AdventOfCode/_2022/Day5.cs b/AdventOfCode/_2022/Day5.cs index 681ce04..4468c22 100644 --- a/AdventOfCode/_2022/Day5.cs +++ b/AdventOfCode/_2022/Day5.cs @@ -17,7 +17,7 @@ namespace AdventOfCode._2022 var crates = input.Take(Array.FindIndex(input, x => string.IsNullOrEmpty(x))); var moves = input.Skip(crates.Count() + 1); var crateBoard = new CargoCrateBoard(_request.Version, crates.ToArray(), moves.ToArray()); - _response.Answer = string.Join(" ", crateBoard.GetResults()); + _response.Answer = string.Join("", crateBoard.GetResults()).Replace("[", string.Empty).Replace("]", string.Empty); return _response; } diff --git a/AdventOfCode/_2022/Day7/Day7.cs b/AdventOfCode/_2022/Day7/Day7.cs index a470a19..5726ea0 100644 --- a/AdventOfCode/_2022/Day7/Day7.cs +++ b/AdventOfCode/_2022/Day7/Day7.cs @@ -15,7 +15,8 @@ namespace AdventOfCode._2022.Day7 { var root = GenerateDirectory(); - root.Print(""); + if (!_request.IgnoreLogMessages) + root.Print(""); var allDirectories = root.GetAllDirectories().ToList(); _response.Answer = allDirectories.Where(x => x.GetSize() <= 100000).Sum(x => x.GetSize()); diff --git a/AdventOfCode/_2022/Models/CargoCrateBoard.cs b/AdventOfCode/_2022/Models/CargoCrateBoard.cs index ac04390..541ba8f 100644 --- a/AdventOfCode/_2022/Models/CargoCrateBoard.cs +++ b/AdventOfCode/_2022/Models/CargoCrateBoard.cs @@ -26,6 +26,7 @@ namespace AdventOfCode._2022.Models { foreach (var move in moves) { + if (string.IsNullOrWhiteSpace(move)) continue; string numbersOnly = Regex.Replace(move, "[^0-9.]", " "); var pendingMoves = Regex.Replace(numbersOnly, @"\s+", " ").Trim().Split(" "); _board.Move(version, pendingMoves[0].ToInt(), pendingMoves[1].ToInt(), pendingMoves[2].ToInt());