package day22

import java.io.File
import kotlin.reflect.KFunction3

fun main() {
    val input = File("src/day22/input.txt").readText().split("\n\n")
    val tiles = mutableSetOf<Pair<Int, Int>>()
    val walls = mutableSetOf<Pair<Int, Int>>()
    input[0].split("\n").forEachIndexed { row, s ->
        s.toList().forEachIndexed { column, c ->
            when (c) {
                '.' -> tiles.add(Pair(column + 1, row + 1))
                '#' -> walls.add(Pair(column + 1, row + 1))
            }
        }
    }
    val directions = input[1].toList().fold(emptyList<Any>()) { acc, c ->
        when (c) {
            'L' -> acc + 'L'
            'R' -> acc + 'R'
            else -> if (acc.isNotEmpty() && acc.last() is Int) (acc.dropLast(1) + ((acc.last() as Int * 10) + c.toString()
                .toInt())) else (acc + c.toString().toInt())
        }
    }
    println(solve(tiles, walls, directions, ::flatWrap))
    println(solve(tiles, walls, directions, ::cubeWrap))
}

private fun solve(
    tiles: Set<Pair<Int, Int>>,
    walls: Set<Pair<Int, Int>>,
    directions: List<Any>,
    wrap: KFunction3<Set<Pair<Int, Int>>, Set<Pair<Int, Int>>, State, State>
): Int {
    var state = State(tiles.filter { it.second == 1 }.minByOrNull { it.first }!!, 0)
    val deltas = listOf(Pair(1, 0), Pair(0, 1), Pair(-1, 0), Pair(0, -1))
    directions.forEach { direction ->
        when (direction) {
            'L' -> state = State(state.coord, (state.facing - 1).mod(deltas.size))
            'R' -> state = State(state.coord, (state.facing + 1).mod(deltas.size))
            else -> for (i in 1..direction as Int) {
                var nextState = State(
                    Pair(
                        state.coord.first + deltas[state.facing].first,
                        state.coord.second + deltas[state.facing].second
                    ), state.facing
                )
                if (nextState.coord !in (walls + tiles)) {
                    nextState = wrap(tiles, walls, nextState)
                }
                if (nextState.coord in walls) break
                state = nextState
            }
        }
    }
    return state.password()
}

data class State(val coord: Pair<Int, Int>, val facing: Int) {
    fun password() = 4 * coord.first + 1000 * coord.second + facing
}

private fun flatWrap(tiles: Set<Pair<Int, Int>>, walls: Set<Pair<Int, Int>>, state: State): State {
    return State(when (state.facing) {
        0 -> (tiles + walls).filter { it.second == state.coord.second }.minByOrNull { it.first }!!
        1 -> (tiles + walls).filter { it.first == state.coord.first }.minByOrNull { it.second }!!
        2 -> (tiles + walls).filter { it.second == state.coord.second }.maxByOrNull { it.first }!!
        3 -> (tiles + walls).filter { it.first == state.coord.first }.maxByOrNull { it.second }!!
        else -> throw IllegalStateException()
    }, state.facing
    )
}

private fun cubeWrap(tiles: Set<Pair<Int, Int>>, walls: Set<Pair<Int, Int>>, state: State): State {
    return when (state.facing) {
        0 -> {
            when (state.coord.second) {
                in 1..50 -> {
                    State((tiles + walls).filter { it.second == 151 - state.coord.second }.maxByOrNull { it.first }!!, 2)
                }
                in 51..100 -> {
                    State((tiles + walls).filter { it.first == 50 + state.coord.second }.maxByOrNull { it.second }!!, 3)
                }
                in 101..150 -> {
                    State((tiles + walls).filter { it.second == 151 - state.coord.second }.maxByOrNull { it.first }!!, 2)
                }
                else -> {
                    State((tiles + walls).filter { it.first == state.coord.second - 100 }.maxByOrNull { it.second }!!, 3)
                }
            }
        }

        1 -> {
            when (state.coord.first) {
                in 1..50 -> {
                    State((tiles + walls).filter { it.first == 100 + state.coord.first }.minByOrNull { it.second }!!, 1)
                }
                in 51..100 -> {
                    State((tiles + walls).filter { it.second == 100 + state.coord.first }.maxByOrNull { it.first }!!, 2)
                }
                else -> {
                    State((tiles + walls).filter { it.second == state.coord.first - 50 }.maxByOrNull { it.first }!!, 2)
                }
            }
        }

        2 -> {
            when (state.coord.second) {
                in 1..50 -> {
                    State((tiles + walls).filter { it.second == 151 - state.coord.second }.minByOrNull { it.first }!!, 0)
                }
                in 51..100 -> {
                    State((tiles + walls).filter { it.first == state.coord.second - 50 }.minByOrNull { it.second }!!, 1)
                }
                in 101..150 -> {
                    State((tiles + walls).filter { it.second == 151 - state.coord.second }.minByOrNull { it.first }!!, 0)
                }
                else -> {
                    State((tiles + walls).filter { it.first == state.coord.second - 100 }.minByOrNull { it.second }!!, 1)
                }
            }
        }

        3 -> {
            when (state.coord.first) {
                in 1..50 -> {
                    State((tiles + walls).filter { it.second == 50 + state.coord.first }.minByOrNull { it.first }!!, 0)
                }
                in 51..100 -> {
                    State((tiles + walls).filter { it.second == 100 + state.coord.first }.minByOrNull { it.first }!!, 0)
                }
                else -> {
                    State((tiles + walls).filter { it.first == state.coord.first - 100 }.maxByOrNull { it.second }!!, 3)
                }
            }
        }

        else -> throw IllegalStateException()
    }
}

Compiled from "Day22.kt"
public final class day22.Day22Kt {
  public static final void main();
    Code:
       0: new           #8                  // class java/io/File
       3: dup
       4: ldc           #10                 // String src/day22/input.txt
       6: invokespecial #14                 // Method java/io/File."<init>":(Ljava/lang/String;)V
       9: aconst_null
      10: iconst_1
      11: aconst_null
      12: invokestatic  #20                 // Method kotlin/io/FilesKt.readText$default:(Ljava/io/File;Ljava/nio/charset/Charset;ILjava/lang/Object;)Ljava/lang/String;
      15: checkcast     #22                 // class java/lang/CharSequence
      18: iconst_1
      19: anewarray     #24                 // class java/lang/String
      22: astore_1
      23: aload_1
      24: iconst_0
      25: ldc           #26                 // String \n\n
      27: aastore
      28: aload_1
      29: iconst_0
      30: iconst_0
      31: bipush        6
      33: aconst_null
      34: invokestatic  #32                 // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
      37: astore_0
      38: new           #34                 // class java/util/LinkedHashSet
      41: dup
      42: invokespecial #36                 // Method java/util/LinkedHashSet."<init>":()V
      45: checkcast     #38                 // class java/util/Set
      48: astore_1
      49: new           #34                 // class java/util/LinkedHashSet
      52: dup
      53: invokespecial #36                 // Method java/util/LinkedHashSet."<init>":()V
      56: checkcast     #38                 // class java/util/Set
      59: astore_2
      60: aload_0
      61: iconst_0
      62: invokeinterface #44,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      67: checkcast     #22                 // class java/lang/CharSequence
      70: iconst_1
      71: anewarray     #24                 // class java/lang/String
      74: astore_3
      75: aload_3
      76: iconst_0
      77: ldc           #46                 // String \n
      79: aastore
      80: aload_3
      81: iconst_0
      82: iconst_0
      83: bipush        6
      85: aconst_null
      86: invokestatic  #32                 // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
      89: checkcast     #48                 // class java/lang/Iterable
      92: astore_3
      93: iconst_0
      94: istore        4
      96: iconst_0
      97: istore        5
      99: aload_3
     100: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     105: astore        6
     107: aload         6
     109: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     114: ifeq          334
     117: aload         6
     119: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     124: astore        7
     126: iload         5
     128: iinc          5, 1
     131: istore        8
     133: iload         8
     135: ifge          141
     138: invokestatic  #67                 // Method kotlin/collections/CollectionsKt.throwIndexOverflow:()V
     141: iload         8
     143: aload         7
     145: checkcast     #24                 // class java/lang/String
     148: astore        9
     150: istore        10
     152: iconst_0
     153: istore        11
     155: aload         9
     157: checkcast     #22                 // class java/lang/CharSequence
     160: invokestatic  #71                 // Method kotlin/text/StringsKt.toList:(Ljava/lang/CharSequence;)Ljava/util/List;
     163: checkcast     #48                 // class java/lang/Iterable
     166: astore        12
     168: iconst_0
     169: istore        13
     171: iconst_0
     172: istore        14
     174: aload         12
     176: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     181: astore        15
     183: aload         15
     185: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     190: ifeq          328
     193: aload         15
     195: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     200: astore        16
     202: iload         14
     204: iinc          14, 1
     207: istore        17
     209: iload         17
     211: ifge          217
     214: invokestatic  #67                 // Method kotlin/collections/CollectionsKt.throwIndexOverflow:()V
     217: iload         17
     219: aload         16
     221: checkcast     #73                 // class java/lang/Character
     224: invokevirtual #77                 // Method java/lang/Character.charValue:()C
     227: istore        18
     229: istore        19
     231: iconst_0
     232: istore        20
     234: iload         18
     236: lookupswitch  { // 2
                    35: 295
                    46: 264
               default: 323
          }
     264: aload_1
     265: new           #79                 // class kotlin/Pair
     268: dup
     269: iload         19
     271: iconst_1
     272: iadd
     273: invokestatic  #85                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     276: iload         10
     278: iconst_1
     279: iadd
     280: invokestatic  #85                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     283: invokespecial #88                 // Method kotlin/Pair."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
     286: invokeinterface #92,  2           // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z
     291: pop
     292: goto          323
     295: aload_2
     296: new           #79                 // class kotlin/Pair
     299: dup
     300: iload         19
     302: iconst_1
     303: iadd
     304: invokestatic  #85                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     307: iload         10
     309: iconst_1
     310: iadd
     311: invokestatic  #85                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     314: invokespecial #88                 // Method kotlin/Pair."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
     317: invokeinterface #92,  2           // InterfaceMethod java/util/Set.add:(Ljava/lang/Object;)Z
     322: pop
     323: nop
     324: nop
     325: goto          183
     328: nop
     329: nop
     330: nop
     331: goto          107
     334: nop
     335: aload_0
     336: iconst_1
     337: invokeinterface #44,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     342: checkcast     #22                 // class java/lang/CharSequence
     345: invokestatic  #71                 // Method kotlin/text/StringsKt.toList:(Ljava/lang/CharSequence;)Ljava/util/List;
     348: checkcast     #48                 // class java/lang/Iterable
     351: astore        4
     353: invokestatic  #96                 // Method kotlin/collections/CollectionsKt.emptyList:()Ljava/util/List;
     356: astore        5
     358: iconst_0
     359: istore        6
     361: aload         5
     363: astore        7
     365: aload         4
     367: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     372: astore        8
     374: aload         8
     376: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     381: ifeq          576
     384: aload         8
     386: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     391: astore        9
     393: aload         7
     395: aload         9
     397: checkcast     #73                 // class java/lang/Character
     400: invokevirtual #77                 // Method java/lang/Character.charValue:()C
     403: istore        10
     405: astore        11
     407: iconst_0
     408: istore        12
     410: iload         10
     412: lookupswitch  { // 2
                    76: 440
                    82: 456
               default: 472
          }
     440: aload         11
     442: checkcast     #98                 // class java/util/Collection
     445: bipush        76
     447: invokestatic  #101                // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
     450: invokestatic  #105                // Method kotlin/collections/CollectionsKt.plus:(Ljava/util/Collection;Ljava/lang/Object;)Ljava/util/List;
     453: goto          570
     456: aload         11
     458: checkcast     #98                 // class java/util/Collection
     461: bipush        82
     463: invokestatic  #101                // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
     466: invokestatic  #105                // Method kotlin/collections/CollectionsKt.plus:(Ljava/util/Collection;Ljava/lang/Object;)Ljava/util/List;
     469: goto          570
     472: aload         11
     474: checkcast     #98                 // class java/util/Collection
     477: invokeinterface #108,  1          // InterfaceMethod java/util/Collection.isEmpty:()Z
     482: ifne          489
     485: iconst_1
     486: goto          490
     489: iconst_0
     490: ifeq          551
     493: aload         11
     495: invokestatic  #112                // Method kotlin/collections/CollectionsKt.last:(Ljava/util/List;)Ljava/lang/Object;
     498: instanceof    #81                 // class java/lang/Integer
     501: ifeq          551
     504: aload         11
     506: iconst_1
     507: invokestatic  #116                // Method kotlin/collections/CollectionsKt.dropLast:(Ljava/util/List;I)Ljava/util/List;
     510: checkcast     #98                 // class java/util/Collection
     513: aload         11
     515: invokestatic  #112                // Method kotlin/collections/CollectionsKt.last:(Ljava/util/List;)Ljava/lang/Object;
     518: dup
     519: ldc           #118                // String null cannot be cast to non-null type kotlin.Int
     521: invokestatic  #124                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;Ljava/lang/String;)V
     524: checkcast     #81                 // class java/lang/Integer
     527: invokevirtual #128                // Method java/lang/Integer.intValue:()I
     530: bipush        10
     532: imul
     533: iload         10
     535: invokestatic  #131                // Method java/lang/String.valueOf:(C)Ljava/lang/String;
     538: invokestatic  #135                // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
     541: iadd
     542: invokestatic  #85                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     545: invokestatic  #105                // Method kotlin/collections/CollectionsKt.plus:(Ljava/util/Collection;Ljava/lang/Object;)Ljava/util/List;
     548: goto          570
     551: aload         11
     553: checkcast     #98                 // class java/util/Collection
     556: iload         10
     558: invokestatic  #131                // Method java/lang/String.valueOf:(C)Ljava/lang/String;
     561: invokestatic  #135                // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
     564: invokestatic  #85                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     567: invokestatic  #105                // Method kotlin/collections/CollectionsKt.plus:(Ljava/util/Collection;Ljava/lang/Object;)Ljava/util/List;
     570: nop
     571: astore        7
     573: goto          374
     576: aload         7
     578: astore_3
     579: aload_1
     580: aload_2
     581: aload_3
     582: getstatic     #141                // Field day22/Day22Kt$main$2.INSTANCE:Lday22/Day22Kt$main$2;
     585: checkcast     #143                // class kotlin/reflect/KFunction
     588: invokestatic  #147                // Method solve:(Ljava/util/Set;Ljava/util/Set;Ljava/util/List;Lkotlin/reflect/KFunction;)I
     591: istore        4
     593: getstatic     #153                // Field java/lang/System.out:Ljava/io/PrintStream;
     596: iload         4
     598: invokevirtual #159                // Method java/io/PrintStream.println:(I)V
     601: aload_1
     602: aload_2
     603: aload_3
     604: getstatic     #164                // Field day22/Day22Kt$main$3.INSTANCE:Lday22/Day22Kt$main$3;
     607: checkcast     #143                // class kotlin/reflect/KFunction
     610: invokestatic  #147                // Method solve:(Ljava/util/Set;Ljava/util/Set;Ljava/util/List;Lkotlin/reflect/KFunction;)I
     613: istore        4
     615: getstatic     #153                // Field java/lang/System.out:Ljava/io/PrintStream;
     618: iload         4
     620: invokevirtual #159                // Method java/io/PrintStream.println:(I)V
     623: return

