Taddeus Kroes 4 жил өмнө
parent
commit
63f77cda03
2 өөрчлөгдсөн 501 нэмэгдсэн , 0 устгасан
  1. 81 0
      2021/22_reactor.py
  2. 420 0
      2021/input/22

+ 81 - 0
2021/22_reactor.py

@@ -0,0 +1,81 @@
+#!/usr/bin/env python3
+import sys
+import re
+from itertools import starmap
+
+def clamp(n, nmin, nmax):
+    return max(min(n, nmax), nmin)
+
+def split(start, end, point):
+    sx, sy, sz = start
+    ex, ey, ez = end
+    px, py, pz = point
+    yield (sx, sy, sz), (px, py, pz)
+    yield (px, sy, sz), (ex, py, pz)
+    yield (sx, py, sz), (px, ey, pz)
+    yield (px, py, sz), (ex, ey, pz)
+    yield (sx, sy, pz), (px, py, ez)
+    yield (px, sy, pz), (ex, py, ez)
+    yield (sx, py, pz), (px, ey, ez)
+    yield (px, py, pz), (ex, ey, ez)
+
+class Cuboid:
+    def __init__(self, on, start, end):
+        self.on = on
+        self.start = start
+        self.end = end
+        self.children = []
+
+    def split(self, point):
+        for start, end in split(self.start, self.end, point):
+            cuboid = Cuboid(self.on, start, end)
+            if cuboid.size():
+                self.children.append(cuboid)
+
+    def toggle(self, cuboid):
+        if cuboid.size():
+            if self.children:
+                for child in self.children:
+                    child.toggle(cuboid.clamp(child))
+            elif cuboid.on != self.on:
+                if cuboid.start == self.start:
+                    if cuboid.end == self.end:
+                        self.on = cuboid.on
+                    else:
+                        self.split(cuboid.end)
+                        self.children[0].on = cuboid.on
+                else:
+                    self.split(cuboid.start)
+                    self.children[-1].toggle(cuboid)
+
+    def size(self):
+        dx, dy, dz = (r - l for l, r in zip(self.start, self.end))
+        return dx * dy * dz
+
+    def count_on(self):
+        if self.children:
+            return sum(child.count_on() for child in self.children)
+        return self.on * self.size()
+
+    def clamp(self, cuboid):
+        start = tuple(starmap(clamp, zip(self.start, cuboid.start, cuboid.end)))
+        end = tuple(starmap(clamp, zip(self.end, cuboid.start, cuboid.end)))
+        return Cuboid(self.on, start, end)
+
+def parse(line):
+    xmin, xmax, ymin, ymax, zmin, zmax = map(int, re.findall(r'-?\d+', line))
+    start = xmin, ymin, zmin
+    end = xmax + 1, ymax + 1, zmax + 1
+    return Cuboid(line.startswith('on'), start, end)
+
+def reboot(instructions, reactor):
+    for cuboid in instructions:
+        reactor.toggle(cuboid.clamp(reactor))
+    return reactor.count_on()
+
+def stretch(dist):
+    return Cuboid(False, (-dist, -dist, -dist), (dist + 2, dist + 2, dist + 2))
+
+instructions = list(map(parse, sys.stdin))
+print(reboot(instructions, stretch(50)))
+print(reboot(instructions, stretch(100000)))

+ 420 - 0
2021/input/22

