// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.server.core.modules.entity.damage;

import com.hypixel.hytale.assetstore.AssetRegistry;
import com.hypixel.hytale.assetstore.AssetExtraInfo;
import javax.annotation.Nullable;
import com.hypixel.hytale.codec.Codec;
import com.hypixel.hytale.codec.validation.ValidatorCache;
import com.hypixel.hytale.assetstore.AssetStore;
import javax.annotation.Nonnull;
import com.hypixel.hytale.assetstore.codec.AssetBuilderCodec;
import com.hypixel.hytale.assetstore.map.IndexedLookupTableAssetMap;
import com.hypixel.hytale.assetstore.map.JsonAssetWithMap;

public class DamageCause implements JsonAssetWithMap<String, IndexedLookupTableAssetMap<String, DamageCause>>
{
    @Nonnull
    public static final AssetBuilderCodec<String, DamageCause> CODEC;
    private static AssetStore<String, DamageCause, IndexedLookupTableAssetMap<String, DamageCause>> ASSET_STORE;
    @Nonnull
    public static final ValidatorCache<String> VALIDATOR_CACHE;
    @Nonnull
    public static final Codec<String> CHILD_ASSET_CODEC;
    @Nullable
    @Deprecated
    public static DamageCause PHYSICAL;
    @Nullable
    @Deprecated
    public static DamageCause PROJECTILE;
    @Nullable
    @Deprecated
    public static DamageCause COMMAND;
    @Nullable
    @Deprecated
    public static DamageCause DROWNING;
    @Nullable
    @Deprecated
    public static DamageCause ENVIRONMENT;
    @Nullable
    @Deprecated
    public static DamageCause FALL;
    @Nullable
    @Deprecated
    public static DamageCause OUT_OF_WORLD;
    @Nullable
    @Deprecated
    public static DamageCause SUFFOCATION;
    protected AssetExtraInfo.Data data;
    protected String id;
    protected String inherits;
    protected boolean durabilityLoss;
    protected boolean staminaLoss;
    protected boolean bypassResistances;
    protected String damageTextColor;
    protected String animationId;
    protected String deathAnimationId;
    
    @Nonnull
    public static AssetStore<String, DamageCause, IndexedLookupTableAssetMap<String, DamageCause>> getAssetStore() {
        if (DamageCause.ASSET_STORE == null) {
            DamageCause.ASSET_STORE = AssetRegistry.getAssetStore(DamageCause.class);
        }
        return DamageCause.ASSET_STORE;
    }
    
    @Nonnull
    public static IndexedLookupTableAssetMap<String, DamageCause> getAssetMap() {
        return getAssetStore().getAssetMap();
    }
    
    public DamageCause() {
        this.animationId = "Hurt";
        this.deathAnimationId = "Death";
    }
    
    public DamageCause(@Nonnull final String id) {
        this.animationId = "Hurt";
        this.deathAnimationId = "Death";
        this.id = id;
    }
    
    public DamageCause(@Nonnull final String id, @Nonnull final String inherits, final boolean durabilityLoss, final boolean staminaLoss, final boolean bypassResistances) {
        this.animationId = "Hurt";
        this.deathAnimationId = "Death";
        this.id = id;
        this.inherits = inherits;
        this.durabilityLoss = durabilityLoss;
        this.staminaLoss = staminaLoss;
        this.bypassResistances = bypassResistances;
    }
    
    @Override
    public String getId() {
        return this.id;
    }
    
    public boolean isDurabilityLoss() {
        return this.durabilityLoss;
    }
    
    public boolean isStaminaLoss() {
        return this.staminaLoss;
    }
    
    public boolean doesBypassResistances() {
        return this.bypassResistances;
    }
    
    public String getInherits() {
        return this.inherits;
    }
    
    public String getAnimationId() {
        return this.animationId;
    }
    
    public String getDeathAnimationId() {
        return this.deathAnimationId;
    }
    