  private static final int solve(java.util.Set<kotlin.Pair<java.lang.Integer, java.lang.Integer>>, java.util.Set<kotlin.Pair<java.lang.Integer, java.lang.Integer>>, java.util.List<? extends java.lang.Object>, kotlin.reflect.KFunction<day22.State>);
    Code:
       0: aconst_null
       1: astore        4
       3: aload_0
       4: checkcast     #48                 // class java/lang/Iterable
       7: astore        5
       9: iconst_0
      10: istore        6
      12: aload         5
      14: astore        7
      16: new           #195                // class java/util/ArrayList
      19: dup
      20: invokespecial #196                // Method java/util/ArrayList."<init>":()V
      23: checkcast     #98                 // class java/util/Collection
      26: astore        8
      28: iconst_0
      29: istore        9
      31: aload         7
      33: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      38: astore        10
      40: aload         10
      42: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      47: ifeq          105
      50: aload         10
      52: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      57: astore        11
      59: aload         11
      61: checkcast     #79                 // class kotlin/Pair
      64: astore        12
      66: iconst_0
      67: istore        13
      69: aload         12
      71: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      74: checkcast     #201                // class java/lang/Number
      77: invokevirtual #202                // Method java/lang/Number.intValue:()I
      80: iconst_1
      81: if_icmpne     88
      84: iconst_1
      85: goto          89
      88: iconst_0
      89: ifeq          40
      92: aload         8
      94: aload         11
      96: invokeinterface #203,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     101: pop
     102: goto          40
     105: aload         8
     107: checkcast     #40                 // class java/util/List
     110: nop
     111: checkcast     #48                 // class java/lang/Iterable
     114: astore        5
     116: nop
     117: iconst_0
     118: istore        6
     120: aload         5
     122: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     127: astore        7
     129: aload         7
     131: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     136: ifne          143
     139: aconst_null
     140: goto          249
     143: aload         7
     145: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     150: astore        8
     152: aload         7
     154: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     159: ifne          167
     162: aload         8
     164: goto          249
     167: aload         8
     169: checkcast     #79                 // class kotlin/Pair
     172: astore        9
     174: iconst_0
     175: istore        10
     177: aload         9
     179: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     182: checkcast     #201                // class java/lang/Number
     185: invokevirtual #202                // Method java/lang/Number.intValue:()I
     188: istore        9
     190: aload         7
     192: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     197: astore        10
     199: aload         10
     201: checkcast     #79                 // class kotlin/Pair
     204: astore        11
     206: iconst_0
     207: istore        12
     209: aload         11
     211: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     214: checkcast     #201                // class java/lang/Number
     217: invokevirtual #202                // Method java/lang/Number.intValue:()I
     220: istore        11
     222: iload         9
     224: iload         11
     226: if_icmple     237
     229: aload         10
     231: astore        8
     233: iload         11
     235: istore        9
     237: aload         7
     239: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     244: ifne          190
     247: aload         8
     249: dup
     250: invokestatic  #209                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
     253: checkcast     #79                 // class kotlin/Pair
     256: iconst_0
     257: istore        16
     259: astore        17
     261: new           #211                // class day22/State
     264: dup
     265: aload         17
     267: iload         16
     269: invokespecial #214                // Method day22/State."<init>":(Lkotlin/Pair;I)V
     272: astore        4
     274: iconst_4
     275: anewarray     #79                 // class kotlin/Pair
     278: astore        6
     280: aload         6
     282: iconst_0
     283: new           #79                 // class kotlin/Pair
     286: dup
     287: iconst_1
     288: invokestatic  #85                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     291: iconst_0
     292: invokestatic  #85                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     295: invokespecial #88                 // Method kotlin/Pair."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
     298: aastore
     299: aload         6
     301: iconst_1
     302: new           #79                 // class kotlin/Pair
     305: dup
     306: iconst_0
     307: invokestatic  #85                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     310: iconst_1
     311: invokestatic  #85                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     314: invokespecial #88                 // Method kotlin/Pair."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
     317: aastore
     318: aload         6
     320: iconst_2
     321: new           #79                 // class kotlin/Pair
     324: dup
     325: iconst_m1
     326: invokestatic  #85                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     329: iconst_0
     330: invokestatic  #85                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     333: invokespecial #88                 // Method kotlin/Pair."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
     336: aastore
     337: aload         6
     339: iconst_3
     340: new           #79                 // class kotlin/Pair
     343: dup
     344: iconst_0
     345: invokestatic  #85                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     348: iconst_m1
     349: invokestatic  #85                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     352: invokespecial #88                 // Method kotlin/Pair."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
     355: aastore
     356: aload         6
     358: invokestatic  #218                // Method kotlin/collections/CollectionsKt.listOf:([Ljava/lang/Object;)Ljava/util/List;
     361: astore        5
     363: aload_2
     364: checkcast     #48                 // class java/lang/Iterable
     367: astore        6
     369: iconst_0
     370: istore        7
     372: aload         6
     374: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     379: astore        8
     381: aload         8
     383: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     388: ifeq          770
     391: aload         8
     393: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     398: astore        9
     400: aload         9
     402: astore        10
     404: iconst_0
     405: istore        11
     407: aload         10
     409: astore        12
     411: aload         12
     413: bipush        76
     415: invokestatic  #101                // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
     418: invokestatic  #222                // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
     421: ifeq          487
     424: new           #211                // class day22/State
     427: dup
     428: aload         4
     430: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
     433: aload         4
     435: invokevirtual #229                // Method day22/State.getFacing:()I
     438: iconst_1
     439: isub
     440: istore        13
     442: aload         5
     444: invokeinterface #232,  1          // InterfaceMethod java/util/List.size:()I
     449: istore        14
     451: iload         13
     453: iload         14
     455: irem
     456: istore        15
     458: iload         15
     460: iload         14
     462: iload         15
     464: iload         14
     466: ixor
     467: iload         15
     469: iload         15
     471: ineg
     472: ior
     473: iand
     474: bipush        31
     476: ishr
     477: iand
     478: iadd
     479: invokespecial #214                // Method day22/State."<init>":(Lkotlin/Pair;I)V
     482: astore        4
     484: goto          765
     487: aload         12
     489: bipush        82
     491: invokestatic  #101                // Method java/lang/Character.valueOf:(C)Ljava/lang/Character;
     494: invokestatic  #222                // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
     497: ifeq          563
     500: new           #211                // class day22/State
     503: dup
     504: aload         4
     506: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
     509: aload         4
     511: invokevirtual #229                // Method day22/State.getFacing:()I
     514: iconst_1
     515: iadd
     516: istore        13
     518: aload         5
     520: invokeinterface #232,  1          // InterfaceMethod java/util/List.size:()I
     525: istore        14
     527: iload         13
     529: iload         14
     531: irem
     532: istore        15
     534: iload         15
     536: iload         14
     538: iload         15
     540: iload         14
     542: ixor
     543: iload         15
     545: iload         15
     547: ineg
     548: ior
     549: iand
     550: bipush        31
     552: ishr
     553: iand
     554: iadd
     555: invokespecial #214                // Method day22/State."<init>":(Lkotlin/Pair;I)V
     558: astore        4
     560: goto          765
     563: iconst_1
     564: istore        13
     566: aload         10
     568: ldc           #118                // String null cannot be cast to non-null type kotlin.Int
     570: invokestatic  #124                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;Ljava/lang/String;)V
     573: aload         10
     575: checkcast     #81                 // class java/lang/Integer
     578: invokevirtual #128                // Method java/lang/Integer.intValue:()I
     581: istore        14
     583: iload         13
     585: iload         14
     587: if_icmpgt     765
     590: new           #211                // class day22/State
     593: dup
     594: new           #79                 // class kotlin/Pair
     597: dup
     598: aload         4
     600: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
     603: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     606: checkcast     #201                // class java/lang/Number
     609: invokevirtual #202                // Method java/lang/Number.intValue:()I
     612: aload         5
     614: aload         4
     616: invokevirtual #229                // Method day22/State.getFacing:()I
     619: invokeinterface #44,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     624: checkcast     #79                 // class kotlin/Pair
     627: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     630: checkcast     #201                // class java/lang/Number
     633: invokevirtual #202                // Method java/lang/Number.intValue:()I
     636: iadd
     637: invokestatic  #85                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     640: aload         4
     642: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
     645: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     648: checkcast     #201                // class java/lang/Number
     651: invokevirtual #202                // Method java/lang/Number.intValue:()I
     654: aload         5
     656: aload         4
     658: invokevirtual #229                // Method day22/State.getFacing:()I
     661: invokeinterface #44,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     666: checkcast     #79                 // class kotlin/Pair
     669: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     672: checkcast     #201                // class java/lang/Number
     675: invokevirtual #202                // Method java/lang/Number.intValue:()I
     678: iadd
     679: invokestatic  #85                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     682: invokespecial #88                 // Method kotlin/Pair."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
     685: aload         4
     687: invokevirtual #229                // Method day22/State.getFacing:()I
     690: invokespecial #214                // Method day22/State."<init>":(Lkotlin/Pair;I)V
     693: astore        15
     695: aload_1
     696: aload_0
     697: checkcast     #48                 // class java/lang/Iterable
     700: invokestatic  #237                // Method kotlin/collections/SetsKt.plus:(Ljava/util/Set;Ljava/lang/Iterable;)Ljava/util/Set;
     703: aload         15
     705: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
     708: invokeinterface #240,  2          // InterfaceMethod java/util/Set.contains:(Ljava/lang/Object;)Z
     713: ifne          734
     716: aload_3
     717: checkcast     #242                // class kotlin/jvm/functions/Function3
     720: aload_0
     721: aload_1
     722: aload         15
     724: invokeinterface #246,  4          // InterfaceMethod kotlin/jvm/functions/Function3.invoke:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     729: checkcast     #211                // class day22/State
     732: astore        15
     734: aload_1
     735: aload         15
     737: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
     740: invokeinterface #240,  2          // InterfaceMethod java/util/Set.contains:(Ljava/lang/Object;)Z
     745: ifne          765
     748: aload         15
     750: astore        4
     752: iload         13
     754: iload         14
     756: if_icmpeq     765
     759: iinc          13, 1
     762: goto          590
     765: nop
     766: nop
     767: goto          381
     770: nop
     771: aload         4
     773: invokevirtual #249                // Method day22/State.password:()I
     776: ireturn