@@ -0,0 +1,420 @@
+on x=0..44,y=-37..12,z=-13..31
+on x=-35..19,y=-9..37,z=-14..39
+on x=-34..20,y=-25..25,z=-38..7
+on x=-29..19,y=-43..9,z=-18..32
+on x=-34..20,y=-3..47,z=-45..6
+on x=-46..2,y=-25..25,z=-1..47
+on x=-41..4,y=-15..29,z=-14..36
+on x=-49..2,y=-16..35,z=-15..33
+on x=-45..-1,y=-9..45,z=-12..37
+on x=-49..-4,y=-44..7,z=-41..11
+off x=-45..-31,y=-9..3,z=-30..-16
+on x=-38..14,y=-39..8,z=-42..10
+off x=-19..-3,y=-21..-12,z=5..23
+on x=-35..13,y=-34..16,z=-25..29
+off x=-46..-28,y=-46..-36,z=-42..-31
+on x=-19..28,y=-47..-1,z=-35..12
+off x=19..31,y=-22..-7,z=-30..-11
+on x=-13..36,y=-9..41,z=-12..36
+off x=-31..-20,y=-41..-32,z=-38..-26
+on x=-31..14,y=-37..9,z=-45..4
+on x=-73938..-62196,y=3443..9034,z=-32612..-17021
+on x=11497..31460,y=60006..90796,z=-22240..13121
+on x=-84785..-70989,y=-24232..2943,z=1355..33300
+on x=-62304..-41674,y=20801..37685,z=-72029..-48578
+on x=27091..35477,y=65585..68640,z=27496..41807
+on x=-79925..-53933,y=15754..37674,z=-58855..-21255
+on x=53397..86735,y=-15458..603,z=16592..39240
+on x=6503..22046,y=-79095..-44818,z=39219..61123
+on x=-14738..-9978,y=-32309..-9282,z=-84117..-56198
+on x=-53303..-15260,y=36013..49687,z=42146..60625
+on x=28944..40115,y=27284..65156,z=34352..64375
+on x=12443..32462,y=-86320..-72957,z=-37302..-15930
+on x=-57221..-28925,y=-68138..-58250,z=-2679..28821
+on x=-39922..-8679,y=42239..55557,z=-62174..-52300
+on x=34028..54175,y=-46339..-32965,z=-63655..-39430
+on x=-20575..-3002,y=27778..63544,z=45955..80786
+on x=-26140..2740,y=-12717..8737,z=70012..86892
+on x=-51968..-40374,y=59056..68995,z=-25615..-3003
+on x=11759..36752,y=-62045..-42506,z=49173..70791
+on x=-52562..-41986,y=-68593..-51456,z=19710..45754
+on x=-23912..-8022,y=38764..68555,z=54556..62383
+on x=4373..19117,y=16662..41406,z=73200..83056
+on x=-26013..-833,y=-78827..-72828,z=9380..29364
+on x=-63684..-51266,y=52138..71028,z=-15496..3842
+on x=-33014..-10207,y=58579..64652,z=43614..53419
+on x=8066..34947,y=32818..55358,z=45952..64732
+on x=-70581..-55165,y=-55271..-30839,z=25165..42692
+on x=-23902..-12353,y=-90393..-77251,z=-19310..10171
+on x=32768..71484,y=-24096..-13199,z=42562..76124
+on x=46389..53215,y=42273..64944,z=7143..40135
+on x=-35860..-13385,y=65032..80640,z=-35963..-19771
+on x=-26770..-3,y=-67922..-51649,z=-67974..-37381
+on x=-14241..11850,y=-72870..-61462,z=30807..44282
+on x=-7280..21977,y=57242..68674,z=-64077..-40925
+on x=-28425..-9059,y=8125..37879,z=-84646..-55484
+on x=-53415..-38450,y=47254..61262,z=-27590..-3805
+on x=3361..28225,y=36236..58534,z=-65393..-46744
+on x=1062..32676,y=3058..17189,z=75597..82346
+on x=-79427..-64097,y=23511..47998,z=-300..12658
+on x=-70342..-40984,y=50005..66313,z=6310..30717
+on x=26527..50913,y=-38996..-25571,z=39959..60406
+on x=7914..28349,y=-21864..6473,z=62145..79705
+on x=-62345..-39168,y=-32859..-16408,z=53937..76587
+on x=-9442..1797,y=-70597..-47418,z=51948..60676
+on x=4510..25673,y=63310..85193,z=-23510..8871
+on x=35475..56176,y=-63029..-45748,z=-50077..-25512
+on x=24276..47633,y=65907..75455,z=-38311..-5365
+on x=10694..41920,y=-25618..-4817,z=-81536..-62494
+on x=23580..47161,y=39642..70350,z=-57206..-51762
+on x=34541..61418,y=-54870..-51639,z=-52737..-13574
+on x=26573..50838,y=49347..67491,z=-40181..-17993
+on x=19363..44106,y=49825..57796,z=-53962..-44680
+on x=48779..72304,y=-51520..-39288,z=-17798..-1599
+on x=14387..29768,y=66309..88343,z=-30725..1802
+on x=-26898..-7113,y=34148..60236,z=-68569..-47817
+on x=-1917..14866,y=73963..87022,z=19706..47877
+on x=-21652..-7189,y=49895..66571,z=-61008..-49711
+on x=-75172..-56722,y=-52100..-13789,z=19540..40904
+on x=56704..59968,y=40272..61077,z=13755..18186
+on x=55675..75691,y=20184..42076,z=-33878..-10387
+on x=3566..19806,y=7871..15345,z=-93592..-69728
+on x=-51189..-30567,y=40275..60611,z=29996..53519
+on x=62519..80545,y=-36946..-14053,z=32578..43508
+on x=65634..89797,y=17584..33119,z=3906..27578
+on x=52683..79620,y=7888..28347,z=14649..40568
+on x=-76157..-40131,y=-61400..-26121,z=29030..31914
+on x=-19073..6442,y=74140..85840,z=-7965..13782
+on x=-89406..-52575,y=-12811..5697,z=17754..37860
+on x=-45654..-24432,y=-79743..-49772,z=-29644..-15792
+on x=-5009..23177,y=-4302..22196,z=-91354..-68923
+on x=-34584..-5708,y=29351..54855,z=-69343..-61885
+on x=-34603..-18001,y=65897..84005,z=-35266..-27380
+on x=-24889..-9794,y=-69048..-49632,z=36749..65195
+on x=-22344..-11714,y=-45174..-35957,z=-81344..-52972
+on x=-48631..-34450,y=412..18781,z=53477..70484
+on x=-1799..34901,y=-73282..-59729,z=-54284..-28519
+on x=-21485..-3584,y=16255..33723,z=-75895..-65963
+on x=10135..20049,y=69122..77086,z=-39260..-17702
+on x=12910..40582,y=30936..41952,z=48909..81279
+on x=56997..79483,y=29718..45554,z=8035..44163
+on x=-52366..-41425,y=37823..58129,z=-37751..-32230
+on x=21004..51355,y=-44437..-30064,z=49722..68887
+on x=-85331..-54480,y=-20771..-2512,z=22960..49404
+on x=-70539..-52490,y=-26388..-8187,z=33552..56666
+on x=11851..24219,y=-88893..-70098,z=2688..15649
+on x=-14791..5658,y=36510..61562,z=53931..59567
+on x=41468..52470,y=-68916..-57166,z=-21789..3326
+on x=-59513..-32881,y=-61426..-44593,z=18648..48876
+on x=-42142..-12784,y=-53336..-22224,z=62296..79634
+on x=-33727..-13553,y=-76501..-56280,z=-36443..-4322
+on x=-3920..24834,y=57885..75394,z=28969..43307
+on x=-8530..-6505,y=-54496..-32426,z=58343..76441
+on x=-78097..-61123,y=6293..27700,z=37893..60044
+on x=-76734..-65330,y=-22416..0,z=-22994..3567
+on x=-46396..-22834,y=63243..73190,z=-57144..-26646
+on x=-43426..-12695,y=-62578..-42258,z=43321..63267
+on x=4677..27498,y=-89246..-66336,z=-18905..-3997
+on x=40910..49813,y=45217..81475,z=-3141..7830
+on x=-74409..-40559,y=-2321..17962,z=-63223..-47045
+on x=2537..30799,y=60276..86279,z=-19505..-1824
+on x=-21544..-1575,y=5568..13346,z=64967..91450
+on x=-67372..-53668,y=1945..30432,z=-57195..-27814
+on x=-18118..17642,y=-72676..-51134,z=20817..59152
+on x=53568..77802,y=-39415..-14908,z=7369..23590
+on x=-22300..2878,y=-87012..-65923,z=-29751..-24137
+on x=18845..46745,y=28992..56855,z=-66504..-41258
+on x=38363..55824,y=15284..43241,z=-64158..-51010
+on x=-23773..-2486,y=68041..73206,z=28552..46082
+on x=9380..34180,y=-28017..-6258,z=64054..90013
+on x=69826..81272,y=-33905..-27266,z=-12926..-6283
+on x=27658..38035,y=-48661..-18004,z=58898..71087
+on x=33965..58857,y=2566..27106,z=-72742..-58963
+on x=-50492..-23728,y=-87688..-60261,z=-2227..7559
+on x=55258..75038,y=-32099..-10904,z=-50389..-28755
+on x=-37244..-19587,y=56024..64469,z=43035..58612
+on x=30072..55168,y=-52337..-30911,z=-61347..-41809
+on x=-54129..-34374,y=-62450..-36489,z=-42853..-19833
+on x=32436..57171,y=34091..48922,z=-57968..-34579
+on x=-11825..7150,y=72739..86411,z=-36372..-8836
+on x=-58911..-49067,y=2593..22976,z=-62295..-38715
+on x=-29080..-10411,y=-86673..-74865,z=-7785..-448
+on x=-73676..-57897,y=14203..53151,z=15251..38357
+on x=34035..65812,y=-17671..-2877,z=40496..77442
+on x=-66126..-56271,y=26303..53565,z=29577..49089
+on x=39836..57094,y=50033..77838,z=-20826..3076
+on x=-74133..-50777,y=4505..21474,z=44378..57660
+on x=66207..96154,y=-4888..28042,z=-34131..-12241
+on x=74285..90140,y=-17152..-2386,z=-5992..9738
+on x=31287..58348,y=-56430..-23132,z=-58113..-44360
+on x=-53180..-48540,y=-70702..-44551,z=-9855..9719
+on x=-53178..-34756,y=-74114..-58908,z=-11800..6319
+on x=-78100..-71126,y=-49548..-31625,z=-7545..17149
+on x=-21085..2430,y=35378..51904,z=65204..75349
+on x=21014..50514,y=-47953..-25311,z=59510..82024
+on x=6393..31326,y=-88473..-66480,z=21760..34337
+on x=72652..83357,y=-4889..16181,z=-30793..-19165
+on x=-40791..-22636,y=33003..65858,z=-71154..-44429
+on x=11026..21498,y=-67290..-42567,z=54571..62386
+on x=-95808..-67023,y=-25049..-13419,z=-7732..12529
+on x=-88167..-72851,y=-33591..-19134,z=-24628..-3083
+on x=47382..65485,y=10408..39921,z=-68216..-48655
+on x=-81776..-50333,y=42879..60779,z=-20533..5306
+on x=-25769..-97,y=-79759..-61105,z=8085..14138
+on x=-43919..-10690,y=-37052..-15583,z=-73654..-66674
+on x=525..12657,y=-98161..-64144,z=-1911..20619
+on x=-43619..-22273,y=47737..67412,z=-44224..-22789
+on x=-29099..-19470,y=-79037..-69942,z=-32317..-2647
+on x=-66543..-29786,y=-33242..-16379,z=-76880..-43808
+on x=42404..65528,y=-78680..-49080,z=-6712..11522
+on x=-25770..-19105,y=-94414..-69036,z=-3490..7773
+on x=68189..79601,y=-1131..8764,z=12347..29033
+on x=-48917..-43919,y=-44293..-29674,z=-54200..-49960
+on x=9961..37871,y=39806..55016,z=-58429..-56252
+on x=-32593..-5241,y=64202..78364,z=-51689..-40110
+on x=-96479..-62354,y=-34214..578,z=-24244..-12864
+on x=-59157..-36954,y=24993..32006,z=52057..59065
+on x=-22462..630,y=-9833..1390,z=74108..95396
+on x=-36548..-21908,y=70211..85387,z=11820..26815
+on x=-89081..-63715,y=-2482..23117,z=-41800..-25935
+on x=-72708..-63036,y=-42138..-28539,z=7486..22712
+on x=62713..80672,y=-54465..-43539,z=-22258..5327
+on x=19959..28851,y=-40197..-5309,z=70688..86899
+on x=7044..32272,y=-40188..-32289,z=57685..70198
+on x=-43841..-17285,y=-18994..2223,z=-79996..-67556
+on x=-60235..-46056,y=532..37445,z=-65044..-40449
+on x=-36188..-15246,y=-66229..-41543,z=38918..65946
+on x=-71692..-59176,y=-31059..-27660,z=26069..36557
+on x=-24779..294,y=-65577..-51575,z=-52066..-38101
+on x=-39935..-7955,y=-79862..-56020,z=-55069..-26152
+on x=-92043..-77502,y=-6569..21479,z=-23927..-3008
+on x=-73862..-47548,y=38520..55909,z=21972..38843
+on x=39462..74784,y=-5839..27894,z=50556..59146
+on x=-51715..-28101,y=-70324..-45292,z=-45603..-39471
+on x=18845..48682,y=-51292..-41527,z=41912..67999
+on x=-44382..-18806,y=27568..49266,z=-71666..-59690
+on x=-97641..-74210,y=-28866..2806,z=-27057..-8152
+on x=-11841..572,y=56132..82622,z=31034..50904
+on x=-29495..-19457,y=-59051..-35103,z=58087..66872
+on x=811..24872,y=-87948..-75212,z=-12758..-4275
+on x=-25888..-5807,y=37564..47001,z=-86767..-65224
+on x=-75562..-55939,y=-44534..-39348,z=5807..42611
+on x=69936..97740,y=-11756..12520,z=9374..13991
+on x=51235..74232,y=46169..71391,z=-40400..-5253
+on x=44995..66871,y=-79985..-48991,z=-15787..-9827
+on x=26967..44788,y=-1751..10928,z=57633..82043
+on x=-36460..-20618,y=-30511..2433,z=-87649..-67443
+on x=-28199..-8118,y=36299..58314,z=60586..85798
+on x=-66982..-63091,y=-19425..-13187,z=-62162..-29737
+on x=33418..63745,y=41581..66945,z=8366..11543
+on x=-62696..-26186,y=-81384..-49937,z=2735..26366
+on x=27922..63045,y=-66435..-48207,z=-17876..-10340
+on x=-42177..-18710,y=52693..55130,z=-57647..-47020
+on x=53857..72251,y=-51889..-32816,z=-1257..32096
+on x=-75454..-59621,y=-56491..-45442,z=-28259..-4606
+on x=-53275..-40273,y=34082..55816,z=-50144..-26852
+on x=3915..21179,y=-44233..-35392,z=64552..79384
+on x=-15302..18484,y=49737..78962,z=34642..51471
+on x=8308..24843,y=-75205..-51493,z=-40488..-21696
+on x=15063..36959,y=57762..86629,z=-33356..-26277
+on x=-18984..8905,y=-24420..5728,z=63544..84671
+on x=7979..27810,y=-42234..-24835,z=-84718..-54113
+off x=-55430..-28648,y=-31879..-13453,z=-77100..-59398
+off x=70524..86136,y=27673..38206,z=-12175..237
+off x=-63375..-59498,y=30918..65825,z=-16827..20111
+off x=29037..66605,y=-7920..18111,z=-74606..-54755
+on x=21848..56114,y=43499..67188,z=27107..53538
+off x=-39426..-13005,y=63654..75939,z=-43663..-12483
+off x=-16447..3523,y=-7518..24293,z=61149..89281
+off x=64979..94037,y=14716..41210,z=-12084..16973
+off x=49318..65422,y=-20704..-2975,z=-63925..-54297
+on x=-5204..4585,y=62053..87351,z=8260..37526
+off x=-10791..10028,y=2956..15927,z=74850..80540
+off x=-53179..-23891,y=50184..70815,z=-48391..-32318
+on x=38180..63428,y=-62763..-55458,z=7225..24015
+on x=14808..40771,y=-13538..10038,z=-83824..-73922
+off x=51260..63929,y=-65194..-41886,z=-39094..-4267
+on x=8052..24075,y=-84451..-61988,z=-21344..-5407
+on x=-56238..-35400,y=68435..83668,z=-4953..2752
+off x=-14964..-997,y=-87721..-72883,z=-10901..10271
+on x=66724..94179,y=-15051..3145,z=-12436..24099
+on x=-87281..-71205,y=1290..19702,z=-32036..-2263
+off x=-25654..6803,y=-48994..-31519,z=-83726..-52780
+off x=-226..25795,y=57068..85214,z=28454..49326
+off x=-48098..-23356,y=45668..51941,z=-65212..-52581
+on x=18892..43729,y=-10415..8756,z=62449..91348
+off x=-9718..13668,y=25930..42227,z=49237..83846
+on x=2623..24619,y=-80484..-56629,z=7207..44321
+on x=-1727..26084,y=-35920..-3955,z=-85507..-68998
+off x=22044..50997,y=-28977..-11281,z=66838..76162
+off x=-58300..-47709,y=-71414..-54365,z=-27328..-7994
+on x=46828..66206,y=22597..46096,z=-48013..-29549
+on x=-40771..-3159,y=-88635..-63128,z=-20641..11952
+on x=44383..68616,y=48978..72474,z=12856..36009
+on x=-76330..-53400,y=-73376..-37371,z=-3733..16491
+on x=61195..87029,y=26026..39149,z=-6969..16414
+off x=-23460..-9984,y=3483..24901,z=73913..89619
+off x=55504..66010,y=5591..21247,z=29554..60174
+on x=49705..85963,y=24186..42287,z=-50469..-22882
+on x=53899..62111,y=47267..56256,z=-3187..11190
+off x=56950..93480,y=-48143..-21838,z=9086..13745
+on x=-29809..3924,y=46636..69475,z=-58955..-36969
+off x=9629..24446,y=-77677..-57560,z=30789..57741
+off x=-14942..5897,y=67283..85472,z=-1296..12055
+off x=17700..34268,y=-3515..5552,z=-82497..-70723
+off x=-19934..16544,y=65957..82365,z=-15743..-4924
+on x=-38964..-25098,y=36991..54382,z=50399..79334
+off x=47678..70611,y=-65138..-43640,z=3560..33286
+on x=-30024..7675,y=31455..53480,z=49286..78924
+on x=-5676..20571,y=-70400..-40522,z=-79115..-54097
+on x=31277..38456,y=-20206..10415,z=-79415..-66546
+off x=-4825..-454,y=21757..48167,z=57643..71555
+on x=-25274..-3312,y=37706..54577,z=61928..80815
+off x=-45031..-38494,y=10596..33451,z=49580..80967
+off x=32155..42503,y=-70854..-64253,z=-13756..3446
+off x=51920..83623,y=17586..50069,z=5711..40695
+off x=54242..67587,y=-2774..33255,z=38162..55367
+off x=58752..74228,y=25212..49458,z=-22886..8331
+off x=-33213..-13578,y=-3574..12371,z=72787..79131
+off x=-74264..-49638,y=55266..71893,z=-3241..19860
+off x=-22241..10364,y=-37471..-14850,z=-78546..-61413
+off x=-64174..-36763,y=19282..35311,z=-69788..-49566
+off x=-2803..15997,y=17766..40675,z=-78767..-71955
+off x=40261..65354,y=20764..50559,z=-67149..-41406
+off x=-82743..-76717,y=-29399..-8404,z=2739..20577
+on x=-54739..-23644,y=-69603..-40089,z=35004..49145
+on x=-83575..-61028,y=-29392..-11560,z=-19862..-3281
+on x=-18999..-12475,y=56155..70288,z=37945..64327
+on x=48085..49897,y=30060..57309,z=-48551..-33409
+off x=27808..45649,y=42800..65582,z=-45925..-25893
+on x=-14897..3950,y=-14998..10321,z=77124..98698
+off x=-65549..-37454,y=-20416..7402,z=56770..77874
+on x=-65763..-42197,y=-69570..-56326,z=8301..29201
+off x=-399..7443,y=32771..63820,z=48991..65952
+off x=43626..70187,y=-6567..16946,z=-59742..-38475
+on x=-83169..-54440,y=-56857..-24179,z=-6644..5410
+off x=42226..71121,y=-6198..26342,z=-58213..-46379
+off x=12205..29034,y=20287..36141,z=52649..77560
+on x=66318..90635,y=-35137..-8345,z=12852..23741
+on x=1957..21389,y=64358..83601,z=-29068..1856
+off x=67520..75221,y=13646..30894,z=-43967..-23444
+off x=-62326..-51049,y=-63293..-37679,z=-16600..-13718
+off x=4835..30649,y=-608..21604,z=-88031..-73100
+on x=-32288..-22107,y=-88179..-61251,z=-2233..21686
+on x=6171..21315,y=49303..54686,z=-60551..-40314
+off x=-1354..9007,y=-84707..-52460,z=37258..53411
+off x=47783..51134,y=-9048..4117,z=51895..76958
+off x=13732..43011,y=5389..31225,z=-81322..-58591
+on x=-43997..-19680,y=-30093..-6650,z=-71398..-66316
+on x=6834..28045,y=-14021..-6015,z=74599..85802
+on x=-13335..12281,y=25253..40207,z=67663..88964
+off x=26363..39175,y=-40596..-15324,z=54582..66608
+on x=51649..81960,y=-44500..-23493,z=-43960..-18397
+on x=-77300..-60956,y=-50247..-21227,z=19298..42689
+off x=-40193..-31978,y=-29483..-8493,z=-81551..-61670
+off x=-78637..-52465,y=-21694..-15588,z=-40320..-33403
+on x=-94894..-65030,y=-4414..31852,z=-36770..-16086
+on x=-23048..-10727,y=-46610..-32408,z=-71889..-63925
+on x=8025..23913,y=54379..74236,z=35966..46850
+on x=-31405..-9373,y=74011..90227,z=-24857..-1349
+on x=16439..41392,y=29071..46039,z=46700..71540
+on x=54847..76047,y=12817..16035,z=17667..39703
+on x=8048..37282,y=54304..78284,z=-42342..-16077
+on x=32121..52042,y=46329..53338,z=31893..44431
+off x=50489..83255,y=37221..56421,z=-11510..-4230
+off x=68756..85295,y=6470..8116,z=-23019..-22075
+off x=-29769..7954,y=-84851..-65944,z=19478..39525
+on x=24569..28492,y=-84590..-53080,z=-35574..-4953
+on x=42349..74702,y=47739..64671,z=-8102..13959
+on x=-32837..-12949,y=51948..75362,z=-28671..-14795
+off x=-90750..-56359,y=-26811..-9897,z=-38290..663
+off x=-27537..-12375,y=67271..84663,z=-17155..3171
+off x=39351..55525,y=-74164..-63645,z=-9550..6575
+off x=13478..37936,y=-25580..1624,z=-92576..-58628
+on x=-13363..5625,y=49177..72483,z=27157..54290
+on x=71796..85714,y=-8953..12302,z=-23151..-4058
+off x=-47605..-24282,y=-31411..-6804,z=-88415..-62427
+off x=-70467..-41941,y=-1619..17809,z=44479..77491
+off x=54263..84125,y=-51828..-31213,z=-22717..149
+on x=16345..31347,y=-89521..-53954,z=-40641..-22114
+off x=48417..60696,y=-40182..-25979,z=-63662..-36051
+off x=-54846..-26712,y=46087..82056,z=-40877..-13144
+off x=-18587..16340,y=-82608..-65257,z=32057..43249
+off x=48595..55451,y=-2478..11032,z=42088..63031
+on x=-80485..-52224,y=-48644..-34714,z=15921..36777
+off x=-2439..5128,y=-89826..-73314,z=-25574..-1223
+on x=65787..71699,y=27282..57753,z=-5044..1627
+off x=56915..83691,y=-50778..-29731,z=-18515..-6455
+off x=-19738..-10,y=77120..90060,z=3385..16939
+on x=30404..61456,y=-58802..-41103,z=-53143..-33172
+on x=38924..60529,y=-17769..-9540,z=35797..70659
+off x=-48256..-16850,y=-28762..-17332,z=52408..87146
+on x=40785..54489,y=48021..82246,z=-14782..-3640
+on x=-57485..-42936,y=44924..60213,z=-56900..-37632
+on x=23889..42647,y=-70706..-51225,z=33170..54796
+on x=-61017..-43908,y=34409..59142,z=-54092..-32587
+on x=-7501..11839,y=52251..69539,z=33509..66703
+off x=51023..76010,y=-32682..-4277,z=41542..66475
+off x=-88587..-66353,y=-16557..-7157,z=31489..57110
+on x=-61176..-40020,y=24011..29681,z=48581..67528
+off x=-24216..7084,y=48839..69342,z=-68339..-45440
+on x=-36500..-10001,y=-65989..-42396,z=-75644..-44001
+off x=15994..25097,y=33559..58625,z=53314..61396
+on x=-53426..-32374,y=25747..42483,z=-72725..-53164
+off x=-53445..-33211,y=35546..44583,z=-61133..-38708
+off x=50833..72417,y=23542..54128,z=-38895..-36210
+on x=9720..27443,y=76105..87466,z=-10519..4284
+off x=-86798..-74426,y=769..5708,z=11295..23590
+off x=-4921..2624,y=55240..76845,z=35060..47907
+off x=9701..26464,y=-94120..-69049,z=4307..24449
+off x=12870..51058,y=-78163..-61186,z=-44784..-28700
+on x=-39740..-24117,y=-84396..-64005,z=5699..31498
+off x=-9622..23063,y=-92455..-75057,z=-10460..-1601
+on x=25630..35530,y=48421..73435,z=-48169..-29333
+off x=-39044..-14356,y=28511..37819,z=55159..66181
+off x=-39519..-23640,y=-48365..-24136,z=-63775..-55242
+off x=-15533..13075,y=-72226..-38939,z=54104..66411
+off x=15771..35269,y=-9255..17256,z=-79775..-74792
+off x=-42745..-8225,y=-39239..-24094,z=60961..76111
+on x=-18016..-7743,y=59524..94723,z=-2187..19315
+on x=73274..89281,y=-28554..1944,z=-15927..3832
+off x=-55265..-29669,y=-75475..-58130,z=831..22836
+on x=21836..30294,y=64416..87049,z=-38909..-32813
+off x=5787..43254,y=29840..50131,z=46590..70685
+off x=-28944..-2520,y=70858..92833,z=20014..23748
+off x=-73123..-60640,y=28652..38688,z=-2341..21878
+off x=-39114..-20962,y=31446..66163,z=49801..73696
+on x=24488..45320,y=58409..68248,z=11628..36696
+off x=11109..21650,y=-69846..-48058,z=-59763..-39328
+off x=-53335..-23597,y=-59521..-30517,z=-52444..-36236
+on x=-70103..-58246,y=-26631..-12027,z=-58448..-37062
+off x=-36790..-14998,y=-31929..-24908,z=-91556..-71675
+on x=286..32167,y=-31987..-19155,z=60729..78642
+on x=-30708..6946,y=-83845..-63192,z=31261..52361
+on x=932..20870,y=48688..54180,z=44158..61745
+on x=-12103..13085,y=-77254..-74157,z=17397..34765
+off x=-69501..-53250,y=16047..27462,z=-57585..-31239
+off x=-25088..-9981,y=-24396..-7647,z=56899..79497
+on x=6535..27680,y=-74177..-53307,z=24672..33183
+off x=-52784..-39875,y=44661..48780,z=-43402..-25803
+on x=5285..36452,y=-68391..-49097,z=-64091..-35600
+on x=16894..45821,y=60545..73341,z=-38181..-23081
+off x=-15855..12376,y=-87828..-74328,z=-2207..24700
+on x=-50903..-14504,y=-16767..-13145,z=-83963..-51110
+on x=67186..82547,y=-463..19992,z=-14953..13057
+off x=-22852..-3925,y=74624..94686,z=-27060..-21704
+off x=-54924..-34133,y=41730..51841,z=-53419..-33709
+off x=-31758..1239,y=29064..50508,z=52146..73302
+off x=58797..80805,y=-36694..-25688,z=-6006..23217
+on x=58709..88754,y=-9540..19110,z=-40923..-31203
+on x=-41224..-25003,y=-10094..18489,z=56298..80313
+on x=7324..19698,y=-80119..-62734,z=18521..27596
+off x=-74531..-67692,y=8814..39573,z=-38789..-12043
+on x=14425..44843,y=-1624..18770,z=67485..81517
+on x=-526..25273,y=-77438..-62606,z=15373..26867
+off x=-58135..-33243,y=39832..47997,z=-61695..-41372
+on x=-15036..12755,y=68334..86525,z=23148..47261
+on x=-69748..-44442,y=-63761..-38877,z=24028..39375
+off x=-76336..-54743,y=-54622..-22379,z=-12376..12905
+on x=-17643..5250,y=-32698..-18664,z=66293..85378
+on x=-43843..-7367,y=62737..81168,z=37020..49467