import java.io.File

fun main() {
    val notationToShape = mapOf(
      "A" to "Rock",
      "B" to "Paper",
      "C" to "Scissors",
      "X" to "Rock",
      "Y" to "Paper",
      "Z" to "Scissors"
    )
    val shapePoints = mapOf(
      "Rock" to 1,
      "Paper" to 2,
      "Scissors" to 3
    )
    val winOver = mapOf(
      "A" to "B", // A-Rock loses to B-Paper
      "B" to "C", // B-Paper loses to C-Scissors
      "C" to "A" // C-Scissors loses to A-Rock
    )
    val loseTo = mapOf(
      "A" to "C", // A-Rock beats C-Scissors
      "B" to "A", // B-Paper beats A-Rock
      "C" to "B" // C-Scissors beats B-Paper
    )

    fun scoreRoundForPlayer(player: String?, opponent: String): Int {
        val playerShape = notationToShape[player];
        val opponentShape = notationToShape[opponent];
        var score: Int = shapePoints[playerShape] ?: 0;

        if (playerShape === opponentShape) {
            score += 3;
        } else if (
            (playerShape == "Rock" && opponentShape == "Scissors")
            || (playerShape == "Paper" && opponentShape == "Rock")
            || (playerShape == "Scissors" && opponentShape == "Paper")
        ) {
            score += 6;
        }
        return score;
    }

    fun chooseShapeForResult(opponentNotation: String, result: String): String? {
        if (result == "Y") { // Draw
            return opponentNotation;
        } else if (result == "X") {  // Lose
            return loseTo[opponentNotation];
        } else {
            return winOver[opponentNotation];
        }
    }

    fun part1(filename: String): Int? {
        var score: Int = 0;
        File(filename).forEachLine {
            val shapes = it.split(" ");
            score += scoreRoundForPlayer(shapes[1], shapes[0])
        }
        return score;
    }

    fun part2(filename: String): Int? {
        var score: Int = 0;
        File(filename).forEachLine {
            val notation = it.split(" ");
            val playerShapeNotation = chooseShapeForResult(notation[0], notation[1]);
            score += scoreRoundForPlayer(playerShapeNotation, notation[0])
        }
        return score;
    }

    println(part1("input_day02.txt"))
    println(part2("input_day02.txt"))
}

Compiled from "Day02.kt"
public final class Day02Kt {
  public static final void main();
    Code:
       0: bipush        6
       2: anewarray     #8                  // class kotlin/Pair
       5: astore_1
       6: aload_1
       7: iconst_0
       8: ldc           #10                 // String A
      10: ldc           #12                 // String Rock
      12: invokestatic  #18                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      15: aastore
      16: aload_1
      17: iconst_1
      18: ldc           #20                 // String B
      20: ldc           #22                 // String Paper
      22: invokestatic  #18                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      25: aastore
      26: aload_1
      27: iconst_2
      28: ldc           #24                 // String C
      30: ldc           #26                 // String Scissors
      32: invokestatic  #18                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      35: aastore
      36: aload_1
      37: iconst_3
      38: ldc           #28                 // String X
      40: ldc           #12                 // String Rock
      42: invokestatic  #18                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      45: aastore
      46: aload_1
      47: iconst_4
      48: ldc           #30                 // String Y
      50: ldc           #22                 // String Paper
      52: invokestatic  #18                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      55: aastore
      56: aload_1
      57: iconst_5
      58: ldc           #32                 // String Z
      60: ldc           #26                 // String Scissors
      62: invokestatic  #18                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      65: aastore
      66: aload_1
      67: invokestatic  #38                 // Method kotlin/collections/MapsKt.mapOf:([Lkotlin/Pair;)Ljava/util/Map;
      70: astore_0
      71: iconst_3
      72: anewarray     #8                  // class kotlin/Pair
      75: astore_2
      76: aload_2
      77: iconst_0
      78: ldc           #12                 // String Rock
      80: iconst_1
      81: invokestatic  #44                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      84: invokestatic  #18                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      87: aastore
      88: aload_2
      89: iconst_1
      90: ldc           #22                 // String Paper
      92: iconst_2
      93: invokestatic  #44                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      96: invokestatic  #18                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      99: aastore
     100: aload_2
     101: iconst_2
     102: ldc           #26                 // String Scissors
     104: iconst_3
     105: invokestatic  #44                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     108: invokestatic  #18                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     111: aastore
     112: aload_2
     113: invokestatic  #38                 // Method kotlin/collections/MapsKt.mapOf:([Lkotlin/Pair;)Ljava/util/Map;
     116: astore_1
     117: iconst_3
     118: anewarray     #8                  // class kotlin/Pair
     121: astore_3
     122: aload_3
     123: iconst_0
     124: ldc           #10                 // String A
     126: ldc           #20                 // String B
     128: invokestatic  #18                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     131: aastore
     132: aload_3
     133: iconst_1
     134: ldc           #20                 // String B
     136: ldc           #24                 // String C
     138: invokestatic  #18                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     141: aastore
     142: aload_3
     143: iconst_2
     144: ldc           #24                 // String C
     146: ldc           #10                 // String A
     148: invokestatic  #18                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     151: aastore
     152: aload_3
     153: invokestatic  #38                 // Method kotlin/collections/MapsKt.mapOf:([Lkotlin/Pair;)Ljava/util/Map;
     156: astore_2
     157: iconst_3
     158: anewarray     #8                  // class kotlin/Pair
     161: astore        4
     163: aload         4
     165: iconst_0
     166: ldc           #10                 // String A
     168: ldc           #24                 // String C
     170: invokestatic  #18                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     173: aastore
     174: aload         4
     176: iconst_1
     177: ldc           #20                 // String B
     179: ldc           #10                 // String A
     181: invokestatic  #18                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     184: aastore
     185: aload         4
     187: iconst_2
     188: ldc           #24                 // String C
     190: ldc           #20                 // String B
     192: invokestatic  #18                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     195: aastore
     196: aload         4
     198: invokestatic  #38                 // Method kotlin/collections/MapsKt.mapOf:([Lkotlin/Pair;)Ljava/util/Map;
     201: astore_3
     202: aload_0
     203: aload_1
     204: ldc           #46                 // String input_day02.txt
     206: invokestatic  #50                 // Method main$part1:(Ljava/util/Map;Ljava/util/Map;Ljava/lang/String;)Ljava/lang/Integer;
     209: getstatic     #56                 // Field java/lang/System.out:Ljava/io/PrintStream;
     212: swap
     213: invokevirtual #62                 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
     216: aload_3
     217: aload_2
     218: aload_0
     219: aload_1
     220: ldc           #46                 // String input_day02.txt
     222: invokestatic  #66                 // Method main$part2:(Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/lang/String;)Ljava/lang/Integer;
     225: getstatic     #56                 // Field java/lang/System.out:Ljava/io/PrintStream;
     228: swap
     229: invokevirtual #62                 // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
     232: return

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

  private static final int main$scoreRoundForPlayer(java.util.Map<java.lang.String, java.lang.String>, java.util.Map<java.lang.String, java.lang.Integer>, java.lang.String, java.lang.String);
    Code:
       0: aload_0
       1: aload_2
       2: invokeinterface #85,  2           // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
       7: checkcast     #87                 // class java/lang/String
      10: astore        4
      12: aload_0
      13: aload_3
      14: invokeinterface #85,  2           // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
      19: checkcast     #87                 // class java/lang/String
      22: astore        5
      24: aload_1
      25: aload         4
      27: invokeinterface #85,  2           // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
      32: checkcast     #40                 // class java/lang/Integer
      35: dup
      36: ifnull        45
      39: invokevirtual #91                 // Method java/lang/Integer.intValue:()I
      42: goto          47
      45: pop
      46: iconst_0
      47: istore        6
      49: aload         4
      51: aload         5
      53: if_acmpne     62
      56: iinc          6, 3
      59: goto          125
      62: aload         4
      64: ldc           #12                 // String Rock
      66: invokestatic  #97                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      69: ifeq          82
      72: aload         5
      74: ldc           #26                 // String Scissors
      76: invokestatic  #97                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      79: ifne          122
      82: aload         4
      84: ldc           #22                 // String Paper
      86: invokestatic  #97                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      89: ifeq          102
      92: aload         5
      94: ldc           #12                 // String Rock
      96: invokestatic  #97                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      99: ifne          122
     102: aload         4
     104: ldc           #26                 // String Scissors
     106: invokestatic  #97                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
     109: ifeq          125
     112: aload         5
     114: ldc           #22                 // String Paper
     116: invokestatic  #97                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
     119: ifeq          125
     122: iinc          6, 6
     125: iload         6
     127: ireturn

