Browse Source

D17 1 & 2 OK

bastien.monsarrat 7 years ago
parent
commit
18694e9e24
5 changed files with 2028 additions and 1 deletions
  1. 7 1
      Adv2018.sln
  2. 9 0
      D17.1/D17.1and2.csproj
  3. 240 0
      D17.1/Program.cs
  4. 8 0
      D17.1/Properties/launchSettings.json
  5. 1764 0
      D17.1/input.txt

+ 7 - 1
Adv2018.sln

@@ -69,7 +69,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "D15.2", "D15.2\D15.2.csproj
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "D16.1", "D16.1\D16.1.csproj", "{12EF2505-6012-4829-B24A-9BD683915DBC}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "D16.2", "D16.2\D16.2.csproj", "{DE1A36E4-F467-4345-BB97-93E2A1F2B186}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "D16.2", "D16.2\D16.2.csproj", "{DE1A36E4-F467-4345-BB97-93E2A1F2B186}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "D17.1and2", "D17.1\D17.1and2.csproj", "{584D1E60-73D7-44F9-A944-65525DF9A7A1}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -213,6 +215,10 @@ Global
 		{DE1A36E4-F467-4345-BB97-93E2A1F2B186}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{DE1A36E4-F467-4345-BB97-93E2A1F2B186}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{DE1A36E4-F467-4345-BB97-93E2A1F2B186}.Release|Any CPU.Build.0 = Release|Any CPU