  private static final day22.State flatWrap(java.util.Set<kotlin.Pair<java.lang.Integer, java.lang.Integer>>, java.util.Set<kotlin.Pair<java.lang.Integer, java.lang.Integer>>, day22.State);
    Code:
       0: aload_2
       1: invokevirtual #229                // Method day22/State.getFacing:()I
       4: tableswitch   { // 0 to 3
                     0: 36
                     1: 307
                     2: 578
                     3: 849
               default: 1120
          }
      36: aload_0
      37: aload_1
      38: checkcast     #48                 // class java/lang/Iterable
      41: invokestatic  #237                // Method kotlin/collections/SetsKt.plus:(Ljava/util/Set;Ljava/lang/Iterable;)Ljava/util/Set;
      44: checkcast     #48                 // class java/lang/Iterable
      47: astore_3
      48: iconst_0
      49: istore        4
      51: aload_3
      52: astore        5
      54: new           #195                // class java/util/ArrayList
      57: dup
      58: invokespecial #196                // Method java/util/ArrayList."<init>":()V
      61: checkcast     #98                 // class java/util/Collection
      64: astore        6
      66: iconst_0
      67: istore        7
      69: aload         5
      71: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      76: astore        8
      78: aload         8
      80: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      85: ifeq          155
      88: aload         8
      90: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      95: astore        9
      97: aload         9
      99: checkcast     #79                 // class kotlin/Pair
     102: astore        10
     104: iconst_0
     105: istore        11
     107: aload         10
     109: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     112: checkcast     #201                // class java/lang/Number
     115: invokevirtual #202                // Method java/lang/Number.intValue:()I
     118: aload_2
     119: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
     122: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     125: checkcast     #201                // class java/lang/Number
     128: invokevirtual #202                // Method java/lang/Number.intValue:()I
     131: if_icmpne     138
     134: iconst_1
     135: goto          139
     138: iconst_0
     139: ifeq          78
     142: aload         6
     144: aload         9
     146: invokeinterface #203,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     151: pop
     152: goto          78
     155: aload         6
     157: checkcast     #40                 // class java/util/List
     160: nop
     161: checkcast     #48                 // class java/lang/Iterable
     164: astore_3
     165: nop
     166: iconst_0
     167: istore        4
     169: aload_3
     170: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     175: astore        5
     177: aload         5
     179: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     184: ifne          191
     187: aconst_null
     188: goto          297
     191: aload         5
     193: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     198: astore        6
     200: aload         5
     202: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     207: ifne          215
     210: aload         6
     212: goto          297
     215: aload         6
     217: checkcast     #79                 // class kotlin/Pair
     220: astore        7
     222: iconst_0
     223: istore        8
     225: aload         7
     227: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     230: checkcast     #201                // class java/lang/Number
     233: invokevirtual #202                // Method java/lang/Number.intValue:()I
     236: istore        7
     238: aload         5
     240: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     245: astore        8
     247: aload         8
     249: checkcast     #79                 // class kotlin/Pair
     252: astore        9
     254: iconst_0
     255: istore        10
     257: aload         9
     259: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     262: checkcast     #201                // class java/lang/Number
     265: invokevirtual #202                // Method java/lang/Number.intValue:()I
     268: istore        9
     270: iload         7
     272: iload         9
     274: if_icmple     285
     277: aload         8
     279: astore        6
     281: iload         9
     283: istore        7
     285: aload         5
     287: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     292: ifne          238
     295: aload         6
     297: dup
     298: invokestatic  #209                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
     301: checkcast     #79                 // class kotlin/Pair
     304: goto          1128
     307: aload_0
     308: aload_1
     309: checkcast     #48                 // class java/lang/Iterable
     312: invokestatic  #237                // Method kotlin/collections/SetsKt.plus:(Ljava/util/Set;Ljava/lang/Iterable;)Ljava/util/Set;
     315: checkcast     #48                 // class java/lang/Iterable
     318: astore_3
     319: iconst_0
     320: istore        4
     322: aload_3
     323: astore        5
     325: new           #195                // class java/util/ArrayList
     328: dup
     329: invokespecial #196                // Method java/util/ArrayList."<init>":()V
     332: checkcast     #98                 // class java/util/Collection
     335: astore        6
     337: iconst_0
     338: istore        7
     340: aload         5
     342: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     347: astore        8
     349: aload         8
     351: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     356: ifeq          426
     359: aload         8
     361: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     366: astore        9
     368: aload         9
     370: checkcast     #79                 // class kotlin/Pair
     373: astore        10
     375: iconst_0
     376: istore        11
     378: aload         10
     380: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     383: checkcast     #201                // class java/lang/Number
     386: invokevirtual #202                // Method java/lang/Number.intValue:()I
     389: aload_2
     390: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
     393: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     396: checkcast     #201                // class java/lang/Number
     399: invokevirtual #202                // Method java/lang/Number.intValue:()I
     402: if_icmpne     409
     405: iconst_1
     406: goto          410
     409: iconst_0
     410: ifeq          349
     413: aload         6
     415: aload         9
     417: invokeinterface #203,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     422: pop
     423: goto          349
     426: aload         6
     428: checkcast     #40                 // class java/util/List
     431: nop
     432: checkcast     #48                 // class java/lang/Iterable
     435: astore_3
     436: nop
     437: iconst_0
     438: istore        4
     440: aload_3
     441: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     446: astore        5
     448: aload         5
     450: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     455: ifne          462
     458: aconst_null
     459: goto          568
     462: aload         5
     464: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     469: astore        6
     471: aload         5
     473: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     478: ifne          486
     481: aload         6
     483: goto          568
     486: aload         6
     488: checkcast     #79                 // class kotlin/Pair
     491: astore        7
     493: iconst_0
     494: istore        8
     496: aload         7
     498: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     501: checkcast     #201                // class java/lang/Number
     504: invokevirtual #202                // Method java/lang/Number.intValue:()I
     507: istore        7
     509: aload         5
     511: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     516: astore        8
     518: aload         8
     520: checkcast     #79                 // class kotlin/Pair
     523: astore        9
     525: iconst_0
     526: istore        10
     528: aload         9
     530: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     533: checkcast     #201                // class java/lang/Number
     536: invokevirtual #202                // Method java/lang/Number.intValue:()I
     539: istore        9
     541: iload         7
     543: iload         9
     545: if_icmple     556
     548: aload         8
     550: astore        6
     552: iload         9
     554: istore        7
     556: aload         5
     558: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     563: ifne          509
     566: aload         6
     568: dup
     569: invokestatic  #209                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
     572: checkcast     #79                 // class kotlin/Pair
     575: goto          1128
     578: aload_0
     579: aload_1
     580: checkcast     #48                 // class java/lang/Iterable
     583: invokestatic  #237                // Method kotlin/collections/SetsKt.plus:(Ljava/util/Set;Ljava/lang/Iterable;)Ljava/util/Set;
     586: checkcast     #48                 // class java/lang/Iterable
     589: astore_3
     590: iconst_0
     591: istore        4
     593: aload_3
     594: astore        5
     596: new           #195                // class java/util/ArrayList
     599: dup
     600: invokespecial #196                // Method java/util/ArrayList."<init>":()V
     603: checkcast     #98                 // class java/util/Collection
     606: astore        6
     608: iconst_0
     609: istore        7
     611: aload         5
     613: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     618: astore        8
     620: aload         8
     622: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     627: ifeq          697
     630: aload         8
     632: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     637: astore        9
     639: aload         9
     641: checkcast     #79                 // class kotlin/Pair
     644: astore        10
     646: iconst_0
     647: istore        11
     649: aload         10
     651: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     654: checkcast     #201                // class java/lang/Number
     657: invokevirtual #202                // Method java/lang/Number.intValue:()I
     660: aload_2
     661: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
     664: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     667: checkcast     #201                // class java/lang/Number
     670: invokevirtual #202                // Method java/lang/Number.intValue:()I
     673: if_icmpne     680
     676: iconst_1
     677: goto          681
     680: iconst_0
     681: ifeq          620
     684: aload         6
     686: aload         9
     688: invokeinterface #203,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     693: pop
     694: goto          620
     697: aload         6
     699: checkcast     #40                 // class java/util/List
     702: nop
     703: checkcast     #48                 // class java/lang/Iterable
     706: astore_3
     707: nop
     708: iconst_0
     709: istore        4
     711: aload_3
     712: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     717: astore        5
     719: aload         5
     721: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     726: ifne          733
     729: aconst_null
     730: goto          839
     733: aload         5
     735: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     740: astore        6
     742: aload         5
     744: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     749: ifne          757
     752: aload         6
     754: goto          839
     757: aload         6
     759: checkcast     #79                 // class kotlin/Pair
     762: astore        7
     764: iconst_0
     765: istore        8
     767: aload         7
     769: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     772: checkcast     #201                // class java/lang/Number
     775: invokevirtual #202                // Method java/lang/Number.intValue:()I
     778: istore        7
     780: aload         5
     782: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     787: astore        8
     789: aload         8
     791: checkcast     #79                 // class kotlin/Pair
     794: astore        9
     796: iconst_0
     797: istore        10
     799: aload         9
     801: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     804: checkcast     #201                // class java/lang/Number
     807: invokevirtual #202                // Method java/lang/Number.intValue:()I
     810: istore        9
     812: iload         7
     814: iload         9
     816: if_icmpge     827
     819: aload         8
     821: astore        6
     823: iload         9
     825: istore        7
     827: aload         5
     829: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     834: ifne          780
     837: aload         6
     839: dup
     840: invokestatic  #209                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
     843: checkcast     #79                 // class kotlin/Pair
     846: goto          1128
     849: aload_0
     850: aload_1
     851: checkcast     #48                 // class java/lang/Iterable
     854: invokestatic  #237                // Method kotlin/collections/SetsKt.plus:(Ljava/util/Set;Ljava/lang/Iterable;)Ljava/util/Set;
     857: checkcast     #48                 // class java/lang/Iterable
     860: astore_3
     861: iconst_0
     862: istore        4
     864: aload_3
     865: astore        5
     867: new           #195                // class java/util/ArrayList
     870: dup
     871: invokespecial #196                // Method java/util/ArrayList."<init>":()V
     874: checkcast     #98                 // class java/util/Collection
     877: astore        6
     879: iconst_0
     880: istore        7
     882: aload         5
     884: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     889: astore        8
     891: aload         8
     893: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     898: ifeq          968
     901: aload         8
     903: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     908: astore        9
     910: aload         9
     912: checkcast     #79                 // class kotlin/Pair
     915: astore        10
     917: iconst_0
     918: istore        11
     920: aload         10
     922: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     925: checkcast     #201                // class java/lang/Number
     928: invokevirtual #202                // Method java/lang/Number.intValue:()I
     931: aload_2
     932: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
     935: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     938: checkcast     #201                // class java/lang/Number
     941: invokevirtual #202                // Method java/lang/Number.intValue:()I
     944: if_icmpne     951
     947: iconst_1
     948: goto          952
     951: iconst_0
     952: ifeq          891
     955: aload         6
     957: aload         9
     959: invokeinterface #203,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     964: pop
     965: goto          891
     968: aload         6
     970: checkcast     #40                 // class java/util/List
     973: nop
     974: checkcast     #48                 // class java/lang/Iterable
     977: astore_3
     978: nop
     979: iconst_0
     980: istore        4
     982: aload_3
     983: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     988: astore        5
     990: aload         5
     992: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     997: ifne          1004
    1000: aconst_null
    1001: goto          1110
    1004: aload         5
    1006: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1011: astore        6
    1013: aload         5
    1015: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1020: ifne          1028
    1023: aload         6
    1025: goto          1110
    1028: aload         6
    1030: checkcast     #79                 // class kotlin/Pair
    1033: astore        7
    1035: iconst_0
    1036: istore        8
    1038: aload         7
    1040: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    1043: checkcast     #201                // class java/lang/Number
    1046: invokevirtual #202                // Method java/lang/Number.intValue:()I
    1049: istore        7
    1051: aload         5
    1053: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1058: astore        8
    1060: aload         8
    1062: checkcast     #79                 // class kotlin/Pair
    1065: astore        9
    1067: iconst_0
    1068: istore        10
    1070: aload         9
    1072: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    1075: checkcast     #201                // class java/lang/Number
    1078: invokevirtual #202                // Method java/lang/Number.intValue:()I
    1081: istore        9
    1083: iload         7
    1085: iload         9
    1087: if_icmpge     1098
    1090: aload         8
    1092: astore        6
    1094: iload         9
    1096: istore        7
    1098: aload         5
    1100: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1105: ifne          1051
    1108: aload         6
    1110: dup
    1111: invokestatic  #209                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
    1114: checkcast     #79                 // class kotlin/Pair
    1117: goto          1128
    1120: new           #284                // class java/lang/IllegalStateException
    1123: dup
    1124: invokespecial #285                // Method java/lang/IllegalStateException."<init>":()V
    1127: athrow
    1128: aload_2
    1129: invokevirtual #229                // Method day22/State.getFacing:()I
    1132: istore        12
    1134: astore        13
    1136: new           #211                // class day22/State
    1139: dup
    1140: aload         13
    1142: iload         12
    1144: invokespecial #214                // Method day22/State."<init>":(Lkotlin/Pair;I)V
    1147: areturn