  private static final java.lang.String main$chooseShapeForResult(java.util.Map<java.lang.String, java.lang.String>, java.util.Map<java.lang.String, java.lang.String>, java.lang.String, java.lang.String);
    Code:
       0: aload_3
       1: ldc           #30                 // String Y
       3: invokestatic  #97                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
       6: ifeq          11
       9: aload_2
      10: areturn
      11: aload_3
      12: ldc           #28                 // String X
      14: invokestatic  #97                 // Method kotlin/jvm/internal/Intrinsics.areEqual:(Ljava/lang/Object;Ljava/lang/Object;)Z
      17: ifeq          31
      20: aload_0
      21: aload_2
      22: invokeinterface #85,  2           // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
      27: checkcast     #87                 // class java/lang/String
      30: areturn
      31: aload_1
      32: aload_2
      33: invokeinterface #85,  2           // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
      38: checkcast     #87                 // class java/lang/String
      41: areturn

  private static final kotlin.Unit main$part1$lambda$0(kotlin.jvm.internal.Ref$IntRef, java.util.Map, java.util.Map, java.lang.String);
    Code:
       0: aload_3
       1: ldc           #113                // String it
       3: invokestatic  #117                // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_3
       7: checkcast     #119                // class java/lang/CharSequence
      10: iconst_1
      11: anewarray     #87                 // class java/lang/String
      14: astore        5
      16: aload         5
      18: iconst_0
      19: ldc           #121                // String
      21: aastore
      22: aload         5
      24: iconst_0
      25: iconst_0
      26: bipush        6
      28: aconst_null
      29: invokestatic  #127                // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
      32: astore        4
      34: aload_0
      35: aload_0
      36: getfield      #132                // Field kotlin/jvm/internal/Ref$IntRef.element:I
      39: aload_1
      40: aload_2
      41: aload         4
      43: iconst_1
      44: invokeinterface #137,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      49: checkcast     #87                 // class java/lang/String
      52: aload         4
      54: iconst_0
      55: invokeinterface #137,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      60: checkcast     #87                 // class java/lang/String
      63: invokestatic  #139                // Method main$scoreRoundForPlayer:(Ljava/util/Map;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;)I
      66: iadd
      67: putfield      #132                // Field kotlin/jvm/internal/Ref$IntRef.element:I
      70: getstatic     #145                // Field kotlin/Unit.INSTANCE:Lkotlin/Unit;
      73: areturn

  private static final java.lang.Integer main$part1(java.util.Map<java.lang.String, java.lang.String>, java.util.Map<java.lang.String, java.lang.Integer>, java.lang.String);
    Code:
       0: new           #129                // class kotlin/jvm/internal/Ref$IntRef
       3: dup
       4: invokespecial #155                // Method kotlin/jvm/internal/Ref$IntRef."<init>":()V
       7: astore_3
       8: new           #157                // class java/io/File
      11: dup
      12: aload_2
      13: invokespecial #160                // Method java/io/File."<init>":(Ljava/lang/String;)V
      16: aconst_null
      17: aload_3
      18: aload_0
      19: aload_1
      20: invokedynamic #177,  0            // InvokeDynamic #0:invoke:(Lkotlin/jvm/internal/Ref$IntRef;Ljava/util/Map;Ljava/util/Map;)Lkotlin/jvm/functions/Function1;
      25: iconst_1
      26: aconst_null
      27: invokestatic  #183                // Method kotlin/io/FilesKt.forEachLine$default:(Ljava/io/File;Ljava/nio/charset/Charset;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
      30: aload_3
      31: getfield      #132                // Field kotlin/jvm/internal/Ref$IntRef.element:I
      34: invokestatic  #44                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      37: areturn

  private static final kotlin.Unit main$part2$lambda$1(kotlin.jvm.internal.Ref$IntRef, java.util.Map, java.util.Map, java.util.Map, java.util.Map, java.lang.String);
    Code:
       0: aload         5
       2: ldc           #113                // String it
       4: invokestatic  #117                // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       7: aload         5
       9: checkcast     #119                // class java/lang/CharSequence
      12: iconst_1
      13: anewarray     #87                 // class java/lang/String
      16: astore        7
      18: aload         7
      20: iconst_0
      21: ldc           #121                // String
      23: aastore
      24: aload         7
      26: iconst_0
      27: iconst_0
      28: bipush        6
      30: aconst_null
      31: invokestatic  #127                // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
      34: astore        6
      36: aload_1
      37: aload_2
      38: aload         6
      40: iconst_0
      41: invokeinterface #137,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      46: checkcast     #87                 // class java/lang/String
      49: aload         6
      51: iconst_1
      52: invokeinterface #137,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      57: checkcast     #87                 // class java/lang/String
      60: invokestatic  #188                // Method main$chooseShapeForResult:(Ljava/util/Map;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
      63: astore        7
      65: aload_0
      66: aload_0
      67: getfield      #132                // Field kotlin/jvm/internal/Ref$IntRef.element:I
      70: aload_3
      71: aload         4
      73: aload         7
      75: aload         6
      77: iconst_0
      78: invokeinterface #137,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      83: checkcast     #87                 // class java/lang/String
      86: invokestatic  #139                // Method main$scoreRoundForPlayer:(Ljava/util/Map;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;)I
      89: iadd
      90: putfield      #132                // Field kotlin/jvm/internal/Ref$IntRef.element:I
      93: getstatic     #145                // Field kotlin/Unit.INSTANCE:Lkotlin/Unit;
      96: areturn

  private static final java.lang.Integer main$part2(java.util.Map<java.lang.String, java.lang.String>, java.util.Map<java.lang.String, java.lang.String>, java.util.Map<java.lang.String, java.lang.String>, java.util.Map<java.lang.String, java.lang.Integer>, java.lang.String);
    Code:
       0: new           #129                // class kotlin/jvm/internal/Ref$IntRef
       3: dup
       4: invokespecial #155                // Method kotlin/jvm/internal/Ref$IntRef."<init>":()V
       7: astore        5
       9: new           #157                // class java/io/File
      12: dup
      13: aload         4
      15: invokespecial #160                // Method java/io/File."<init>":(Ljava/lang/String;)V
      18: aconst_null
      19: aload         5
      21: aload_0
      22: aload_1
      23: aload_2
      24: aload_3
      25: invokedynamic #199,  0            // InvokeDynamic #1:invoke:(Lkotlin/jvm/internal/Ref$IntRef;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)Lkotlin/jvm/functions/Function1;
      30: iconst_1
      31: aconst_null
      32: invokestatic  #183                // Method kotlin/io/FilesKt.forEachLine$default:(Ljava/io/File;Ljava/nio/charset/Charset;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
      35: aload         5
      37: getfield      #132                // Field kotlin/jvm/internal/Ref$IntRef.element:I
      40: invokestatic  #44                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      43: areturn
}


import kotlin.math.max
import kotlin.math.min

