public class org.hibernate.id.uuid.CustomVersionOneStrategy implements org.hibernate.id.UUIDGenerationStrategy
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.id.uuid.CustomVersionOneStrategy
  super_class: java.lang.Object
{
  private final long mostSignificantBits;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public int getGeneratedVersion();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.id.uuid.CustomVersionOneStrategy this
         0: .line 29
            iconst_1
            ireturn
        end local 0 // org.hibernate.id.uuid.CustomVersionOneStrategy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/uuid/CustomVersionOneStrategy;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.hibernate.id.uuid.CustomVersionOneStrategy this
         0: .line 34
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 36
            bipush 8
            newarray 8
            astore 1 /* hiBits */
        start local 1 // byte[] hiBits
         2: .line 38
            invokestatic org.hibernate.id.uuid.Helper.getAddressBytes:()[B
            iconst_0
            aload 1 /* hiBits */
            iconst_0
            iconst_4
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 40
            invokestatic org.hibernate.id.uuid.Helper.getJvmIdentifierBytes:()[B
            iconst_0
            aload 1 /* hiBits */
            iconst_4
            iconst_4
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 42
            aload 1 /* hiBits */
            bipush 6
            dup2
            baload
            bipush 15
            iand
            i2b
            bastore
         5: .line 43
            aload 1 /* hiBits */
            bipush 6
            dup2
            baload
            bipush 16
            ior
            i2b
            bastore
         6: .line 45
            aload 0 /* this */
            aload 1 /* hiBits */
            invokestatic org.hibernate.internal.util.BytesHelper.asLong:([B)J
            putfield org.hibernate.id.uuid.CustomVersionOneStrategy.mostSignificantBits:J
         7: .line 46
            return
        end local 1 // byte[] hiBits
        end local 0 // org.hibernate.id.uuid.CustomVersionOneStrategy this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/hibernate/id/uuid/CustomVersionOneStrategy;
            2    8     1  hiBits  [B

  public java.util.UUID generateUUID(org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)Ljava/util/UUID;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.hibernate.id.uuid.CustomVersionOneStrategy this
        start local 1 // org.hibernate.engine.spi.SharedSessionContractImplementor session
         0: .line 49
            invokestatic java.lang.System.currentTimeMillis:()J
            invokestatic org.hibernate.id.uuid.CustomVersionOneStrategy.generateLeastSignificantBits:(J)J
            lstore 2 /* leastSignificantBits */
        start local 2 // long leastSignificantBits
         1: .line 50
            new java.util.UUID
            dup
            aload 0 /* this */
            getfield org.hibernate.id.uuid.CustomVersionOneStrategy.mostSignificantBits:J
            lload 2 /* leastSignificantBits */
            invokespecial java.util.UUID.<init>:(JJ)V
            areturn
        end local 2 // long leastSignificantBits
        end local 1 // org.hibernate.engine.spi.SharedSessionContractImplementor session
        end local 0 // org.hibernate.id.uuid.CustomVersionOneStrategy this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Lorg/hibernate/id/uuid/CustomVersionOneStrategy;
            0    2     1               session  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            1    2     2  leastSignificantBits  J
    MethodParameters:
         Name  Flags
      session  

  public long getMostSignificantBits();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.id.uuid.CustomVersionOneStrategy this
         0: .line 54
            aload 0 /* this */
            getfield org.hibernate.id.uuid.CustomVersionOneStrategy.mostSignificantBits:J
            lreturn
        end local 0 // org.hibernate.id.uuid.CustomVersionOneStrategy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/id/uuid/CustomVersionOneStrategy;

  public static long generateLeastSignificantBits(long);
    descriptor: (J)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // long seed
         0: .line 58
            bipush 8
            newarray 8
            astore 2 /* loBits */
        start local 2 // byte[] loBits
         1: .line 60
            lload 0 /* seed */
            bipush 32
            lushr
            l2i
            i2s
            istore 3 /* hiTime */
        start local 3 // short hiTime
         2: .line 61
            lload 0 /* seed */
            l2i
            istore 4 /* loTime */
        start local 4 // int loTime
         3: .line 62
            iload 3 /* hiTime */
            invokestatic org.hibernate.internal.util.BytesHelper.fromShort:(I)[B
            iconst_0
            aload 2 /* loBits */
            iconst_0
            iconst_2
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 63
            iload 4 /* loTime */
            invokestatic org.hibernate.internal.util.BytesHelper.fromInt:(I)[B
            iconst_0
            aload 2 /* loBits */
            iconst_2
            iconst_4
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 64
            invokestatic org.hibernate.id.uuid.Helper.getCountBytes:()[B
            iconst_0
            aload 2 /* loBits */
            bipush 6
            iconst_2
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 65
            aload 2 /* loBits */
            iconst_0
            dup2
            baload
            bipush 63
            iand
            i2b
            bastore
         7: .line 66
            aload 2 /* loBits */
            iconst_0
            dup2
            baload
            sipush 128
            ior
            i2b
            bastore
         8: .line 68
            aload 2 /* loBits */
            invokestatic org.hibernate.internal.util.BytesHelper.asLong:([B)J
            lreturn
        end local 4 // int loTime
        end local 3 // short hiTime
        end local 2 // byte[] loBits
        end local 0 // long seed
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    seed  J
            1    9     2  loBits  [B
            2    9     3  hiTime  S
            3    9     4  loTime  I
    MethodParameters:
      Name  Flags
      seed  

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=11, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 73
            new org.hibernate.id.uuid.CustomVersionOneStrategy
            dup
            invokespecial org.hibernate.id.uuid.CustomVersionOneStrategy.<init>:()V
            astore 1 /* strategy */
        start local 1 // org.hibernate.id.uuid.CustomVersionOneStrategy strategy
         1: .line 75
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 30
         3: .line 76
      StackMap locals: org.hibernate.id.uuid.CustomVersionOneStrategy int
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Generation # "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 77
            bipush 8
            newarray 8
            astore 3 /* loBits */
        start local 3 // byte[] loBits
         5: .line 79
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 4 /* sysTime */
        start local 4 // long sysTime
         6: .line 80
            invokestatic java.lang.System.currentTimeMillis:()J
            bipush 32
            lushr
            l2i
            i2s
            istore 6 /* hiTime */
        start local 6 // short hiTime
         7: .line 81
            lload 4 /* sysTime */
            l2i
            istore 7 /* loTime */
        start local 7 // int loTime
         8: .line 82
            iload 6 /* hiTime */
            invokestatic org.hibernate.internal.util.BytesHelper.fromShort:(I)[B
            iconst_0
            aload 3 /* loBits */
            iconst_0
            iconst_2
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         9: .line 83
            iload 7 /* loTime */
            invokestatic org.hibernate.internal.util.BytesHelper.fromInt:(I)[B
            iconst_0
            aload 3 /* loBits */
            iconst_2
            iconst_4
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        10: .line 84
            invokestatic org.hibernate.id.uuid.Helper.getCountBytes:()[B
            iconst_0
            aload 3 /* loBits */
            bipush 6
            iconst_2
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        11: .line 86
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "    before bit setting ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        12: .line 87
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "       loBits[0] : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* loBits */
            iconst_0
            baload
            invokestatic org.hibernate.internal.util.BytesHelper.toBinaryString:(B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        13: .line 88
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "             lsb : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* loBits */
            invokestatic org.hibernate.internal.util.BytesHelper.asLong:([B)J
            invokestatic org.hibernate.internal.util.BytesHelper.toBinaryString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        14: .line 89
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        15: .line 91
            aload 3 /* loBits */
            iconst_0
            dup2
            baload
            bipush 63
            iand
            i2b
            bastore
        16: .line 92
            aload 3 /* loBits */
            iconst_0
            dup2
            baload
            sipush 128
            ior
            i2b
            bastore
        17: .line 94
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "    after bit setting ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        18: .line 95
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "       loBits[0] : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* loBits */
            iconst_0
            baload
            invokestatic org.hibernate.internal.util.BytesHelper.toBinaryString:(B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        19: .line 96
            aload 3 /* loBits */
            invokestatic org.hibernate.internal.util.BytesHelper.asLong:([B)J
            lstore 8 /* leastSignificantBits */
        start local 8 // long leastSignificantBits
        20: .line 97
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "             lsb : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 8 /* leastSignificantBits */
            invokestatic org.hibernate.internal.util.BytesHelper.toBinaryString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        21: .line 98
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        22: .line 101
            new java.util.UUID
            dup
            aload 1 /* strategy */
            getfield org.hibernate.id.uuid.CustomVersionOneStrategy.mostSignificantBits:J
            lload 8 /* leastSignificantBits */
            invokespecial java.util.UUID.<init>:(JJ)V
            astore 10 /* uuid */
        start local 10 // java.util.UUID uuid
        23: .line 102
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "  uuid : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* uuid */
            invokevirtual java.util.UUID.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        24: .line 103
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "  variant : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* uuid */
            invokevirtual java.util.UUID.variant:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        25: .line 104
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "  version : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* uuid */
            invokevirtual java.util.UUID.version:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        26: .line 105
            aload 10 /* uuid */
            invokevirtual java.util.UUID.variant:()I
            iconst_2
            if_icmpeq 28
        27: .line 106
            new java.lang.RuntimeException
            dup
            ldc "bad variant"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        28: .line 108
      StackMap locals: java.lang.String[] org.hibernate.id.uuid.CustomVersionOneStrategy int byte[] long int int long java.util.UUID
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 10 // java.util.UUID uuid
        end local 8 // long leastSignificantBits
        end local 7 // int loTime
        end local 6 // short hiTime
        end local 4 // long sysTime
        end local 3 // byte[] loBits
        29: .line 75
            iinc 2 /* i */ 1
      StackMap locals: java.lang.String[] org.hibernate.id.uuid.CustomVersionOneStrategy int
      StackMap stack:
        30: iload 2 /* i */
            sipush 1000
            if_icmplt 3
        end local 2 // int i
        31: .line 110
            return
        end local 1 // org.hibernate.id.uuid.CustomVersionOneStrategy strategy
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   32     0                  args  [Ljava/lang/String;
            1   32     1              strategy  Lorg/hibernate/id/uuid/CustomVersionOneStrategy;
            2   31     2                     i  I
            5   29     3                loBits  [B
            6   29     4               sysTime  J
            7   29     6                hiTime  S
            8   29     7                loTime  I
           20   29     8  leastSignificantBits  J
           23   29    10                  uuid  Ljava/util/UUID;
    RuntimeInvisibleAnnotations: 
      org.hibernate.internal.build.AllowSysOut()
    MethodParameters:
      Name  Flags
      args  
}
SourceFile: "CustomVersionOneStrategy.java"