  private static final day22.State cubeWrap(java.util.Set<kotlin.Pair<java.lang.Integer, java.lang.Integer>>, java.util.Set<kotlin.Pair<java.lang.Integer, java.lang.Integer>>, day22.State);
    Code:
       0: aload_2
       1: invokevirtual #229                // Method day22/State.getFacing:()I
       4: istore_3
       5: iload_3
       6: tableswitch   { // 0 to 3
                     0: 36
                     1: 1339
                     2: 2311
                     3: 3614
               default: 4586
          }
      36: aload_2
      37: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
      40: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
      43: checkcast     #201                // class java/lang/Number
      46: invokevirtual #202                // Method java/lang/Number.intValue:()I
      49: istore        4
      51: iconst_1
      52: iload         4
      54: if_icmpgt     72
      57: iload         4
      59: bipush        51
      61: if_icmpge     68
      64: iconst_1
      65: goto          73
      68: iconst_0
      69: goto          73
      72: iconst_0
      73: ifeq          379
      76: aload_0
      77: aload_1
      78: checkcast     #48                 // class java/lang/Iterable
      81: invokestatic  #237                // Method kotlin/collections/SetsKt.plus:(Ljava/util/Set;Ljava/lang/Iterable;)Ljava/util/Set;
      84: checkcast     #48                 // class java/lang/Iterable
      87: astore        5
      89: iconst_0
      90: istore        6
      92: aload         5
      94: astore        7
      96: new           #195                // class java/util/ArrayList
      99: dup
     100: invokespecial #196                // Method java/util/ArrayList."<init>":()V
     103: checkcast     #98                 // class java/util/Collection
     106: astore        8
     108: iconst_0
     109: istore        9
     111: aload         7
     113: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     118: astore        10
     120: aload         10
     122: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     127: ifeq          201
     130: aload         10
     132: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     137: astore        11
     139: aload         11
     141: checkcast     #79                 // class kotlin/Pair
     144: astore        12
     146: iconst_0
     147: istore        13
     149: aload         12
     151: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     154: checkcast     #201                // class java/lang/Number
     157: invokevirtual #202                // Method java/lang/Number.intValue:()I
     160: sipush        151
     163: aload_2
     164: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
     167: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     170: checkcast     #201                // class java/lang/Number
     173: invokevirtual #202                // Method java/lang/Number.intValue:()I
     176: isub
     177: if_icmpne     184
     180: iconst_1
     181: goto          185
     184: iconst_0
     185: ifeq          120
     188: aload         8
     190: aload         11
     192: invokeinterface #203,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     197: pop
     198: goto          120
     201: aload         8
     203: checkcast     #40                 // class java/util/List
     206: nop
     207: astore        14
     209: aload         14
     211: checkcast     #48                 // class java/lang/Iterable
     214: astore        5
     216: nop
     217: iconst_0
     218: istore        6
     220: aload         5
     222: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     227: astore        7
     229: aload         7
     231: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     236: ifne          243
     239: aconst_null
     240: goto          349
     243: aload         7
     245: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     250: astore        8
     252: aload         7
     254: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     259: ifne          267
     262: aload         8
     264: goto          349
     267: aload         8
     269: checkcast     #79                 // class kotlin/Pair
     272: astore        9
     274: iconst_0
     275: istore        10
     277: aload         9
     279: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     282: checkcast     #201                // class java/lang/Number
     285: invokevirtual #202                // Method java/lang/Number.intValue:()I
     288: istore        9
     290: aload         7
     292: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     297: astore        10
     299: aload         10
     301: checkcast     #79                 // class kotlin/Pair
     304: astore        11
     306: iconst_0
     307: istore        12
     309: aload         11
     311: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     314: checkcast     #201                // class java/lang/Number
     317: invokevirtual #202                // Method java/lang/Number.intValue:()I
     320: istore        11
     322: iload         9
     324: iload         11
     326: if_icmpge     337
     329: aload         10
     331: astore        8
     333: iload         11
     335: istore        9
     337: aload         7
     339: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     344: ifne          290
     347: aload         8
     349: astore        14
     351: aload         14
     353: dup
     354: invokestatic  #209                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
     357: checkcast     #79                 // class kotlin/Pair
     360: iconst_2
     361: istore        15
     363: astore        16
     365: new           #211                // class day22/State
     368: dup
     369: aload         16
     371: iload         15
     373: invokespecial #214                // Method day22/State."<init>":(Lkotlin/Pair;I)V
     376: goto          4594
     379: bipush        51
     381: iload         4
     383: if_icmpgt     401
     386: iload         4
     388: bipush        101
     390: if_icmpge     397
     393: iconst_1
     394: goto          402
     397: iconst_0
     398: goto          402
     401: iconst_0
     402: ifeq          707
     405: aload_0
     406: aload_1
     407: checkcast     #48                 // class java/lang/Iterable
     410: invokestatic  #237                // Method kotlin/collections/SetsKt.plus:(Ljava/util/Set;Ljava/lang/Iterable;)Ljava/util/Set;
     413: checkcast     #48                 // class java/lang/Iterable
     416: astore        5
     418: iconst_0
     419: istore        6
     421: aload         5
     423: astore        7
     425: new           #195                // class java/util/ArrayList
     428: dup
     429: invokespecial #196                // Method java/util/ArrayList."<init>":()V
     432: checkcast     #98                 // class java/util/Collection
     435: astore        8
     437: iconst_0
     438: istore        9
     440: aload         7
     442: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     447: astore        10
     449: aload         10
     451: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     456: ifeq          529
     459: aload         10
     461: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     466: astore        11
     468: aload         11
     470: checkcast     #79                 // class kotlin/Pair
     473: astore        12
     475: iconst_0
     476: istore        13
     478: aload         12
     480: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     483: checkcast     #201                // class java/lang/Number
     486: invokevirtual #202                // Method java/lang/Number.intValue:()I
     489: bipush        50
     491: aload_2
     492: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
     495: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     498: checkcast     #201                // class java/lang/Number
     501: invokevirtual #202                // Method java/lang/Number.intValue:()I
     504: iadd
     505: if_icmpne     512
     508: iconst_1
     509: goto          513
     512: iconst_0
     513: ifeq          449
     516: aload         8
     518: aload         11
     520: invokeinterface #203,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     525: pop
     526: goto          449
     529: aload         8
     531: checkcast     #40                 // class java/util/List
     534: nop
     535: astore        14
     537: aload         14
     539: checkcast     #48                 // class java/lang/Iterable
     542: astore        5
     544: nop
     545: iconst_0
     546: istore        6
     548: aload         5
     550: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     555: astore        7
     557: aload         7
     559: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     564: ifne          571
     567: aconst_null
     568: goto          677
     571: aload         7
     573: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     578: astore        8
     580: aload         7
     582: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     587: ifne          595
     590: aload         8
     592: goto          677
     595: aload         8
     597: checkcast     #79                 // class kotlin/Pair
     600: astore        9
     602: iconst_0
     603: istore        10
     605: aload         9
     607: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     610: checkcast     #201                // class java/lang/Number
     613: invokevirtual #202                // Method java/lang/Number.intValue:()I
     616: istore        9
     618: aload         7
     620: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     625: astore        10
     627: aload         10
     629: checkcast     #79                 // class kotlin/Pair
     632: astore        11
     634: iconst_0
     635: istore        12
     637: aload         11
     639: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     642: checkcast     #201                // class java/lang/Number
     645: invokevirtual #202                // Method java/lang/Number.intValue:()I
     648: istore        11
     650: iload         9
     652: iload         11
     654: if_icmpge     665
     657: aload         10
     659: astore        8
     661: iload         11
     663: istore        9
     665: aload         7
     667: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     672: ifne          618
     675: aload         8
     677: astore        14
     679: aload         14
     681: dup
     682: invokestatic  #209                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
     685: checkcast     #79                 // class kotlin/Pair
     688: iconst_3
     689: istore        17
     691: astore        18
     693: new           #211                // class day22/State
     696: dup
     697: aload         18
     699: iload         17
     701: invokespecial #214                // Method day22/State."<init>":(Lkotlin/Pair;I)V
     704: goto          4594
     707: bipush        101
     709: iload         4
     711: if_icmpgt     730
     714: iload         4
     716: sipush        151
     719: if_icmpge     726
     722: iconst_1
     723: goto          731
     726: iconst_0
     727: goto          731
     730: iconst_0
     731: ifeq          1037
     734: aload_0
     735: aload_1
     736: checkcast     #48                 // class java/lang/Iterable
     739: invokestatic  #237                // Method kotlin/collections/SetsKt.plus:(Ljava/util/Set;Ljava/lang/Iterable;)Ljava/util/Set;
     742: checkcast     #48                 // class java/lang/Iterable
     745: astore        5
     747: iconst_0
     748: istore        6
     750: aload         5
     752: astore        7
     754: new           #195                // class java/util/ArrayList
     757: dup
     758: invokespecial #196                // Method java/util/ArrayList."<init>":()V
     761: checkcast     #98                 // class java/util/Collection
     764: astore        8
     766: iconst_0
     767: istore        9
     769: aload         7
     771: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     776: astore        10
     778: aload         10
     780: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     785: ifeq          859
     788: aload         10
     790: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     795: astore        11
     797: aload         11
     799: checkcast     #79                 // class kotlin/Pair
     802: astore        12
     804: iconst_0
     805: istore        13
     807: aload         12
     809: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     812: checkcast     #201                // class java/lang/Number
     815: invokevirtual #202                // Method java/lang/Number.intValue:()I
     818: sipush        151
     821: aload_2
     822: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
     825: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
     828: checkcast     #201                // class java/lang/Number
     831: invokevirtual #202                // Method java/lang/Number.intValue:()I
     834: isub
     835: if_icmpne     842
     838: iconst_1
     839: goto          843
     842: iconst_0
     843: ifeq          778
     846: aload         8
     848: aload         11
     850: invokeinterface #203,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     855: pop
     856: goto          778
     859: aload         8
     861: checkcast     #40                 // class java/util/List
     864: nop
     865: astore        14
     867: aload         14
     869: checkcast     #48                 // class java/lang/Iterable
     872: astore        5
     874: nop
     875: iconst_0
     876: istore        6
     878: aload         5
     880: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     885: astore        7
     887: aload         7
     889: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     894: ifne          901
     897: aconst_null
     898: goto          1007
     901: aload         7
     903: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     908: astore        8
     910: aload         7
     912: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     917: ifne          925
     920: aload         8
     922: goto          1007
     925: aload         8
     927: checkcast     #79                 // class kotlin/Pair
     930: astore        9
     932: iconst_0
     933: istore        10
     935: aload         9
     937: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     940: checkcast     #201                // class java/lang/Number
     943: invokevirtual #202                // Method java/lang/Number.intValue:()I
     946: istore        9
     948: aload         7
     950: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     955: astore        10
     957: aload         10
     959: checkcast     #79                 // class kotlin/Pair
     962: astore        11
     964: iconst_0
     965: istore        12
     967: aload         11
     969: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
     972: checkcast     #201                // class java/lang/Number
     975: invokevirtual #202                // Method java/lang/Number.intValue:()I
     978: istore        11
     980: iload         9
     982: iload         11
     984: if_icmpge     995
     987: aload         10
     989: astore        8
     991: iload         11
     993: istore        9
     995: aload         7
     997: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1002: ifne          948
    1005: aload         8
    1007: astore        14
    1009: aload         14
    1011: dup
    1012: invokestatic  #209                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
    1015: checkcast     #79                 // class kotlin/Pair
    1018: iconst_2
    1019: istore        19
    1021: astore        20
    1023: new           #211                // class day22/State
    1026: dup
    1027: aload         20
    1029: iload         19
    1031: invokespecial #214                // Method day22/State."<init>":(Lkotlin/Pair;I)V
    1034: goto          4594
    1037: aload_0
    1038: aload_1
    1039: checkcast     #48                 // class java/lang/Iterable
    1042: invokestatic  #237                // Method kotlin/collections/SetsKt.plus:(Ljava/util/Set;Ljava/lang/Iterable;)Ljava/util/Set;
    1045: checkcast     #48                 // class java/lang/Iterable
    1048: astore        5
    1050: iconst_0
    1051: istore        6
    1053: aload         5
    1055: astore        7
    1057: new           #195                // class java/util/ArrayList
    1060: dup
    1061: invokespecial #196                // Method java/util/ArrayList."<init>":()V
    1064: checkcast     #98                 // class java/util/Collection
    1067: astore        8
    1069: iconst_0
    1070: istore        9
    1072: aload         7
    1074: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1079: astore        10
    1081: aload         10
    1083: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1088: ifeq          1161
    1091: aload         10
    1093: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1098: astore        11
    1100: aload         11
    1102: checkcast     #79                 // class kotlin/Pair
    1105: astore        12
    1107: iconst_0
    1108: istore        13
    1110: aload         12
    1112: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    1115: checkcast     #201                // class java/lang/Number
    1118: invokevirtual #202                // Method java/lang/Number.intValue:()I
    1121: aload_2
    1122: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
    1125: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    1128: checkcast     #201                // class java/lang/Number
    1131: invokevirtual #202                // Method java/lang/Number.intValue:()I
    1134: bipush        100
    1136: isub
    1137: if_icmpne     1144
    1140: iconst_1
    1141: goto          1145
    1144: iconst_0
    1145: ifeq          1081
    1148: aload         8
    1150: aload         11
    1152: invokeinterface #203,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    1157: pop
    1158: goto          1081
    1161: aload         8
    1163: checkcast     #40                 // class java/util/List
    1166: nop
    1167: astore        14
    1169: aload         14
    1171: checkcast     #48                 // class java/lang/Iterable
    1174: astore        5
    1176: nop
    1177: iconst_0
    1178: istore        6
    1180: aload         5
    1182: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1187: astore        7
    1189: aload         7
    1191: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1196: ifne          1203
    1199: aconst_null
    1200: goto          1309
    1203: aload         7
    1205: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1210: astore        8
    1212: aload         7
    1214: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1219: ifne          1227
    1222: aload         8
    1224: goto          1309
    1227: aload         8
    1229: checkcast     #79                 // class kotlin/Pair
    1232: astore        9
    1234: iconst_0
    1235: istore        10
    1237: aload         9
    1239: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    1242: checkcast     #201                // class java/lang/Number
    1245: invokevirtual #202                // Method java/lang/Number.intValue:()I
    1248: istore        9
    1250: aload         7
    1252: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1257: astore        10
    1259: aload         10
    1261: checkcast     #79                 // class kotlin/Pair
    1264: astore        11
    1266: iconst_0
    1267: istore        12
    1269: aload         11
    1271: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    1274: checkcast     #201                // class java/lang/Number
    1277: invokevirtual #202                // Method java/lang/Number.intValue:()I
    1280: istore        11
    1282: iload         9
    1284: iload         11
    1286: if_icmpge     1297
    1289: aload         10
    1291: astore        8
    1293: iload         11
    1295: istore        9
    1297: aload         7
    1299: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1304: ifne          1250
    1307: aload         8
    1309: astore        14
    1311: aload         14
    1313: dup
    1314: invokestatic  #209                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
    1317: checkcast     #79                 // class kotlin/Pair
    1320: iconst_3
    1321: istore        21
    1323: astore        22
    1325: new           #211                // class day22/State
    1328: dup
    1329: aload         22
    1331: iload         21
    1333: invokespecial #214                // Method day22/State."<init>":(Lkotlin/Pair;I)V
    1336: goto          4594
    1339: aload_2
    1340: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
    1343: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    1346: checkcast     #201                // class java/lang/Number
    1349: invokevirtual #202                // Method java/lang/Number.intValue:()I
    1352: istore        4
    1354: iconst_1
    1355: iload         4
    1357: if_icmpgt     1375
    1360: iload         4
    1362: bipush        51
    1364: if_icmpge     1371
    1367: iconst_1
    1368: goto          1376
    1371: iconst_0
    1372: goto          1376
    1375: iconst_0
    1376: ifeq          1681
    1379: aload_0
    1380: aload_1
    1381: checkcast     #48                 // class java/lang/Iterable
    1384: invokestatic  #237                // Method kotlin/collections/SetsKt.plus:(Ljava/util/Set;Ljava/lang/Iterable;)Ljava/util/Set;
    1387: checkcast     #48                 // class java/lang/Iterable
    1390: astore        5
    1392: iconst_0
    1393: istore        6
    1395: aload         5
    1397: astore        7
    1399: new           #195                // class java/util/ArrayList
    1402: dup
    1403: invokespecial #196                // Method java/util/ArrayList."<init>":()V
    1406: checkcast     #98                 // class java/util/Collection
    1409: astore        8
    1411: iconst_0
    1412: istore        9
    1414: aload         7
    1416: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1421: astore        10
    1423: aload         10
    1425: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1430: ifeq          1503
    1433: aload         10
    1435: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1440: astore        11
    1442: aload         11
    1444: checkcast     #79                 // class kotlin/Pair
    1447: astore        12
    1449: iconst_0
    1450: istore        13
    1452: aload         12
    1454: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    1457: checkcast     #201                // class java/lang/Number
    1460: invokevirtual #202                // Method java/lang/Number.intValue:()I
    1463: bipush        100
    1465: aload_2
    1466: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
    1469: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    1472: checkcast     #201                // class java/lang/Number
    1475: invokevirtual #202                // Method java/lang/Number.intValue:()I
    1478: iadd
    1479: if_icmpne     1486
    1482: iconst_1
    1483: goto          1487
    1486: iconst_0
    1487: ifeq          1423
    1490: aload         8
    1492: aload         11
    1494: invokeinterface #203,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    1499: pop
    1500: goto          1423
    1503: aload         8
    1505: checkcast     #40                 // class java/util/List
    1508: nop
    1509: astore        14
    1511: aload         14
    1513: checkcast     #48                 // class java/lang/Iterable
    1516: astore        5
    1518: nop
    1519: iconst_0
    1520: istore        6
    1522: aload         5
    1524: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1529: astore        7
    1531: aload         7
    1533: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1538: ifne          1545
    1541: aconst_null
    1542: goto          1651
    1545: aload         7
    1547: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1552: astore        8
    1554: aload         7
    1556: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1561: ifne          1569
    1564: aload         8
    1566: goto          1651
    1569: aload         8
    1571: checkcast     #79                 // class kotlin/Pair
    1574: astore        9
    1576: iconst_0
    1577: istore        10
    1579: aload         9
    1581: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    1584: checkcast     #201                // class java/lang/Number
    1587: invokevirtual #202                // Method java/lang/Number.intValue:()I
    1590: istore        9
    1592: aload         7
    1594: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1599: astore        10
    1601: aload         10
    1603: checkcast     #79                 // class kotlin/Pair
    1606: astore        11
    1608: iconst_0
    1609: istore        12
    1611: aload         11
    1613: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    1616: checkcast     #201                // class java/lang/Number
    1619: invokevirtual #202                // Method java/lang/Number.intValue:()I
    1622: istore        11
    1624: iload         9
    1626: iload         11
    1628: if_icmple     1639
    1631: aload         10
    1633: astore        8
    1635: iload         11
    1637: istore        9
    1639: aload         7
    1641: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1646: ifne          1592
    1649: aload         8
    1651: astore        14
    1653: aload         14
    1655: dup
    1656: invokestatic  #209                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
    1659: checkcast     #79                 // class kotlin/Pair
    1662: iconst_1
    1663: istore        23
    1665: astore        24
    1667: new           #211                // class day22/State
    1670: dup
    1671: aload         24
    1673: iload         23
    1675: invokespecial #214                // Method day22/State."<init>":(Lkotlin/Pair;I)V
    1678: goto          4594
    1681: bipush        51
    1683: iload         4
    1685: if_icmpgt     1703
    1688: iload         4
    1690: bipush        101
    1692: if_icmpge     1699
    1695: iconst_1
    1696: goto          1704
    1699: iconst_0
    1700: goto          1704
    1703: iconst_0
    1704: ifeq          2009
    1707: aload_0
    1708: aload_1
    1709: checkcast     #48                 // class java/lang/Iterable
    1712: invokestatic  #237                // Method kotlin/collections/SetsKt.plus:(Ljava/util/Set;Ljava/lang/Iterable;)Ljava/util/Set;
    1715: checkcast     #48                 // class java/lang/Iterable
    1718: astore        5
    1720: iconst_0
    1721: istore        6
    1723: aload         5
    1725: astore        7
    1727: new           #195                // class java/util/ArrayList
    1730: dup
    1731: invokespecial #196                // Method java/util/ArrayList."<init>":()V
    1734: checkcast     #98                 // class java/util/Collection
    1737: astore        8
    1739: iconst_0
    1740: istore        9
    1742: aload         7
    1744: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1749: astore        10
    1751: aload         10
    1753: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1758: ifeq          1831
    1761: aload         10
    1763: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1768: astore        11
    1770: aload         11
    1772: checkcast     #79                 // class kotlin/Pair
    1775: astore        12
    1777: iconst_0
    1778: istore        13
    1780: aload         12
    1782: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    1785: checkcast     #201                // class java/lang/Number
    1788: invokevirtual #202                // Method java/lang/Number.intValue:()I
    1791: bipush        100
    1793: aload_2
    1794: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
    1797: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    1800: checkcast     #201                // class java/lang/Number
    1803: invokevirtual #202                // Method java/lang/Number.intValue:()I
    1806: iadd
    1807: if_icmpne     1814
    1810: iconst_1
    1811: goto          1815
    1814: iconst_0
    1815: ifeq          1751
    1818: aload         8
    1820: aload         11
    1822: invokeinterface #203,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    1827: pop
    1828: goto          1751
    1831: aload         8
    1833: checkcast     #40                 // class java/util/List
    1836: nop
    1837: astore        14
    1839: aload         14
    1841: checkcast     #48                 // class java/lang/Iterable
    1844: astore        5
    1846: nop
    1847: iconst_0
    1848: istore        6
    1850: aload         5
    1852: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1857: astore        7
    1859: aload         7
    1861: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1866: ifne          1873
    1869: aconst_null
    1870: goto          1979
    1873: aload         7
    1875: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1880: astore        8
    1882: aload         7
    1884: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1889: ifne          1897
    1892: aload         8
    1894: goto          1979
    1897: aload         8
    1899: checkcast     #79                 // class kotlin/Pair
    1902: astore        9
    1904: iconst_0
    1905: istore        10
    1907: aload         9
    1909: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    1912: checkcast     #201                // class java/lang/Number
    1915: invokevirtual #202                // Method java/lang/Number.intValue:()I
    1918: istore        9
    1920: aload         7
    1922: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1927: astore        10
    1929: aload         10
    1931: checkcast     #79                 // class kotlin/Pair
    1934: astore        11
    1936: iconst_0
    1937: istore        12
    1939: aload         11
    1941: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    1944: checkcast     #201                // class java/lang/Number
    1947: invokevirtual #202                // Method java/lang/Number.intValue:()I
    1950: istore        11
    1952: iload         9
    1954: iload         11
    1956: if_icmpge     1967
    1959: aload         10
    1961: astore        8
    1963: iload         11
    1965: istore        9
    1967: aload         7
    1969: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1974: ifne          1920
    1977: aload         8
    1979: astore        14
    1981: aload         14
    1983: dup
    1984: invokestatic  #209                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
    1987: checkcast     #79                 // class kotlin/Pair
    1990: iconst_2
    1991: istore        25
    1993: astore        26
    1995: new           #211                // class day22/State
    1998: dup
    1999: aload         26
    2001: iload         25
    2003: invokespecial #214                // Method day22/State."<init>":(Lkotlin/Pair;I)V
    2006: goto          4594
    2009: aload_0
    2010: aload_1
    2011: checkcast     #48                 // class java/lang/Iterable
    2014: invokestatic  #237                // Method kotlin/collections/SetsKt.plus:(Ljava/util/Set;Ljava/lang/Iterable;)Ljava/util/Set;
    2017: checkcast     #48                 // class java/lang/Iterable
    2020: astore        5
    2022: iconst_0
    2023: istore        6
    2025: aload         5
    2027: astore        7
    2029: new           #195                // class java/util/ArrayList
    2032: dup
    2033: invokespecial #196                // Method java/util/ArrayList."<init>":()V
    2036: checkcast     #98                 // class java/util/Collection
    2039: astore        8
    2041: iconst_0
    2042: istore        9
    2044: aload         7
    2046: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    2051: astore        10
    2053: aload         10
    2055: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    2060: ifeq          2133
    2063: aload         10
    2065: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    2070: astore        11
    2072: aload         11
    2074: checkcast     #79                 // class kotlin/Pair
    2077: astore        12
    2079: iconst_0
    2080: istore        13
    2082: aload         12
    2084: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    2087: checkcast     #201                // class java/lang/Number
    2090: invokevirtual #202                // Method java/lang/Number.intValue:()I
    2093: aload_2
    2094: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
    2097: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    2100: checkcast     #201                // class java/lang/Number
    2103: invokevirtual #202                // Method java/lang/Number.intValue:()I
    2106: bipush        50
    2108: isub
    2109: if_icmpne     2116
    2112: iconst_1
    2113: goto          2117
    2116: iconst_0
    2117: ifeq          2053
    2120: aload         8
    2122: aload         11
    2124: invokeinterface #203,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    2129: pop
    2130: goto          2053
    2133: aload         8
    2135: checkcast     #40                 // class java/util/List
    2138: nop
    2139: astore        14
    2141: aload         14
    2143: checkcast     #48                 // class java/lang/Iterable
    2146: astore        5
    2148: nop
    2149: iconst_0
    2150: istore        6
    2152: aload         5
    2154: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    2159: astore        7
    2161: aload         7
    2163: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    2168: ifne          2175
    2171: aconst_null
    2172: goto          2281
    2175: aload         7
    2177: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    2182: astore        8
    2184: aload         7
    2186: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    2191: ifne          2199
    2194: aload         8
    2196: goto          2281
    2199: aload         8
    2201: checkcast     #79                 // class kotlin/Pair
    2204: astore        9
    2206: iconst_0
    2207: istore        10
    2209: aload         9
    2211: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    2214: checkcast     #201                // class java/lang/Number
    2217: invokevirtual #202                // Method java/lang/Number.intValue:()I
    2220: istore        9
    2222: aload         7
    2224: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    2229: astore        10
    2231: aload         10
    2233: checkcast     #79                 // class kotlin/Pair
    2236: astore        11
    2238: iconst_0
    2239: istore        12
    2241: aload         11
    2243: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    2246: checkcast     #201                // class java/lang/Number
    2249: invokevirtual #202                // Method java/lang/Number.intValue:()I
    2252: istore        11
    2254: iload         9
    2256: iload         11
    2258: if_icmpge     2269
    2261: aload         10
    2263: astore        8
    2265: iload         11
    2267: istore        9
    2269: aload         7
    2271: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    2276: ifne          2222
    2279: aload         8
    2281: astore        14
    2283: aload         14
    2285: dup
    2286: invokestatic  #209                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
    2289: checkcast     #79                 // class kotlin/Pair
    2292: iconst_2
    2293: istore        27
    2295: astore        28
    2297: new           #211                // class day22/State
    2300: dup
    2301: aload         28
    2303: iload         27
    2305: invokespecial #214                // Method day22/State."<init>":(Lkotlin/Pair;I)V
    2308: goto          4594
    2311: aload_2
    2312: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
    2315: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    2318: checkcast     #201                // class java/lang/Number
    2321: invokevirtual #202                // Method java/lang/Number.intValue:()I
    2324: istore        4
    2326: iconst_1
    2327: iload         4
    2329: if_icmpgt     2347
    2332: iload         4
    2334: bipush        51
    2336: if_icmpge     2343
    2339: iconst_1
    2340: goto          2348
    2343: iconst_0
    2344: goto          2348
    2347: iconst_0
    2348: ifeq          2654
    2351: aload_0
    2352: aload_1
    2353: checkcast     #48                 // class java/lang/Iterable
    2356: invokestatic  #237                // Method kotlin/collections/SetsKt.plus:(Ljava/util/Set;Ljava/lang/Iterable;)Ljava/util/Set;
    2359: checkcast     #48                 // class java/lang/Iterable
    2362: astore        5
    2364: iconst_0
    2365: istore        6
    2367: aload         5
    2369: astore        7
    2371: new           #195                // class java/util/ArrayList
    2374: dup
    2375: invokespecial #196                // Method java/util/ArrayList."<init>":()V
    2378: checkcast     #98                 // class java/util/Collection
    2381: astore        8
    2383: iconst_0
    2384: istore        9
    2386: aload         7
    2388: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    2393: astore        10
    2395: aload         10
    2397: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    2402: ifeq          2476
    2405: aload         10
    2407: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    2412: astore        11
    2414: aload         11
    2416: checkcast     #79                 // class kotlin/Pair
    2419: astore        12
    2421: iconst_0
    2422: istore        13
    2424: aload         12
    2426: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    2429: checkcast     #201                // class java/lang/Number
    2432: invokevirtual #202                // Method java/lang/Number.intValue:()I
    2435: sipush        151
    2438: aload_2
    2439: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
    2442: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    2445: checkcast     #201                // class java/lang/Number
    2448: invokevirtual #202                // Method java/lang/Number.intValue:()I
    2451: isub
    2452: if_icmpne     2459
    2455: iconst_1
    2456: goto          2460
    2459: iconst_0
    2460: ifeq          2395
    2463: aload         8
    2465: aload         11
    2467: invokeinterface #203,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    2472: pop
    2473: goto          2395
    2476: aload         8
    2478: checkcast     #40                 // class java/util/List
    2481: nop
    2482: astore        14
    2484: aload         14
    2486: checkcast     #48                 // class java/lang/Iterable
    2489: astore        5
    2491: nop
    2492: iconst_0
    2493: istore        6
    2495: aload         5
    2497: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    2502: astore        7
    2504: aload         7
    2506: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    2511: ifne          2518
    2514: aconst_null
    2515: goto          2624
    2518: aload         7
    2520: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    2525: astore        8
    2527: aload         7
    2529: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    2534: ifne          2542
    2537: aload         8
    2539: goto          2624
    2542: aload         8
    2544: checkcast     #79                 // class kotlin/Pair
    2547: astore        9
    2549: iconst_0
    2550: istore        10
    2552: aload         9
    2554: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    2557: checkcast     #201                // class java/lang/Number
    2560: invokevirtual #202                // Method java/lang/Number.intValue:()I
    2563: istore        9
    2565: aload         7
    2567: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    2572: astore        10
    2574: aload         10
    2576: checkcast     #79                 // class kotlin/Pair
    2579: astore        11
    2581: iconst_0
    2582: istore        12
    2584: aload         11
    2586: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    2589: checkcast     #201                // class java/lang/Number
    2592: invokevirtual #202                // Method java/lang/Number.intValue:()I
    2595: istore        11
    2597: iload         9
    2599: iload         11
    2601: if_icmple     2612
    2604: aload         10
    2606: astore        8
    2608: iload         11
    2610: istore        9
    2612: aload         7
    2614: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    2619: ifne          2565
    2622: aload         8
    2624: astore        14
    2626: aload         14
    2628: dup
    2629: invokestatic  #209                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
    2632: checkcast     #79                 // class kotlin/Pair
    2635: iconst_0
    2636: istore        29
    2638: astore        30
    2640: new           #211                // class day22/State
    2643: dup
    2644: aload         30
    2646: iload         29
    2648: invokespecial #214                // Method day22/State."<init>":(Lkotlin/Pair;I)V
    2651: goto          4594
    2654: bipush        51
    2656: iload         4
    2658: if_icmpgt     2676
    2661: iload         4
    2663: bipush        101
    2665: if_icmpge     2672
    2668: iconst_1
    2669: goto          2677
    2672: iconst_0
    2673: goto          2677
    2676: iconst_0
    2677: ifeq          2982
    2680: aload_0
    2681: aload_1
    2682: checkcast     #48                 // class java/lang/Iterable
    2685: invokestatic  #237                // Method kotlin/collections/SetsKt.plus:(Ljava/util/Set;Ljava/lang/Iterable;)Ljava/util/Set;
    2688: checkcast     #48                 // class java/lang/Iterable
    2691: astore        5
    2693: iconst_0
    2694: istore        6
    2696: aload         5
    2698: astore        7
    2700: new           #195                // class java/util/ArrayList
    2703: dup
    2704: invokespecial #196                // Method java/util/ArrayList."<init>":()V
    2707: checkcast     #98                 // class java/util/Collection
    2710: astore        8
    2712: iconst_0
    2713: istore        9
    2715: aload         7
    2717: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    2722: astore        10
    2724: aload         10
    2726: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    2731: ifeq          2804
    2734: aload         10
    2736: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    2741: astore        11
    2743: aload         11
    2745: checkcast     #79                 // class kotlin/Pair
    2748: astore        12
    2750: iconst_0
    2751: istore        13
    2753: aload         12
    2755: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    2758: checkcast     #201                // class java/lang/Number
    2761: invokevirtual #202                // Method java/lang/Number.intValue:()I
    2764: aload_2
    2765: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
    2768: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    2771: checkcast     #201                // class java/lang/Number
    2774: invokevirtual #202                // Method java/lang/Number.intValue:()I
    2777: bipush        50
    2779: isub
    2780: if_icmpne     2787
    2783: iconst_1
    2784: goto          2788
    2787: iconst_0
    2788: ifeq          2724
    2791: aload         8
    2793: aload         11
    2795: invokeinterface #203,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    2800: pop
    2801: goto          2724
    2804: aload         8
    2806: checkcast     #40                 // class java/util/List
    2809: nop
    2810: astore        14
    2812: aload         14
    2814: checkcast     #48                 // class java/lang/Iterable
    2817: astore        5
    2819: nop
    2820: iconst_0
    2821: istore        6
    2823: aload         5
    2825: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    2830: astore        7
    2832: aload         7
    2834: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    2839: ifne          2846
    2842: aconst_null
    2843: goto          2952
    2846: aload         7
    2848: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    2853: astore        8
    2855: aload         7
    2857: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    2862: ifne          2870
    2865: aload         8
    2867: goto          2952
    2870: aload         8
    2872: checkcast     #79                 // class kotlin/Pair
    2875: astore        9
    2877: iconst_0
    2878: istore        10
    2880: aload         9
    2882: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    2885: checkcast     #201                // class java/lang/Number
    2888: invokevirtual #202                // Method java/lang/Number.intValue:()I
    2891: istore        9
    2893: aload         7
    2895: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    2900: astore        10
    2902: aload         10
    2904: checkcast     #79                 // class kotlin/Pair
    2907: astore        11
    2909: iconst_0
    2910: istore        12
    2912: aload         11
    2914: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    2917: checkcast     #201                // class java/lang/Number
    2920: invokevirtual #202                // Method java/lang/Number.intValue:()I
    2923: istore        11
    2925: iload         9
    2927: iload         11
    2929: if_icmple     2940
    2932: aload         10
    2934: astore        8
    2936: iload         11
    2938: istore        9
    2940: aload         7
    2942: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    2947: ifne          2893
    2950: aload         8
    2952: astore        14
    2954: aload         14
    2956: dup
    2957: invokestatic  #209                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
    2960: checkcast     #79                 // class kotlin/Pair
    2963: iconst_1
    2964: istore        31
    2966: astore        32
    2968: new           #211                // class day22/State
    2971: dup
    2972: aload         32
    2974: iload         31
    2976: invokespecial #214                // Method day22/State."<init>":(Lkotlin/Pair;I)V
    2979: goto          4594
    2982: bipush        101
    2984: iload         4
    2986: if_icmpgt     3005
    2989: iload         4
    2991: sipush        151
    2994: if_icmpge     3001
    2997: iconst_1
    2998: goto          3006
    3001: iconst_0
    3002: goto          3006
    3005: iconst_0
    3006: ifeq          3312
    3009: aload_0
    3010: aload_1
    3011: checkcast     #48                 // class java/lang/Iterable
    3014: invokestatic  #237                // Method kotlin/collections/SetsKt.plus:(Ljava/util/Set;Ljava/lang/Iterable;)Ljava/util/Set;
    3017: checkcast     #48                 // class java/lang/Iterable
    3020: astore        5
    3022: iconst_0
    3023: istore        6
    3025: aload         5
    3027: astore        7
    3029: new           #195                // class java/util/ArrayList
    3032: dup
    3033: invokespecial #196                // Method java/util/ArrayList."<init>":()V
    3036: checkcast     #98                 // class java/util/Collection
    3039: astore        8
    3041: iconst_0
    3042: istore        9
    3044: aload         7
    3046: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    3051: astore        10
    3053: aload         10
    3055: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    3060: ifeq          3134
    3063: aload         10
    3065: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    3070: astore        11
    3072: aload         11
    3074: checkcast     #79                 // class kotlin/Pair
    3077: astore        12
    3079: iconst_0
    3080: istore        13
    3082: aload         12
    3084: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    3087: checkcast     #201                // class java/lang/Number
    3090: invokevirtual #202                // Method java/lang/Number.intValue:()I
    3093: sipush        151
    3096: aload_2
    3097: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
    3100: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    3103: checkcast     #201                // class java/lang/Number
    3106: invokevirtual #202                // Method java/lang/Number.intValue:()I
    3109: isub
    3110: if_icmpne     3117
    3113: iconst_1
    3114: goto          3118
    3117: iconst_0
    3118: ifeq          3053
    3121: aload         8
    3123: aload         11
    3125: invokeinterface #203,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    3130: pop
    3131: goto          3053
    3134: aload         8
    3136: checkcast     #40                 // class java/util/List
    3139: nop
    3140: astore        14
    3142: aload         14
    3144: checkcast     #48                 // class java/lang/Iterable
    3147: astore        5
    3149: nop
    3150: iconst_0
    3151: istore        6
    3153: aload         5
    3155: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    3160: astore        7
    3162: aload         7
    3164: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    3169: ifne          3176
    3172: aconst_null
    3173: goto          3282
    3176: aload         7
    3178: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    3183: astore        8
    3185: aload         7
    3187: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    3192: ifne          3200
    3195: aload         8
    3197: goto          3282
    3200: aload         8
    3202: checkcast     #79                 // class kotlin/Pair
    3205: astore        9
    3207: iconst_0
    3208: istore        10
    3210: aload         9
    3212: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    3215: checkcast     #201                // class java/lang/Number
    3218: invokevirtual #202                // Method java/lang/Number.intValue:()I
    3221: istore        9
    3223: aload         7
    3225: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    3230: astore        10
    3232: aload         10
    3234: checkcast     #79                 // class kotlin/Pair
    3237: astore        11
    3239: iconst_0
    3240: istore        12
    3242: aload         11
    3244: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    3247: checkcast     #201                // class java/lang/Number
    3250: invokevirtual #202                // Method java/lang/Number.intValue:()I
    3253: istore        11
    3255: iload         9
    3257: iload         11
    3259: if_icmple     3270
    3262: aload         10
    3264: astore        8
    3266: iload         11
    3268: istore        9
    3270: aload         7
    3272: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    3277: ifne          3223
    3280: aload         8
    3282: astore        14
    3284: aload         14
    3286: dup
    3287: invokestatic  #209                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
    3290: checkcast     #79                 // class kotlin/Pair
    3293: iconst_0
    3294: istore        33
    3296: astore        34
    3298: new           #211                // class day22/State
    3301: dup
    3302: aload         34
    3304: iload         33
    3306: invokespecial #214                // Method day22/State."<init>":(Lkotlin/Pair;I)V
    3309: goto          4594
    3312: aload_0
    3313: aload_1
    3314: checkcast     #48                 // class java/lang/Iterable
    3317: invokestatic  #237                // Method kotlin/collections/SetsKt.plus:(Ljava/util/Set;Ljava/lang/Iterable;)Ljava/util/Set;
    3320: checkcast     #48                 // class java/lang/Iterable
    3323: astore        5
    3325: iconst_0
    3326: istore        6
    3328: aload         5
    3330: astore        7
    3332: new           #195                // class java/util/ArrayList
    3335: dup
    3336: invokespecial #196                // Method java/util/ArrayList."<init>":()V
    3339: checkcast     #98                 // class java/util/Collection
    3342: astore        8
    3344: iconst_0
    3345: istore        9
    3347: aload         7
    3349: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    3354: astore        10
    3356: aload         10
    3358: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    3363: ifeq          3436
    3366: aload         10
    3368: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    3373: astore        11
    3375: aload         11
    3377: checkcast     #79                 // class kotlin/Pair
    3380: astore        12
    3382: iconst_0
    3383: istore        13
    3385: aload         12
    3387: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    3390: checkcast     #201                // class java/lang/Number
    3393: invokevirtual #202                // Method java/lang/Number.intValue:()I
    3396: aload_2
    3397: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
    3400: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    3403: checkcast     #201                // class java/lang/Number
    3406: invokevirtual #202                // Method java/lang/Number.intValue:()I
    3409: bipush        100
    3411: isub
    3412: if_icmpne     3419
    3415: iconst_1
    3416: goto          3420
    3419: iconst_0
    3420: ifeq          3356
    3423: aload         8
    3425: aload         11
    3427: invokeinterface #203,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    3432: pop
    3433: goto          3356
    3436: aload         8
    3438: checkcast     #40                 // class java/util/List
    3441: nop
    3442: astore        14
    3444: aload         14
    3446: checkcast     #48                 // class java/lang/Iterable
    3449: astore        5
    3451: nop
    3452: iconst_0
    3453: istore        6
    3455: aload         5
    3457: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    3462: astore        7
    3464: aload         7
    3466: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    3471: ifne          3478
    3474: aconst_null
    3475: goto          3584
    3478: aload         7
    3480: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    3485: astore        8
    3487: aload         7
    3489: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    3494: ifne          3502
    3497: aload         8
    3499: goto          3584
    3502: aload         8
    3504: checkcast     #79                 // class kotlin/Pair
    3507: astore        9
    3509: iconst_0
    3510: istore        10
    3512: aload         9
    3514: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    3517: checkcast     #201                // class java/lang/Number
    3520: invokevirtual #202                // Method java/lang/Number.intValue:()I
    3523: istore        9
    3525: aload         7
    3527: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    3532: astore        10
    3534: aload         10
    3536: checkcast     #79                 // class kotlin/Pair
    3539: astore        11
    3541: iconst_0
    3542: istore        12
    3544: aload         11
    3546: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    3549: checkcast     #201                // class java/lang/Number
    3552: invokevirtual #202                // Method java/lang/Number.intValue:()I
    3555: istore        11
    3557: iload         9
    3559: iload         11
    3561: if_icmple     3572
    3564: aload         10
    3566: astore        8
    3568: iload         11
    3570: istore        9
    3572: aload         7
    3574: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    3579: ifne          3525
    3582: aload         8
    3584: astore        14
    3586: aload         14
    3588: dup
    3589: invokestatic  #209                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
    3592: checkcast     #79                 // class kotlin/Pair
    3595: iconst_1
    3596: istore        35
    3598: astore        36
    3600: new           #211                // class day22/State
    3603: dup
    3604: aload         36
    3606: iload         35
    3608: invokespecial #214                // Method day22/State."<init>":(Lkotlin/Pair;I)V
    3611: goto          4594
    3614: aload_2
    3615: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
    3618: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    3621: checkcast     #201                // class java/lang/Number
    3624: invokevirtual #202                // Method java/lang/Number.intValue:()I
    3627: istore        4
    3629: iconst_1
    3630: iload         4
    3632: if_icmpgt     3650
    3635: iload         4
    3637: bipush        51
    3639: if_icmpge     3646
    3642: iconst_1
    3643: goto          3651
    3646: iconst_0
    3647: goto          3651
    3650: iconst_0
    3651: ifeq          3956
    3654: aload_0
    3655: aload_1
    3656: checkcast     #48                 // class java/lang/Iterable
    3659: invokestatic  #237                // Method kotlin/collections/SetsKt.plus:(Ljava/util/Set;Ljava/lang/Iterable;)Ljava/util/Set;
    3662: checkcast     #48                 // class java/lang/Iterable
    3665: astore        5
    3667: iconst_0
    3668: istore        6
    3670: aload         5
    3672: astore        7
    3674: new           #195                // class java/util/ArrayList
    3677: dup
    3678: invokespecial #196                // Method java/util/ArrayList."<init>":()V
    3681: checkcast     #98                 // class java/util/Collection
    3684: astore        8
    3686: iconst_0
    3687: istore        9
    3689: aload         7
    3691: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    3696: astore        10
    3698: aload         10
    3700: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    3705: ifeq          3778
    3708: aload         10
    3710: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    3715: astore        11
    3717: aload         11
    3719: checkcast     #79                 // class kotlin/Pair
    3722: astore        12
    3724: iconst_0
    3725: istore        13
    3727: aload         12
    3729: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    3732: checkcast     #201                // class java/lang/Number
    3735: invokevirtual #202                // Method java/lang/Number.intValue:()I
    3738: bipush        50
    3740: aload_2
    3741: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
    3744: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    3747: checkcast     #201                // class java/lang/Number
    3750: invokevirtual #202                // Method java/lang/Number.intValue:()I
    3753: iadd
    3754: if_icmpne     3761
    3757: iconst_1
    3758: goto          3762
    3761: iconst_0
    3762: ifeq          3698
    3765: aload         8
    3767: aload         11
    3769: invokeinterface #203,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    3774: pop
    3775: goto          3698
    3778: aload         8
    3780: checkcast     #40                 // class java/util/List
    3783: nop
    3784: astore        14
    3786: aload         14
    3788: checkcast     #48                 // class java/lang/Iterable
    3791: astore        5
    3793: nop
    3794: iconst_0
    3795: istore        6
    3797: aload         5
    3799: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    3804: astore        7
    3806: aload         7
    3808: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    3813: ifne          3820
    3816: aconst_null
    3817: goto          3926
    3820: aload         7
    3822: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    3827: astore        8
    3829: aload         7
    3831: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    3836: ifne          3844
    3839: aload         8
    3841: goto          3926
    3844: aload         8
    3846: checkcast     #79                 // class kotlin/Pair
    3849: astore        9
    3851: iconst_0
    3852: istore        10
    3854: aload         9
    3856: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    3859: checkcast     #201                // class java/lang/Number
    3862: invokevirtual #202                // Method java/lang/Number.intValue:()I
    3865: istore        9
    3867: aload         7
    3869: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    3874: astore        10
    3876: aload         10
    3878: checkcast     #79                 // class kotlin/Pair
    3881: astore        11
    3883: iconst_0
    3884: istore        12
    3886: aload         11
    3888: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    3891: checkcast     #201                // class java/lang/Number
    3894: invokevirtual #202                // Method java/lang/Number.intValue:()I
    3897: istore        11
    3899: iload         9
    3901: iload         11
    3903: if_icmple     3914
    3906: aload         10
    3908: astore        8
    3910: iload         11
    3912: istore        9
    3914: aload         7
    3916: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    3921: ifne          3867
    3924: aload         8
    3926: astore        14
    3928: aload         14
    3930: dup
    3931: invokestatic  #209                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
    3934: checkcast     #79                 // class kotlin/Pair
    3937: iconst_0
    3938: istore        37
    3940: astore        38
    3942: new           #211                // class day22/State
    3945: dup
    3946: aload         38
    3948: iload         37
    3950: invokespecial #214                // Method day22/State."<init>":(Lkotlin/Pair;I)V
    3953: goto          4594
    3956: bipush        51
    3958: iload         4
    3960: if_icmpgt     3978
    3963: iload         4
    3965: bipush        101
    3967: if_icmpge     3974
    3970: iconst_1
    3971: goto          3979
    3974: iconst_0
    3975: goto          3979
    3978: iconst_0
    3979: ifeq          4284
    3982: aload_0
    3983: aload_1
    3984: checkcast     #48                 // class java/lang/Iterable
    3987: invokestatic  #237                // Method kotlin/collections/SetsKt.plus:(Ljava/util/Set;Ljava/lang/Iterable;)Ljava/util/Set;
    3990: checkcast     #48                 // class java/lang/Iterable
    3993: astore        5
    3995: iconst_0
    3996: istore        6
    3998: aload         5
    4000: astore        7
    4002: new           #195                // class java/util/ArrayList
    4005: dup
    4006: invokespecial #196                // Method java/util/ArrayList."<init>":()V
    4009: checkcast     #98                 // class java/util/Collection
    4012: astore        8
    4014: iconst_0
    4015: istore        9
    4017: aload         7
    4019: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    4024: astore        10
    4026: aload         10
    4028: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    4033: ifeq          4106
    4036: aload         10
    4038: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    4043: astore        11
    4045: aload         11
    4047: checkcast     #79                 // class kotlin/Pair
    4050: astore        12
    4052: iconst_0
    4053: istore        13
    4055: aload         12
    4057: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    4060: checkcast     #201                // class java/lang/Number
    4063: invokevirtual #202                // Method java/lang/Number.intValue:()I
    4066: bipush        100
    4068: aload_2
    4069: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
    4072: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    4075: checkcast     #201                // class java/lang/Number
    4078: invokevirtual #202                // Method java/lang/Number.intValue:()I
    4081: iadd
    4082: if_icmpne     4089
    4085: iconst_1
    4086: goto          4090
    4089: iconst_0
    4090: ifeq          4026
    4093: aload         8
    4095: aload         11
    4097: invokeinterface #203,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    4102: pop
    4103: goto          4026
    4106: aload         8
    4108: checkcast     #40                 // class java/util/List
    4111: nop
    4112: astore        14
    4114: aload         14
    4116: checkcast     #48                 // class java/lang/Iterable
    4119: astore        5
    4121: nop
    4122: iconst_0
    4123: istore        6
    4125: aload         5
    4127: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    4132: astore        7
    4134: aload         7
    4136: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    4141: ifne          4148
    4144: aconst_null
    4145: goto          4254
    4148: aload         7
    4150: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    4155: astore        8
    4157: aload         7
    4159: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    4164: ifne          4172
    4167: aload         8
    4169: goto          4254
    4172: aload         8
    4174: checkcast     #79                 // class kotlin/Pair
    4177: astore        9
    4179: iconst_0
    4180: istore        10
    4182: aload         9
    4184: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    4187: checkcast     #201                // class java/lang/Number
    4190: invokevirtual #202                // Method java/lang/Number.intValue:()I
    4193: istore        9
    4195: aload         7
    4197: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    4202: astore        10
    4204: aload         10
    4206: checkcast     #79                 // class kotlin/Pair
    4209: astore        11
    4211: iconst_0
    4212: istore        12
    4214: aload         11
    4216: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    4219: checkcast     #201                // class java/lang/Number
    4222: invokevirtual #202                // Method java/lang/Number.intValue:()I
    4225: istore        11
    4227: iload         9
    4229: iload         11
    4231: if_icmple     4242
    4234: aload         10
    4236: astore        8
    4238: iload         11
    4240: istore        9
    4242: aload         7
    4244: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    4249: ifne          4195
    4252: aload         8
    4254: astore        14
    4256: aload         14
    4258: dup
    4259: invokestatic  #209                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
    4262: checkcast     #79                 // class kotlin/Pair
    4265: iconst_0
    4266: istore        39
    4268: astore        40
    4270: new           #211                // class day22/State
    4273: dup
    4274: aload         40
    4276: iload         39
    4278: invokespecial #214                // Method day22/State."<init>":(Lkotlin/Pair;I)V
    4281: goto          4594
    4284: aload_0
    4285: aload_1
    4286: checkcast     #48                 // class java/lang/Iterable
    4289: invokestatic  #237                // Method kotlin/collections/SetsKt.plus:(Ljava/util/Set;Ljava/lang/Iterable;)Ljava/util/Set;
    4292: checkcast     #48                 // class java/lang/Iterable
    4295: astore        5
    4297: iconst_0
    4298: istore        6
    4300: aload         5
    4302: astore        7
    4304: new           #195                // class java/util/ArrayList
    4307: dup
    4308: invokespecial #196                // Method java/util/ArrayList."<init>":()V
    4311: checkcast     #98                 // class java/util/Collection
    4314: astore        8
    4316: iconst_0
    4317: istore        9
    4319: aload         7
    4321: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    4326: astore        10
    4328: aload         10
    4330: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    4335: ifeq          4408
    4338: aload         10
    4340: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    4345: astore        11
    4347: aload         11
    4349: checkcast     #79                 // class kotlin/Pair
    4352: astore        12
    4354: iconst_0
    4355: istore        13
    4357: aload         12
    4359: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    4362: checkcast     #201                // class java/lang/Number
    4365: invokevirtual #202                // Method java/lang/Number.intValue:()I
    4368: aload_2
    4369: invokevirtual #226                // Method day22/State.getCoord:()Lkotlin/Pair;
    4372: invokevirtual #206                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    4375: checkcast     #201                // class java/lang/Number
    4378: invokevirtual #202                // Method java/lang/Number.intValue:()I
    4381: bipush        100
    4383: isub
    4384: if_icmpne     4391
    4387: iconst_1
    4388: goto          4392
    4391: iconst_0
    4392: ifeq          4328
    4395: aload         8
    4397: aload         11
    4399: invokeinterface #203,  2          // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    4404: pop
    4405: goto          4328
    4408: aload         8
    4410: checkcast     #40                 // class java/util/List
    4413: nop
    4414: astore        14
    4416: aload         14
    4418: checkcast     #48                 // class java/lang/Iterable
    4421: astore        5
    4423: nop
    4424: iconst_0
    4425: istore        6
    4427: aload         5
    4429: invokeinterface #52,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    4434: astore        7
    4436: aload         7
    4438: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    4443: ifne          4450
    4446: aconst_null
    4447: goto          4556
    4450: aload         7
    4452: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    4457: astore        8
    4459: aload         7
    4461: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    4466: ifne          4474
    4469: aload         8
    4471: goto          4556
    4474: aload         8
    4476: checkcast     #79                 // class kotlin/Pair
    4479: astore        9
    4481: iconst_0
    4482: istore        10
    4484: aload         9
    4486: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    4489: checkcast     #201                // class java/lang/Number
    4492: invokevirtual #202                // Method java/lang/Number.intValue:()I
    4495: istore        9
    4497: aload         7
    4499: invokeinterface #62,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    4504: astore        10
    4506: aload         10
    4508: checkcast     #79                 // class kotlin/Pair
    4511: astore        11
    4513: iconst_0
    4514: istore        12
    4516: aload         11
    4518: invokevirtual #199                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    4521: checkcast     #201                // class java/lang/Number
    4524: invokevirtual #202                // Method java/lang/Number.intValue:()I
    4527: istore        11
    4529: iload         9
    4531: iload         11
    4533: if_icmpge     4544
    4536: aload         10
    4538: astore        8
    4540: iload         11
    4542: istore        9
    4544: aload         7
    4546: invokeinterface #58,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    4551: ifne          4497
    4554: aload         8
    4556: astore        14
    4558: aload         14
    4560: dup
    4561: invokestatic  #209                // Method kotlin/jvm/internal/Intrinsics.checkNotNull:(Ljava/lang/Object;)V
    4564: checkcast     #79                 // class kotlin/Pair
    4567: iconst_3
    4568: istore        41
    4570: astore        42
    4572: new           #211                // class day22/State
    4575: dup
    4576: aload         42
    4578: iload         41
    4580: invokespecial #214                // Method day22/State."<init>":(Lkotlin/Pair;I)V
    4583: goto          4594
    4586: new           #284                // class java/lang/IllegalStateException
    4589: dup
    4590: invokespecial #285                // Method java/lang/IllegalStateException."<init>":()V
    4593: athrow
    4594: areturn