+		{584D1E60-73D7-44F9-A944-65525DF9A7A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{584D1E60-73D7-44F9-A944-65525DF9A7A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{584D1E60-73D7-44F9-A944-65525DF9A7A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{584D1E60-73D7-44F9-A944-65525DF9A7A1}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 9 - 0
D17.1/D17.1and2.csproj

@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp2.1</TargetFramework>
+    <RootNamespace>D17._1</RootNamespace>
+  </PropertyGroup>
+
+</Project>

+ 240 - 0
D17.1/Program.cs

@@ -0,0 +1,240 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text.RegularExpressions;
+
+namespace D17._1
+{
+    class Program
+    {
+        enum EnumType
+        {
+            Clay, StillWater, RunningWater
+        }
+
+        static void Main(string[] args)
+        {
+            if (args.Length < 1) return;
+            if (File.Exists(args[0]) == false) return;
+            var file = File.OpenText(args[0]);
+
+            var reg = new Regex(@"[xy]=(\d+), [xy]=(\d+)[.][.](\d+)");
+
+            var map = new Dictionary<(int x, int y), EnumType>();
+            var rwater = new Dictionary<(int x, int y), (int x, int y)>();
+
+            int MAXY = 0;
+            int MINX = int.MaxValue;
+            int MINY = int.MaxValue;
+            int MAXX = 0;
+
+            do
+            {
+                var line = file.ReadLine();
+                if (line == null) break;
+
+                var result = reg.Match(line);
+
+                CreateMap(map, ref MAXY, ref MINX, ref MINY, ref MAXX, line, result);
+
+            } while (true);
+
+            // Start with river
+            rwater.Add((500, 0), (500, 0));
+            map.Add((500, 0), EnumType.RunningWater);
+
+            while (rwater.Count > 0)
+            {
+                //PrintMap(map, MINX, MAXX, MAXY);
+
+                var enumer = rwater.FirstOrDefault();
+                var water = enumer.Key;
+                var source = enumer.Value;
+
+                if (map.ContainsKey((water.x, water.y + 1)) == false && water.y + 1 > MAXY)
+                {
+                    rwater.Remove(water);
+                    continue;
+                }
+
+                if (map.ContainsKey((water.x, water.y + 1)) == false || map[(water.x, water.y + 1)] == EnumType.RunningWater)
+                {
+                    RaindropsOnRoses(map, rwater, water);
+                }
+
+                else
+                {
+                    ExpandToBothSides(map, rwater, water, source);
+
+                    int maxX, minX;
+                    bool canConvert = CanConvertToStillWater(map, rwater, water, source, out maxX, out minX);
+
+                    if (canConvert)
+                        ConvertToStillWater(map, rwater, water, source, maxX, minX);
+                    else
+                        rwater.Remove(water);
+                }
+            }
+
+            PrintMap(map, MINX, MAXX, MAXY);
+            var countEx1 = map.Count(m => (m.Key.y >= MINY && m.Key.y <= MAXY) && (m.Value == EnumType.RunningWater || m.Value == EnumType.StillWater));
+            var countEx2 = map.Count(m => (m.Key.y >= MINY && m.Key.y <= MAXY) && (m.Value == EnumType.StillWater));
+            Console.WriteLine($"The answer is {countEx1} flooded tiles, {countEx2}m3 still water");
+        }
+
+        private static void RaindropsOnRoses(Dictionary<(int x, int y), EnumType> map, Dictionary<(int x, int y), (int x, int y)> rwater, (int x, int y) water)
+        {
+            rwater.Remove(water);
+            rwater.TryAdd((water.x, water.y + 1), water);
+            map.TryAdd((water.x, water.y + 1), EnumType.RunningWater);
+        }
+
+        private static void ConvertToStillWater(Dictionary<(int x, int y), EnumType> map, Dictionary<(int x, int y), (int x, int y)> rwater, (int x, int y) water, (int x, int y) source, int maxX, int minX)
+        {
+            for (var x = minX; x <= maxX; ++x)
+            {
+                var res = map.TryGetValue((x, water.y), out var type);
+                if (type == EnumType.RunningWater)
+                {
+                    map[(x, water.y)] = EnumType.StillWater;
+                    rwater.Remove((x, water.y));
+                }
+            }
+
+            rwater.Remove(water);
+            rwater.TryAdd(source, (source.x, source.y - 1));
+        }
+
+        private static bool CanConvertToStillWater(Dictionary<(int x, int y), EnumType> map, Dictionary<(int x, int y), (int x, int y)> rwater, (int x, int y) water, (int x, int y) source, out int maxX, out int minX)
+        {
+            bool canConvert = true;
+            maxX = 0;
+            minX = 0;
+            for (int x = water.x; canConvert; ++x) // left to right
+            {
+                maxX = x;
+                var res = map.TryGetValue((x, water.y), out var type);
+                if (res == false)
+                {
+                    canConvert = false;
+                    rwater.TryAdd((x - 1, water.y), source);
+                }
+                else if (type == EnumType.Clay) break;
+            }
+            for (int x = water.x; canConvert; --x) // right to left
+            {
+                minX = x;
+                var res = map.TryGetValue((x, water.y), out var type);
+                if (res == false)
+                {
+                    canConvert = false;
+                    rwater.TryAdd((x + 1, water.y), source);
+                }
+                else if (type == EnumType.Clay) break;
+            }
+
+            return canConvert;
+        }
+
+        private static void ExpandToBothSides(Dictionary<(int x, int y), EnumType> map, Dictionary<(int x, int y), (int x, int y)> rwater, (int x, int y) water, (int x, int y) source)
+        {
+            var next = water;
+
+            while (true)
+            {
+                var last = next;
+                next = (last.x - 1, water.y);
+
+                var res = map.TryGetValue((next.x, water.y), out var value);
+                if (res && value == EnumType.Clay) break;
+
+                rwater.Remove(last);
+                rwater.TryAdd(next, source);
+                map.TryAdd(next, EnumType.RunningWater);
+
+                var hasBottom = map.TryGetValue((next.x, next.y + 1), out var bottom);
+                if (hasBottom == false || bottom == EnumType.RunningWater)
+                    break;
+            }
+
+            next = water;
+
+            while (true)
+            {
+                var last = next;
+                next = (last.x + 1, water.y);
+
+                var res = map.TryGetValue((next.x, water.y), out var value);
+                if (res && value == EnumType.Clay) break;
+
+                rwater.Remove(last);
+                rwater.TryAdd(next, source);
+                map.TryAdd(next, EnumType.RunningWater);
+
+                var hasBottom = map.TryGetValue((next.x, next.y + 1), out var bottom);
+                if (hasBottom == false || bottom == EnumType.RunningWater)
+                    break;
+            }
+        }
+
+        private static void CreateMap(Dictionary<(int x, int y), EnumType> map, ref int MAXY, ref int MINX, ref int MINY, ref int MAXX, string line, Match result)
+        {
+            var c1 = int.Parse(result.Groups[1].Value);
+            var rmin = int.Parse(result.Groups[2].Value);
+            var rmax = int.Parse(result.Groups[3].Value);
+
+            if (line.StartsWith("x"))
+            {
+                if (c1 > MAXX) MAXX = c1;
+                if (c1 < MINX) MINX = c1;
+            }
+            else
+            {
+                if (c1 > MAXY) MAXY = c1;
+                if (c1 < MINY) MINY = c1;
+            }
+
+            for (int i = rmin; i <= rmax; ++i)
+            {
+                if (line.StartsWith("x"))
+                {
+                    if (i > MAXY) MAXY = i;
+                    if (i < MINY) MINY = i;
+
+                    map.TryAdd((c1, i), EnumType.Clay);
+                }
+                else
+                {
+                    if (i > MAXX) MAXX = i;
+                    if (i < MINX) MINX = i;
+                    map.TryAdd((i, c1), EnumType.Clay);
+                }
+            }
+        }
+
+        private static void PrintMap(Dictionary<(int x, int y), EnumType> map, int MINX, int MAXX, int MAXY)
+        {
+            var std = Console.Out;
+            var file = File.CreateText("out.txt");
+            Console.SetOut(file);
+            Console.SetCursorPosition(0, 0);
+            for (int y = 0; y <= MAXY; ++y)
+            {
+                for (int x = MINX - 1; x <= MAXX + 1; ++x)
+                {
+
+                    var res = map.TryGetValue((x, y), out var type);
+                    if (res == false) Console.Write(".");
+                    else if (type == EnumType.Clay) Console.Write("#");
+                    else if (type == EnumType.RunningWater) Console.Write("|");
+                    else if (type == EnumType.StillWater) Console.Write("~");
+                }
+                Console.WriteLine();
+            }
+            Console.SetOut(std);
+            file.Flush();
+            file.Close();
+        }
+    }
+}

+ 8 - 0
D17.1/Properties/launchSettings.json

@@ -0,0 +1,8 @@
+{
+  "profiles": {
+    "D17.1": {
+      "commandName": "Project",
+      "commandLineArgs": "\"..\\..\\..\\..\\D17.1\\input.txt\" "
+    }
+  }
+}

+ 1764 - 0
D17.1/input.txt

@@ -0,0 +1,1764 @@
+y=646, x=522..531
+y=1454, x=377..394
+y=1771, x=365..370
+y=553, x=442..457
+x=355, y=1028..1040
+y=1175, x=353..370
+x=339, y=1493..1506
+y=314, x=328..334
+x=404, y=1673..1675
+x=434, y=1851..1854
+y=485, x=506..529
+y=1872, x=460..485
+x=463, y=827..829
+y=423, x=524..534
+y=1873, x=528..531
+y=1122, x=446..460
+x=423, y=996..1004
+y=1663, x=368..377
+y=590, x=438..440
+y=1369, x=361..385
+x=332, y=1571..1583
+y=1334, x=323..339
+y=830, x=377..397
+x=314, y=243..250
+x=419, y=1855..1864
+x=420, y=1358..1382
+x=466, y=623..649
+x=336, y=1660..1674
+x=453, y=928..943
+x=517, y=962..967
+y=843, x=491..498
+x=479, y=335..345
+x=465, y=1617..1625
+x=368, y=504..524
+y=1456, x=360..362
+x=321, y=1360..1372
+x=512, y=57..68
+y=490, x=408..424
+x=309, y=1150..1159
+x=531, y=598..604
+x=381, y=1476..1500
+y=692, x=312..315
+x=327, y=832..841
+x=446, y=1221..1231
+x=436, y=887..893
+y=909, x=374..380
+y=1516, x=519..521
+x=413, y=290..292
+x=375, y=850..875
+y=1471, x=517..519
+x=536, y=1286..1291
+y=943, x=453..455
+y=826, x=383..385
+y=1458, x=481..489
+x=346, y=503..524
+x=336, y=1241..1253
+x=347, y=1300..1310
+y=1880, x=536..540
+y=487, x=416..418
+y=1650, x=311..327
+x=533, y=962..967
+x=344, y=585..589
+x=317, y=503..506
+y=17, x=288..305
+x=433, y=545..547
+y=1119, x=514..530
+x=470, y=1088..1090
+x=291, y=1729..1742
+x=406, y=1753..1763
+x=491, y=895..897
+x=343, y=847..862
+x=433, y=646..657
+x=406, y=839..849
+x=393, y=1712..1714
+x=447, y=476..479
+x=416, y=1579..1583
+x=302, y=223..225
+y=897, x=491..496
+y=1495, x=390..408
+y=91, x=461..478
+x=375, y=1874..1887
+y=703, x=452..461
+x=452, y=973..994
+y=754, x=406..422
+x=334, y=305..314
+x=333, y=1288..1290
+x=440, y=958..962
+x=540, y=589..608
+y=223, x=491..496
+x=351, y=670..690
+x=395, y=1587..1596
+x=339, y=633..659
+x=509, y=1575..1601
+x=421, y=697..708
+x=408, y=1492..1495
+x=392, y=470..476
+x=514, y=1117..1119
+x=506, y=73..81
+x=349, y=1189..1204
+y=994, x=443..452
+x=516, y=1201..1207
+x=391, y=1013..1016
+x=340, y=1651..1674
+y=666, x=515..542
+y=1245, x=325..328
+y=169, x=334..355
+y=866, x=484..511
+x=368, y=976..978
+x=393, y=658..659
+x=317, y=1614..1624
+y=988, x=482..485
+y=1484, x=348..365
+x=404, y=615..627
+x=530, y=1766..1778
+x=493, y=30..41
+x=506, y=216..226
+x=393, y=710..712
+x=499, y=33..46
+y=1460, x=350..368
+y=900, x=517..530
+x=540, y=831..843
+y=1372, x=321..339
+x=455, y=863..881
+x=317, y=886..894
+x=333, y=1318..1329
+y=1304, x=535..546
+x=534, y=1049..1060
+x=492, y=1501..1517
+y=1438, x=302..321
+y=1538, x=516..534
+x=322, y=493..495
+x=548, y=1845..1850
+x=326, y=504..506
+x=396, y=248..255
+x=355, y=1343..1352
+x=477, y=1571..1573
+y=1543, x=478..492
+y=1703, x=396..400
+x=432, y=1185..1195
+x=305, y=470..486
+y=161, x=500..503
+x=430, y=818..844
+x=314, y=1029..1047
+x=498, y=954..975
+x=556, y=1607..1635
+y=535, x=505..528
+y=1313, x=339..355
+x=359, y=976..978
+y=1503, x=497..501
+x=375, y=657..659
+x=314, y=1570..1583
+x=454, y=1633..1646
+y=698, x=293..321
+x=339, y=1302..1313
+x=437, y=209..221
+y=490, x=381..386
+x=412, y=699..713
+y=1445, x=328..339
+y=947, x=429..434
+x=423, y=1306..1312
+x=434, y=668..671
+y=19, x=504..508
+x=321, y=685..698
+x=505, y=631..655
+y=843, x=540..542
+x=542, y=832..843
+x=333, y=76..83
+y=982, x=354..374
+x=363, y=1091..1101
+x=491, y=478..490
+x=473, y=193..206
+x=443, y=1359..1382
+y=774, x=419..438
+x=384, y=204..231
+y=1369, x=327..332
+y=270, x=338..348
+x=528, y=517..535
+y=1310, x=345..347
+y=1061, x=500..504
+x=524, y=95..105
+x=487, y=370..381
+x=423, y=1539..1545
+x=435, y=395..406
+x=447, y=1032..1041
+y=975, x=498..501
+x=354, y=853..855
+x=409, y=54..65
+x=381, y=463..490
+y=227, x=419..425
+x=419, y=399..402
+x=523, y=1333..1353
+x=296, y=1307..1313
+x=374, y=791..812
+x=434, y=27..39
+x=349, y=541..549
+y=753, x=484..499
+x=441, y=423..445
+y=1012, x=409..414
+x=360, y=127..130
+x=329, y=762..770
+y=394, x=500..503
+y=930, x=297..300
+x=482, y=973..988
+x=307, y=1372..1376
+x=436, y=1552..1567
+x=496, y=220..223
+x=383, y=1785..1796
+x=390, y=351..374
+y=1597, x=525..527
+x=489, y=431..442
+x=399, y=1415..1423
+x=450, y=6..22
+x=445, y=1327..1331
+y=1483, x=463..484
+y=364, x=541..549
+y=17, x=407..434
+y=1465, x=474..501
+y=1718, x=287..304
+x=380, y=900..909
+y=1776, x=419..427
+y=971, x=422..424
+y=399, x=358..372
+x=289, y=1249..1273
+x=507, y=334..345
+x=443, y=972..994
+x=320, y=790..793
+x=493, y=372..384
+x=368, y=1448..1460
+x=382, y=849..875
+x=534, y=997..1023
+x=425, y=54..65
+x=297, y=1704..1713
+x=315, y=692..694
+x=479, y=1190..1197
+x=397, y=800..810
+x=379, y=354..363
+x=534, y=1529..1538
+x=343, y=217..243
+y=444, x=329..333
+y=689, x=424..426
+y=464, x=483..486
+y=452, x=354..364
+x=322, y=1568..1579
+x=469, y=1502..1517
+x=371, y=1817..1837
+y=180, x=490..496
+x=397, y=1346..1367
+x=308, y=1802..1803
+x=453, y=116..129
+x=455, y=466..482
+x=431, y=546..547
+x=428, y=1714..1736
+y=1329, x=331..333
+x=460, y=499..513
+y=559, x=469..471
+x=435, y=529..532
+x=322, y=1591..1610
+x=421, y=1678..1695
+x=398, y=1310..1326
+x=422, y=963..971
+x=486, y=456..464
+x=309, y=149..158
+y=1827, x=315..319
+x=288, y=9..17
+y=1101, x=363..382
+x=318, y=1546..1557
+x=404, y=839..849
+x=433, y=711..732
+x=306, y=1443..1461
+x=357, y=126..130
+x=315, y=75..83
+y=1844, x=385..417
+y=1139, x=381..403
+y=1063, x=518..545
+x=509, y=1251..1259
+x=377, y=667..685
+y=196, x=344..363
+x=308, y=844..860
+y=1557, x=318..321
+x=377, y=1444..1454
+x=450, y=1263..1282
+x=400, y=762..771
+y=327, x=418..492
+x=387, y=1636..1638
+y=772, x=351..370
+x=428, y=1821..1831
+y=441, x=299..306
+y=41, x=490..493
+y=289, x=356..358
+x=480, y=1213..1240
+x=559, y=231..242
+y=875, x=375..382
+x=516, y=9..23
+y=201, x=369..378
+y=1887, x=375..432
+y=524, x=346..368
+y=1396, x=330..348
+y=1762, x=526..536
+x=517, y=1463..1471
+x=358, y=324..334
+x=310, y=1549..1560
+x=530, y=1118..1119
+x=334, y=166..169
+x=494, y=910..931
+y=745, x=389..403
+x=398, y=495..504
+x=437, y=668..671
+x=348, y=1650..1674
+y=1310, x=521..528
+x=298, y=1666..1693
+y=1775, x=545..548
+y=48, x=375..383
+x=419, y=770..774
+x=378, y=175..201
+x=430, y=996..1004
+x=453, y=60..70
+x=450, y=958..962
+y=1247, x=325..328
+y=858, x=494..496
+x=495, y=392..401
+y=1624, x=314..317
+y=403, x=379..385
+x=542, y=659..666
+x=385, y=1830..1844
+x=409, y=983..987
+x=337, y=408..413
+y=199, x=504..517
+x=331, y=1288..1290
+x=485, y=974..988
+y=99, x=412..421
+x=472, y=1088..1090
+y=1520, x=441..450
+x=516, y=868..874
+y=1409, x=354..357
+x=467, y=59..70
+x=291, y=1768..1786
+x=330, y=402..419
+x=471, y=546..559
+y=1273, x=364..379
+x=492, y=153..164
+x=504, y=1768..1785
+x=346, y=1594..1606
+y=844, x=297..301
+y=1828, x=435..439
+x=478, y=1541..1543
+x=484, y=853..866
+x=402, y=886..888
+x=480, y=271..280
+x=313, y=1499..1525
+x=494, y=193..206
+y=155, x=549..554
+x=403, y=742..745
+y=185, x=354..357
+y=1112, x=491..517
+y=1461, x=302..306
+y=143, x=416..442
+x=377, y=703..716
+x=465, y=812..815
+x=501, y=1480..1503
+x=530, y=618..637
+x=506, y=1197..1211
+x=523, y=558..564
+x=415, y=1604..1609
+x=489, y=1456..1458
+y=1733, x=524..533
+x=407, y=1811..1821
+y=258, x=531..542
+x=434, y=919..947
+x=407, y=3..17
+x=406, y=719..727
+x=402, y=1656..1660
+y=1353, x=523..544
+x=354, y=1755..1774
+x=452, y=686..703
+x=541, y=1626..1631
+x=507, y=372..374
+x=515, y=1664..1685
+x=466, y=1208..1230
+y=987, x=407..409
+x=462, y=1313..1316
+y=855, x=352..354
+y=401, x=479..495
+y=1312, x=423..431
+y=83, x=315..333
+x=320, y=1267..1270
+x=396, y=1730..1742
+x=291, y=1249..1273
+x=549, y=376..396
+y=513, x=460..479
+y=1636, x=384..387
+y=1786, x=448..468
+x=365, y=1470..1484
+y=1663, x=383..409
+y=740, x=548..551
+y=1313, x=296..301
+y=719, x=481..502
+x=384, y=1636..1638
+y=1560, x=310..330
+x=370, y=751..772
+x=469, y=478..490
+x=341, y=1736..1739
+y=1240, x=527..552
+x=335, y=634..659
+x=428, y=700..713
+x=417, y=1203..1216
+x=344, y=343..358
+x=517, y=100..102
+y=101, x=377..385
+y=1013, x=290..304
+x=531, y=645..646
+x=363, y=1620..1622
+x=363, y=831..837
+x=426, y=643..653
+x=361, y=1348..1369
+y=727, x=403..406
+y=1075, x=313..315
+y=1579, x=322..325
+y=1851, x=434..436
+x=361, y=1113..1122
+x=434, y=50..61
+y=1538, x=377..379
+x=493, y=111..120
+x=403, y=1127..1139
+y=1347, x=346..349
+x=357, y=1468..1477
+x=328, y=1422..1445
+y=788, x=414..417
+y=1763, x=490..514
+x=536, y=1755..1762
+y=1003, x=480..498
+x=293, y=686..698
+x=525, y=1532..1535
+x=504, y=1054..1061
+y=287, x=313..319
+x=538, y=271..273
+x=354, y=1620..1622
+y=914, x=291..299
+y=848, x=507..511
+y=1739, x=330..341
+x=382, y=1442..1451
+y=1865, x=306..314
+y=62, x=502..505
+x=517, y=196..199
+x=483, y=172..183
+x=397, y=134..140
+x=414, y=683..692
+x=351, y=1685..1699
+x=314, y=1864..1865
+y=933, x=514..516
+x=509, y=1079..1089
+x=320, y=773..778
+x=337, y=90..100
+x=350, y=443..457
+x=519, y=1506..1516
+x=453, y=1189..1198
+y=655, x=295..301
+x=323, y=1320..1334
+y=916, x=305..308
+x=311, y=1820..1822
+y=328, x=315..318
+x=441, y=236..259
+x=514, y=601..615
+y=1580, x=370..388
+x=525, y=1594..1597
+y=1604, x=473..501
+y=1400, x=381..403
+x=302, y=1079..1106
+x=373, y=1782..1787
+x=339, y=408..413
+x=421, y=1603..1609
+x=306, y=1498..1525
+x=478, y=1825..1831
+x=383, y=1475..1500
+y=476, x=392..415
+y=130, x=357..360
+x=325, y=1616..1630
+x=529, y=473..485
+x=519, y=1428..1436
+y=692, x=414..433
+x=353, y=1171..1175
+y=792, x=406..425
+y=1402, x=507..534
+x=554, y=300..316
+x=515, y=996..1002
+x=376, y=441..448
+x=409, y=996..1012
+y=718, x=441..443
+y=1097, x=373..376
+y=1854, x=434..436
+y=637, x=530..544
+x=433, y=622..635
+x=410, y=948..959
+y=39, x=421..434
+x=290, y=992..1013
+x=403, y=719..727
+y=531, x=512..519
+x=485, y=676..701
+y=363, x=364..379
+y=1837, x=369..371
+x=450, y=1502..1520
+x=417, y=779..788
+y=1195, x=288..308
+y=105, x=504..524
+x=405, y=336..342
+y=203, x=486..488
+y=215, x=521..531
+y=712, x=393..395
+x=545, y=1375..1383
+x=413, y=861..873
+x=484, y=147..167
+x=499, y=763..774
+x=304, y=1706..1718
+x=318, y=135..161
+x=447, y=1805..1808
+x=487, y=1725..1728
+y=1204, x=342..349
+x=309, y=1617..1630
+x=451, y=813..815
+x=360, y=847..862
+x=505, y=518..535
+x=367, y=1048..1059
+x=369, y=134..140
+y=1777, x=480..483
+x=546, y=1135..1150
+y=1618, x=442..462
+x=358, y=386..399
+x=326, y=1876..1880
+x=541, y=340..364
+x=329, y=427..444
+x=348, y=1382..1396
+x=364, y=1245..1273
+y=1288, x=331..333
+x=351, y=1149..1160
+x=342, y=74..100
+x=309, y=1292..1318
+y=491, x=533..543
+x=427, y=603..612
+x=481, y=1080..1097
+x=313, y=1067..1075
+x=491, y=1106..1112
+x=376, y=1575..1577
+y=284, x=470..486
+x=519, y=1463..1471
+y=533, x=385..406
+x=297, y=919..930
+x=315, y=1068..1075
+x=444, y=664..674
+x=449, y=840..859
+y=1640, x=508..525
+x=381, y=1378..1400
+y=16, x=457..459
+x=394, y=1632..1641
+x=348, y=914..941
+x=350, y=1449..1460
+x=524, y=981..987
+y=1160, x=465..467
+y=859, x=449..461
+y=1321, x=409..411
+y=504, x=398..415
+x=484, y=217..226
+x=508, y=7..19
+x=367, y=903..914
+x=424, y=964..971
+y=482, x=521..523
+x=498, y=1210..1229
+x=532, y=301..316
+x=320, y=1513..1524
+x=479, y=295..307
+x=443, y=1238..1243
+y=734, x=489..493
+x=500, y=1053..1061
+y=1171, x=445..459
+y=422, x=482..506
+x=395, y=710..712
+y=1383, x=545..549
+x=419, y=200..227
+y=1263, x=369..372
+x=491, y=838..843
+x=311, y=149..158
+y=1864, x=402..419
+x=425, y=1263..1282
+x=532, y=1176..1183
+x=512, y=527..531
+y=1630, x=309..325
+x=472, y=702..723
+y=671, x=306..311
+y=1229, x=498..501
+x=391, y=1149..1160
+y=1070, x=401..417
+x=315, y=1811..1827
+x=514, y=1768..1785
+y=1560, x=387..395
+y=364, x=464..491
+x=414, y=842..852
+x=425, y=201..227
+x=485, y=1865..1872
+x=318, y=1592..1610
+x=510, y=911..931
+x=318, y=1409..1417
+y=1596, x=395..397
+x=460, y=1865..1872
+x=396, y=1578..1583
+x=328, y=1245..1247
+y=287, x=366..389
+x=395, y=862..873
+y=959, x=366..410
+y=549, x=349..369
+x=478, y=459..469
+y=803, x=538..541
+y=1231, x=330..446
+x=386, y=1531..1541
+x=306, y=1863..1865
+x=452, y=467..482
+y=1480, x=336..344
+x=339, y=1830..1842
+x=416, y=1774..1787
+x=422, y=740..754
+x=329, y=1511..1520
+x=498, y=630..655
+y=1417, x=321..363
+x=387, y=1752..1763
+y=1437, x=352..377
+y=774, x=499..512
+x=501, y=1209..1229
+y=1850, x=535..548
+x=522, y=1081..1087
+x=328, y=467..477
+x=343, y=1253..1277
+x=474, y=1450..1465
+x=383, y=816..826
+y=873, x=395..413
+y=1787, x=400..416
+x=357, y=1492..1506
+y=1525, x=306..313
+x=395, y=722..733
+x=319, y=283..287
+x=377, y=1785..1796
+x=393, y=1067..1080
+x=450, y=1072..1092
+x=406, y=741..754
+x=439, y=803..810
+y=567, x=533..541
+x=405, y=859..869
+x=291, y=103..108
+x=318, y=319..328
+x=341, y=915..941
+x=379, y=1535..1538
+x=486, y=1190..1197
+x=377, y=85..101
+x=425, y=923..929
+y=1334, x=464..471
+x=374, y=1067..1080
+y=1879, x=516..521
+x=545, y=1038..1063
+x=442, y=122..143
+x=468, y=609..611
+x=461, y=87..91
+x=437, y=338..358
+x=541, y=376..396
+y=419, x=330..346
+x=363, y=180..196
+y=457, x=524..540
+y=1836, x=352..354
+x=504, y=197..199
+y=1002, x=341..385
+y=929, x=405..425
+y=1453, x=469..471
+y=360, x=370..372
+x=385, y=394..403
+x=330, y=1876..1880
+x=444, y=51..61
+y=1475, x=504..525
+y=1417, x=301..318
+x=464, y=1319..1334
+y=1594, x=525..527
+x=428, y=1847..1859
+x=346, y=670..690
+x=307, y=609..618
+y=1040, x=355..373
+x=383, y=1237..1239
+x=524, y=1665..1685
+x=325, y=1245..1247
+x=448, y=1775..1786
+x=498, y=609..611
+x=535, y=1844..1850
+x=503, y=150..161
+x=370, y=75..100
+x=385, y=262..270
+y=914, x=432..453
+y=853, x=352..354
+x=415, y=526..537
+y=1157, x=488..490
+x=506, y=410..422
+x=330, y=44..58
+y=829, x=463..487
+x=522, y=772..793
+y=140, x=369..397
+x=451, y=1108..1109
+x=307, y=547..564
+y=1004, x=423..430
+y=64, x=502..505
+x=486, y=891..901
+x=435, y=1190..1198
+x=546, y=1298..1304
+x=497, y=458..469
+x=443, y=715..718
+y=221, x=437..460
+x=481, y=1456..1458
+x=409, y=1652..1663
+y=1062, x=336..339
+x=364, y=430..452
+x=438, y=579..590
+x=357, y=1407..1409
+x=502, y=711..719
+x=360, y=1025..1033
+x=441, y=1502..1520
+x=302, y=1444..1461
+y=250, x=294..314
+y=464, x=297..307
+x=371, y=1110..1119
+x=463, y=232..242
+y=860, x=308..321
+x=465, y=443..454
+y=752, x=470..473
+y=1610, x=318..322
+x=477, y=900..921
+x=491, y=353..364
+x=466, y=561..571
+y=381, x=484..487
+y=175, x=490..496
+y=477, x=313..328
+x=395, y=762..771
+x=338, y=344..358
+x=450, y=371..374
+x=316, y=90..100
+x=403, y=1379..1400
+y=1834, x=352..354
+x=541, y=825..827
+x=372, y=358..360
+y=1541, x=330..386
+x=497, y=111..120
+x=345, y=1300..1310
+x=390, y=440..448
+x=482, y=882..886
+x=397, y=841..852
+y=793, x=517..522
+y=309, x=503..510
+x=344, y=180..196
+x=511, y=1099..1101
+y=632, x=442..444
+y=1520, x=329..332
+x=354, y=430..452
+x=301, y=1410..1417
+x=442, y=620..632
+x=522, y=644..646
+x=332, y=1358..1369
+x=318, y=791..793
+x=325, y=264..292
+y=547, x=431..433
+x=497, y=1479..1503
+y=210, x=395..407
+x=396, y=1695..1703
+x=424, y=687..689
+x=521, y=1294..1310
+y=571, x=446..466
+y=1675, x=404..415
+y=242, x=463..559
+x=495, y=75..86
+y=1251, x=509..513
+x=406, y=666..672
+x=427, y=1752..1776
+x=305, y=899..916
+y=226, x=484..506
+x=341, y=1167..1178
+x=311, y=1640..1650
+x=417, y=1056..1070
+y=1577, x=376..382
+x=347, y=325..334
+x=474, y=373..384
+x=436, y=1851..1854
+x=390, y=1492..1495
+y=1575, x=376..382
+y=66, x=300..302
+x=348, y=255..270
+x=405, y=924..929
+x=366, y=404..425
+y=914, x=367..386
+x=540, y=450..457
+x=308, y=899..916
+x=398, y=1796..1805
+x=417, y=1167..1178
+y=893, x=436..443
+x=415, y=496..504
+x=432, y=1874..1887
+x=304, y=993..1013
+y=292, x=411..413
+y=615, x=435..514
+x=473, y=299..303
+y=589, x=344..347
+x=437, y=529..532
+x=510, y=152..164
+x=354, y=970..982
+y=931, x=494..510
+x=311, y=663..671
+y=1213, x=402..409
+y=1817, x=416..418
+y=1318, x=288..309
+y=292, x=298..325
+x=336, y=1040..1062
+y=653, x=424..426
+x=421, y=27..39
+y=1601, x=388..406
+x=407, y=983..987
+x=498, y=787..798
+x=513, y=1201..1207
+y=901, x=486..506
+y=1545, x=401..423
+x=440, y=579..590
+y=220, x=491..496
+x=446, y=562..571
+x=472, y=1187..1208
+x=386, y=641..650
+y=1646, x=316..321
+y=1270, x=320..324
+x=526, y=1754..1762
+x=433, y=295..307
+y=1763, x=387..406
+x=437, y=1621..1638
+x=409, y=1313..1321
+y=1198, x=435..453
+x=549, y=172..183
+x=543, y=478..491
+x=401, y=1539..1545
+x=373, y=1094..1097
+x=435, y=602..615
+x=503, y=1522..1538
+x=415, y=1795..1805
+x=400, y=886..888
+x=487, y=1282..1310
+y=1774, x=354..379
+y=81, x=501..506
+x=471, y=1450..1453
+y=1821, x=407..424
+x=374, y=641..650
+x=431, y=1307..1312
+x=315, y=1371..1376
+x=481, y=901..921
+x=511, y=853..866
+x=451, y=495..503
+x=296, y=40..47
+y=120, x=493..497
+x=330, y=995..1018
+y=1803, x=299..308
+x=392, y=930..934
+x=490, y=1617..1625
+x=495, y=1566..1570
+y=396, x=541..549
+y=1583, x=314..332
+x=460, y=209..221
+y=335, x=307..324
+y=1291, x=536..538
+y=1060, x=534..537
+y=76, x=534..552
+x=478, y=86..91
+y=384, x=474..493
+x=513, y=732..758
+x=429, y=475..479
+x=333, y=817..827
+x=291, y=908..914
+x=391, y=1031..1032
+x=517, y=1106..1112
+y=1638, x=384..387
+y=1164, x=479..499
+x=470, y=703..723
+x=506, y=474..485
+x=406, y=1590..1601
+x=425, y=603..612
+x=400, y=1694..1703
+x=392, y=248..255
+x=407, y=1793..1802
+x=383, y=21..48
+x=417, y=976..990
+x=527, y=371..374
+y=425, x=355..366
+x=414, y=995..1012
+x=299, y=1801..1803
+x=512, y=763..774
+x=499, y=433..447
+y=100, x=342..370
+x=525, y=1449..1475
+x=390, y=204..231
+x=373, y=1027..1040
+x=336, y=1475..1480
+y=1517, x=397..423
+y=1514, x=526..543
+x=288, y=1187..1195
+x=488, y=114..123
+x=531, y=1868..1873
+y=1535, x=525..528
+x=305, y=10..17
+x=413, y=645..657
+y=971, x=302..311
+x=548, y=738..740
+x=464, y=1208..1230
+x=514, y=909..933
+y=1693, x=298..300
+x=352, y=1834..1836
+x=499, y=737..753
+y=733, x=395..412
+x=414, y=779..788
+x=516, y=908..933
+y=849, x=404..406
+x=521, y=196..215
+x=374, y=900..909
+x=521, y=479..482
+x=356, y=44..58
+x=494, y=858..860
+y=376, x=332..334
+x=501, y=1449..1465
+x=493, y=725..734
+y=1075, x=466..476
+y=672, x=380..406
+x=388, y=1570..1580
+y=1785, x=504..514
+x=536, y=1608..1635
+x=307, y=461..464
+x=386, y=902..914
+y=852, x=397..414
+x=294, y=244..250
+y=158, x=309..311
+x=514, y=1748..1763
+x=502, y=522..535
+x=508, y=1627..1640
+x=359, y=108..120
+x=459, y=1081..1097
+x=295, y=222..225
+y=1517, x=469..492
+x=429, y=616..627
+x=344, y=1476..1480
+x=504, y=7..19
+x=534, y=72..76
+x=325, y=1594..1606
+y=1316, x=462..482
+y=442, x=487..489
+x=337, y=1747..1765
+x=379, y=1755..1774
+x=370, y=597..614
+x=483, y=456..464
+x=385, y=1442..1451
+y=649, x=453..466
+x=372, y=385..399
+x=426, y=1032..1041
+x=426, y=687..689
+x=354, y=1253..1277
+x=376, y=1094..1097
+y=1796, x=377..383
+x=402, y=1854..1864
+x=413, y=338..358
+y=888, x=400..402
+x=484, y=370..381
+x=355, y=166..169
+x=366, y=949..959
+y=1094, x=373..376
+y=815, x=451..465
+y=611, x=468..498
+x=334, y=108..120
+x=480, y=997..1003
+x=401, y=702..716
+x=411, y=1313..1321
+y=758, x=508..513
+y=1769, x=365..370
+x=515, y=1150..1157
+y=1183, x=512..532
+x=479, y=1148..1164
+x=525, y=1627..1640
+y=1033, x=360..364
+y=469, x=478..497
+y=810, x=397..416
+y=941, x=341..348
+y=374, x=450..466
+y=1133, x=389..393
+x=538, y=1268..1269
+y=316, x=532..554
+y=13, x=457..459
+y=413, x=337..339
+x=358, y=236..257
+y=243, x=343..351
+x=370, y=358..360
+x=487, y=431..442
+y=827, x=333..356
+y=1393, x=289..300
+y=358, x=338..344
+y=659, x=335..339
+x=530, y=888..900
+x=314, y=1614..1624
+y=772, x=531..542
+y=1269, x=522..538
+x=414, y=1452..1469
+x=335, y=1151..1159
+y=1769, x=545..548
+x=459, y=1170..1171
+y=1802, x=404..407
+x=461, y=687..703
+y=1274, x=308..330
+x=340, y=1616..1626
+y=68, x=492..512
+x=311, y=968..971
+x=316, y=1637..1646
+x=526, y=557..564
+x=302, y=64..66
+y=723, x=470..472
+y=183, x=483..549
+x=519, y=527..531
+x=543, y=1504..1514
+x=516, y=337..349
+y=1814, x=416..418
+x=523, y=1411..1417
+x=379, y=1553..1563
+x=543, y=1626..1631
+y=598, x=529..531
+y=564, x=307..310
+y=724, x=308..331
+x=338, y=256..270
+x=404, y=1092..1118
+x=382, y=1091..1101
+y=129, x=453..471
+x=446, y=1113..1122
+x=315, y=1425..1435
+y=1282, x=425..450
+x=441, y=1553..1567
+x=288, y=1293..1318
+y=1822, x=304..311
+y=1611, x=298..312
+x=433, y=682..692
+x=364, y=353..363
+x=356, y=264..289
+x=464, y=352..364
+x=307, y=310..335
+y=167, x=459..484
+y=374, x=507..527
+x=339, y=1039..1062
+x=339, y=1342..1352
+y=1143, x=289..296
+x=321, y=1428..1438
+x=411, y=290..292
+x=360, y=1831..1842
+x=404, y=1793..1802
+x=490, y=175..180
+y=668, x=434..437
+x=331, y=714..724
+x=463, y=1474..1483
+x=552, y=72..76
+x=417, y=1830..1844
+x=400, y=977..990
+y=1002, x=515..530
+y=1253, x=320..336
+y=484, x=416..418
+y=967, x=517..533
+y=307, x=433..479
+x=537, y=875..885
+y=608, x=518..540
+x=468, y=1775..1786
+y=1583, x=396..416
+x=330, y=1548..1560
+x=442, y=543..553
+x=347, y=586..589
+y=1087, x=442..444
+x=467, y=1107..1109
+y=398, x=486..488
+x=341, y=989..1002
+x=547, y=35..43
+x=487, y=826..829
+x=457, y=544..553
+x=441, y=715..718
+x=538, y=799..803
+y=690, x=346..351
+y=302, x=485..499
+x=445, y=1821..1831
+x=455, y=928..943
+x=552, y=1831..1853
+y=1049, x=534..537
+x=457, y=1572..1573
+y=1087, x=522..525
+y=46, x=482..499
+x=542, y=751..772
+x=416, y=1814..1817
+y=1197, x=479..486
+x=473, y=749..752
+y=334, x=347..358
+x=415, y=1672..1675
+y=1195, x=404..432
+x=435, y=1826..1828
+y=445, x=427..441
+x=495, y=1238..1262
+x=397, y=818..830
+y=225, x=295..302
+y=1674, x=315..336
+x=315, y=833..841
+x=443, y=886..893
+y=1101, x=511..519
+y=910, x=339..361
+x=302, y=1427..1438
+x=324, y=1267..1270
+x=395, y=1557..1560
+y=1853, x=552..555
+y=1122, x=361..380
+x=494, y=131..143
+x=294, y=1078..1106
+x=377, y=336..342
+x=490, y=1064..1067
+x=529, y=598..604
+y=1295, x=323..339
+x=321, y=1546..1557
+x=332, y=773..778
+x=518, y=1039..1063
+x=488, y=389..398
+y=1786, x=291..310
+y=482, x=452..455
+x=418, y=315..327
+x=435, y=862..881
+y=1880, x=326..330
+x=471, y=1320..1334
+y=1842, x=339..360
+x=470, y=251..265
+x=514, y=76..86
+y=1023, x=534..556
+x=533, y=479..491
+x=490, y=1747..1763
+x=388, y=1589..1601
+x=517, y=772..793
+x=488, y=199..203
+x=528, y=1532..1535
+x=510, y=292..309
+x=308, y=104..108
+y=1157, x=515..521
+y=448, x=376..390
+y=1812, x=533..535
+y=701, x=485..496
+y=732, x=343..354
+x=323, y=1285..1295
+y=1831, x=478..497
+x=387, y=1557..1560
+y=564, x=523..526
+x=393, y=1130..1133
+y=1230, x=464..466
+y=1728, x=487..507
+x=500, y=391..394
+x=310, y=547..564
+x=370, y=1570..1580
+y=893, x=386..408
+y=1469, x=414..425
+x=418, y=1814..1817
+x=320, y=1070..1089
+x=345, y=1783..1787
+x=476, y=1070..1075
+y=1407, x=465..490
+x=442, y=1081..1087
+x=354, y=185..193
+x=404, y=1185..1195
+x=349, y=1340..1347
+x=503, y=1340..1368
+y=231, x=384..390
+x=460, y=1112..1122
+x=462, y=1615..1618
+x=465, y=1405..1407
+x=439, y=321..324
+x=426, y=665..674
+x=538, y=1287..1291
+x=518, y=588..608
+x=319, y=1812..1827
+x=515, y=659..666
+x=339, y=1514..1524
+x=427, y=1072..1092
+x=297, y=461..464
+x=374, y=970..982
+y=1382, x=420..443
+x=443, y=526..537
+x=507, y=1411..1417
+x=424, y=1810..1821
+x=533, y=1575..1601
+x=423, y=1511..1517
+y=374, x=390..397
+x=450, y=1804..1808
+x=368, y=1110..1119
+y=1032, x=391..399
+y=793, x=318..320
+x=430, y=1678..1695
+y=716, x=377..401
+x=383, y=1653..1663
+y=618, x=307..333
+x=480, y=434..447
+x=377, y=819..830
+x=315, y=1660..1674
+x=376, y=1631..1641
+y=506, x=317..326
+x=528, y=1295..1310
+y=503, x=425..451
+x=330, y=560..587
+x=327, y=1342..1355
+x=395, y=1347..1367
+x=437, y=236..259
+x=330, y=1531..1541
+x=421, y=1714..1736
+x=499, y=10..23
+x=308, y=1187..1195
+y=770, x=310..329
+x=526, y=1505..1514
+x=287, y=1707..1718
+x=334, y=351..376
+x=369, y=1818..1837
+x=533, y=557..567
+x=313, y=467..477
+x=441, y=817..844
+x=310, y=1767..1786
+x=541, y=799..803
+x=515, y=1816..1835
+y=1787, x=345..373
+x=544, y=617..637
+y=1742, x=291..396
+y=694, x=312..315
+y=869, x=405..407
+x=504, y=95..105
+y=324, x=439..448
+x=485, y=299..302
+x=310, y=761..770
+y=1626, x=340..383
+x=451, y=1633..1646
+y=1207, x=513..516
+x=369, y=175..201
+x=360, y=1446..1456
+x=421, y=72..99
+x=432, y=909..914
+x=496, y=858..860
+x=478, y=271..280
+y=161, x=303..318
+x=509, y=1566..1570
+x=409, y=263..270
+x=353, y=790..812
+x=406, y=781..792
+x=439, y=1826..1828
+x=523, y=479..482
+x=380, y=665..672
+x=304, y=1820..1822
+x=499, y=298..302
+y=451, x=503..506
+x=523, y=824..827
+y=1290, x=331..333
+x=425, y=1452..1469
+x=320, y=40..47
+y=1092, x=427..450
+x=400, y=925..938
+x=354, y=1834..1836
+x=486, y=199..203
+x=445, y=926..949
+x=312, y=1591..1611
+y=1208, x=472..494
+y=874, x=516..526
+x=339, y=1361..1372
+y=47, x=296..320
+y=1080, x=374..393
+x=302, y=968..971
+x=296, y=1117..1143
+y=1808, x=447..450
+x=551, y=737..740
+x=416, y=799..810
+x=442, y=804..810
+y=358, x=413..437
+y=65, x=409..425
+y=1089, x=320..337
+x=484, y=1475..1483
+x=383, y=1617..1626
+y=885, x=532..537
+y=532, x=435..437
+x=444, y=1081..1087
+y=1259, x=509..513
+x=524, y=449..457
+x=548, y=1769..1775
+y=614, x=370..386
+x=337, y=1070..1089
+y=812, x=353..374
+x=397, y=352..374
+y=674, x=426..444
+y=949, x=445..461
+x=536, y=1861..1880
+x=288, y=386..411
+x=519, y=1098..1101
+x=298, y=265..292
+x=365, y=1769..1771
+y=535, x=450..502
+x=339, y=1423..1445
+x=482, y=1314..1316
+x=377, y=1426..1437
+x=372, y=1261..1263
+x=316, y=996..1018
+x=473, y=1598..1604
+x=409, y=1092..1118
+x=385, y=512..533
+y=1826, x=435..439
+y=1239, x=376..383
+x=497, y=1825..1831
+y=447, x=480..499
+y=1860, x=409..412
+y=1625, x=465..490
+y=612, x=425..427
+y=1020, x=373..400
+y=1047, x=314..323
+y=1326, x=398..417
+y=841, x=315..327
+y=143, x=494..538
+y=1641, x=376..394
+y=1567, x=436..441
+y=406, x=410..435
+y=1500, x=381..383
+y=1067, x=484..490
+y=1417, x=507..523
+x=503, y=443..451
+x=429, y=920..947
+y=102, x=513..517
+x=333, y=608..618
+y=713, x=412..428
+x=533, y=717..722
+x=359, y=1468..1477
+y=303, x=471..473
+x=425, y=782..792
+y=788, x=467..473
+y=86, x=495..514
+y=1240, x=480..483
+x=544, y=1332..1353
+x=406, y=765..774
+x=469, y=1449..1453
+y=270, x=385..409
+x=490, y=30..41
+x=354, y=715..732
+x=324, y=559..587
+x=503, y=291..309
+y=454, x=465..472
+y=1646, x=451..454
+y=1331, x=435..445
+x=380, y=1112..1122
+x=346, y=402..419
+x=505, y=62..64
+x=525, y=1082..1087
+x=508, y=733..758
+x=488, y=1151..1157
+y=1159, x=309..335
+x=489, y=725..734
+x=450, y=623..635
+y=1660, x=394..402
+x=482, y=32..46
+x=419, y=1751..1776
+y=1109, x=451..467
+x=483, y=1754..1777
+y=411, x=288..292
+x=424, y=480..490
+x=506, y=1522..1538
+x=501, y=953..975
+x=300, y=1666..1693
+x=500, y=1429..1436
+x=494, y=1188..1208
+y=408, x=337..339
+y=1736, x=330..341
+x=303, y=134..161
+x=540, y=1862..1880
+x=516, y=1866..1879
+x=528, y=1869..1873
+x=524, y=414..423
+y=604, x=529..531
+x=402, y=1208..1213
+x=466, y=1071..1075
+x=442, y=1616..1618
+x=521, y=1867..1879
+y=778, x=320..332
+x=379, y=1245..1273
+x=330, y=1222..1231
+x=524, y=1731..1733
+x=459, y=146..167
+x=306, y=432..441
+x=331, y=1318..1329
+y=1835, x=515..528
+x=507, y=1726..1728
+x=479, y=391..401
+y=962, x=440..450
+y=1119, x=368..371
+y=685, x=373..377
+x=379, y=395..403
+x=506, y=443..451
+x=377, y=1658..1663
+x=549, y=1376..1383
+y=1714, x=389..393
+y=1208, x=402..409
+x=300, y=1366..1393
+x=327, y=1358..1369
+x=301, y=885..894
+x=453, y=623..649
+x=424, y=643..653
+x=333, y=427..444
+x=499, y=1148..1164
+x=481, y=710..719
+x=532, y=875..885
+y=1635, x=536..556
+y=43, x=542..547
+x=323, y=1028..1047
+x=295, y=470..486
+y=928, x=453..455
+x=407, y=859..869
+x=330, y=1382..1396
+x=330, y=1666..1671
+y=1407, x=354..357
+x=342, y=1189..1204
+x=407, y=186..210
+x=429, y=581..593
+x=295, y=632..655
+y=798, x=498..512
+x=469, y=546..559
+y=257, x=358..384
+y=860, x=494..496
+x=386, y=463..490
+x=501, y=73..81
+x=491, y=220..223
+x=300, y=64..66
+x=496, y=675..701
+x=297, y=835..844
+y=844, x=430..441
+y=774, x=389..406
+y=345, x=479..507
+x=406, y=513..533
+y=61, x=434..444
+x=339, y=907..910
+y=479, x=429..447
+x=467, y=1133..1160
+y=100, x=316..337
+x=511, y=845..848
+x=366, y=284..287
+x=335, y=1796..1806
+x=351, y=751..772
+y=23, x=499..516
+x=373, y=1010..1020
+x=517, y=889..900
+x=504, y=113..123
+y=657, x=413..433
+x=370, y=1171..1175
+x=337, y=1008..1012
+y=1506, x=339..357
+x=535, y=1298..1304
+y=1524, x=320..339
+x=418, y=484..487
+x=528, y=1335..1345
+x=386, y=884..893
+y=710, x=393..395
+x=412, y=1852..1860
+x=445, y=1169..1171
+x=537, y=1049..1060
+y=771, x=395..400
+y=810, x=439..442
+x=394, y=1656..1660
+x=386, y=596..614
+y=206, x=473..494
+x=556, y=997..1023
+x=448, y=321..324
+x=355, y=405..425
+x=467, y=764..788
+y=1699, x=304..351
+x=399, y=1030..1032
+x=396, y=1202..1216
+x=501, y=1598..1604
+x=401, y=1055..1070
+x=512, y=786..798
+x=453, y=910..914
+x=327, y=1639..1650
+y=1638, x=430..437
+x=521, y=1150..1157
+x=378, y=925..938
+x=339, y=1321..1334
+x=397, y=1512..1517
+x=362, y=1446..1456
+x=444, y=620..632
+y=593, x=429..446
+y=457, x=337..350
+x=292, y=387..411
+x=389, y=283..287
+y=1160, x=351..391
+x=301, y=632..655
+x=321, y=1403..1417
+x=330, y=1736..1739
+x=542, y=35..43
+x=549, y=341..364
+x=488, y=882..886
+x=301, y=1307..1313
+x=435, y=1327..1331
+x=466, y=371..374
+x=363, y=1403..1417
+y=1765, x=314..337
+y=479, x=521..523
+y=1736, x=421..428
+x=337, y=444..457
+x=351, y=218..243
+x=409, y=1208..1213
+x=526, y=867..874
+x=358, y=831..837
+x=542, y=248..258
+y=1262, x=495..519
+y=934, x=385..392
+x=486, y=274..284
+y=1178, x=341..417
+x=555, y=1830..1853
+x=389, y=1711..1714
+x=479, y=499..513
+y=978, x=359..368
+x=552, y=1229..1240
+x=482, y=411..422
+x=536, y=272..273
+y=837, x=358..363
+y=1806, x=320..335
+x=513, y=100..102
+y=1674, x=340..348
+y=722, x=524..533
+y=1477, x=357..359
+y=1090, x=470..472
+x=506, y=890..901
+x=352, y=1426..1437
+x=358, y=263..289
+x=527, y=1229..1240
+y=1436, x=500..519
+y=164, x=492..510
+y=886, x=482..488
+x=364, y=1025..1033
+y=1345, x=528..534
+x=332, y=352..376
+x=308, y=494..495
+x=519, y=1239..1262
+y=659, x=375..393
+x=530, y=995..1002
+x=348, y=1471..1484
+x=496, y=1340..1368
+x=465, y=1134..1160
+y=123, x=488..504
+x=532, y=1134..1150
+x=419, y=697..708
+x=549, y=132..155
+y=255, x=392..396
+x=385, y=1348..1369
+x=555, y=1765..1778
+x=382, y=1575..1577
+x=339, y=1286..1295
+x=472, y=444..454
+y=259, x=437..441
+x=524, y=717..722
+x=300, y=920..930
+x=408, y=480..490
+x=325, y=1568..1579
+y=1106, x=294..302
+x=385, y=86..101
+x=326, y=1666..1671
+x=516, y=1528..1538
+y=349, x=516..531
+x=513, y=1251..1259
+x=400, y=1009..1020
+x=528, y=1816..1835
+y=70, x=453..467
+x=385, y=816..826
+y=1355, x=300..327
+y=1778, x=530..555
+y=671, x=434..437
+x=409, y=1852..1860
+x=541, y=982..987
+x=352, y=853..855
+y=1463, x=517..519
+y=1606, x=325..346
+x=389, y=741..745
+y=1622, x=354..363
+y=1150, x=532..546
+x=415, y=471..476
+x=450, y=522..535
+x=534, y=413..423
+x=313, y=1425..1435
+y=1243, x=423..443
+x=471, y=117..129
+x=535, y=1795..1812
+x=304, y=1686..1699
+y=1859, x=428..443
+x=301, y=834..844
+y=587, x=324..330
+y=1273, x=289..291
+y=1631, x=541..543
+y=1563, x=379..401
+x=483, y=1213..1240
+y=1831, x=428..445
+y=495, x=308..322
+x=330, y=1262..1274
+y=1310, x=479..487
+x=315, y=319..328
+x=393, y=1013..1016
+x=498, y=998..1003
+x=470, y=273..284
+x=503, y=390..394
+x=484, y=737..753
+y=319, x=315..318
+x=355, y=1303..1313
+x=295, y=1704..1713
+y=1097, x=459..481
+x=289, y=1117..1143
+x=507, y=844..848
+y=1805, x=398..415
+x=527, y=1594..1597
+y=490, x=469..491
+x=459, y=13..16
+x=351, y=1008..1012
+x=531, y=751..772
+x=446, y=582..593
+x=531, y=249..258
+x=412, y=1416..1423
+x=541, y=556..567
+x=461, y=925..949
+x=512, y=1176..1183
+y=827, x=523..541
+y=987, x=524..541
+x=361, y=908..910
+y=1601, x=509..533
+y=708, x=419..421
+x=533, y=1795..1812
+y=1656, x=394..402
+x=408, y=883..893
+x=416, y=122..143
+x=486, y=389..398
+y=1367, x=395..397
+x=354, y=1407..1409
+y=627, x=404..429
+x=314, y=1748..1765
+y=1626, x=541..543
+y=1435, x=313..315
+x=357, y=185..193
+y=193, x=354..357
+x=425, y=495..503
+x=389, y=1130..1133
+y=280, x=478..480
+x=534, y=1335..1345
+x=428, y=399..402
+x=394, y=1445..1454
+y=108, x=291..308
+y=1211, x=506..522
+x=289, y=1366..1393
+x=448, y=251..265
+x=423, y=1237..1243
+x=385, y=990..1002
+y=1538, x=503..506
+y=938, x=378..400
+x=373, y=668..685
+x=377, y=1535..1538
+y=1118, x=404..409
+x=324, y=311..335
+x=401, y=1552..1563
+x=332, y=1511..1520
+x=502, y=62..64
+x=490, y=1406..1407
+x=346, y=1340..1347
+x=492, y=316..327
+y=1352, x=339..355
+y=1016, x=391..393
+x=356, y=818..827
+x=312, y=692..694
+x=395, y=186..210
+x=492, y=1542..1543
+x=298, y=1592..1611
+x=299, y=908..914
+y=650, x=374..386
+y=1376, x=307..315
+x=500, y=1079..1089
+x=473, y=763..788
+x=369, y=1261..1263
+y=894, x=301..317
+x=343, y=714..732
+x=410, y=396..406
+y=273, x=536..538
+x=321, y=845..860
+x=389, y=764..774
+x=531, y=195..215
+x=461, y=841..859
+y=537, x=415..443
+x=308, y=714..724
+x=500, y=150..161
+x=522, y=1198..1211
+y=990, x=400..417
+x=412, y=72..99
+x=480, y=1753..1777
+y=1018, x=316..330
+y=1713, x=295..297
+y=1573, x=457..477
+y=635, x=433..450
+x=438, y=769..774
+x=320, y=1797..1806
+x=375, y=20..48
+x=504, y=1448..1475
+x=308, y=1261..1274
+x=496, y=895..897
+x=417, y=1310..1326
+x=430, y=1622..1638
+x=368, y=1658..1663
+y=1423, x=399..412
+x=299, y=432..441
+y=881, x=435..455
+y=1671, x=326..330
+x=443, y=1847..1859
+x=470, y=748..752
+y=655, x=498..505
+y=342, x=377..405
+y=265, x=448..470
+x=479, y=1283..1310
+x=385, y=1049..1059
+x=538, y=131..143
+x=434, y=3..17
+x=531, y=338..349
+y=1216, x=396..417
+y=1041, x=426..447
+y=1059, x=367..385
+y=120, x=334..359
+y=1089, x=500..509
+x=384, y=235..257
+x=321, y=1637..1646
+x=484, y=1063..1067
+y=22, x=450..465
+y=58, x=330..356
+y=862, x=343..360
+x=376, y=1238..1239
+x=471, y=299..303
+x=554, y=132..155
+y=1368, x=496..503
+x=385, y=930..934
+x=313, y=283..287
+x=492, y=56..68
+y=1277, x=343..354
+x=370, y=1769..1771
+x=498, y=837..843
+x=300, y=1342..1355
+x=457, y=13..16
+x=381, y=1127..1139
+x=496, y=175..180
+y=402, x=419..428
+x=522, y=1267..1269
+x=400, y=1774..1787
+x=328, y=305..314
+x=412, y=721..733
+x=427, y=424..445
+x=416, y=484..487
+x=369, y=542..549
+x=450, y=710..732
+y=1570, x=495..509
+y=921, x=477..481
+y=1609, x=415..421
+x=320, y=1242..1253
+x=397, y=1587..1596
+y=1012, x=337..351
+x=545, y=1769..1775
+y=1451, x=382..385
+y=1695, x=421..430
+x=507, y=1382..1402
+x=465, y=6..22
+x=306, y=664..671
+x=534, y=1381..1402
+y=732, x=433..450
+x=521, y=1505..1516
+y=1685, x=515..524
+y=486, x=295..305
+x=490, y=1151..1157
+x=533, y=1731..1733