fun main() = println(
    generateSequence(::readLine)
        .joinToString("\n")
        .split("\n\n")
        .let { p ->
            Pair(
                p[0].substringAfter(": ")
                    .split(' ')
                    .map(String::toLong),
                p.drop(1)
                    .map { s ->
                        s.split('\n')
                            .drop(1)
                            .map { l ->
                                l.split(' ').let { (a, b, c) ->
                                    Triple(a.toLong(), b.toLong(), c.toLong())
                                }
                            }
                    }
            )
        }
        .let { (seed, fs) ->
            seed.chunked(2)
                .map { (a, b) ->
                    fs
                        // this is so awful, why does it work
                        .fold(listOf(a to a + b)) { y, t ->
                            mutableListOf<Pair<Long, Long>>().also { l ->
                                l.addAll(
                                    t.fold(y) { r, (dst, src, len) ->
                                        r.flatMap { (x, y) ->
                                            buildList {
                                                (x to min(y, src))
                                                    .takeIf { it.second > it.first }
                                                    ?.let(::add)
                                                (max(src + len, x) to y)
                                                    .takeIf { it.second > it.first }
                                                    ?.let(::add)
                                                (max(x, src) to min(src + len, y))
                                                    .takeIf { it.second > it.first }
                                                    ?.let { l.add((it.first - src + dst) to (it.second - src + dst)) }
                                            }
                                        }
                                    }
                                )
                            }
                        }
                        .minOf { min(it.first, it.second) }
                }
        }
        .min()
)