    @Nonnull
    public com.hypixel.hytale.protocol.DamageCause toPacket() {
        return new com.hypixel.hytale.protocol.DamageCause(this.id, this.damageTextColor);
    }
    
    static {
        // 
        // This method could not be decompiled.
        // 
        // Original Bytecode:
        // 
        //     2: invokedynamic   BootstrapMethod #0, get:()Ljava/util/function/Supplier;
        //     7: getstatic       com/hypixel/hytale/codec/Codec.STRING:Lcom/hypixel/hytale/codec/codecs/simple/StringCodec;
        //    10: invokedynamic   BootstrapMethod #1, accept:()Ljava/util/function/BiConsumer;
        //    15: invokedynamic   BootstrapMethod #2, apply:()Ljava/util/function/Function;
        //    20: invokedynamic   BootstrapMethod #3, accept:()Ljava/util/function/BiConsumer;
        //    25: invokedynamic   BootstrapMethod #4, apply:()Ljava/util/function/Function;
        //    30: invokestatic    com/hypixel/hytale/assetstore/codec/AssetBuilderCodec.builder:(Ljava/lang/Class;Ljava/util/function/Supplier;Lcom/hypixel/hytale/codec/Codec;Ljava/util/function/BiConsumer;Ljava/util/function/Function;Ljava/util/function/BiConsumer;Ljava/util/function/Function;)Lcom/hypixel/hytale/assetstore/codec/AssetBuilderCodec$Builder;
        //    33: new             Lcom/hypixel/hytale/codec/KeyedCodec;
        //    36: dup            
        //    37: ldc             "Inherits"
        //    39: getstatic       com/hypixel/hytale/codec/Codec.STRING:Lcom/hypixel/hytale/codec/codecs/simple/StringCodec;
        //    42: invokespecial   com/hypixel/hytale/codec/KeyedCodec.<init>:(Ljava/lang/String;Lcom/hypixel/hytale/codec/Codec;)V
        //    45: invokedynamic   BootstrapMethod #5, accept:()Ljava/util/function/BiConsumer;
        //    50: invokedynamic   BootstrapMethod #6, apply:()Ljava/util/function/Function;
        //    55: invokevirtual   com/hypixel/hytale/assetstore/codec/AssetBuilderCodec$Builder.append:(Lcom/hypixel/hytale/codec/KeyedCodec;Ljava/util/function/BiConsumer;Ljava/util/function/Function;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //    58: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.add:()Lcom/hypixel/hytale/codec/builder/BuilderCodec$BuilderBase;
        //    61: checkcast       Lcom/hypixel/hytale/assetstore/codec/AssetBuilderCodec$Builder;
        //    64: new             Lcom/hypixel/hytale/codec/KeyedCodec;
        //    67: dup            
        //    68: ldc             "DurabilityLoss"
        //    70: getstatic       com/hypixel/hytale/codec/Codec.BOOLEAN:Lcom/hypixel/hytale/codec/codecs/simple/BooleanCodec;
        //    73: invokespecial   com/hypixel/hytale/codec/KeyedCodec.<init>:(Ljava/lang/String;Lcom/hypixel/hytale/codec/Codec;)V
        //    76: invokedynamic   BootstrapMethod #7, accept:()Ljava/util/function/BiConsumer;
        //    81: invokedynamic   BootstrapMethod #8, apply:()Ljava/util/function/Function;
        //    86: invokevirtual   com/hypixel/hytale/assetstore/codec/AssetBuilderCodec$Builder.append:(Lcom/hypixel/hytale/codec/KeyedCodec;Ljava/util/function/BiConsumer;Ljava/util/function/Function;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //    89: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.add:()Lcom/hypixel/hytale/codec/builder/BuilderCodec$BuilderBase;
        //    92: checkcast       Lcom/hypixel/hytale/assetstore/codec/AssetBuilderCodec$Builder;
        //    95: new             Lcom/hypixel/hytale/codec/KeyedCodec;
        //    98: dup            
        //    99: ldc             "StaminaLoss"
        //   101: getstatic       com/hypixel/hytale/codec/Codec.BOOLEAN:Lcom/hypixel/hytale/codec/codecs/simple/BooleanCodec;
        //   104: invokespecial   com/hypixel/hytale/codec/KeyedCodec.<init>:(Ljava/lang/String;Lcom/hypixel/hytale/codec/Codec;)V
        //   107: invokedynamic   BootstrapMethod #9, accept:()Ljava/util/function/BiConsumer;
        //   112: invokedynamic   BootstrapMethod #10, apply:()Ljava/util/function/Function;
        //   117: invokevirtual   com/hypixel/hytale/assetstore/codec/AssetBuilderCodec$Builder.append:(Lcom/hypixel/hytale/codec/KeyedCodec;Ljava/util/function/BiConsumer;Ljava/util/function/Function;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //   120: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.add:()Lcom/hypixel/hytale/codec/builder/BuilderCodec$BuilderBase;
        //   123: checkcast       Lcom/hypixel/hytale/assetstore/codec/AssetBuilderCodec$Builder;
        //   126: new             Lcom/hypixel/hytale/codec/KeyedCodec;
        //   129: dup            
        //   130: ldc             "BypassResistances"
        //   132: getstatic       com/hypixel/hytale/codec/Codec.BOOLEAN:Lcom/hypixel/hytale/codec/codecs/simple/BooleanCodec;
        //   135: invokespecial   com/hypixel/hytale/codec/KeyedCodec.<init>:(Ljava/lang/String;Lcom/hypixel/hytale/codec/Codec;)V
        //   138: invokedynamic   BootstrapMethod #11, accept:()Ljava/util/function/BiConsumer;
        //   143: invokedynamic   BootstrapMethod #12, apply:()Ljava/util/function/Function;
        //   148: invokevirtual   com/hypixel/hytale/assetstore/codec/AssetBuilderCodec$Builder.append:(Lcom/hypixel/hytale/codec/KeyedCodec;Ljava/util/function/BiConsumer;Ljava/util/function/Function;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //   151: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.add:()Lcom/hypixel/hytale/codec/builder/BuilderCodec$BuilderBase;
        //   154: checkcast       Lcom/hypixel/hytale/assetstore/codec/AssetBuilderCodec$Builder;
        //   157: new             Lcom/hypixel/hytale/codec/KeyedCodec;
        //   160: dup            
        //   161: ldc             "DamageTextColor"
        //   163: getstatic       com/hypixel/hytale/codec/Codec.STRING:Lcom/hypixel/hytale/codec/codecs/simple/StringCodec;
        //   166: invokespecial   com/hypixel/hytale/codec/KeyedCodec.<init>:(Ljava/lang/String;Lcom/hypixel/hytale/codec/Codec;)V
        //   169: invokedynamic   BootstrapMethod #13, accept:()Ljava/util/function/BiConsumer;
        //   174: invokedynamic   BootstrapMethod #14, apply:()Ljava/util/function/Function;
        //   179: invokevirtual   com/hypixel/hytale/assetstore/codec/AssetBuilderCodec$Builder.append:(Lcom/hypixel/hytale/codec/KeyedCodec;Ljava/util/function/BiConsumer;Ljava/util/function/Function;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //   182: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.add:()Lcom/hypixel/hytale/codec/builder/BuilderCodec$BuilderBase;
        //   185: checkcast       Lcom/hypixel/hytale/assetstore/codec/AssetBuilderCodec$Builder;
        //   188: new             Lcom/hypixel/hytale/codec/KeyedCodec;
        //   191: dup            
        //   192: ldc             "AnimationId"
        //   194: getstatic       com/hypixel/hytale/codec/Codec.STRING:Lcom/hypixel/hytale/codec/codecs/simple/StringCodec;
        //   197: invokespecial   com/hypixel/hytale/codec/KeyedCodec.<init>:(Ljava/lang/String;Lcom/hypixel/hytale/codec/Codec;)V
        //   200: invokedynamic   BootstrapMethod #15, accept:()Ljava/util/function/BiConsumer;
        //   205: invokedynamic   BootstrapMethod #16, apply:()Ljava/util/function/Function;
        //   210: invokevirtual   com/hypixel/hytale/assetstore/codec/AssetBuilderCodec$Builder.append:(Lcom/hypixel/hytale/codec/KeyedCodec;Ljava/util/function/BiConsumer;Ljava/util/function/Function;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //   213: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.add:()Lcom/hypixel/hytale/codec/builder/BuilderCodec$BuilderBase;
        //   216: checkcast       Lcom/hypixel/hytale/assetstore/codec/AssetBuilderCodec$Builder;
        //   219: new             Lcom/hypixel/hytale/codec/KeyedCodec;
        //   222: dup            
        //   223: ldc             "DeathAnimationId"
        //   225: getstatic       com/hypixel/hytale/codec/Codec.STRING:Lcom/hypixel/hytale/codec/codecs/simple/StringCodec;
        //   228: invokespecial   com/hypixel/hytale/codec/KeyedCodec.<init>:(Ljava/lang/String;Lcom/hypixel/hytale/codec/Codec;)V
        //   231: invokedynamic   BootstrapMethod #17, accept:()Ljava/util/function/BiConsumer;
        //   236: invokedynamic   BootstrapMethod #18, apply:()Ljava/util/function/Function;
        //   241: invokevirtual   com/hypixel/hytale/assetstore/codec/AssetBuilderCodec$Builder.append:(Lcom/hypixel/hytale/codec/KeyedCodec;Ljava/util/function/BiConsumer;Ljava/util/function/Function;)Lcom/hypixel/hytale/codec/builder/BuilderField$FieldBuilder;
        //   244: invokevirtual   com/hypixel/hytale/codec/builder/BuilderField$FieldBuilder.add:()Lcom/hypixel/hytale/codec/builder/BuilderCodec$BuilderBase;
        //   247: checkcast       Lcom/hypixel/hytale/assetstore/codec/AssetBuilderCodec$Builder;
        //   250: invokevirtual   com/hypixel/hytale/assetstore/codec/AssetBuilderCodec$Builder.build:()Lcom/hypixel/hytale/assetstore/codec/AssetBuilderCodec;
        //   253: putstatic       com/hypixel/hytale/server/core/modules/entity/damage/DamageCause.CODEC:Lcom/hypixel/hytale/assetstore/codec/AssetBuilderCodec;
        //   256: new             Lcom/hypixel/hytale/codec/validation/ValidatorCache;
        //   259: dup            
        //   260: new             Lcom/hypixel/hytale/assetstore/AssetKeyValidator;
        //   263: dup            
        //   264: invokedynamic   BootstrapMethod #19, get:()Ljava/util/function/Supplier;
        //   269: invokespecial   com/hypixel/hytale/assetstore/AssetKeyValidator.<init>:(Ljava/util/function/Supplier;)V
        //   272: invokespecial   com/hypixel/hytale/codec/validation/ValidatorCache.<init>:(Lcom/hypixel/hytale/codec/validation/Validator;)V
        //   275: putstatic       com/hypixel/hytale/server/core/modules/entity/damage/DamageCause.VALIDATOR_CACHE:Lcom/hypixel/hytale/codec/validation/ValidatorCache;
        //   278: new             Lcom/hypixel/hytale/assetstore/codec/ContainedAssetCodec;
        //   281: dup            
        //   282: ldc             Lcom/hypixel/hytale/server/core/modules/entity/damage/DamageCause;.class
        //   284: getstatic       com/hypixel/hytale/server/core/modules/entity/damage/DamageCause.CODEC:Lcom/hypixel/hytale/assetstore/codec/AssetBuilderCodec;
        //   287: invokespecial   com/hypixel/hytale/assetstore/codec/ContainedAssetCodec.<init>:(Ljava/lang/Class;Lcom/hypixel/hytale/assetstore/codec/AssetCodec;)V
        //   290: putstatic       com/hypixel/hytale/server/core/modules/entity/damage/DamageCause.CHILD_ASSET_CODEC:Lcom/hypixel/hytale/codec/Codec;
        //   293: return         
        // 
        // The error that occurred was:
        // 
        // java.lang.UnsupportedOperationException: The requested operation is not supported.
        //     at com.strobel.util.ContractUtils.unsupported(ContractUtils.java:27)
        //     at com.strobel.assembler.metadata.TypeReference.getRawType(TypeReference.java:284)
        //     at com.strobel.assembler.metadata.TypeReference.getRawType(TypeReference.java:279)
        //     at com.strobel.assembler.metadata.TypeReference.makeGenericType(TypeReference.java:154)
        //     at com.strobel.assembler.metadata.TypeSubstitutionVisitor.visitClassType(TypeSubstitutionVisitor.java:267)
        //     at com.strobel.assembler.metadata.TypeSubstitutionVisitor.visitClassType(TypeSubstitutionVisitor.java:25)
        //     at com.strobel.assembler.metadata.TypeDefinition.accept(TypeDefinition.java:189)
        //     at com.strobel.assembler.metadata.TypeSubstitutionVisitor.visit(TypeSubstitutionVisitor.java:40)
        //     at com.strobel.assembler.metadata.TypeSubstitutionVisitor.visitMethod(TypeSubstitutionVisitor.java:324)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2586)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:790)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2689)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:782)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:778)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1510)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:790)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2689)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:790)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2689)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:782)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:778)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1510)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:790)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2689)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:790)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2689)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:782)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:778)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1510)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:790)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2689)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:790)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2689)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:782)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:778)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1510)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:790)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2689)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:790)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2689)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:782)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:778)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1510)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:790)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2689)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:782)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:778)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2483)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:782)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:778)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1510)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:782)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:778)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferCall(TypeAnalysis.java:2483)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1040)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:782)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:778)
        //     at com.strobel.decompiler.ast.TypeAnalysis.doInferTypeForExpression(TypeAnalysis.java:1083)
        //     at com.strobel.decompiler.ast.TypeAnalysis.inferTypeForExpression(TypeAnalysis.java:815)
        //     at com.strobel.decompiler.ast.TypeAnalysis.runInference(TypeAnalysis.java:684)
        //     at com.strobel.decompiler.ast.TypeAnalysis.runInference(TypeAnalysis.java:667)
        //     at com.strobel.decompiler.ast.TypeAnalysis.runInference(TypeAnalysis.java:373)
        //     at com.strobel.decompiler.ast.TypeAnalysis.run(TypeAnalysis.java:95)
        //     at com.strobel.decompiler.ast.AstOptimizer.optimize(AstOptimizer.java:344)
        //     at com.strobel.decompiler.ast.AstOptimizer.optimize(AstOptimizer.java:42)
        //     at com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:206)
        //     at com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:93)
        //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createMethodBody(AstBuilder.java:868)
        //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createMethod(AstBuilder.java:761)
        //     at com.strobel.decompiler.languages.java.ast.AstBuilder.addTypeMembers(AstBuilder.java:638)
        //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeCore(AstBuilder.java:605)
        //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeNoCache(AstBuilder.java:195)
        //     at com.strobel.decompiler.languages.java.ast.AstBuilder.createType(AstBuilder.java:162)
        //     at com.strobel.decompiler.languages.java.ast.AstBuilder.addType(AstBuilder.java:137)
        //     at com.strobel.decompiler.languages.java.JavaLanguage.buildAst(JavaLanguage.java:71)
        //     at com.strobel.decompiler.languages.java.JavaLanguage.decompileType(JavaLanguage.java:59)
        //     at com.strobel.decompiler.DecompilerDriver.decompileType(DecompilerDriver.java:333)
        //     at com.strobel.decompiler.DecompilerDriver.decompileJar(DecompilerDriver.java:254)
        //     at com.strobel.decompiler.DecompilerDriver.main(DecompilerDriver.java:129)
        // 
        throw new IllegalStateException("An error occurred while decompiling this method.");
    }
}