  public static void main(java.lang.String[]);
    Code:
       0: invokestatic  #329                // Method main:()V
       3: return

  public static final day22.State access$flatWrap(java.util.Set, java.util.Set, day22.State);
    Code:
       0: aload_0
       1: aload_1
       2: aload_2
       3: invokestatic  #334                // Method flatWrap:(Ljava/util/Set;Ljava/util/Set;Lday22/State;)Lday22/State;
       6: areturn

  public static final day22.State access$cubeWrap(java.util.Set, java.util.Set, day22.State);
    Code:
       0: aload_0
       1: aload_1
       2: aload_2
       3: invokestatic  #337                // Method cubeWrap:(Ljava/util/Set;Ljava/util/Set;Lday22/State;)Lday22/State;
       6: areturn
}

Compiled from "Day22.kt"
final class day22.Day22Kt$main$3 extends kotlin.jvm.internal.FunctionReferenceImpl implements kotlin.jvm.functions.Function3<java.util.Set<? extends kotlin.Pair<? extends java.lang.Integer, ? extends java.lang.Integer>>, java.util.Set<? extends kotlin.Pair<? extends java.lang.Integer, ? extends java.lang.Integer>>, day22.State, day22.State> {
  public static final day22.Day22Kt$main$3 INSTANCE;