Compiled from "day5B.kt"
public final class Day5BKt {
  public static final void main();
    Code:
       0: getstatic     #12                 // Field Day5BKt$main$1.INSTANCE:LDay5BKt$main$1;
       3: checkcast     #14                 // class kotlin/jvm/functions/Function0
       6: invokestatic  #20                 // Method kotlin/sequences/SequencesKt.generateSequence:(Lkotlin/jvm/functions/Function0;)Lkotlin/sequences/Sequence;
       9: ldc           #22                 // String \n
      11: checkcast     #24                 // class java/lang/CharSequence
      14: aconst_null
      15: aconst_null
      16: iconst_0
      17: aconst_null
      18: aconst_null
      19: bipush        62
      21: aconst_null
      22: invokestatic  #28                 // Method kotlin/sequences/SequencesKt.joinToString$default:(Lkotlin/sequences/Sequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ILjava/lang/CharSequence;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Ljava/lang/String;
      25: checkcast     #24                 // class java/lang/CharSequence
      28: iconst_1
      29: anewarray     #30                 // class java/lang/String
      32: astore_0
      33: aload_0
      34: iconst_0
      35: ldc           #32                 // String \n\n
      37: aastore
      38: aload_0
      39: iconst_0
      40: iconst_0
      41: bipush        6
      43: aconst_null
      44: invokestatic  #38                 // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[Ljava/lang/String;ZIILjava/lang/Object;)Ljava/util/List;
      47: astore_1
      48: iconst_0
      49: istore_2
      50: aload_1
      51: iconst_0
      52: invokeinterface #44,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
      57: checkcast     #30                 // class java/lang/String
      60: ldc           #46                 // String :
      62: aconst_null
      63: iconst_2
      64: aconst_null
      65: invokestatic  #50                 // Method kotlin/text/StringsKt.substringAfter$default:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String;
      68: checkcast     #24                 // class java/lang/CharSequence
      71: iconst_1
      72: newarray       char
      74: astore_3
      75: aload_3
      76: iconst_0
      77: bipush        32
      79: castore
      80: aload_3
      81: iconst_0
      82: iconst_0
      83: bipush        6
      85: aconst_null
      86: invokestatic  #53                 // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[CZIILjava/lang/Object;)Ljava/util/List;
      89: checkcast     #55                 // class java/lang/Iterable
      92: astore_3
      93: iconst_0
      94: istore        6
      96: aload_3
      97: astore        7
      99: new           #57                 // class java/util/ArrayList
     102: dup
     103: aload_3
     104: bipush        10
     106: invokestatic  #63                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     109: invokespecial #67                 // Method java/util/ArrayList."<init>":(I)V
     112: checkcast     #69                 // class java/util/Collection
     115: astore        8
     117: iconst_0
     118: istore        9
     120: aload         7
     122: invokeinterface #73,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     127: astore        10
     129: aload         10
     131: invokeinterface #79,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     136: ifeq          183
     139: aload         10
     141: invokeinterface #83,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     146: astore        11
     148: aload         8
     150: aload         11
     152: checkcast     #30                 // class java/lang/String
     155: astore        12
     157: astore        13
     159: iconst_0
     160: istore        14
     162: aload         12
     164: invokestatic  #89                 // Method java/lang/Long.parseLong:(Ljava/lang/String;)J
     167: nop
     168: invokestatic  #93                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     171: aload         13
     173: swap
     174: invokeinterface #97,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     179: pop
     180: goto          129
     183: aload         8
     185: checkcast     #40                 // class java/util/List
     188: nop
     189: aload_1
     190: checkcast     #55                 // class java/lang/Iterable
     193: iconst_1
     194: invokestatic  #101                // Method kotlin/collections/CollectionsKt.drop:(Ljava/lang/Iterable;I)Ljava/util/List;
     197: checkcast     #55                 // class java/lang/Iterable
     200: astore_3
     201: astore        13
     203: iconst_0
     204: istore        6
     206: aload_3
     207: astore        7
     209: new           #57                 // class java/util/ArrayList
     212: dup
     213: aload_3
     214: bipush        10
     216: invokestatic  #63                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     219: invokespecial #67                 // Method java/util/ArrayList."<init>":(I)V
     222: checkcast     #69                 // class java/util/Collection
     225: astore        8
     227: iconst_0
     228: istore        9
     230: aload         7
     232: invokeinterface #73,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     237: astore        10
     239: aload         10
     241: invokeinterface #79,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     246: ifeq          516
     249: aload         10
     251: invokeinterface #83,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     256: astore        11
     258: aload         8
     260: aload         11
     262: checkcast     #30                 // class java/lang/String
     265: astore        12
     267: astore        15
     269: iconst_0
     270: istore        14
     272: aload         12
     274: checkcast     #24                 // class java/lang/CharSequence
     277: iconst_1
     278: newarray       char
     280: astore        16
     282: aload         16
     284: iconst_0
     285: bipush        10
     287: castore
     288: aload         16
     290: iconst_0
     291: iconst_0
     292: bipush        6
     294: aconst_null
     295: invokestatic  #53                 // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[CZIILjava/lang/Object;)Ljava/util/List;
     298: checkcast     #55                 // class java/lang/Iterable
     301: iconst_1
     302: invokestatic  #101                // Method kotlin/collections/CollectionsKt.drop:(Ljava/lang/Iterable;I)Ljava/util/List;
     305: checkcast     #55                 // class java/lang/Iterable
     308: astore        16
     310: nop
     311: iconst_0
     312: istore        17
     314: aload         16
     316: astore        18
     318: new           #57                 // class java/util/ArrayList
     321: dup
     322: aload         16
     324: bipush        10
     326: invokestatic  #63                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     329: invokespecial #67                 // Method java/util/ArrayList."<init>":(I)V
     332: checkcast     #69                 // class java/util/Collection
     335: astore        19
     337: iconst_0
     338: istore        20
     340: aload         18
     342: invokeinterface #73,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     347: astore        21
     349: aload         21
     351: invokeinterface #79,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     356: ifeq          497
     359: aload         21
     361: invokeinterface #83,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     366: astore        23
     368: aload         19
     370: aload         23
     372: checkcast     #30                 // class java/lang/String
     375: astore        25
     377: astore        26
     379: iconst_0
     380: istore        27
     382: aload         25
     384: checkcast     #24                 // class java/lang/CharSequence
     387: iconst_1
     388: newarray       char
     390: astore        28
     392: aload         28
     394: iconst_0
     395: bipush        32
     397: castore
     398: aload         28
     400: iconst_0
     401: iconst_0
     402: bipush        6
     404: aconst_null
     405: invokestatic  #53                 // Method kotlin/text/StringsKt.split$default:(Ljava/lang/CharSequence;[CZIILjava/lang/Object;)Ljava/util/List;
     408: astore        29
     410: iconst_0
     411: istore        30
     413: aload         29
     415: iconst_0
     416: invokeinterface #44,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     421: checkcast     #30                 // class java/lang/String
     424: astore        31
     426: aload         29
     428: iconst_1
     429: invokeinterface #44,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     434: checkcast     #30                 // class java/lang/String
     437: astore        32
     439: aload         29
     441: iconst_2
     442: invokeinterface #44,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     447: checkcast     #30                 // class java/lang/String
     450: astore        33
     452: new           #103                // class kotlin/Triple
     455: dup
     456: aload         31
     458: invokestatic  #89                 // Method java/lang/Long.parseLong:(Ljava/lang/String;)J
     461: invokestatic  #93                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     464: aload         32
     466: invokestatic  #89                 // Method java/lang/Long.parseLong:(Ljava/lang/String;)J
     469: invokestatic  #93                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     472: aload         33
     474: invokestatic  #89                 // Method java/lang/Long.parseLong:(Ljava/lang/String;)J
     477: invokestatic  #93                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     480: invokespecial #106                // Method kotlin/Triple."<init>":(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
     483: nop
     484: nop
     485: aload         26
     487: swap
     488: invokeinterface #97,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     493: pop
     494: goto          349
     497: aload         19
     499: checkcast     #40                 // class java/util/List
     502: nop
     503: nop
     504: aload         15
     506: swap
     507: invokeinterface #97,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
     512: pop
     513: goto          239
     516: aload         8
     518: checkcast     #40                 // class java/util/List
     521: nop
     522: aload         13
     524: swap
     525: astore        69
     527: astore        70
     529: new           #108                // class kotlin/Pair
     532: dup
     533: aload         70
     535: aload         69
     537: invokespecial #111                // Method kotlin/Pair."<init>":(Ljava/lang/Object;Ljava/lang/Object;)V
     540: nop
     541: nop
     542: astore_1
     543: iconst_0
     544: istore_2
     545: aload_1
     546: invokevirtual #114                // Method kotlin/Pair.component1:()Ljava/lang/Object;
     549: checkcast     #40                 // class java/util/List
     552: astore_3
     553: aload_1
     554: invokevirtual #117                // Method kotlin/Pair.component2:()Ljava/lang/Object;
     557: checkcast     #40                 // class java/util/List
     560: astore        4
     562: aload_3
     563: checkcast     #55                 // class java/lang/Iterable
     566: iconst_2
     567: invokestatic  #120                // Method kotlin/collections/CollectionsKt.chunked:(Ljava/lang/Iterable;I)Ljava/util/List;
     570: checkcast     #55                 // class java/lang/Iterable
     573: astore        5
     575: nop
     576: iconst_0
     577: istore        6
     579: aload         5
     581: astore        7
     583: new           #57                 // class java/util/ArrayList
     586: dup
     587: aload         5
     589: bipush        10
     591: invokestatic  #63                 // Method kotlin/collections/CollectionsKt.collectionSizeOrDefault:(Ljava/lang/Iterable;I)I
     594: invokespecial #67                 // Method java/util/ArrayList."<init>":(I)V
     597: checkcast     #69                 // class java/util/Collection
     600: astore        8
     602: iconst_0
     603: istore        9
     605: aload         7
     607: invokeinterface #73,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     612: astore        10
     614: aload         10
     616: invokeinterface #79,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     621: ifeq          1534
     624: aload         10
     626: invokeinterface #83,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     631: astore        11
     633: aload         8
     635: aload         11
     637: checkcast     #40                 // class java/util/List
     640: astore        12
     642: astore        13
     644: iconst_0
     645: istore        14
     647: aload         12
     649: iconst_0
     650: invokeinterface #44,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     655: checkcast     #122                // class java/lang/Number
     658: invokevirtual #126                // Method java/lang/Number.longValue:()J
     661: lstore        15
     663: aload         12
     665: iconst_1
     666: invokeinterface #44,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;
     671: checkcast     #122                // class java/lang/Number
     674: invokevirtual #126                // Method java/lang/Number.longValue:()J
     677: lstore        17
     679: aload         4
     681: checkcast     #55                 // class java/lang/Iterable
     684: astore        19
     686: lload         15
     688: invokestatic  #93                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     691: lload         15
     693: lload         17
     695: ladd
     696: invokestatic  #93                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     699: invokestatic  #132                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     702: invokestatic  #136                // Method kotlin/collections/CollectionsKt.listOf:(Ljava/lang/Object;)Ljava/util/List;
     705: astore        20
     707: iconst_0
     708: istore        21
     710: aload         20
     712: astore        23
     714: aload         19
     716: invokeinterface #73,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     721: astore        25
     723: aload         25
     725: invokeinterface #79,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     730: ifeq          1375
     733: aload         25
     735: invokeinterface #83,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     740: astore        26
     742: aload         23
     744: aload         26
     746: checkcast     #40                 // class java/util/List
     749: astore        27
     751: astore        28
     753: iconst_0
     754: istore        29
     756: new           #57                 // class java/util/ArrayList
     759: dup
     760: invokespecial #138                // Method java/util/ArrayList."<init>":()V
     763: checkcast     #40                 // class java/util/List
     766: astore        30
     768: aload         30
     770: astore        31
     772: iconst_0
     773: istore        32
     775: aload         31
     777: aload         27
     779: checkcast     #55                 // class java/lang/Iterable
     782: astore        33
     784: astore        34
     786: iconst_0
     787: istore        35
     789: aload         28
     791: astore        36
     793: aload         33
     795: invokeinterface #73,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     800: astore        37
     802: aload         37
     804: invokeinterface #79,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     809: ifeq          1352
     812: aload         37
     814: invokeinterface #83,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     819: astore        38
     821: aload         36
     823: aload         38
     825: checkcast     #103                // class kotlin/Triple
     828: astore        39
     830: astore        40
     832: iconst_0
     833: istore        41
     835: aload         39
     837: invokevirtual #139                // Method kotlin/Triple.component1:()Ljava/lang/Object;
     840: checkcast     #122                // class java/lang/Number
     843: invokevirtual #126                // Method java/lang/Number.longValue:()J
     846: lstore        42
     848: aload         39
     850: invokevirtual #140                // Method kotlin/Triple.component2:()Ljava/lang/Object;
     853: checkcast     #122                // class java/lang/Number
     856: invokevirtual #126                // Method java/lang/Number.longValue:()J
     859: lstore        44
     861: aload         39
     863: invokevirtual #143                // Method kotlin/Triple.component3:()Ljava/lang/Object;
     866: checkcast     #122                // class java/lang/Number
     869: invokevirtual #126                // Method java/lang/Number.longValue:()J
     872: lstore        46
     874: aload         40
     876: checkcast     #55                 // class java/lang/Iterable
     879: astore        48
     881: iconst_0
     882: istore        49
     884: aload         48
     886: astore        50
     888: new           #57                 // class java/util/ArrayList
     891: dup
     892: invokespecial #138                // Method java/util/ArrayList."<init>":()V
     895: checkcast     #69                 // class java/util/Collection
     898: astore        51
     900: iconst_0
     901: istore        52
     903: aload         50
     905: invokeinterface #73,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
     910: astore        53
     912: aload         53
     914: invokeinterface #79,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
     919: ifeq          1340
     922: aload         53
     924: invokeinterface #83,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
     929: astore        54
     931: aload         54
     933: checkcast     #108                // class kotlin/Pair
     936: astore        55
     938: iconst_0
     939: istore        56
     941: aload         55
     943: invokevirtual #114                // Method kotlin/Pair.component1:()Ljava/lang/Object;
     946: checkcast     #122                // class java/lang/Number
     949: invokevirtual #126                // Method java/lang/Number.longValue:()J
     952: lstore        57
     954: aload         55
     956: invokevirtual #117                // Method kotlin/Pair.component2:()Ljava/lang/Object;
     959: checkcast     #122                // class java/lang/Number
     962: invokevirtual #126                // Method java/lang/Number.longValue:()J
     965: lstore        59
     967: invokestatic  #147                // Method kotlin/collections/CollectionsKt.createListBuilder:()Ljava/util/List;
     970: astore        61
     972: aload         61
     974: astore        62
     976: iconst_0
     977: istore        63
     979: lload         57
     981: invokestatic  #93                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     984: lload         59
     986: lload         44
     988: invokestatic  #153                // Method java/lang/Math.min:(JJ)J
     991: invokestatic  #93                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     994: invokestatic  #132                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     997: astore        64
     999: aload         64
    1001: astore        65
    1003: iconst_0
    1004: istore        66
    1006: aload         65
    1008: invokevirtual #156                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    1011: checkcast     #122                // class java/lang/Number
    1014: invokevirtual #126                // Method java/lang/Number.longValue:()J
    1017: aload         65
    1019: invokevirtual #159                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    1022: checkcast     #122                // class java/lang/Number
    1025: invokevirtual #126                // Method java/lang/Number.longValue:()J
    1028: lcmp
    1029: ifle          1036
    1032: iconst_1
    1033: goto          1037
    1036: iconst_0
    1037: ifeq          1045
    1040: aload         64
    1042: goto          1046
    1045: aconst_null
    1046: astore        67
    1048: aload         67
    1050: ifnull        1073
    1053: aload         67
    1055: astore        65
    1057: iconst_0
    1058: istore        66
    1060: aload         62
    1062: aload         65
    1064: invokeinterface #160,  2          // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
    1069: pop
    1070: goto          1074
    1073: nop
    1074: nop
    1075: lload         44
    1077: lload         46
    1079: ladd
    1080: lload         57
    1082: invokestatic  #163                // Method java/lang/Math.max:(JJ)J
    1085: invokestatic  #93                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
    1088: lload         59
    1090: invokestatic  #93                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
    1093: invokestatic  #132                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
    1096: astore        64
    1098: aload         64
    1100: astore        65
    1102: iconst_0
    1103: istore        66
    1105: aload         65
    1107: invokevirtual #156                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    1110: checkcast     #122                // class java/lang/Number
    1113: invokevirtual #126                // Method java/lang/Number.longValue:()J
    1116: aload         65
    1118: invokevirtual #159                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    1121: checkcast     #122                // class java/lang/Number
    1124: invokevirtual #126                // Method java/lang/Number.longValue:()J
    1127: lcmp
    1128: ifle          1135
    1131: iconst_1
    1132: goto          1136
    1135: iconst_0
    1136: ifeq          1144
    1139: aload         64
    1141: goto          1145
    1144: aconst_null
    1145: astore        67
    1147: aload         67
    1149: ifnull        1172
    1152: aload         67
    1154: astore        65
    1156: iconst_0
    1157: istore        66
    1159: aload         62
    1161: aload         65
    1163: invokeinterface #160,  2          // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
    1168: pop
    1169: goto          1173
    1172: nop
    1173: lload         57
    1175: lload         44
    1177: invokestatic  #163                // Method java/lang/Math.max:(JJ)J
    1180: invokestatic  #93                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
    1183: lload         44
    1185: lload         46
    1187: ladd
    1188: lload         59
    1190: invokestatic  #153                // Method java/lang/Math.min:(JJ)J
    1193: invokestatic  #93                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
    1196: invokestatic  #132                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
    1199: astore        64
    1201: aload         64
    1203: astore        65
    1205: iconst_0
    1206: istore        66
    1208: aload         65
    1210: invokevirtual #156                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    1213: checkcast     #122                // class java/lang/Number
    1216: invokevirtual #126                // Method java/lang/Number.longValue:()J
    1219: aload         65
    1221: invokevirtual #159                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    1224: checkcast     #122                // class java/lang/Number
    1227: invokevirtual #126                // Method java/lang/Number.longValue:()J
    1230: lcmp
    1231: ifle          1238
    1234: iconst_1
    1235: goto          1239
    1238: iconst_0
    1239: ifeq          1247
    1242: aload         64
    1244: goto          1248
    1247: aconst_null
    1248: astore        67
    1250: aload         67
    1252: ifnull        1316
    1255: aload         67
    1257: astore        65
    1259: iconst_0
    1260: istore        66
    1262: aload         31
    1264: aload         65
    1266: invokevirtual #159                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    1269: checkcast     #122                // class java/lang/Number
    1272: invokevirtual #126                // Method java/lang/Number.longValue:()J
    1275: lload         44
    1277: lsub
    1278: lload         42
    1280: ladd
    1281: invokestatic  #93                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
    1284: aload         65
    1286: invokevirtual #156                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    1289: checkcast     #122                // class java/lang/Number
    1292: invokevirtual #126                // Method java/lang/Number.longValue:()J
    1295: lload         44
    1297: lsub
    1298: lload         42
    1300: ladd
    1301: invokestatic  #93                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
    1304: invokestatic  #132                // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
    1307: invokeinterface #160,  2          // InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
    1312: pop
    1313: goto          1317
    1316: nop
    1317: nop
    1318: aload         61
    1320: invokestatic  #167                // Method kotlin/collections/CollectionsKt.build:(Ljava/util/List;)Ljava/util/List;
    1323: checkcast     #55                 // class java/lang/Iterable
    1326: nop
    1327: astore        68
    1329: aload         51
    1331: aload         68
    1333: invokestatic  #171                // Method kotlin/collections/CollectionsKt.addAll:(Ljava/util/Collection;Ljava/lang/Iterable;)Z
    1336: pop
    1337: goto          912
    1340: aload         51
    1342: checkcast     #40                 // class java/util/List
    1345: nop
    1346: nop
    1347: astore        36
    1349: goto          802
    1352: aload         36
    1354: aload         34
    1356: swap
    1357: checkcast     #69                 // class java/util/Collection
    1360: invokeinterface #174,  2          // InterfaceMethod java/util/List.addAll:(Ljava/util/Collection;)Z
    1365: pop
    1366: nop
    1367: aload         30
    1369: nop
    1370: astore        23
    1372: goto          723
    1375: aload         23
    1377: checkcast     #55                 // class java/lang/Iterable
    1380: invokeinterface #73,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
    1385: astore        20
    1387: aload         20
    1389: invokeinterface #79,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1394: ifne          1405
    1397: new           #176                // class java/util/NoSuchElementException
    1400: dup
    1401: invokespecial #177                // Method java/util/NoSuchElementException."<init>":()V
    1404: athrow
    1405: aload         20
    1407: invokeinterface #83,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1412: checkcast     #108                // class kotlin/Pair
    1415: astore        21
    1417: iconst_0
    1418: istore        23
    1420: aload         21
    1422: invokevirtual #159                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    1425: checkcast     #122                // class java/lang/Number
    1428: invokevirtual #126                // Method java/lang/Number.longValue:()J
    1431: aload         21
    1433: invokevirtual #156                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    1436: checkcast     #122                // class java/lang/Number
    1439: invokevirtual #126                // Method java/lang/Number.longValue:()J
    1442: invokestatic  #153                // Method java/lang/Math.min:(JJ)J
    1445: nop
    1446: lstore        21
    1448: aload         20
    1450: invokeinterface #79,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
    1455: ifeq          1516
    1458: aload         20
    1460: invokeinterface #83,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
    1465: checkcast     #108                // class kotlin/Pair
    1468: astore        23
    1470: iconst_0
    1471: istore        25
    1473: aload         23
    1475: invokevirtual #159                // Method kotlin/Pair.getFirst:()Ljava/lang/Object;
    1478: checkcast     #122                // class java/lang/Number
    1481: invokevirtual #126                // Method java/lang/Number.longValue:()J
    1484: aload         23
    1486: invokevirtual #156                // Method kotlin/Pair.getSecond:()Ljava/lang/Object;
    1489: checkcast     #122                // class java/lang/Number
    1492: invokevirtual #126                // Method java/lang/Number.longValue:()J
    1495: invokestatic  #153                // Method java/lang/Math.min:(JJ)J
    1498: nop
    1499: lstore        23
    1501: lload         21
    1503: lload         23
    1505: lcmp
    1506: ifle          1448
    1509: lload         23
    1511: lstore        21
    1513: goto          1448
    1516: lload         21
    1518: nop
    1519: invokestatic  #93                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
    1522: aload         13
    1524: swap
    1525: invokeinterface #97,  2           // InterfaceMethod java/util/Collection.add:(Ljava/lang/Object;)Z
    1530: pop
    1531: goto          614
    1534: aload         8
    1536: checkcast     #40                 // class java/util/List
    1539: nop
    1540: nop
    1541: checkcast     #55                 // class java/lang/Iterable
    1544: invokestatic  #181                // Method kotlin/collections/CollectionsKt.minOrThrow:(Ljava/lang/Iterable;)Ljava/lang/Comparable;
    1547: checkcast     #122                // class java/lang/Number
    1550: invokevirtual #126                // Method java/lang/Number.longValue:()J
    1553: lstore_0
    1554: getstatic     #187                // Field java/lang/System.out:Ljava/io/PrintStream;
    1557: lload_0
    1558: invokevirtual #193                // Method java/io/PrintStream.println:(J)V
    1561: return

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

Compiled from "day5B.kt"
final class Day5BKt$main$1 extends kotlin.jvm.internal.FunctionReferenceImpl implements kotlin.jvm.functions.Function0<java.lang.String> {
  public static final Day5BKt$main$1 INSTANCE;

