// Sealed-class `when` at 50-arm scale. Audit evidence: linear instanceof chain
// with NO threshold migration to tableswitch (confirmed via javap -c at 50 arms).
// Recognizer must handle the linear chain at this scale — same shape as 5arms.

sealed class Op {
    class N1(val v: Int) : Op()
    class N2(val v: Int) : Op()
    class N3(val v: Int) : Op()
    class N4(val v: Int) : Op()
    class N5(val v: Int) : Op()
    class N6(val v: Int) : Op()
    class N7(val v: Int) : Op()
    class N8(val v: Int) : Op()
    class N9(val v: Int) : Op()
    class N10(val v: Int) : Op()
    class N11(val v: Int) : Op()
    class N12(val v: Int) : Op()
    class N13(val v: Int) : Op()
    class N14(val v: Int) : Op()
    class N15(val v: Int) : Op()
    class N16(val v: Int) : Op()
    class N17(val v: Int) : Op()
    class N18(val v: Int) : Op()
    class N19(val v: Int) : Op()
    class N20(val v: Int) : Op()
    class N21(val v: Int) : Op()
    class N22(val v: Int) : Op()
    class N23(val v: Int) : Op()
    class N24(val v: Int) : Op()
    class N25(val v: Int) : Op()
    class N26(val v: Int) : Op()
    class N27(val v: Int) : Op()
    class N28(val v: Int) : Op()
    class N29(val v: Int) : Op()
    class N30(val v: Int) : Op()
    class N31(val v: Int) : Op()
    class N32(val v: Int) : Op()
    class N33(val v: Int) : Op()
    class N34(val v: Int) : Op()
    class N35(val v: Int) : Op()
    class N36(val v: Int) : Op()
    class N37(val v: Int) : Op()
    class N38(val v: Int) : Op()
    class N39(val v: Int) : Op()
    class N40(val v: Int) : Op()
    class N41(val v: Int) : Op()
    class N42(val v: Int) : Op()
    class N43(val v: Int) : Op()
    class N44(val v: Int) : Op()
    class N45(val v: Int) : Op()
    class N46(val v: Int) : Op()
    class N47(val v: Int) : Op()
    class N48(val v: Int) : Op()
    class N49(val v: Int) : Op()
    class N50(val v: Int) : Op()
}

fun describe(o: Op): Int = when (o) {
    is Op.N1 -> o.v + 1
    is Op.N2 -> o.v + 2
    is Op.N3 -> o.v + 3
    is Op.N4 -> o.v + 4
    is Op.N5 -> o.v + 5
    is Op.N6 -> o.v + 6
    is Op.N7 -> o.v + 7
    is Op.N8 -> o.v + 8
    is Op.N9 -> o.v + 9
    is Op.N10 -> o.v + 10
    is Op.N11 -> o.v + 11
    is Op.N12 -> o.v + 12
    is Op.N13 -> o.v + 13
    is Op.N14 -> o.v + 14
    is Op.N15 -> o.v + 15
    is Op.N16 -> o.v + 16
    is Op.N17 -> o.v + 17
    is Op.N18 -> o.v + 18
    is Op.N19 -> o.v + 19
    is Op.N20 -> o.v + 20
    is Op.N21 -> o.v + 21
    is Op.N22 -> o.v + 22
    is Op.N23 -> o.v + 23
    is Op.N24 -> o.v + 24
    is Op.N25 -> o.v + 25
    is Op.N26 -> o.v + 26
    is Op.N27 -> o.v + 27
    is Op.N28 -> o.v + 28
    is Op.N29 -> o.v + 29
    is Op.N30 -> o.v + 30
    is Op.N31 -> o.v + 31
    is Op.N32 -> o.v + 32
    is Op.N33 -> o.v + 33
    is Op.N34 -> o.v + 34
    is Op.N35 -> o.v + 35
    is Op.N36 -> o.v + 36
    is Op.N37 -> o.v + 37
    is Op.N38 -> o.v + 38
    is Op.N39 -> o.v + 39
    is Op.N40 -> o.v + 40
    is Op.N41 -> o.v + 41
    is Op.N42 -> o.v + 42
    is Op.N43 -> o.v + 43
    is Op.N44 -> o.v + 44
    is Op.N45 -> o.v + 45
    is Op.N46 -> o.v + 46
    is Op.N47 -> o.v + 47
    is Op.N48 -> o.v + 48
    is Op.N49 -> o.v + 49
    is Op.N50 -> o.v + 50
}
