abstract class org.springframework.boot.actuate.health.HealthEndpointSupport<C, T>
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: org.springframework.boot.actuate.health.HealthEndpointSupport
  super_class: java.lang.Object
{
  static final org.springframework.boot.actuate.health.Health DEFAULT_HEALTH;
    descriptor: Lorg/springframework/boot/actuate/health/Health;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private final org.springframework.boot.actuate.health.ContributorRegistry<C> registry;
    descriptor: Lorg/springframework/boot/actuate/health/ContributorRegistry;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/springframework/boot/actuate/health/ContributorRegistry<TC;>;

  private final org.springframework.boot.actuate.health.HealthEndpointGroups groups;
    descriptor: Lorg/springframework/boot/actuate/health/HealthEndpointGroups;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 38
            invokestatic org.springframework.boot.actuate.health.Health.up:()Lorg/springframework/boot/actuate/health/Health$Builder;
            invokevirtual org.springframework.boot.actuate.health.Health$Builder.build:()Lorg/springframework/boot/actuate/health/Health;
            putstatic org.springframework.boot.actuate.health.HealthEndpointSupport.DEFAULT_HEALTH:Lorg/springframework/boot/actuate/health/Health;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(org.springframework.boot.actuate.health.ContributorRegistry<C>, org.springframework.boot.actuate.health.HealthEndpointGroups);
    descriptor: (Lorg/springframework/boot/actuate/health/ContributorRegistry;Lorg/springframework/boot/actuate/health/HealthEndpointGroups;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.springframework.boot.actuate.health.HealthEndpointSupport this
        start local 1 // org.springframework.boot.actuate.health.ContributorRegistry registry
        start local 2 // org.springframework.boot.actuate.health.HealthEndpointGroups groups
         0: .line 49
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 50
            aload 1 /* registry */
            ldc "Registry must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 51
            aload 2 /* groups */
            ldc "Groups must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         3: .line 52
            aload 0 /* this */
            aload 1 /* registry */
            putfield org.springframework.boot.actuate.health.HealthEndpointSupport.registry:Lorg/springframework/boot/actuate/health/ContributorRegistry;
         4: .line 53
            aload 0 /* this */
            aload 2 /* groups */
            putfield org.springframework.boot.actuate.health.HealthEndpointSupport.groups:Lorg/springframework/boot/actuate/health/HealthEndpointGroups;
         5: .line 54
            return
        end local 2 // org.springframework.boot.actuate.health.HealthEndpointGroups groups
        end local 1 // org.springframework.boot.actuate.health.ContributorRegistry registry
        end local 0 // org.springframework.boot.actuate.health.HealthEndpointSupport this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/springframework/boot/actuate/health/HealthEndpointSupport<TC;TT;>;
            0    6     1  registry  Lorg/springframework/boot/actuate/health/ContributorRegistry<TC;>;
            0    6     2    groups  Lorg/springframework/boot/actuate/health/HealthEndpointGroups;
    Signature: (Lorg/springframework/boot/actuate/health/ContributorRegistry<TC;>;Lorg/springframework/boot/actuate/health/HealthEndpointGroups;)V
    MethodParameters:
          Name  Flags
      registry  
      groups    

  org.springframework.boot.actuate.health.HealthEndpointSupport$HealthResult<T> getHealth(org.springframework.boot.actuate.endpoint.http.ApiVersion, org.springframework.boot.actuate.endpoint.SecurityContext, boolean, java.lang.String[]);
    descriptor: (Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;Lorg/springframework/boot/actuate/endpoint/SecurityContext;Z[Ljava/lang/String;)Lorg/springframework/boot/actuate/health/HealthEndpointSupport$HealthResult;
    flags: (0x0080) ACC_VARARGS
    Code:
      stack=7, locals=6, args_size=5
        start local 0 // org.springframework.boot.actuate.health.HealthEndpointSupport this
        start local 1 // org.springframework.boot.actuate.endpoint.http.ApiVersion apiVersion
        start local 2 // org.springframework.boot.actuate.endpoint.SecurityContext securityContext
        start local 3 // boolean showAll
        start local 4 // java.lang.String[] path
         0: .line 57
            aload 4 /* path */
            arraylength
            ifle 1
            aload 0 /* this */
            getfield org.springframework.boot.actuate.health.HealthEndpointSupport.groups:Lorg/springframework/boot/actuate/health/HealthEndpointGroups;
            aload 4 /* path */
            iconst_0
            aaload
            invokeinterface org.springframework.boot.actuate.health.HealthEndpointGroups.get:(Ljava/lang/String;)Lorg/springframework/boot/actuate/health/HealthEndpointGroup;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: org.springframework.boot.actuate.health.HealthEndpointGroup
         2: astore 5 /* group */
        start local 5 // org.springframework.boot.actuate.health.HealthEndpointGroup group
         3: .line 58
            aload 5 /* group */
            ifnull 5
         4: .line 59
            aload 0 /* this */
            aload 1 /* apiVersion */
            aload 5 /* group */
            aload 2 /* securityContext */
            iload 3 /* showAll */
            aload 4 /* path */
            iconst_1
            invokevirtual org.springframework.boot.actuate.health.HealthEndpointSupport.getHealth:(Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;Lorg/springframework/boot/actuate/health/HealthEndpointGroup;Lorg/springframework/boot/actuate/endpoint/SecurityContext;Z[Ljava/lang/String;I)Lorg/springframework/boot/actuate/health/HealthEndpointSupport$HealthResult;
            areturn
         5: .line 61
      StackMap locals: org.springframework.boot.actuate.health.HealthEndpointGroup
      StackMap stack:
            aload 0 /* this */
            aload 1 /* apiVersion */
            aload 0 /* this */
            getfield org.springframework.boot.actuate.health.HealthEndpointSupport.groups:Lorg/springframework/boot/actuate/health/HealthEndpointGroups;
            invokeinterface org.springframework.boot.actuate.health.HealthEndpointGroups.getPrimary:()Lorg/springframework/boot/actuate/health/HealthEndpointGroup;
            aload 2 /* securityContext */
            iload 3 /* showAll */
            aload 4 /* path */
            iconst_0
            invokevirtual org.springframework.boot.actuate.health.HealthEndpointSupport.getHealth:(Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;Lorg/springframework/boot/actuate/health/HealthEndpointGroup;Lorg/springframework/boot/actuate/endpoint/SecurityContext;Z[Ljava/lang/String;I)Lorg/springframework/boot/actuate/health/HealthEndpointSupport$HealthResult;
            areturn
        end local 5 // org.springframework.boot.actuate.health.HealthEndpointGroup group
        end local 4 // java.lang.String[] path
        end local 3 // boolean showAll
        end local 2 // org.springframework.boot.actuate.endpoint.SecurityContext securityContext
        end local 1 // org.springframework.boot.actuate.endpoint.http.ApiVersion apiVersion
        end local 0 // org.springframework.boot.actuate.health.HealthEndpointSupport this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lorg/springframework/boot/actuate/health/HealthEndpointSupport<TC;TT;>;
            0    6     1       apiVersion  Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;
            0    6     2  securityContext  Lorg/springframework/boot/actuate/endpoint/SecurityContext;
            0    6     3          showAll  Z
            0    6     4             path  [Ljava/lang/String;
            3    6     5            group  Lorg/springframework/boot/actuate/health/HealthEndpointGroup;
    Signature: (Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;Lorg/springframework/boot/actuate/endpoint/SecurityContext;Z[Ljava/lang/String;)Lorg/springframework/boot/actuate/health/HealthEndpointSupport$HealthResult<TT;>;
    MethodParameters:
                 Name  Flags
      apiVersion       
      securityContext  
      showAll          
      path             

  private org.springframework.boot.actuate.health.HealthEndpointSupport$HealthResult<T> getHealth(org.springframework.boot.actuate.endpoint.http.ApiVersion, org.springframework.boot.actuate.health.HealthEndpointGroup, org.springframework.boot.actuate.endpoint.SecurityContext, boolean, java.lang.String[], int);
    descriptor: (Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;Lorg/springframework/boot/actuate/health/HealthEndpointGroup;Lorg/springframework/boot/actuate/endpoint/SecurityContext;Z[Ljava/lang/String;I)Lorg/springframework/boot/actuate/health/HealthEndpointSupport$HealthResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=13, args_size=7
        start local 0 // org.springframework.boot.actuate.health.HealthEndpointSupport this
        start local 1 // org.springframework.boot.actuate.endpoint.http.ApiVersion apiVersion
        start local 2 // org.springframework.boot.actuate.health.HealthEndpointGroup group
        start local 3 // org.springframework.boot.actuate.endpoint.SecurityContext securityContext
        start local 4 // boolean showAll
        start local 5 // java.lang.String[] path
        start local 6 // int pathOffset
         0: .line 66
            iload 4 /* showAll */
            ifne 1
            aload 2 /* group */
            aload 3 /* securityContext */
            invokeinterface org.springframework.boot.actuate.health.HealthEndpointGroup.showComponents:(Lorg/springframework/boot/actuate/endpoint/SecurityContext;)Z
            ifne 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: istore 7 /* showComponents */
        start local 7 // boolean showComponents
         3: .line 67
            iload 4 /* showAll */
            ifne 4
            aload 2 /* group */
            aload 3 /* securityContext */
            invokeinterface org.springframework.boot.actuate.health.HealthEndpointGroup.showDetails:(Lorg/springframework/boot/actuate/endpoint/SecurityContext;)Z
            ifne 4
            iconst_0
            goto 5
      StackMap locals: int
      StackMap stack:
         4: iconst_1
      StackMap locals:
      StackMap stack: int
         5: istore 8 /* showDetails */
        start local 8 // boolean showDetails
         6: .line 68
            aload 2 /* group */
            aload 0 /* this */
            getfield org.springframework.boot.actuate.health.HealthEndpointSupport.groups:Lorg/springframework/boot/actuate/health/HealthEndpointGroups;
            invokeinterface org.springframework.boot.actuate.health.HealthEndpointGroups.getPrimary:()Lorg/springframework/boot/actuate/health/HealthEndpointGroup;
            if_acmpne 7
            iload 6 /* pathOffset */
            ifne 7
            iconst_1
            goto 8
      StackMap locals: int
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 9 /* isSystemHealth */
        start local 9 // boolean isSystemHealth
         9: .line 69
            aload 5 /* path */
            arraylength
            iload 6 /* pathOffset */
            isub
            ifne 10
            iconst_1
            goto 11
      StackMap locals: int
      StackMap stack:
        10: iconst_0
      StackMap locals:
      StackMap stack: int
        11: istore 10 /* isRoot */
        start local 10 // boolean isRoot
        12: .line 70
            iload 7 /* showComponents */
            ifne 14
            iload 10 /* isRoot */
            ifne 14
        13: .line 71
            aconst_null
            areturn
        14: .line 73
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 5 /* path */
            iload 6 /* pathOffset */
            invokevirtual org.springframework.boot.actuate.health.HealthEndpointSupport.getContributor:([Ljava/lang/String;I)Ljava/lang/Object;
            astore 11 /* contributor */
        start local 11 // java.lang.Object contributor
        15: .line 74
            aload 0 /* this */
            aload 1 /* apiVersion */
            aload 2 /* group */
            aload 11 /* contributor */
            iload 7 /* showComponents */
            iload 8 /* showDetails */
        16: .line 75
            iload 9 /* isSystemHealth */
            ifeq 17
            aload 0 /* this */
            getfield org.springframework.boot.actuate.health.HealthEndpointSupport.groups:Lorg/springframework/boot/actuate/health/HealthEndpointGroups;
            invokeinterface org.springframework.boot.actuate.health.HealthEndpointGroups.getNames:()Ljava/util/Set;
            goto 18
      StackMap locals: org.springframework.boot.actuate.health.HealthEndpointSupport org.springframework.boot.actuate.endpoint.http.ApiVersion org.springframework.boot.actuate.health.HealthEndpointGroup org.springframework.boot.actuate.endpoint.SecurityContext int java.lang.String[] int int int int int java.lang.Object
      StackMap stack: org.springframework.boot.actuate.health.HealthEndpointSupport org.springframework.boot.actuate.endpoint.http.ApiVersion org.springframework.boot.actuate.health.HealthEndpointGroup java.lang.Object int int
        17: aconst_null
      StackMap locals: org.springframework.boot.actuate.health.HealthEndpointSupport org.springframework.boot.actuate.endpoint.http.ApiVersion org.springframework.boot.actuate.health.HealthEndpointGroup org.springframework.boot.actuate.endpoint.SecurityContext int java.lang.String[] int int int int int java.lang.Object
      StackMap stack: org.springframework.boot.actuate.health.HealthEndpointSupport org.springframework.boot.actuate.endpoint.http.ApiVersion org.springframework.boot.actuate.health.HealthEndpointGroup java.lang.Object int int java.util.Set
        18: iconst_0
        19: .line 74
            invokevirtual org.springframework.boot.actuate.health.HealthEndpointSupport.getContribution:(Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;Lorg/springframework/boot/actuate/health/HealthEndpointGroup;Ljava/lang/Object;ZZLjava/util/Set;Z)Ljava/lang/Object;
            astore 12 /* health */
        start local 12 // java.lang.Object health
        20: .line 76
            aload 12 /* health */
            ifnull 21
            new org.springframework.boot.actuate.health.HealthEndpointSupport$HealthResult
            dup
            aload 12 /* health */
            aload 2 /* group */
            invokespecial org.springframework.boot.actuate.health.HealthEndpointSupport$HealthResult.<init>:(Ljava/lang/Object;Lorg/springframework/boot/actuate/health/HealthEndpointGroup;)V
            goto 22
      StackMap locals: java.lang.Object
      StackMap stack:
        21: aconst_null
      StackMap locals:
      StackMap stack: org.springframework.boot.actuate.health.HealthEndpointSupport$HealthResult
        22: areturn
        end local 12 // java.lang.Object health
        end local 11 // java.lang.Object contributor
        end local 10 // boolean isRoot
        end local 9 // boolean isSystemHealth
        end local 8 // boolean showDetails
        end local 7 // boolean showComponents
        end local 6 // int pathOffset
        end local 5 // java.lang.String[] path
        end local 4 // boolean showAll
        end local 3 // org.springframework.boot.actuate.endpoint.SecurityContext securityContext
        end local 2 // org.springframework.boot.actuate.health.HealthEndpointGroup group
        end local 1 // org.springframework.boot.actuate.endpoint.http.ApiVersion apiVersion
        end local 0 // org.springframework.boot.actuate.health.HealthEndpointSupport this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   23     0             this  Lorg/springframework/boot/actuate/health/HealthEndpointSupport<TC;TT;>;
            0   23     1       apiVersion  Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;
            0   23     2            group  Lorg/springframework/boot/actuate/health/HealthEndpointGroup;
            0   23     3  securityContext  Lorg/springframework/boot/actuate/endpoint/SecurityContext;
            0   23     4          showAll  Z
            0   23     5             path  [Ljava/lang/String;
            0   23     6       pathOffset  I
            3   23     7   showComponents  Z
            6   23     8      showDetails  Z
            9   23     9   isSystemHealth  Z
           12   23    10           isRoot  Z
           15   23    11      contributor  Ljava/lang/Object;
           20   23    12           health  TT;
    Signature: (Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;Lorg/springframework/boot/actuate/health/HealthEndpointGroup;Lorg/springframework/boot/actuate/endpoint/SecurityContext;Z[Ljava/lang/String;I)Lorg/springframework/boot/actuate/health/HealthEndpointSupport$HealthResult<TT;>;
    MethodParameters:
                 Name  Flags
      apiVersion       
      group            
      securityContext  
      showAll          
      path             
      pathOffset       

  private java.lang.Object getContributor(java.lang.String[], int);
    descriptor: ([Ljava/lang/String;I)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.springframework.boot.actuate.health.HealthEndpointSupport this
        start local 1 // java.lang.String[] path
        start local 2 // int pathOffset
         0: .line 81
            aload 0 /* this */
            getfield org.springframework.boot.actuate.health.HealthEndpointSupport.registry:Lorg/springframework/boot/actuate/health/ContributorRegistry;
            astore 3 /* contributor */
        start local 3 // java.lang.Object contributor
         1: .line 82
            goto 6
         2: .line 83
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* contributor */
            instanceof org.springframework.boot.actuate.health.NamedContributors
            ifne 4
         3: .line 84
            aconst_null
            areturn
         4: .line 86
      StackMap locals:
      StackMap stack:
            aload 3 /* contributor */
            checkcast org.springframework.boot.actuate.health.NamedContributors
            aload 1 /* path */
            iload 2 /* pathOffset */
            aaload
            invokeinterface org.springframework.boot.actuate.health.NamedContributors.getContributor:(Ljava/lang/String;)Ljava/lang/Object;
            astore 3 /* contributor */
         5: .line 87
            iinc 2 /* pathOffset */ 1
         6: .line 82
      StackMap locals:
      StackMap stack:
            iload 2 /* pathOffset */
            aload 1 /* path */
            arraylength
            if_icmplt 2
         7: .line 89
            aload 3 /* contributor */
            areturn
        end local 3 // java.lang.Object contributor
        end local 2 // int pathOffset
        end local 1 // java.lang.String[] path
        end local 0 // org.springframework.boot.actuate.health.HealthEndpointSupport this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/springframework/boot/actuate/health/HealthEndpointSupport<TC;TT;>;
            0    8     1         path  [Ljava/lang/String;
            0    8     2   pathOffset  I
            1    8     3  contributor  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      path        
      pathOffset  

  private T getContribution(org.springframework.boot.actuate.endpoint.http.ApiVersion, org.springframework.boot.actuate.health.HealthEndpointGroup, , boolean, boolean, java.util.Set<java.lang.String>, );
    descriptor: (Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;Lorg/springframework/boot/actuate/health/HealthEndpointGroup;Ljava/lang/Object;ZZLjava/util/Set;Z)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=8, args_size=8
        start local 0 // org.springframework.boot.actuate.health.HealthEndpointSupport this
        start local 1 // org.springframework.boot.actuate.endpoint.http.ApiVersion apiVersion
        start local 2 // org.springframework.boot.actuate.health.HealthEndpointGroup group
        start local 3 // java.lang.Object contributor
        start local 4 // boolean showComponents
        start local 5 // boolean showDetails
        start local 6 // java.util.Set groupNames
        start local 7 // boolean isNested
         0: .line 95
            aload 3 /* contributor */
            instanceof org.springframework.boot.actuate.health.NamedContributors
            ifeq 4
         1: .line 96
            aload 0 /* this */
            aload 1 /* apiVersion */
            aload 2 /* group */
            aload 3 /* contributor */
            checkcast org.springframework.boot.actuate.health.NamedContributors
            iload 4 /* showComponents */
         2: .line 97
            iload 5 /* showDetails */
            aload 6 /* groupNames */
            iload 7 /* isNested */
         3: .line 96
            invokevirtual org.springframework.boot.actuate.health.HealthEndpointSupport.getAggregateHealth:(Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;Lorg/springframework/boot/actuate/health/HealthEndpointGroup;Lorg/springframework/boot/actuate/health/NamedContributors;ZZLjava/util/Set;Z)Ljava/lang/Object;
            areturn
         4: .line 99
      StackMap locals:
      StackMap stack:
            aload 3 /* contributor */
            ifnull 5
            aload 0 /* this */
            aload 3 /* contributor */
            iload 5 /* showDetails */
            invokevirtual org.springframework.boot.actuate.health.HealthEndpointSupport.getHealth:(Ljava/lang/Object;Z)Ljava/lang/Object;
            goto 6
      StackMap locals:
      StackMap stack:
         5: aconst_null
      StackMap locals:
      StackMap stack: java.lang.Object
         6: areturn
        end local 7 // boolean isNested
        end local 6 // java.util.Set groupNames
        end local 5 // boolean showDetails
        end local 4 // boolean showComponents
        end local 3 // java.lang.Object contributor
        end local 2 // org.springframework.boot.actuate.health.HealthEndpointGroup group
        end local 1 // org.springframework.boot.actuate.endpoint.http.ApiVersion apiVersion
        end local 0 // org.springframework.boot.actuate.health.HealthEndpointSupport this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lorg/springframework/boot/actuate/health/HealthEndpointSupport<TC;TT;>;
            0    7     1      apiVersion  Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;
            0    7     2           group  Lorg/springframework/boot/actuate/health/HealthEndpointGroup;
            0    7     3     contributor  Ljava/lang/Object;
            0    7     4  showComponents  Z
            0    7     5     showDetails  Z
            0    7     6      groupNames  Ljava/util/Set<Ljava/lang/String;>;
            0    7     7        isNested  Z
    Signature: (Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;Lorg/springframework/boot/actuate/health/HealthEndpointGroup;Ljava/lang/Object;ZZLjava/util/Set<Ljava/lang/String;>;Z)TT;
    MethodParameters:
                Name  Flags
      apiVersion      
      group           
      contributor     
      showComponents  
      showDetails     
      groupNames      
      isNested        

  private T getAggregateHealth(org.springframework.boot.actuate.endpoint.http.ApiVersion, org.springframework.boot.actuate.health.HealthEndpointGroup, org.springframework.boot.actuate.health.NamedContributors<C>, boolean, boolean, java.util.Set<java.lang.String>, );
    descriptor: (Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;Lorg/springframework/boot/actuate/health/HealthEndpointGroup;Lorg/springframework/boot/actuate/health/NamedContributors;ZZLjava/util/Set;Z)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=14, args_size=8
        start local 0 // org.springframework.boot.actuate.health.HealthEndpointSupport this
        start local 1 // org.springframework.boot.actuate.endpoint.http.ApiVersion apiVersion
        start local 2 // org.springframework.boot.actuate.health.HealthEndpointGroup group
        start local 3 // org.springframework.boot.actuate.health.NamedContributors namedContributors
        start local 4 // boolean showComponents
        start local 5 // boolean showDetails
        start local 6 // java.util.Set groupNames
        start local 7 // boolean isNested
         0: .line 105
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 8 /* contributions */
        start local 8 // java.util.Map contributions
         1: .line 106
            aload 3 /* namedContributors */
            invokeinterface org.springframework.boot.actuate.health.NamedContributors.iterator:()Ljava/util/Iterator;
            astore 10
            goto 11
      StackMap locals: org.springframework.boot.actuate.health.HealthEndpointSupport org.springframework.boot.actuate.endpoint.http.ApiVersion org.springframework.boot.actuate.health.HealthEndpointGroup org.springframework.boot.actuate.health.NamedContributors int int java.util.Set int java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.springframework.boot.actuate.health.NamedContributor
            astore 9 /* namedContributor */
        start local 9 // org.springframework.boot.actuate.health.NamedContributor namedContributor
         3: .line 107
            aload 9 /* namedContributor */
            invokeinterface org.springframework.boot.actuate.health.NamedContributor.getName:()Ljava/lang/String;
            astore 11 /* name */
        start local 11 // java.lang.String name
         4: .line 108
            aload 9 /* namedContributor */
            invokeinterface org.springframework.boot.actuate.health.NamedContributor.getContributor:()Ljava/lang/Object;
            astore 12 /* contributor */
        start local 12 // java.lang.Object contributor
         5: .line 109
            aload 2 /* group */
            aload 11 /* name */
            invokeinterface org.springframework.boot.actuate.health.HealthEndpointGroup.isMember:(Ljava/lang/String;)Z
            ifne 6
            iload 7 /* isNested */
            ifeq 11
         6: .line 110
      StackMap locals: org.springframework.boot.actuate.health.HealthEndpointSupport org.springframework.boot.actuate.endpoint.http.ApiVersion org.springframework.boot.actuate.health.HealthEndpointGroup org.springframework.boot.actuate.health.NamedContributors int int java.util.Set int java.util.Map org.springframework.boot.actuate.health.NamedContributor java.util.Iterator java.lang.String java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 1 /* apiVersion */
            aload 2 /* group */
            aload 12 /* contributor */
            iload 4 /* showComponents */
            iload 5 /* showDetails */
            aconst_null
         7: .line 111
            iconst_1
         8: .line 110
            invokevirtual org.springframework.boot.actuate.health.HealthEndpointSupport.getContribution:(Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;Lorg/springframework/boot/actuate/health/HealthEndpointGroup;Ljava/lang/Object;ZZLjava/util/Set;Z)Ljava/lang/Object;
            astore 13 /* contribution */
        start local 13 // java.lang.Object contribution
         9: .line 112
            aload 13 /* contribution */
            ifnull 11
        10: .line 113
            aload 8 /* contributions */
            aload 11 /* name */
            aload 13 /* contribution */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 13 // java.lang.Object contribution
        end local 12 // java.lang.Object contributor
        end local 11 // java.lang.String name
        end local 9 // org.springframework.boot.actuate.health.NamedContributor namedContributor
        11: .line 106
      StackMap locals: org.springframework.boot.actuate.health.HealthEndpointSupport org.springframework.boot.actuate.endpoint.http.ApiVersion org.springframework.boot.actuate.health.HealthEndpointGroup org.springframework.boot.actuate.health.NamedContributors int int java.util.Set int java.util.Map top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        12: .line 117
            aload 8 /* contributions */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 14
        13: .line 118
            aconst_null
            areturn
        14: .line 120
      StackMap locals: org.springframework.boot.actuate.health.HealthEndpointSupport org.springframework.boot.actuate.endpoint.http.ApiVersion org.springframework.boot.actuate.health.HealthEndpointGroup org.springframework.boot.actuate.health.NamedContributors int int java.util.Set int java.util.Map
      StackMap stack:
            aload 0 /* this */
            aload 1 /* apiVersion */
            aload 8 /* contributions */
            aload 2 /* group */
            invokeinterface org.springframework.boot.actuate.health.HealthEndpointGroup.getStatusAggregator:()Lorg/springframework/boot/actuate/health/StatusAggregator;
            iload 4 /* showComponents */
        15: .line 121
            aload 6 /* groupNames */
        16: .line 120
            invokevirtual org.springframework.boot.actuate.health.HealthEndpointSupport.aggregateContributions:(Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;Ljava/util/Map;Lorg/springframework/boot/actuate/health/StatusAggregator;ZLjava/util/Set;)Ljava/lang/Object;
            areturn
        end local 8 // java.util.Map contributions
        end local 7 // boolean isNested
        end local 6 // java.util.Set groupNames
        end local 5 // boolean showDetails
        end local 4 // boolean showComponents
        end local 3 // org.springframework.boot.actuate.health.NamedContributors namedContributors
        end local 2 // org.springframework.boot.actuate.health.HealthEndpointGroup group
        end local 1 // org.springframework.boot.actuate.endpoint.http.ApiVersion apiVersion
        end local 0 // org.springframework.boot.actuate.health.HealthEndpointSupport this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   17     0               this  Lorg/springframework/boot/actuate/health/HealthEndpointSupport<TC;TT;>;
            0   17     1         apiVersion  Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;
            0   17     2              group  Lorg/springframework/boot/actuate/health/HealthEndpointGroup;
            0   17     3  namedContributors  Lorg/springframework/boot/actuate/health/NamedContributors<TC;>;
            0   17     4     showComponents  Z
            0   17     5        showDetails  Z
            0   17     6         groupNames  Ljava/util/Set<Ljava/lang/String;>;
            0   17     7           isNested  Z
            1   17     8      contributions  Ljava/util/Map<Ljava/lang/String;TT;>;
            3   11     9   namedContributor  Lorg/springframework/boot/actuate/health/NamedContributor<TC;>;
            4   11    11               name  Ljava/lang/String;
            5   11    12        contributor  TC;
            9   11    13       contribution  TT;
    Signature: (Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;Lorg/springframework/boot/actuate/health/HealthEndpointGroup;Lorg/springframework/boot/actuate/health/NamedContributors<TC;>;ZZLjava/util/Set<Ljava/lang/String;>;Z)TT;
    MethodParameters:
                   Name  Flags
      apiVersion         
      group              
      namedContributors  
      showComponents     
      showDetails        
      groupNames         
      isNested           

  protected abstract T getHealth(C, );
    descriptor: (Ljava/lang/Object;Z)Ljava/lang/Object;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: (TC;Z)TT;
    MethodParameters:
                Name  Flags
      contributor     
      includeDetails  

  protected abstract T aggregateContributions(org.springframework.boot.actuate.endpoint.http.ApiVersion, java.util.Map<java.lang.String, T>, org.springframework.boot.actuate.health.StatusAggregator, boolean, java.util.Set<java.lang.String>);
    descriptor: (Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;Ljava/util/Map;Lorg/springframework/boot/actuate/health/StatusAggregator;ZLjava/util/Set;)Ljava/lang/Object;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: (Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;Ljava/util/Map<Ljava/lang/String;TT;>;Lorg/springframework/boot/actuate/health/StatusAggregator;ZLjava/util/Set<Ljava/lang/String;>;)TT;
    MethodParameters:
                  Name  Flags
      apiVersion        
      contributions     
      statusAggregator  
      showComponents    
      groupNames        

  protected final org.springframework.boot.actuate.health.CompositeHealth getCompositeHealth(org.springframework.boot.actuate.endpoint.http.ApiVersion, java.util.Map<java.lang.String, org.springframework.boot.actuate.health.HealthComponent>, org.springframework.boot.actuate.health.StatusAggregator, boolean, java.util.Set<java.lang.String>);
    descriptor: (Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;Ljava/util/Map;Lorg/springframework/boot/actuate/health/StatusAggregator;ZLjava/util/Set;)Lorg/springframework/boot/actuate/health/CompositeHealth;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=6, locals=9, args_size=6
        start local 0 // org.springframework.boot.actuate.health.HealthEndpointSupport this
        start local 1 // org.springframework.boot.actuate.endpoint.http.ApiVersion apiVersion
        start local 2 // java.util.Map components
        start local 3 // org.springframework.boot.actuate.health.StatusAggregator statusAggregator
        start local 4 // boolean showComponents
        start local 5 // java.util.Set groupNames
         0: .line 131
            aload 3 /* statusAggregator */
         1: .line 132
            aload 2 /* components */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            aload 0 /* this */
            invokedynamic apply(Lorg/springframework/boot/actuate/health/HealthEndpointSupport;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/springframework/boot/actuate/health/HealthEndpointSupport.getStatus(Lorg/springframework/boot/actuate/health/HealthComponent;)Lorg/springframework/boot/actuate/health/Status; (7)
                  (Lorg/springframework/boot/actuate/health/HealthComponent;)Lorg/springframework/boot/actuate/health/Status;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Set
            invokeinterface org.springframework.boot.actuate.health.StatusAggregator.getAggregateStatus:(Ljava/util/Set;)Lorg/springframework/boot/actuate/health/Status;
         2: .line 131
            astore 6 /* status */
        start local 6 // org.springframework.boot.actuate.health.Status status
         3: .line 133
            iload 4 /* showComponents */
            ifeq 4
            aload 2 /* components */
            goto 5
      StackMap locals: org.springframework.boot.actuate.health.Status
      StackMap stack:
         4: aconst_null
      StackMap locals:
      StackMap stack: java.util.Map
         5: astore 8 /* instances */
        start local 8 // java.util.Map instances
         6: .line 134
            aload 5 /* groupNames */
            ifnull 8
         7: .line 135
            new org.springframework.boot.actuate.health.SystemHealth
            dup
            aload 1 /* apiVersion */
            aload 6 /* status */
            aload 8 /* instances */
            aload 5 /* groupNames */
            invokespecial org.springframework.boot.actuate.health.SystemHealth.<init>:(Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;Lorg/springframework/boot/actuate/health/Status;Ljava/util/Map;Ljava/util/Set;)V
            areturn
         8: .line 137
      StackMap locals: org.springframework.boot.actuate.health.HealthEndpointSupport org.springframework.boot.actuate.endpoint.http.ApiVersion java.util.Map org.springframework.boot.actuate.health.StatusAggregator int java.util.Set org.springframework.boot.actuate.health.Status top java.util.Map
      StackMap stack:
            new org.springframework.boot.actuate.health.CompositeHealth
            dup
            aload 1 /* apiVersion */
            aload 6 /* status */
            aload 8 /* instances */
            invokespecial org.springframework.boot.actuate.health.CompositeHealth.<init>:(Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;Lorg/springframework/boot/actuate/health/Status;Ljava/util/Map;)V
            areturn
        end local 8 // java.util.Map instances
        end local 6 // org.springframework.boot.actuate.health.Status status
        end local 5 // java.util.Set groupNames
        end local 4 // boolean showComponents
        end local 3 // org.springframework.boot.actuate.health.StatusAggregator statusAggregator
        end local 2 // java.util.Map components
        end local 1 // org.springframework.boot.actuate.endpoint.http.ApiVersion apiVersion
        end local 0 // org.springframework.boot.actuate.health.HealthEndpointSupport this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Lorg/springframework/boot/actuate/health/HealthEndpointSupport<TC;TT;>;
            0    9     1        apiVersion  Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;
            0    9     2        components  Ljava/util/Map<Ljava/lang/String;Lorg/springframework/boot/actuate/health/HealthComponent;>;
            0    9     3  statusAggregator  Lorg/springframework/boot/actuate/health/StatusAggregator;
            0    9     4    showComponents  Z
            0    9     5        groupNames  Ljava/util/Set<Ljava/lang/String;>;
            3    9     6            status  Lorg/springframework/boot/actuate/health/Status;
            6    9     8         instances  Ljava/util/Map<Ljava/lang/String;Lorg/springframework/boot/actuate/health/HealthComponent;>;
    Signature: (Lorg/springframework/boot/actuate/endpoint/http/ApiVersion;Ljava/util/Map<Ljava/lang/String;Lorg/springframework/boot/actuate/health/HealthComponent;>;Lorg/springframework/boot/actuate/health/StatusAggregator;ZLjava/util/Set<Ljava/lang/String;>;)Lorg/springframework/boot/actuate/health/CompositeHealth;
    MethodParameters:
                  Name  Flags
      apiVersion        
      components        
      statusAggregator  
      showComponents    
      groupNames        

  private org.springframework.boot.actuate.health.Status getStatus(org.springframework.boot.actuate.health.HealthComponent);
    descriptor: (Lorg/springframework/boot/actuate/health/HealthComponent;)Lorg/springframework/boot/actuate/health/Status;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.springframework.boot.actuate.health.HealthEndpointSupport this
        start local 1 // org.springframework.boot.actuate.health.HealthComponent component
         0: .line 141
            aload 1 /* component */
            ifnull 1
            aload 1 /* component */
            invokevirtual org.springframework.boot.actuate.health.HealthComponent.getStatus:()Lorg/springframework/boot/actuate/health/Status;
            goto 2
      StackMap locals:
      StackMap stack:
         1: getstatic org.springframework.boot.actuate.health.Status.UNKNOWN:Lorg/springframework/boot/actuate/health/Status;
      StackMap locals:
      StackMap stack: org.springframework.boot.actuate.health.Status
         2: areturn
        end local 1 // org.springframework.boot.actuate.health.HealthComponent component
        end local 0 // org.springframework.boot.actuate.health.HealthEndpointSupport this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/springframework/boot/actuate/health/HealthEndpointSupport<TC;TT;>;
            0    3     1  component  Lorg/springframework/boot/actuate/health/HealthComponent;
    MethodParameters:
           Name  Flags
      component  
}
Signature: <C:Ljava/lang/Object;T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "HealthEndpointSupport.java"
NestMembers:
  org.springframework.boot.actuate.health.HealthEndpointSupport$HealthResult
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public Builder = org.springframework.boot.actuate.health.Health$Builder of org.springframework.boot.actuate.health.Health
  HealthResult = org.springframework.boot.actuate.health.HealthEndpointSupport$HealthResult of org.springframework.boot.actuate.health.HealthEndpointSupport