  Day5BKt$main$1();
    Code:
       0: aload_0
       1: iconst_0
       2: ldc           #11                 // class kotlin/io/ConsoleKt
       4: ldc           #13                 // String readLine
       6: ldc           #15                 // String readLine()Ljava/lang/String;
       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 java.lang.String invoke();
    Code:
       0: invokestatic  #24                 // Method kotlin/io/ConsoleKt.readLine:()Ljava/lang/String;
       3: areturn

  public java.lang.Object invoke();
    Code:
       0: aload_0
       1: invokevirtual #27                 // Method invoke:()Ljava/lang/String;
       4: areturn

  static {};
    Code:
       0: new           #2                  // class Day5BKt$main$1
       3: dup
       4: invokespecial #30                 // Method "<init>":()V
       7: putstatic     #33                 // Field INSTANCE:LDay5BKt$main$1;
      10: return
}


object Day3 {
    // TODO: How to fix this mess
    fun manhattanDistance(est: Long): Long {
        val last  = (1..Long.MAX_VALUE).takeWhile { Day3.bottomRightValue(it) <= est }.last()
        val box = Day3.bottomRightValue(last)
        var diff = est - box
        val n = 2 * last
        var (x, y) = (last - 1) to -(last - 1)
        if(diff > 0L){
            x++
            diff--
            for(i in 1..n - 1) {
                if(diff <= 0) break
                y++
                diff--
            }
            for(i in 1..n) {
                if(diff <= 0) break
                x--
                diff--
            }
            for(i in 1..n) {
                if(diff <= 0) break
                y--
                diff--
            }
            for(i in 1..n) {
                if(diff <= 0) break
                x++
                diff--
            }
        }

        return Math.abs(x) + Math.abs(y)
    }