  day22.Day22Kt$main$3();
    Code:
       0: aload_0
       1: iconst_3
       2: ldc           #11                 // class day22/Day22Kt
       4: ldc           #13                 // String cubeWrap
       6: ldc           #15                 // String cubeWrap(Ljava/util/Set;Ljava/util/Set;Lday22/State;)Lday22/State;
       8: iconst_1
       9: invokespecial #18                 // Method kotlin/jvm/internal/FunctionReferenceImpl."<init>":(ILjava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V
      12: return

  public final day22.State invoke(java.util.Set<kotlin.Pair<java.lang.Integer, java.lang.Integer>>, java.util.Set<kotlin.Pair<java.lang.Integer, java.lang.Integer>>, day22.State);
    Code:
       0: aload_1
       1: ldc           #25                 // String p0
       3: invokestatic  #31                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_2
       7: ldc           #33                 // String p1
       9: invokestatic  #31                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: aload_3
      13: ldc           #35                 // String p2
      15: invokestatic  #31                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      18: aload_1
      19: aload_2
      20: aload_3
      21: invokestatic  #38                 // Method day22/Day22Kt.access$cubeWrap:(Ljava/util/Set;Ljava/util/Set;Lday22/State;)Lday22/State;
      24: areturn

  public java.lang.Object invoke(java.lang.Object, java.lang.Object, java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: checkcast     #43                 // class java/util/Set
       5: aload_2
       6: checkcast     #43                 // class java/util/Set
       9: aload_3
      10: checkcast     #45                 // class day22/State
      13: invokevirtual #47                 // Method invoke:(Ljava/util/Set;Ljava/util/Set;Lday22/State;)Lday22/State;
      16: areturn

  static {};
    Code:
       0: new           #2                  // class day22/Day22Kt$main$3
       3: dup
       4: invokespecial #52                 // Method "<init>":()V
       7: putstatic     #55                 // Field INSTANCE:Lday22/Day22Kt$main$3;
      10: return
}

Compiled from "Day22.kt"
final class day22.Day22Kt$main$2 extends kotlin.jvm.internal.FunctionReferenceImpl implements kotlin.jvm.functions.Function3<java.util.Set<? extends kotlin.Pair<? extends java.lang.Integer, ? extends java.lang.Integer>>, java.util.Set<? extends kotlin.Pair<? extends java.lang.Integer, ? extends java.lang.Integer>>, day22.State, day22.State> {
  public static final day22.Day22Kt$main$2 INSTANCE;

