public class org.apache.maven.settings.merge.MavenSettingsMerger
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.maven.settings.merge.MavenSettingsMerger
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.maven.settings.merge.MavenSettingsMerger this
         0: .line 35
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.maven.settings.merge.MavenSettingsMerger this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/maven/settings/merge/MavenSettingsMerger;

  public void merge(org.apache.maven.settings.Settings, org.apache.maven.settings.Settings, java.lang.String);
    descriptor: (Lorg/apache/maven/settings/Settings;Lorg/apache/maven/settings/Settings;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=10, args_size=4
        start local 0 // org.apache.maven.settings.merge.MavenSettingsMerger this
        start local 1 // org.apache.maven.settings.Settings dominant
        start local 2 // org.apache.maven.settings.Settings recessive
        start local 3 // java.lang.String recessiveSourceLevel
         0: .line 45
            aload 1 /* dominant */
            ifnull 1
            aload 2 /* recessive */
            ifnonnull 2
         1: .line 47
      StackMap locals:
      StackMap stack:
            return
         2: .line 50
      StackMap locals:
      StackMap stack:
            aload 2 /* recessive */
            aload 3 /* recessiveSourceLevel */
            invokevirtual org.apache.maven.settings.Settings.setSourceLevel:(Ljava/lang/String;)V
         3: .line 52
            aload 1 /* dominant */
            invokevirtual org.apache.maven.settings.Settings.getActiveProfiles:()Ljava/util/List;
            astore 4 /* dominantActiveProfiles */
        start local 4 // java.util.List dominantActiveProfiles
         4: .line 53
            aload 2 /* recessive */
            invokevirtual org.apache.maven.settings.Settings.getActiveProfiles:()Ljava/util/List;
            astore 5 /* recessiveActiveProfiles */
        start local 5 // java.util.List recessiveActiveProfiles
         5: .line 55
            aload 5 /* recessiveActiveProfiles */
            ifnull 14
         6: .line 57
            aload 4 /* dominantActiveProfiles */
            ifnonnull 9
         7: .line 59
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* dominantActiveProfiles */
         8: .line 60
            aload 1 /* dominant */
            aload 4 /* dominantActiveProfiles */
            invokevirtual org.apache.maven.settings.Settings.setActiveProfiles:(Ljava/util/List;)V
         9: .line 63
      StackMap locals: java.util.List java.util.List
      StackMap stack:
            aload 5 /* recessiveActiveProfiles */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 13
      StackMap locals: org.apache.maven.settings.merge.MavenSettingsMerger org.apache.maven.settings.Settings org.apache.maven.settings.Settings java.lang.String java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        10: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* profileId */
        start local 6 // java.lang.String profileId
        11: .line 65
            aload 4 /* dominantActiveProfiles */
            aload 6 /* profileId */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 13
        12: .line 67
            aload 4 /* dominantActiveProfiles */
            aload 6 /* profileId */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.String profileId
        13: .line 63
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        14: .line 72
      StackMap locals: org.apache.maven.settings.merge.MavenSettingsMerger org.apache.maven.settings.Settings org.apache.maven.settings.Settings java.lang.String java.util.List java.util.List
      StackMap stack:
            aload 1 /* dominant */
            invokevirtual org.apache.maven.settings.Settings.getPluginGroups:()Ljava/util/List;
            astore 6 /* dominantPluginGroupIds */
        start local 6 // java.util.List dominantPluginGroupIds
        15: .line 74
            aload 2 /* recessive */
            invokevirtual org.apache.maven.settings.Settings.getPluginGroups:()Ljava/util/List;
            astore 7 /* recessivePluginGroupIds */
        start local 7 // java.util.List recessivePluginGroupIds
        16: .line 76
            aload 7 /* recessivePluginGroupIds */
            ifnull 25
        17: .line 78
            aload 6 /* dominantPluginGroupIds */
            ifnonnull 20
        18: .line 80
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* dominantPluginGroupIds */
        19: .line 81
            aload 1 /* dominant */
            aload 6 /* dominantPluginGroupIds */
            invokevirtual org.apache.maven.settings.Settings.setPluginGroups:(Ljava/util/List;)V
        20: .line 84
      StackMap locals: java.util.List java.util.List
      StackMap stack:
            aload 7 /* recessivePluginGroupIds */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 24
      StackMap locals: org.apache.maven.settings.merge.MavenSettingsMerger org.apache.maven.settings.Settings org.apache.maven.settings.Settings java.lang.String java.util.List java.util.List java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        21: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* pluginGroupId */
        start local 8 // java.lang.String pluginGroupId
        22: .line 86
            aload 6 /* dominantPluginGroupIds */
            aload 8 /* pluginGroupId */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 24
        23: .line 88
            aload 6 /* dominantPluginGroupIds */
            aload 8 /* pluginGroupId */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.lang.String pluginGroupId
        24: .line 84
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        25: .line 93
      StackMap locals: org.apache.maven.settings.merge.MavenSettingsMerger org.apache.maven.settings.Settings org.apache.maven.settings.Settings java.lang.String java.util.List java.util.List java.util.List java.util.List
      StackMap stack:
            aload 1 /* dominant */
            invokevirtual org.apache.maven.settings.Settings.getLocalRepository:()Ljava/lang/String;
            invokestatic org.codehaus.plexus.util.StringUtils.isEmpty:(Ljava/lang/String;)Z
            ifeq 27
        26: .line 95
            aload 1 /* dominant */
            aload 2 /* recessive */
            invokevirtual org.apache.maven.settings.Settings.getLocalRepository:()Ljava/lang/String;
            invokevirtual org.apache.maven.settings.Settings.setLocalRepository:(Ljava/lang/String;)V
        27: .line 98
      StackMap locals:
      StackMap stack:
            aload 1 /* dominant */
            invokevirtual org.apache.maven.settings.Settings.getMirrors:()Ljava/util/List;
            aload 2 /* recessive */
            invokevirtual org.apache.maven.settings.Settings.getMirrors:()Ljava/util/List;
            aload 3 /* recessiveSourceLevel */
            invokestatic org.apache.maven.settings.merge.MavenSettingsMerger.shallowMergeById:(Ljava/util/List;Ljava/util/List;Ljava/lang/String;)V
        28: .line 99
            aload 1 /* dominant */
            invokevirtual org.apache.maven.settings.Settings.getServers:()Ljava/util/List;
            aload 2 /* recessive */
            invokevirtual org.apache.maven.settings.Settings.getServers:()Ljava/util/List;
            aload 3 /* recessiveSourceLevel */
            invokestatic org.apache.maven.settings.merge.MavenSettingsMerger.shallowMergeById:(Ljava/util/List;Ljava/util/List;Ljava/lang/String;)V
        29: .line 100
            aload 1 /* dominant */
            invokevirtual org.apache.maven.settings.Settings.getProxies:()Ljava/util/List;
            aload 2 /* recessive */
            invokevirtual org.apache.maven.settings.Settings.getProxies:()Ljava/util/List;
            aload 3 /* recessiveSourceLevel */
            invokestatic org.apache.maven.settings.merge.MavenSettingsMerger.shallowMergeById:(Ljava/util/List;Ljava/util/List;Ljava/lang/String;)V
        30: .line 101
            aload 1 /* dominant */
            invokevirtual org.apache.maven.settings.Settings.getProfiles:()Ljava/util/List;
            aload 2 /* recessive */
            invokevirtual org.apache.maven.settings.Settings.getProfiles:()Ljava/util/List;
            aload 3 /* recessiveSourceLevel */
            invokestatic org.apache.maven.settings.merge.MavenSettingsMerger.shallowMergeById:(Ljava/util/List;Ljava/util/List;Ljava/lang/String;)V
        31: .line 103
            return
        end local 7 // java.util.List recessivePluginGroupIds
        end local 6 // java.util.List dominantPluginGroupIds
        end local 5 // java.util.List recessiveActiveProfiles
        end local 4 // java.util.List dominantActiveProfiles
        end local 3 // java.lang.String recessiveSourceLevel
        end local 2 // org.apache.maven.settings.Settings recessive
        end local 1 // org.apache.maven.settings.Settings dominant
        end local 0 // org.apache.maven.settings.merge.MavenSettingsMerger this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   32     0                     this  Lorg/apache/maven/settings/merge/MavenSettingsMerger;
            0   32     1                 dominant  Lorg/apache/maven/settings/Settings;
            0   32     2                recessive  Lorg/apache/maven/settings/Settings;
            0   32     3     recessiveSourceLevel  Ljava/lang/String;
            4   32     4   dominantActiveProfiles  Ljava/util/List<Ljava/lang/String;>;
            5   32     5  recessiveActiveProfiles  Ljava/util/List<Ljava/lang/String;>;
           11   13     6                profileId  Ljava/lang/String;
           15   32     6   dominantPluginGroupIds  Ljava/util/List<Ljava/lang/String;>;
           16   32     7  recessivePluginGroupIds  Ljava/util/List<Ljava/lang/String;>;
           22   24     8            pluginGroupId  Ljava/lang/String;
    MethodParameters:
                      Name  Flags
      dominant              
      recessive             
      recessiveSourceLevel  

  private static <T extends org.apache.maven.settings.IdentifiableBase> void shallowMergeById(java.util.List<T>, java.util.List<T>, java.lang.String);
    descriptor: (Ljava/util/List;Ljava/util/List;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // java.util.List dominant
        start local 1 // java.util.List recessive
        start local 2 // java.lang.String recessiveSourceLevel
         0: .line 113
            aload 0 /* dominant */
            invokestatic org.apache.maven.settings.merge.MavenSettingsMerger.mapById:(Ljava/util/List;)Ljava/util/Map;
            astore 3 /* dominantById */
        start local 3 // java.util.Map dominantById
         1: .line 115
            aload 1 /* recessive */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: java.util.List java.util.List java.lang.String java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.maven.settings.IdentifiableBase
            astore 4 /* identifiable */
        start local 4 // org.apache.maven.settings.IdentifiableBase identifiable
         3: .line 117
            aload 3 /* dominantById */
            aload 4 /* identifiable */
            invokevirtual org.apache.maven.settings.IdentifiableBase.getId:()Ljava/lang/String;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 6
         4: .line 119
            aload 4 /* identifiable */
            aload 2 /* recessiveSourceLevel */
            invokevirtual org.apache.maven.settings.IdentifiableBase.setSourceLevel:(Ljava/lang/String;)V
         5: .line 121
            aload 0 /* dominant */
            aload 4 /* identifiable */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.apache.maven.settings.IdentifiableBase identifiable
         6: .line 115
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 124
            return
        end local 3 // java.util.Map dominantById
        end local 2 // java.lang.String recessiveSourceLevel
        end local 1 // java.util.List recessive
        end local 0 // java.util.List dominant
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    8     0              dominant  Ljava/util/List<TT;>;
            0    8     1             recessive  Ljava/util/List<TT;>;
            0    8     2  recessiveSourceLevel  Ljava/lang/String;
            1    8     3          dominantById  Ljava/util/Map<Ljava/lang/String;TT;>;
            3    6     4          identifiable  TT;
    Signature: <T:Lorg/apache/maven/settings/IdentifiableBase;>(Ljava/util/List<TT;>;Ljava/util/List<TT;>;Ljava/lang/String;)V
    MethodParameters:
                      Name  Flags
      dominant              
      recessive             
      recessiveSourceLevel  

  private static <T extends org.apache.maven.settings.IdentifiableBase> java.util.Map<java.lang.String, T> mapById(java.util.List<T>);
    descriptor: (Ljava/util/List;)Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.util.List identifiables
         0: .line 132
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 1 /* byId */
        start local 1 // java.util.Map byId
         1: .line 134
            aload 0 /* identifiables */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: java.util.List java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.maven.settings.IdentifiableBase
            astore 2 /* identifiable */
        start local 2 // org.apache.maven.settings.IdentifiableBase identifiable
         3: .line 136
            aload 1 /* byId */
            aload 2 /* identifiable */
            invokevirtual org.apache.maven.settings.IdentifiableBase.getId:()Ljava/lang/String;
            aload 2 /* identifiable */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 2 // org.apache.maven.settings.IdentifiableBase identifiable
         4: .line 134
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 139
            aload 1 /* byId */
            areturn
        end local 1 // java.util.Map byId
        end local 0 // java.util.List identifiables
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0  identifiables  Ljava/util/List<TT;>;
            1    6     1           byId  Ljava/util/Map<Ljava/lang/String;TT;>;
            3    4     2   identifiable  TT;
    Signature: <T:Lorg/apache/maven/settings/IdentifiableBase;>(Ljava/util/List<TT;>;)Ljava/util/Map<Ljava/lang/String;TT;>;
    MethodParameters:
               Name  Flags
      identifiables  
}
SourceFile: "MavenSettingsMerger.java"