    fun bottomRightValue(x: Long): Long {
        require(x > 0) { "Only non negative number allowed" }
        return when(x) {
            1L -> 1
            else -> bottomRightValue(x - 1) + 8 * (x - 1)
        }
    }

    fun populateMapsky(first: Int, output: MutableMap<Pair<Int, Int>, Long>) {
        val start = bottomRightValue(first.toLong())
        val end = bottomRightValue((first + 1).toLong())
        var diff = end - start - 1

        var x = first
        var y = -(first - 1)
        var n = (first) * 2
        output[x to y] = sumNeighboor(output, x, y)

        if(diff > 0L){
            for(i in 1..n - 1) {
                if(diff <= 0) break
                y++
                diff--
                output[x to y]
                output[x to y] = sumNeighboor(output, x, y)
            }
            for(i in 1..n) {
                if(diff <= 0) break
                x--
                diff--
                output[x to y] = sumNeighboor(output, x, y)
            }
            for(i in 1..n) {
                if(diff <= 0) break
                y--
                diff--
                output[x to y] = sumNeighboor(output, x, y)
            }
            for(i in 1..n) {
                if(diff <= 0) break
                x++
                diff--
                output[x to y] = sumNeighboor(output, x, y)
            }
        }
    }

    fun sumNeighboor(map: MutableMap<Pair<Int, Int>, Long>, x: Int, y: Int): Long {
        val retVal = map.getOrDefault((x + 1) to (y + 0), 0L) +
                map.getOrDefault((x + 1) to (y + 1), 0L) +
                map.getOrDefault((x + 0) to (y + 1), 0L) +
                map.getOrDefault((x + -1) to (y + 1), 0L) +
                map.getOrDefault((x + -1) to (y + 0), 0L) +
                map.getOrDefault((x + -1) to (y + -1), 0L) +
                map.getOrDefault((x + 0) to (y + -1), 0L) +
                map.getOrDefault((x + 1) to (y + -1), 0L)

        if(retVal >= 277678) println("Found at ($x, $y): $retVal")
        return retVal
    }
}

Compiled from "Day3.kt"
public final class Day3 {
  public static final Day3 INSTANCE;

  private Day3();
    Code:
       0: aload_0
       1: invokespecial #8                  // Method java/lang/Object."<init>":()V
       4: return