  day22.Day22Kt$main$2();
    Code:
       0: aload_0
       1: iconst_3
       2: ldc           #11                 // class day22/Day22Kt
       4: ldc           #13                 // String flatWrap
       6: ldc           #15                 // String flatWrap(Ljava/util/Set;Ljava/util/Set;Lday22/State;)Lday22/State;
       8: iconst_1
       9: invokespecial #18                 // Method kotlin/jvm/internal/FunctionReferenceImpl."<init>":(ILjava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V
      12: return

  public final day22.State invoke(java.util.Set<kotlin.Pair<java.lang.Integer, java.lang.Integer>>, java.util.Set<kotlin.Pair<java.lang.Integer, java.lang.Integer>>, day22.State);
    Code:
       0: aload_1
       1: ldc           #25                 // String p0
       3: invokestatic  #31                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_2
       7: ldc           #33                 // String p1
       9: invokestatic  #31                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      12: aload_3
      13: ldc           #35                 // String p2
      15: invokestatic  #31                 // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
      18: aload_1
      19: aload_2
      20: aload_3
      21: invokestatic  #38                 // Method day22/Day22Kt.access$flatWrap:(Ljava/util/Set;Ljava/util/Set;Lday22/State;)Lday22/State;
      24: areturn

  public java.lang.Object invoke(java.lang.Object, java.lang.Object, java.lang.Object);
    Code:
       0: aload_0
       1: aload_1
       2: checkcast     #43                 // class java/util/Set
       5: aload_2
       6: checkcast     #43                 // class java/util/Set
       9: aload_3
      10: checkcast     #45                 // class day22/State
      13: invokevirtual #47                 // Method invoke:(Ljava/util/Set;Ljava/util/Set;Lday22/State;)Lday22/State;
      16: areturn

  static {};
    Code:
       0: new           #2                  // class day22/Day22Kt$main$2
       3: dup
       4: invokespecial #52                 // Method "<init>":()V
       7: putstatic     #55                 // Field INSTANCE:Lday22/Day22Kt$main$2;
      10: return
}