  public final long manhattanDistance(long);
    Code:
       0: new           #14                 // class kotlin/ranges/LongRange
       3: dup
       4: lconst_1
       5: ldc2_w        #15                 // long 9223372036854775807l
       8: invokespecial #19                 // Method kotlin/ranges/LongRange."<init>":(JJ)V
      11: checkcast     #21                 // class java/lang/Iterable
      14: astore        5
      16: iconst_0
      17: istore        6
      19: new           #23                 // class java/util/ArrayList
      22: dup
      23: invokespecial #24                 // Method java/util/ArrayList."<init>":()V
      26: astore        7
      28: aload         5
      30: invokeinterface #28,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;
      35: astore        8
      37: aload         8
      39: invokeinterface #34,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z
      44: ifeq          104
      47: aload         8
      49: invokeinterface #38,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;
      54: astore        9
      56: aload         9
      58: checkcast     #40                 // class java/lang/Number
      61: invokevirtual #44                 // Method java/lang/Number.longValue:()J
      64: lstore        10
      66: iconst_0
      67: istore        12
      69: getstatic     #47                 // Field INSTANCE:LDay3;
      72: lload         10
      74: invokevirtual #50                 // Method bottomRightValue:(J)J
      77: lload_1
      78: lcmp
      79: ifgt          86
      82: iconst_1
      83: goto          87
      86: iconst_0
      87: ifne          93
      90: goto          104
      93: aload         7
      95: aload         9
      97: invokevirtual #54                 // Method java/util/ArrayList.add:(Ljava/lang/Object;)Z
     100: pop
     101: goto          37
     104: aload         7
     106: checkcast     #56                 // class java/util/List
     109: invokestatic  #62                 // Method kotlin/collections/CollectionsKt.last:(Ljava/util/List;)Ljava/lang/Object;
     112: checkcast     #40                 // class java/lang/Number
     115: invokevirtual #44                 // Method java/lang/Number.longValue:()J
     118: lstore_3
     119: getstatic     #47                 // Field INSTANCE:LDay3;
     122: lload_3
     123: invokevirtual #50                 // Method bottomRightValue:(J)J
     126: lstore        5
     128: lload_1
     129: lload         5
     131: lsub
     132: lstore        7
     134: iconst_2
     135: i2l
     136: lload_3
     137: lmul
     138: lstore        9
     140: lload_3
     141: lconst_1
     142: lsub
     143: invokestatic  #68                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     146: lload_3
     147: lconst_1
     148: lsub
     149: lneg
     150: invokestatic  #68                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     153: invokestatic  #74                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     156: astore        11
     158: aload         11
     160: invokevirtual #79                 // Method kotlin/Pair.component1:()Ljava/lang/Object;
     163: checkcast     #40                 // class java/lang/Number
     166: invokevirtual #44                 // Method java/lang/Number.longValue:()J
     169: lstore        12
     171: aload         11
     173: invokevirtual #82                 // Method kotlin/Pair.component2:()Ljava/lang/Object;
     176: checkcast     #40                 // class java/lang/Number
     179: invokevirtual #44                 // Method java/lang/Number.longValue:()J
     182: lstore        14
     184: lload         7
     186: lconst_0
     187: lcmp
     188: ifle          451
     191: lload         12
     193: lstore        16
     195: lload         16
     197: lconst_1
     198: ladd
     199: lstore        12
     201: lload         7
     203: lstore        16
     205: lload         16
     207: ldc2_w        #83                 // long -1l
     210: ladd
     211: lstore        7
     213: lconst_1
     214: lstore        16
     216: lload         9
     218: lconst_1
     219: lsub
     220: lstore        18
     222: lload         16
     224: lload         18
     226: lcmp
     227: ifgt          276
     230: lload         7
     232: lconst_0
     233: lcmp
     234: ifle          276
     237: lload         14
     239: lstore        20
     241: lload         20
     243: lconst_1
     244: ladd
     245: lstore        14
     247: lload         7
     249: lstore        20
     251: lload         20
     253: ldc2_w        #83                 // long -1l
     256: ladd
     257: lstore        7
     259: lload         16
     261: lload         18
     263: lcmp
     264: ifeq          276
     267: lload         16
     269: lconst_1
     270: ladd
     271: lstore        16
     273: goto          230
     276: lconst_1
     277: lstore        16
     279: lload         16
     281: lload         9
     283: lcmp
     284: ifgt          335
     287: lload         7
     289: lconst_0
     290: lcmp
     291: ifle          335
     294: lload         12
     296: lstore        18
     298: lload         18
     300: ldc2_w        #83                 // long -1l
     303: ladd
     304: lstore        12
     306: lload         7
     308: lstore        18
     310: lload         18
     312: ldc2_w        #83                 // long -1l
     315: ladd
     316: lstore        7
     318: lload         16
     320: lload         9
     322: lcmp
     323: ifeq          335
     326: lload         16
     328: lconst_1
     329: ladd
     330: lstore        16
     332: goto          287
     335: lconst_1
     336: lstore        16
     338: lload         16
     340: lload         9
     342: lcmp
     343: ifgt          394
     346: lload         7
     348: lconst_0
     349: lcmp
     350: ifle          394
     353: lload         14
     355: lstore        18
     357: lload         18
     359: ldc2_w        #83                 // long -1l
     362: ladd
     363: lstore        14
     365: lload         7
     367: lstore        18
     369: lload         18
     371: ldc2_w        #83                 // long -1l
     374: ladd
     375: lstore        7
     377: lload         16
     379: lload         9
     381: lcmp
     382: ifeq          394
     385: lload         16
     387: lconst_1
     388: ladd
     389: lstore        16
     391: goto          346
     394: lconst_1
     395: lstore        16
     397: lload         16
     399: lload         9
     401: lcmp
     402: ifgt          451
     405: lload         7
     407: lconst_0
     408: lcmp
     409: ifle          451
     412: lload         12
     414: lstore        18
     416: lload         18
     418: lconst_1
     419: ladd
     420: lstore        12
     422: lload         7
     424: lstore        18
     426: lload         18
     428: ldc2_w        #83                 // long -1l
     431: ladd
     432: lstore        7
     434: lload         16
     436: lload         9
     438: lcmp
     439: ifeq          451
     442: lload         16
     444: lconst_1
     445: ladd
     446: lstore        16
     448: goto          405
     451: lload         12
     453: invokestatic  #89                 // Method java/lang/Math.abs:(J)J
     456: lload         14
     458: invokestatic  #89                 // Method java/lang/Math.abs:(J)J
     461: ladd
     462: lreturn

  public final long bottomRightValue(long);
    Code:
       0: lload_1
       1: lconst_0
       2: lcmp
       3: ifle          10
       6: iconst_1
       7: goto          11
      10: iconst_0
      11: ifne          31
      14: iconst_0
      15: istore_3
      16: ldc           #109                // String Only non negative number allowed
      18: astore_3
      19: new           #111                // class java/lang/IllegalArgumentException
      22: dup
      23: aload_3
      24: invokevirtual #115                // Method java/lang/Object.toString:()Ljava/lang/String;
      27: invokespecial #118                // Method java/lang/IllegalArgumentException."<init>":(Ljava/lang/String;)V
      30: athrow
      31: lload_1
      32: lconst_1
      33: lcmp
      34: ifne          41
      37: lconst_1
      38: goto          56
      41: aload_0
      42: lload_1
      43: lconst_1
      44: lsub
      45: invokevirtual #50                 // Method bottomRightValue:(J)J
      48: bipush        8
      50: i2l
      51: lload_1
      52: lconst_1
      53: lsub
      54: lmul
      55: ladd
      56: lreturn

  public final void populateMapsky(int, java.util.Map<kotlin.Pair<java.lang.Integer, java.lang.Integer>, java.lang.Long>);
    Code:
       0: aload_2
       1: ldc           #125                // String output
       3: invokestatic  #131                // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_0
       7: iload_1
       8: i2l
       9: invokevirtual #50                 // Method bottomRightValue:(J)J
      12: lstore_3
      13: aload_0
      14: iload_1
      15: iconst_1
      16: iadd
      17: i2l
      18: invokevirtual #50                 // Method bottomRightValue:(J)J
      21: lstore        5
      23: lload         5
      25: lload_3
      26: lsub
      27: lconst_1
      28: lsub
      29: lstore        7
      31: iload_1
      32: istore        9
      34: iload_1
      35: iconst_1
      36: isub
      37: ineg
      38: istore        10
      40: iload_1
      41: iconst_2
      42: imul
      43: istore        11
      45: aload_2
      46: iload         9
      48: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      51: iload         10
      53: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      56: invokestatic  #74                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      59: aload_0
      60: aload_2
      61: iload         9
      63: iload         10
      65: invokevirtual #140                // Method sumNeighboor:(Ljava/util/Map;II)J
      68: invokestatic  #68                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
      71: invokeinterface #146,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      76: pop
      77: lload         7
      79: lconst_0
      80: lcmp
      81: ifle          430
      84: iconst_1
      85: istore        12
      87: iload         11
      89: iconst_1
      90: isub
      91: istore        13
      93: iload         12
      95: iload         13
      97: if_icmpgt     187
     100: lload         7
     102: lconst_0
     103: lcmp
     104: ifle          187
     107: iinc          10, 1
     110: lload         7
     112: lstore        14
     114: lload         14
     116: ldc2_w        #83                 // long -1l
     119: ladd
     120: lstore        7
     122: aload_2
     123: iload         9
     125: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     128: iload         10
     130: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     133: invokestatic  #74                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     136: invokeinterface #150,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
     141: pop
     142: aload_2
     143: iload         9
     145: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     148: iload         10
     150: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     153: invokestatic  #74                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     156: aload_0
     157: aload_2
     158: iload         9
     160: iload         10
     162: invokevirtual #140                // Method sumNeighboor:(Ljava/util/Map;II)J
     165: invokestatic  #68                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     168: invokeinterface #146,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     173: pop
     174: iload         12
     176: iload         13
     178: if_icmpeq     187
     181: iinc          12, 1
     184: goto          100
     187: iconst_1
     188: istore        12
     190: iload         11
     192: istore        13
     194: iload         12
     196: iload         13
     198: if_icmpgt     268
     201: lload         7
     203: lconst_0
     204: lcmp
     205: ifle          268
     208: iinc          9, -1
     211: lload         7
     213: lstore        14
     215: lload         14
     217: ldc2_w        #83                 // long -1l
     220: ladd
     221: lstore        7
     223: aload_2
     224: iload         9
     226: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     229: iload         10
     231: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     234: invokestatic  #74                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     237: aload_0
     238: aload_2
     239: iload         9
     241: iload         10
     243: invokevirtual #140                // Method sumNeighboor:(Ljava/util/Map;II)J
     246: invokestatic  #68                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     249: invokeinterface #146,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     254: pop
     255: iload         12
     257: iload         13
     259: if_icmpeq     268
     262: iinc          12, 1
     265: goto          201
     268: iconst_1
     269: istore        12
     271: iload         11
     273: istore        13
     275: iload         12
     277: iload         13
     279: if_icmpgt     349
     282: lload         7
     284: lconst_0
     285: lcmp
     286: ifle          349
     289: iinc          10, -1
     292: lload         7
     294: lstore        14
     296: lload         14
     298: ldc2_w        #83                 // long -1l
     301: ladd
     302: lstore        7
     304: aload_2
     305: iload         9
     307: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     310: iload         10
     312: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     315: invokestatic  #74                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     318: aload_0
     319: aload_2
     320: iload         9
     322: iload         10
     324: invokevirtual #140                // Method sumNeighboor:(Ljava/util/Map;II)J
     327: invokestatic  #68                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     330: invokeinterface #146,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     335: pop
     336: iload         12
     338: iload         13
     340: if_icmpeq     349
     343: iinc          12, 1
     346: goto          282
     349: iconst_1
     350: istore        12
     352: iload         11
     354: istore        13
     356: iload         12
     358: iload         13
     360: if_icmpgt     430
     363: lload         7
     365: lconst_0
     366: lcmp
     367: ifle          430
     370: iinc          9, 1
     373: lload         7
     375: lstore        14
     377: lload         14
     379: ldc2_w        #83                 // long -1l
     382: ladd
     383: lstore        7
     385: aload_2
     386: iload         9
     388: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     391: iload         10
     393: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     396: invokestatic  #74                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     399: aload_0
     400: aload_2
     401: iload         9
     403: iload         10
     405: invokevirtual #140                // Method sumNeighboor:(Ljava/util/Map;II)J
     408: invokestatic  #68                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     411: invokeinterface #146,  3          // InterfaceMethod java/util/Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     416: pop
     417: iload         12
     419: iload         13
     421: if_icmpeq     430
     424: iinc          12, 1
     427: goto          363
     430: return

  public final long sumNeighboor(java.util.Map<kotlin.Pair<java.lang.Integer, java.lang.Integer>, java.lang.Long>, int, int);
    Code:
       0: aload_1
       1: ldc           #157                // String map
       3: invokestatic  #131                // Method kotlin/jvm/internal/Intrinsics.checkNotNullParameter:(Ljava/lang/Object;Ljava/lang/String;)V
       6: aload_1
       7: iload_2
       8: iconst_1
       9: iadd
      10: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      13: iload_3
      14: iconst_0
      15: iadd
      16: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      19: invokestatic  #74                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      22: lconst_0
      23: invokestatic  #68                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
      26: invokeinterface #160,  3          // InterfaceMethod java/util/Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      31: checkcast     #40                 // class java/lang/Number
      34: invokevirtual #44                 // Method java/lang/Number.longValue:()J
      37: aload_1
      38: iload_2
      39: iconst_1
      40: iadd
      41: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      44: iload_3
      45: iconst_1
      46: iadd
      47: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      50: invokestatic  #74                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      53: lconst_0
      54: invokestatic  #68                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
      57: invokeinterface #160,  3          // InterfaceMethod java/util/Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      62: checkcast     #40                 // class java/lang/Number
      65: invokevirtual #44                 // Method java/lang/Number.longValue:()J
      68: ladd
      69: aload_1
      70: iload_2
      71: iconst_0
      72: iadd
      73: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      76: iload_3
      77: iconst_1
      78: iadd
      79: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
      82: invokestatic  #74                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
      85: lconst_0
      86: invokestatic  #68                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
      89: invokeinterface #160,  3          // InterfaceMethod java/util/Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
      94: checkcast     #40                 // class java/lang/Number
      97: invokevirtual #44                 // Method java/lang/Number.longValue:()J
     100: ladd
     101: aload_1
     102: iload_2
     103: iconst_m1
     104: iadd
     105: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     108: iload_3
     109: iconst_1
     110: iadd
     111: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     114: invokestatic  #74                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     117: lconst_0
     118: invokestatic  #68                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     121: invokeinterface #160,  3          // InterfaceMethod java/util/Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     126: checkcast     #40                 // class java/lang/Number
     129: invokevirtual #44                 // Method java/lang/Number.longValue:()J
     132: ladd
     133: aload_1
     134: iload_2
     135: iconst_m1
     136: iadd
     137: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     140: iload_3
     141: iconst_0
     142: iadd
     143: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     146: invokestatic  #74                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     149: lconst_0
     150: invokestatic  #68                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     153: invokeinterface #160,  3          // InterfaceMethod java/util/Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     158: checkcast     #40                 // class java/lang/Number
     161: invokevirtual #44                 // Method java/lang/Number.longValue:()J
     164: ladd
     165: aload_1
     166: iload_2
     167: iconst_m1
     168: iadd
     169: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     172: iload_3
     173: iconst_m1
     174: iadd
     175: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     178: invokestatic  #74                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     181: lconst_0
     182: invokestatic  #68                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     185: invokeinterface #160,  3          // InterfaceMethod java/util/Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     190: checkcast     #40                 // class java/lang/Number
     193: invokevirtual #44                 // Method java/lang/Number.longValue:()J
     196: ladd
     197: aload_1
     198: iload_2
     199: iconst_0
     200: iadd
     201: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     204: iload_3
     205: iconst_m1
     206: iadd
     207: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     210: invokestatic  #74                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     213: lconst_0
     214: invokestatic  #68                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     217: invokeinterface #160,  3          // InterfaceMethod java/util/Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     222: checkcast     #40                 // class java/lang/Number
     225: invokevirtual #44                 // Method java/lang/Number.longValue:()J
     228: ladd
     229: aload_1
     230: iload_2
     231: iconst_1
     232: iadd
     233: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     236: iload_3
     237: iconst_m1
     238: iadd
     239: invokestatic  #136                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
     242: invokestatic  #74                 // Method kotlin/TuplesKt.to:(Ljava/lang/Object;Ljava/lang/Object;)Lkotlin/Pair;
     245: lconst_0
     246: invokestatic  #68                 // Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
     249: invokeinterface #160,  3          // InterfaceMethod java/util/Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
     254: checkcast     #40                 // class java/lang/Number
     257: invokevirtual #44                 // Method java/lang/Number.longValue:()J
     260: ladd
     261: lstore        4
     263: lload         4
     265: ldc2_w        #161                // long 277678l
     268: lcmp
     269: iflt          317
     272: new           #164                // class java/lang/StringBuilder
     275: dup
     276: invokespecial #165                // Method java/lang/StringBuilder."<init>":()V
     279: ldc           #167                // String Found at (
     281: invokevirtual #171                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
     284: iload_2
     285: invokevirtual #174                // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
     288: ldc           #176                // String ,
     290: invokevirtual #171                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
     293: iload_3
     294: invokevirtual #174                // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
     297: ldc           #178                // String ):
     299: invokevirtual #171                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
     302: lload         4
     304: invokevirtual #181                // Method java/lang/StringBuilder.append:(J)Ljava/lang/StringBuilder;
     307: invokevirtual #182                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
     310: getstatic     #188                // Field java/lang/System.out:Ljava/io/PrintStream;
     313: swap
     314: invokevirtual #194                // Method java/io/PrintStream.println:(Ljava/lang/Object;)V
     317: lload         4
     319: lreturn

  static {};
    Code:
       0: new           #2                  // class Day3
       3: dup
       4: invokespecial #197                // Method "<init>":()V
       7: putstatic     #47                 // Field INSTANCE:LDay3;
      10: return
}