# compiler: R8
# compiler_version: 1.5.13-q1
# compiler_hash: engineering
# pg_map_id: 84419ca
com.android.tools.r8.ApiLevelException -> com.android.tools.r8.ApiLevelException:
    1:1:void <clinit>():10:10 -> <clinit>
    1:8:java.lang.String makeMessage(com.android.tools.r8.utils.AndroidApiLevel,java.lang.String,java.lang.String):21:28 -> <init>
    1:8:void <init>(com.android.tools.r8.utils.AndroidApiLevel,java.lang.String,java.lang.String):14 -> <init>
    9:11:void <init>(com.android.tools.r8.utils.AndroidApiLevel,java.lang.String,java.lang.String):14:16 -> <init>
com.android.tools.r8.ArchiveClassFileProvider -> com.android.tools.r8.ArchiveClassFileProvider:
    com.android.tools.r8.origin.Origin origin -> a
    java.util.zip.ZipFile zipFile -> b
    java.util.Set descriptors -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():38:38 -> <clinit>
    1:1:void <init>(java.nio.file.Path):50:50 -> <init>
    2:2:void <init>(java.nio.file.Path,java.util.function.Predicate):59:59 -> <init>
    3:37:void <init>(java.nio.file.Path,java.util.function.Predicate):42:76 -> <init>
    38:41:void <init>(java.nio.file.Path,java.util.function.Predicate):65:68 -> <init>
    boolean lambda$new$0(java.lang.String) -> a
    1:1:void close():111:111 -> close
    1:2:void finalize():105:106 -> finalize
    1:1:java.util.Set getClassDescriptors():83:83 -> getClassDescriptors
    1:1:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):88:88 -> getProgramResource
    2:2:java.util.zip.ZipEntry getZipEntryFromDescriptor(java.lang.String):115:115 -> getProgramResource
    2:2:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):91 -> getProgramResource
    3:8:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):92:97 -> getProgramResource
    9:14:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):93:98 -> getProgramResource
    15:22:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):92:99 -> getProgramResource
com.android.tools.r8.ArchiveProgramResourceProvider -> com.android.tools.r8.ArchiveProgramResourceProvider:
    com.android.tools.r8.origin.Origin origin -> a
    java.util.function.Predicate include -> c
    com.android.tools.r8.ArchiveProgramResourceProvider$ZipFileSupplier supplier -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():29:29 -> <clinit>
    1:7:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.ArchiveProgramResourceProvider$ZipFileSupplier,java.util.function.Predicate):81:87 -> <init>
    1:1:java.util.zip.ZipFile lambda$fromArchive$0(java.nio.file.Path):65:65 -> a
    2:2:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):99:99 -> a
    3:8:void lambda$getProgramResources$1(java.util.List,java.util.List,com.android.tools.r8.origin.ArchiveEntryOrigin,java.io.InputStream):111:116 -> a
    9:9:void lambda$getProgramResources$1(java.util.List,java.util.List,com.android.tools.r8.origin.ArchiveEntryOrigin,java.io.InputStream):115:115 -> a
    10:20:void lambda$getProgramResources$1(java.util.List,java.util.List,com.android.tools.r8.origin.ArchiveEntryOrigin,java.io.InputStream):114:124 -> a
    21:21:void lambda$getProgramResources$1(java.util.List,java.util.List,com.android.tools.r8.origin.ArchiveEntryOrigin,java.io.InputStream):120:120 -> a
    22:22:void lambda$getProgramResources$1(java.util.List,java.util.List,com.android.tools.r8.origin.ArchiveEntryOrigin,java.io.InputStream):119:119 -> a
    1:1:com.android.tools.r8.ArchiveProgramResourceProvider fromArchive(java.nio.file.Path):58:58 -> fromArchive
    2:2:com.android.tools.r8.ArchiveProgramResourceProvider fromArchive(java.nio.file.Path,java.util.function.Predicate):63:63 -> fromArchive
    1:1:com.android.tools.r8.ArchiveProgramResourceProvider fromSupplier(com.android.tools.r8.origin.Origin,com.android.tools.r8.ArchiveProgramResourceProvider$ZipFileSupplier):71:71 -> fromSupplier
    2:2:com.android.tools.r8.ArchiveProgramResourceProvider fromSupplier(com.android.tools.r8.origin.Origin,com.android.tools.r8.ArchiveProgramResourceProvider$ZipFileSupplier,java.util.function.Predicate):77:77 -> fromSupplier
    1:23:java.util.Collection getProgramResources():107:129 -> getProgramResources
    24:24:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):29:29 -> getProgramResources
    24:24:java.util.Collection getProgramResources():129 -> getProgramResources
    25:32:java.util.Collection getProgramResources():129:136 -> getProgramResources
    1:1:boolean includeClassFileEntries(java.lang.String):42:42 -> includeClassFileEntries
    1:1:boolean includeClassFileOrDexEntries(java.lang.String):50:50 -> includeClassFileOrDexEntries
    2:3:boolean com.android.tools.r8.utils.ZipUtils.isDexFile(java.lang.String):99:100 -> includeClassFileOrDexEntries
    2:3:boolean includeClassFileOrDexEntries(java.lang.String):50 -> includeClassFileOrDexEntries
    1:2:boolean com.android.tools.r8.utils.ZipUtils.isDexFile(java.lang.String):99:100 -> includeDexEntries
    1:2:boolean includeDexEntries(java.lang.String):46 -> includeDexEntries
    1:7:void readArchive(com.android.tools.r8.ArchiveProgramResourceProvider$ArchiveEntryConsumer):91:97 -> readArchive
    8:12:void readArchive(com.android.tools.r8.ArchiveProgramResourceProvider$ArchiveEntryConsumer):95:99 -> readArchive
    13:22:void readArchive(com.android.tools.r8.ArchiveProgramResourceProvider$ArchiveEntryConsumer):91:100 -> readArchive
com.android.tools.r8.BaseCommand -> com.android.tools.r8.BaseCommand:
    com.android.tools.r8.utils.AndroidApp app -> c
    boolean printHelp -> a
    boolean printVersion -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():30:30 -> <clinit>
    1:5:void <init>(boolean,boolean):38:42 -> <init>
    6:11:void <init>(com.android.tools.r8.utils.AndroidApp):45:50 -> <init>
    1:1:com.android.tools.r8.utils.AndroidApp getInputApp():63:63 -> getInputApp
    1:1:boolean isPrintHelp():54:54 -> isPrintHelp
    1:1:boolean isPrintVersion():58:58 -> isPrintVersion
com.android.tools.r8.BaseCommand$Builder -> com.android.tools.r8.BaseCommand$Builder:
    java.util.List programFiles -> e
    com.android.tools.r8.utils.AndroidApp$Builder app -> d
    com.android.tools.r8.utils.Reporter reporter -> a
    boolean printHelp -> b
    boolean printVersion -> c
    1:1:void <init>():115:115 -> <init>
    2:2:void <init>(com.android.tools.r8.DiagnosticsHandler):119:119 -> <init>
    3:3:void <init>(com.android.tools.r8.utils.AndroidApp$Builder):122:122 -> <init>
    4:20:void <init>(com.android.tools.r8.utils.AndroidApp$Builder):108:124 -> <init>
    com.android.tools.r8.BaseCommand makeCommand() -> a
    1:1:void lambda$addLibraryResourceProvider$2(com.android.tools.r8.ClassFileResourceProvider):190:190 -> a
    2:2:void lambda$addLibraryFiles$4(java.util.Collection):204:204 -> a
    3:5:void lambda$addLibraryFiles$3(java.nio.file.Path):207:209 -> a
    6:6:void lambda$addClassProgramData$5(byte[],com.android.tools.r8.origin.Origin):218:218 -> a
    7:10:void lambda$addMainDexListFiles$7(java.nio.file.Path[]):240:243 -> a
    11:11:void lambda$addMainDexListFiles$7(java.nio.file.Path[]):242:242 -> a
    12:12:void lambda$addMainDexClasses$9(java.lang.String[]):275:275 -> a
    13:13:void setIgnoreDexInArchive(boolean):330:330 -> a
    14:14:void error(com.android.tools.r8.origin.Origin,java.lang.Throwable):338:338 -> a
    15:17:void guard(java.lang.Runnable):344:346 -> a
    1:2:com.android.tools.r8.BaseCommand$Builder addClassProgramData(byte[],com.android.tools.r8.origin.Origin):218:219 -> addClassProgramData
    1:2:com.android.tools.r8.BaseCommand$Builder addDexProgramData(byte[],com.android.tools.r8.origin.Origin):224:225 -> addDexProgramData
    1:2:com.android.tools.r8.BaseCommand$Builder addLibraryFiles(java.nio.file.Path[]):196:197 -> addLibraryFiles
    3:14:com.android.tools.r8.BaseCommand$Builder addLibraryFiles(java.util.Collection):202:213 -> addLibraryFiles
    1:2:com.android.tools.r8.BaseCommand$Builder addLibraryResourceProvider(com.android.tools.r8.ClassFileResourceProvider):190:191 -> addLibraryResourceProvider
    1:2:com.android.tools.r8.BaseCommand$Builder addMainDexClasses(java.lang.String[]):275:276 -> addMainDexClasses
    3:4:com.android.tools.r8.BaseCommand$Builder addMainDexClasses(java.util.Collection):288:289 -> addMainDexClasses
    1:9:com.android.tools.r8.BaseCommand$Builder addMainDexListFiles(java.nio.file.Path[]):238:246 -> addMainDexListFiles
    10:18:com.android.tools.r8.BaseCommand$Builder addMainDexListFiles(java.util.Collection):255:263 -> addMainDexListFiles
    1:2:com.android.tools.r8.BaseCommand$Builder addProgramFiles(java.nio.file.Path[]):157:158 -> addProgramFiles
    3:15:com.android.tools.r8.BaseCommand$Builder addProgramFiles(java.util.Collection):167:179 -> addProgramFiles
    1:2:com.android.tools.r8.BaseCommand$Builder addProgramResourceProvider(com.android.tools.r8.ProgramResourceProvider):184:185 -> addProgramResourceProvider
    com.android.tools.r8.BaseCommand$Builder self() -> b
    1:4:void lambda$addProgramFiles$0(java.nio.file.Path):172:175 -> b
    5:5:void lambda$addDexProgramData$6(byte[],com.android.tools.r8.origin.Origin):224:224 -> b
    6:6:void lambda$addMainDexClasses$10(java.util.Collection):288:288 -> b
    7:7:void lambda$setIgnoreDexInArchive$11(boolean):330:330 -> b
    1:6:com.android.tools.r8.BaseCommand build():138:143 -> build
    void validate() -> c
    1:4:void lambda$addMainDexListFiles$8(java.util.Collection):257:260 -> c
    5:5:void lambda$addMainDexListFiles$8(java.util.Collection):259:259 -> c
    1:1:void lambda$addProgramFiles$1(java.util.Collection):169:169 -> d
    1:1:void error(com.android.tools.r8.Diagnostic):316:316 -> error
    1:1:java.lang.RuntimeException fatalError(com.android.tools.r8.Diagnostic):325:325 -> fatalError
    1:1:com.android.tools.r8.utils.AndroidApp$Builder getAppBuilder():152:152 -> getAppBuilder
    1:1:com.android.tools.r8.utils.Reporter getReporter():162:162 -> getReporter
    1:1:boolean isPrintHelp():294:294 -> isPrintHelp
    1:1:boolean isPrintVersion():305:305 -> isPrintVersion
    1:2:com.android.tools.r8.BaseCommand$Builder setPrintHelp(boolean):299:300 -> setPrintHelp
    1:2:com.android.tools.r8.BaseCommand$Builder setPrintVersion(boolean):310:311 -> setPrintVersion
com.android.tools.r8.BaseCommand$InputFileOrigin -> com.android.tools.r8.BaseCommand$a:
    java.lang.String inputType -> g
    1:2:void <init>(java.lang.String,java.nio.file.Path):73:74 -> <init>
    1:1:java.lang.String part():79:79 -> part
com.android.tools.r8.BaseCommand$LibraryInputOrigin -> com.android.tools.r8.BaseCommand$b:
    1:1:void <init>(java.nio.file.Path):93:93 -> <init>
com.android.tools.r8.BaseCommand$ProgramInputOrigin -> com.android.tools.r8.BaseCommand$c:
    1:1:void <init>(java.nio.file.Path):86:86 -> <init>
com.android.tools.r8.BaseCompilerCommand -> com.android.tools.r8.BaseCompilerCommand:
    com.android.tools.r8.utils.Reporter reporter -> i
    boolean enableDesugaring -> j
    int minApiLevel -> h
    boolean optimizeMultidexForLinearAlloc -> k
    boolean $assertionsDisabled -> l
    com.android.tools.r8.StringConsumer mainDexListConsumer -> g
    com.android.tools.r8.ProgramConsumer programConsumer -> f
    com.android.tools.r8.CompilationMode mode -> e
    1:1:void <clinit>():23:23 -> <clinit>
    1:8:void <init>(boolean,boolean):35:42 -> <init>
    9:18:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.CompilationMode,com.android.tools.r8.ProgramConsumer,com.android.tools.r8.StringConsumer,int,com.android.tools.r8.utils.Reporter,boolean,boolean):54:63 -> <init>
    1:1:com.android.tools.r8.utils.Reporter getReporter():109:109 -> a
    1:1:boolean getEnableDesugaring():97:97 -> getEnableDesugaring
    1:1:com.android.tools.r8.StringConsumer getMainDexListConsumer():92:92 -> getMainDexListConsumer
    1:1:int getMinApiLevel():76:76 -> getMinApiLevel
    1:1:com.android.tools.r8.CompilationMode getMode():71:71 -> getMode
    1:1:com.android.tools.r8.ProgramConsumer getProgramConsumer():85:85 -> getProgramConsumer
    1:1:boolean isOptimizeMultidexForLinearAlloc():105:105 -> isOptimizeMultidexForLinearAlloc
com.android.tools.r8.BaseCompilerCommand$Builder -> com.android.tools.r8.BaseCompilerCommand$Builder:
    boolean optimizeMultidexForLinearAlloc -> m
    boolean $assertionsDisabled -> n
    java.nio.file.Path outputPath -> h
    int minApiLevel -> k
    com.android.tools.r8.CompilationMode mode -> j
    boolean disableDesugaring -> l
    com.android.tools.r8.StringConsumer mainDexListConsumer -> g
    com.android.tools.r8.ProgramConsumer programConsumer -> f
    com.android.tools.r8.OutputMode outputMode -> i
    1:1:void <clinit>():118:118 -> <clinit>
    1:1:void com.android.tools.r8.BaseCommand$Builder.<init>(com.android.tools.r8.DiagnosticsHandler):119:119 -> <init>
    1:1:void <init>(com.android.tools.r8.DiagnosticsHandler):140 -> <init>
    2:21:void <init>(com.android.tools.r8.DiagnosticsHandler):122:141 -> <init>
    22:22:void <init>(com.android.tools.r8.utils.AndroidApp):146:146 -> <init>
    23:48:void <init>(com.android.tools.r8.utils.AndroidApp):122:147 -> <init>
    49:49:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler):152:152 -> <init>
    50:81:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler):122:153 -> <init>
    1:3:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):300:302 -> a
    4:4:void com.android.tools.r8.DexIndexedConsumer$ArchiveConsumer.<init>(java.nio.file.Path,boolean):133:133 -> a
    4:4:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):302 -> a
    5:5:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):303:303 -> a
    6:6:void com.android.tools.r8.DexIndexedConsumer$DirectoryConsumer.<init>(java.nio.file.Path,boolean):223:223 -> a
    6:6:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):303 -> a
    7:26:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):305:324 -> a
    27:27:void com.android.tools.r8.DexFilePerClassFileConsumer$ArchiveConsumer.<init>(java.nio.file.Path,boolean):156:156 -> a
    27:27:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):324 -> a
    28:32:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):325:329 -> a
    33:33:void com.android.tools.r8.ClassFileConsumer$ArchiveConsumer.<init>(java.nio.file.Path,boolean):100:100 -> a
    33:33:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):329 -> a
    34:34:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):330:330 -> a
    35:35:void com.android.tools.r8.ClassFileConsumer$DirectoryConsumer.<init>(java.nio.file.Path,boolean):189:189 -> a
    35:35:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):330 -> a
    36:36:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):332:332 -> a
    1:29:void validate():383:411 -> c
    com.android.tools.r8.CompilationMode defaultCompilationMode() -> d
    1:1:boolean isMinApiLevelSet():341:341 -> e
    1:1:boolean isOptimizeMultidexForLinearAlloc():225:225 -> f
    1:1:boolean getDisableDesugaring():378:378 -> getDisableDesugaring
    1:1:com.android.tools.r8.StringConsumer getMainDexListConsumer():207:207 -> getMainDexListConsumer
    1:1:int getMinApiLevel():337:337 -> getMinApiLevel
    2:2:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getDefault():59:59 -> getMinApiLevel
    2:2:int getMinApiLevel():337 -> getMinApiLevel
    3:3:int getMinApiLevel():337:337 -> getMinApiLevel
    1:1:com.android.tools.r8.CompilationMode getMode():160:160 -> getMode
    1:1:com.android.tools.r8.OutputMode getOutputMode():189:189 -> getOutputMode
    1:1:java.nio.file.Path getOutputPath():179:179 -> getOutputPath
    1:1:com.android.tools.r8.ProgramConsumer getProgramConsumer():200:200 -> getProgramConsumer
    1:2:com.android.tools.r8.BaseCompilerCommand$Builder setDisableDesugaring(boolean):372:373 -> setDisableDesugaring
    1:2:com.android.tools.r8.BaseCompilerCommand$Builder setEnableDesugaring(boolean):356:357 -> setEnableDesugaring
    1:2:com.android.tools.r8.BaseCompilerCommand$Builder setMainDexListConsumer(com.android.tools.r8.StringConsumer):268:269 -> setMainDexListConsumer
    1:1:com.android.tools.r8.BaseCompilerCommand$Builder setMainDexListOutputPath(java.nio.file.Path):255:255 -> setMainDexListOutputPath
    2:2:void com.android.tools.r8.StringConsumer$FileConsumer.<init>(java.nio.file.Path):76:76 -> setMainDexListOutputPath
    2:2:com.android.tools.r8.BaseCompilerCommand$Builder setMainDexListOutputPath(java.nio.file.Path):255 -> setMainDexListOutputPath
    3:4:com.android.tools.r8.BaseCompilerCommand$Builder setMainDexListOutputPath(java.nio.file.Path):255:256 -> setMainDexListOutputPath
    1:5:com.android.tools.r8.BaseCompilerCommand$Builder setMinApiLevel(int):347:351 -> setMinApiLevel
    1:3:com.android.tools.r8.BaseCompilerCommand$Builder setMode(com.android.tools.r8.CompilationMode):167:169 -> setMode
    1:2:com.android.tools.r8.BaseCompilerCommand$Builder setOptimizeMultidexForLinearAlloc(boolean):216:217 -> setOptimizeMultidexForLinearAlloc
    1:1:com.android.tools.r8.BaseCompilerCommand$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode):283:283 -> setOutput
    2:7:com.android.tools.r8.BaseCompilerCommand$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):288:293 -> setOutput
    1:4:com.android.tools.r8.BaseCompilerCommand$Builder setProgramConsumer(com.android.tools.r8.ProgramConsumer):239:242 -> setProgramConsumer
com.android.tools.r8.BaseCompilerCommand$Builder$1 -> com.android.tools.r8.a:
    1:1:void com.android.tools.r8.DexFilePerClassFileConsumer$ArchiveConsumer.<init>(java.nio.file.Path,boolean):156:156 -> <init>
    1:1:void <init>(com.android.tools.r8.BaseCompilerCommand$Builder,java.nio.file.Path,boolean):307 -> <init>
com.android.tools.r8.BaseCompilerCommand$Builder$2 -> com.android.tools.r8.b:
    1:1:void <init>(com.android.tools.r8.BaseCompilerCommand$Builder,java.nio.file.Path,boolean):314:314 -> <init>
com.android.tools.r8.BaseCompilerCommandParser -> com.android.tools.r8.c:
    1:1:void <init>():9:9 -> <init>
    1:10:void parseMinApi(com.android.tools.r8.BaseCompilerCommand$Builder,java.lang.String,com.android.tools.r8.origin.Origin):14:23 -> a
    11:11:void parseMinApi(com.android.tools.r8.BaseCompilerCommand$Builder,java.lang.String,com.android.tools.r8.origin.Origin):16:16 -> a
com.android.tools.r8.ByteBufferProvider -> com.android.tools.r8.ByteBufferProvider:
    1:1:java.nio.ByteBuffer acquireByteBuffer(int):24:24 -> acquireByteBuffer
com.android.tools.r8.ByteDataView -> com.android.tools.r8.ByteDataView:
    byte[] buffer -> a
    int offset -> b
    int length -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():9:9 -> <clinit>
    1:7:void <init>(byte[],int,int):25:31 -> <init>
    1:1:byte[] copyByteData():58:58 -> copyByteData
    1:2:byte[] getBuffer():36:37 -> getBuffer
    1:2:int getLength():52:53 -> getLength
    1:2:int getOffset():42:43 -> getOffset
    1:1:void invalidate():62:62 -> invalidate
    1:1:com.android.tools.r8.ByteDataView of(byte[]):17:17 -> of
com.android.tools.r8.ClassFileConsumer -> com.android.tools.r8.ClassFileConsumer:
    1:1:com.android.tools.r8.ClassFileConsumer emptyConsumer():53:53 -> emptyConsumer
com.android.tools.r8.ClassFileConsumer$ArchiveConsumer -> com.android.tools.r8.ClassFileConsumer$ArchiveConsumer:
    boolean $assertionsDisabled -> e
    com.android.tools.r8.utils.OutputBuilder outputBuilder -> c
    boolean consumeDataResources -> d
    1:1:void <clinit>():89:89 -> <clinit>
    1:1:void <init>(java.nio.file.Path):96:96 -> <init>
    2:2:void <init>(java.nio.file.Path,boolean):100:100 -> <init>
    3:3:void <init>(java.nio.file.Path,com.android.tools.r8.ClassFileConsumer):104:104 -> <init>
    4:9:void <init>(java.nio.file.Path,com.android.tools.r8.ClassFileConsumer,boolean):108:113 -> <init>
    1:1:java.lang.String access$100(java.lang.String):90:90 -> a
    2:2:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):174:174 -> a
    1:2:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):124:125 -> accept
    3:3:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):130:130 -> accept
    4:4:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):135:135 -> accept
    1:2:java.lang.String getClassFileName(java.lang.String):150:151 -> b
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):140:141 -> finished
    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():119:119 -> getDataResourceConsumer
    1:1:java.nio.file.Path internalGetOutputPath():146:146 -> internalGetOutputPath
    1:18:void writeResources(java.nio.file.Path,java.util.List,java.util.Set):157:174 -> writeResources
    19:32:void writeResources(java.nio.file.Path,java.util.List,java.util.Set):160:173 -> writeResources
    33:48:void writeResources(java.nio.file.Path,java.util.List,java.util.Set):159:174 -> writeResources
com.android.tools.r8.ClassFileConsumer$DirectoryConsumer -> com.android.tools.r8.ClassFileConsumer$DirectoryConsumer:
    com.android.tools.r8.utils.OutputBuilder outputBuilder -> c
    boolean consumeDataResouces -> d
    1:1:void <init>(java.nio.file.Path):185:185 -> <init>
    2:2:void <init>(java.nio.file.Path,boolean):189:189 -> <init>
    3:3:void <init>(java.nio.file.Path,com.android.tools.r8.ClassFileConsumer):193:193 -> <init>
    4:6:void <init>(java.nio.file.Path,com.android.tools.r8.ClassFileConsumer,boolean):198:200 -> <init>
    1:2:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):210:211 -> accept
    3:3:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):216:216 -> accept
    4:4:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):221:221 -> accept
    1:1:void finished(com.android.tools.r8.DiagnosticsHandler):226:226 -> finished
    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():205:205 -> getDataResourceConsumer
    1:1:java.nio.file.Path internalGetOutputPath():231:231 -> internalGetOutputPath
com.android.tools.r8.ClassFileConsumer$ForwardingConsumer -> com.android.tools.r8.ClassFileConsumer$ForwardingConsumer:
    com.android.tools.r8.ClassFileConsumer EMPTY_CONSUMER -> b
    com.android.tools.r8.ClassFileConsumer consumer -> a
    1:1:void <clinit>():60:60 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ClassFileConsumer):64:65 -> <init>
    1:1:com.android.tools.r8.ClassFileConsumer access$000():58:58 -> a
    1:2:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):75:76 -> accept
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):82:83 -> finished
    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():70:70 -> getDataResourceConsumer
com.android.tools.r8.CompatDxHelper -> com.android.tools.r8.d:
    1:12:void run(com.android.tools.r8.D8Command,java.lang.Boolean):13:24 -> a
    13:13:void ignoreDexInArchive(com.android.tools.r8.BaseCommand$Builder):28:28 -> a
com.android.tools.r8.CompatProguardCommandBuilder -> com.android.tools.r8.CompatProguardCommandBuilder:
    1:1:void <init>():13:13 -> <init>
    2:6:void <init>(boolean,com.android.tools.r8.DiagnosticsHandler):18:22 -> <init>
    7:7:void <init>(boolean):26:26 -> <init>
    8:8:void com.android.tools.r8.R8Command$Builder.<init>():100:100 -> <init>
    8:8:void <init>(boolean,boolean):30 -> <init>
    9:12:void <init>(boolean,boolean):32:35 -> <init>
    1:1:void setProguardCompatibilityRulesOutput(java.nio.file.Path):39:39 -> setProguardCompatibilityRulesOutput
com.android.tools.r8.CompilationFailedException -> com.android.tools.r8.CompilationFailedException:
    1:1:void <init>():14:14 -> <init>
    2:2:void <init>(java.lang.Throwable):18:18 -> <init>
    3:3:void <init>(java.lang.String):22:22 -> <init>
com.android.tools.r8.CompilationMode -> com.android.tools.r8.CompilationMode:
    com.android.tools.r8.CompilationMode[] $VALUES -> a
    1:3:void <clinit>():10:12 -> <clinit>
    4:4:void <clinit>():7:7 -> <clinit>
    1:1:void <init>(java.lang.String,int):8:8 -> <init>
    1:1:com.android.tools.r8.CompilationMode valueOf(java.lang.String):7:7 -> valueOf
    1:1:com.android.tools.r8.CompilationMode[] values():7:7 -> values
com.android.tools.r8.D8 -> com.android.tools.r8.D8:
    1:3:void lambda$run$0(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):77:79 -> a
    4:15:void run(java.lang.String[]):102:113 -> a
    4:15:void lambda$main$2(java.lang.String[]):126 -> a
    16:27:com.android.tools.r8.dex.Marker getMarker(com.android.tools.r8.utils.InternalOptions):145:156 -> a
    28:28:void lambda$run$4(java.lang.String):187:187 -> a
    29:31:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):235:237 -> a
    32:32:void com.android.tools.r8.ir.conversion.IRConverter.<init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,com.android.tools.r8.utils.CfgPrinter):260:260 -> a
    32:32:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):237 -> a
    33:43:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):238:248 -> a
    44:48:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):244:248 -> a
    49:49:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,java.util.concurrent.ExecutorService):242:242 -> a
    1:1:void lambda$run$1(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):97:97 -> b
    1:3:void lambda$runForTesting$3(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):136:138 -> c
    1:50:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):163:212 -> d
    51:51:void com.android.tools.r8.dex.ApplicationWriter.<init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,java.util.List,java.lang.String,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,java.lang.String,com.android.tools.r8.naming.ProguardMapSupplier):141:141 -> d
    51:51:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):212 -> d
    52:60:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):215:223 -> d
    61:66:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):218:223 -> d
    1:5:void main(java.lang.String[]):122:126 -> main
    1:5:void run(com.android.tools.r8.D8Command):70:74 -> run
    6:6:void com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):43:43 -> run
    6:6:void run(com.android.tools.r8.D8Command):73 -> run
    7:10:void run(com.android.tools.r8.D8Command,java.util.concurrent.ExecutorService):92:95 -> run
    11:11:void com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):43:43 -> run
    11:11:void run(com.android.tools.r8.D8Command,java.util.concurrent.ExecutorService):94 -> run
    1:1:java.util.concurrent.ExecutorService com.android.tools.r8.utils.ThreadUtils.getExecutorService(com.android.tools.r8.utils.InternalOptions):53:53 -> runForTesting
    1:1:void runForTesting(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):131 -> runForTesting
    2:2:void runForTesting(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):132:132 -> runForTesting
    3:3:void com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):43:43 -> runForTesting
    3:3:void runForTesting(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):132 -> runForTesting
com.android.tools.r8.D8Command -> com.android.tools.r8.D8Command:
    boolean intermediate -> m
    boolean $assertionsDisabled -> o
    java.lang.String USAGE_MESSAGE -> n
    1:147:void <clinit>():31:177 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.CompilationMode,com.android.tools.r8.ProgramConsumer,com.android.tools.r8.StringConsumer,int,com.android.tools.r8.utils.Reporter,boolean,boolean,boolean):231:231 -> <init>
    1:1:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.CompilationMode,com.android.tools.r8.ProgramConsumer,com.android.tools.r8.StringConsumer,int,com.android.tools.r8.utils.Reporter,boolean,boolean,boolean,com.android.tools.r8.D8Command$1):32 -> <init>
    2:63:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.CompilationMode,com.android.tools.r8.ProgramConsumer,com.android.tools.r8.StringConsumer,int,com.android.tools.r8.utils.Reporter,boolean,boolean,boolean):179:240 -> <init>
    2:63:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.CompilationMode,com.android.tools.r8.ProgramConsumer,com.android.tools.r8.StringConsumer,int,com.android.tools.r8.utils.Reporter,boolean,boolean,boolean,com.android.tools.r8.D8Command$1):32 -> <init>
    64:64:void <init>(boolean,boolean):244:244 -> <init>
    64:64:void <init>(boolean,boolean,com.android.tools.r8.D8Command$1):32 -> <init>
    65:65:void <init>(boolean,boolean):179:179 -> <init>
    65:65:void <init>(boolean,boolean,com.android.tools.r8.D8Command$1):32 -> <init>
    1:1:com.android.tools.r8.D8Command$Builder builder():182:182 -> builder
    2:2:com.android.tools.r8.D8Command$Builder builder(com.android.tools.r8.DiagnosticsHandler):186:186 -> builder
    3:3:com.android.tools.r8.D8Command$Builder builder(com.android.tools.r8.utils.AndroidApp):191:191 -> builder
    1:37:com.android.tools.r8.utils.InternalOptions getInternalOptions():249:285 -> getInternalOptions
    1:1:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin):204:204 -> parse
    2:2:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.DiagnosticsHandler):218:218 -> parse
com.android.tools.r8.D8Command$1 -> com.android.tools.r8.e:
com.android.tools.r8.D8Command$Builder -> com.android.tools.r8.D8Command$Builder:
    boolean intermediate -> o
    1:1:void <init>():69:69 -> <init>
    1:1:void <init>(com.android.tools.r8.D8Command$1):64 -> <init>
    2:2:void <init>(com.android.tools.r8.DiagnosticsHandler):73:73 -> <init>
    3:3:void <init>(com.android.tools.r8.DiagnosticsHandler):66:66 -> <init>
    10:10:void <init>(com.android.tools.r8.DiagnosticsHandler):73:73 -> <init>
    10:10:void <init>(com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.D8Command$1):64 -> <init>
    11:11:void <init>(com.android.tools.r8.DiagnosticsHandler):66:66 -> <init>
    11:11:void <init>(com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.D8Command$1):64 -> <init>
    12:12:void <init>(com.android.tools.r8.utils.AndroidApp):77:77 -> <init>
    12:12:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.D8Command$1):64 -> <init>
    13:13:void <init>(com.android.tools.r8.utils.AndroidApp):66:66 -> <init>
    13:13:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.D8Command$1):64 -> <init>
    1:1:com.android.tools.r8.BaseCommand makeCommand():63:63 -> a
    2:17:com.android.tools.r8.D8Command makeCommand():158:173 -> a
    18:18:com.android.tools.r8.D8Command makeCommand():159:159 -> a
    1:2:com.android.tools.r8.D8Command$Builder addClasspathFiles(java.nio.file.Path[]):89:90 -> addClasspathFiles
    3:4:com.android.tools.r8.D8Command$Builder addClasspathFiles(java.util.Collection):95:96 -> addClasspathFiles
    1:2:com.android.tools.r8.D8Command$Builder addClasspathResourceProvider(com.android.tools.r8.ClassFileResourceProvider):105:106 -> addClasspathResourceProvider
    1:1:com.android.tools.r8.BaseCommand$Builder addDexProgramData(byte[],com.android.tools.r8.origin.Origin):63:63 -> addDexProgramData
    2:3:com.android.tools.r8.D8Command$Builder addDexProgramData(byte[],com.android.tools.r8.origin.Origin):83:84 -> addDexProgramData
    com.android.tools.r8.D8Command$Builder self() -> b
    1:1:com.android.tools.r8.BaseCommand$Builder self():63:63 -> b
    2:2:void lambda$addClasspathFiles$1(java.nio.file.Path[]):89:89 -> b
    3:3:void lambda$addClasspathResourceProvider$4(com.android.tools.r8.ClassFileResourceProvider):105:105 -> b
    1:1:void lambda$addDexProgramData$0(byte[],com.android.tools.r8.origin.Origin):83:83 -> c
    2:2:void addClasspathFile(java.nio.file.Path):100:100 -> c
    3:21:void validate():131:149 -> c
    22:28:void validate():147:153 -> c
    1:1:void lambda$addClasspathFile$3(java.nio.file.Path):100:100 -> d
    2:2:com.android.tools.r8.CompilationMode defaultCompilationMode():126:126 -> d
    1:1:void lambda$addClasspathFiles$2(java.util.Collection):95:95 -> e
    1:2:com.android.tools.r8.D8Command$Builder setIntermediate(boolean):115:116 -> setIntermediate
com.android.tools.r8.D8Command$DefaultD8DiagnosticsHandler -> com.android.tools.r8.D8Command$a:
    1:1:void <init>():41:41 -> <init>
    1:1:void <init>(com.android.tools.r8.D8Command$1):41 -> <init>
    1:6:void error(com.android.tools.r8.Diagnostic):45:50 -> error
    7:13:void error(com.android.tools.r8.Diagnostic):48:54 -> error
com.android.tools.r8.D8CommandParser -> com.android.tools.r8.D8CommandParser:
    java.util.Set OPTIONS_WITH_PARAMETER -> a
    java.lang.String USAGE_MESSAGE -> b
    1:82:void <clinit>():26:107 -> <clinit>
    83:83:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getDefault():59:59 -> <clinit>
    83:83:void <clinit>():121 -> <clinit>
    84:84:void <clinit>():121:121 -> <clinit>
    85:85:void <clinit>():110:110 -> <clinit>
    86:86:void <clinit>():108:108 -> <clinit>
    1:1:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin):143:143 -> a
    2:2:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.DiagnosticsHandler):157:157 -> a
    3:43:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):166:206 -> a
    44:56:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):204:216 -> a
    57:60:boolean isArchive(java.nio.file.Path):40:43 -> a
    57:60:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):219 -> a
    61:64:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):220:223 -> a
    65:68:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):222:225 -> a
    69:120:com.android.tools.r8.D8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.D8Command$Builder):217:268 -> a
com.android.tools.r8.D8CommandParser$1 -> com.android.tools.r8.f:
com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider -> com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider:
    java.util.Set descriptors -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.D8CommandParser$1):46:46 -> <init>
    2:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList):70:70 -> <init>
    3:8:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList):68:73 -> <init>
    1:1:void lambda$new$0(com.android.tools.r8.ClassFileResourceProvider):73:73 -> a
    1:1:com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider$Builder builder():77:77 -> builder
    1:1:java.util.Set getClassDescriptors():82:82 -> getClassDescriptors
    1:3:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):89:91 -> getProgramResource
com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider$Builder -> com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider$Builder:
    boolean empty -> b
    com.android.tools.r8.com.google.common.collect.ImmutableList$Builder builder -> a
    1:4:void <init>():47:50 -> <init>
    1:1:boolean isEmpty():63:63 -> a
    1:2:com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider$Builder addClassFileResourceProvider(com.android.tools.r8.ClassFileResourceProvider):57:58 -> addClassFileResourceProvider
    1:1:com.android.tools.r8.D8CommandParser$OrderedClassFileResourceProvider build():53:53 -> build
com.android.tools.r8.DataDirectoryResource -> com.android.tools.r8.DataDirectoryResource:
    1:2:com.android.tools.r8.DataDirectoryResource fromFile(java.nio.file.Path,java.nio.file.Path):23:24 -> fromFile
    1:1:com.android.tools.r8.DataDirectoryResource fromName(java.lang.String,com.android.tools.r8.origin.Origin):19:19 -> fromName
    1:1:com.android.tools.r8.DataDirectoryResource fromZip(java.util.zip.ZipFile,java.util.zip.ZipEntry):28:28 -> fromZip
com.android.tools.r8.DataDirectoryResource$1 -> com.android.tools.r8.g:
com.android.tools.r8.DataDirectoryResource$LocalDataDirectoryResource -> com.android.tools.r8.DataDirectoryResource$a:
    java.io.File file -> a
    java.lang.String relativePath -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():75:75 -> <clinit>
    1:5:void <init>(java.io.File,java.lang.String):79:83 -> <init>
    1:5:void <init>(java.io.File,java.lang.String,com.android.tools.r8.DataDirectoryResource$1):75 -> <init>
    1:1:java.lang.String getName():93:93 -> getName
    1:1:com.android.tools.r8.origin.Origin getOrigin():88:88 -> getOrigin
com.android.tools.r8.DataDirectoryResource$NamedDataDirectoryResource -> com.android.tools.r8.DataDirectoryResource$b:
    com.android.tools.r8.origin.Origin origin -> b
    java.lang.String name -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():31:31 -> <clinit>
    1:5:void <init>(java.lang.String,com.android.tools.r8.origin.Origin):35:39 -> <init>
    1:5:void <init>(java.lang.String,com.android.tools.r8.origin.Origin,com.android.tools.r8.DataDirectoryResource$1):31 -> <init>
    1:1:java.lang.String getName():49:49 -> getName
    1:1:com.android.tools.r8.origin.Origin getOrigin():44:44 -> getOrigin
com.android.tools.r8.DataDirectoryResource$ZipDataDirectoryResource -> com.android.tools.r8.DataDirectoryResource$c:
    java.util.zip.ZipFile zip -> a
    boolean $assertionsDisabled -> c
    java.util.zip.ZipEntry entry -> b
    1:1:void <clinit>():53:53 -> <clinit>
    1:5:void <init>(java.util.zip.ZipFile,java.util.zip.ZipEntry):57:61 -> <init>
    1:5:void <init>(java.util.zip.ZipFile,java.util.zip.ZipEntry,com.android.tools.r8.DataDirectoryResource$1):53 -> <init>
    1:1:java.lang.String getName():71:71 -> getName
    1:1:com.android.tools.r8.origin.Origin getOrigin():66:66 -> getOrigin
com.android.tools.r8.DataEntryResource -> com.android.tools.r8.DataEntryResource:
    1:1:com.android.tools.r8.DataEntryResource fromBytes(byte[],java.lang.String,com.android.tools.r8.origin.Origin):26:26 -> fromBytes
    1:2:com.android.tools.r8.DataEntryResource fromFile(java.nio.file.Path,java.nio.file.Path):30:31 -> fromFile
    1:1:com.android.tools.r8.DataEntryResource fromZip(java.util.zip.ZipFile,java.util.zip.ZipEntry):35:35 -> fromZip
    1:1:com.android.tools.r8.DataEntryResource withName(java.lang.String):39:39 -> withName
com.android.tools.r8.DataEntryResource$1 -> com.android.tools.r8.h:
com.android.tools.r8.DataEntryResource$ByteDataEntryResource -> com.android.tools.r8.DataEntryResource$a:
    byte[] bytes -> a
    com.android.tools.r8.origin.Origin origin -> c
    java.lang.String name -> b
    1:4:void <init>(byte[],java.lang.String,com.android.tools.r8.origin.Origin):48:51 -> <init>
    1:1:java.io.InputStream getByteStream():56:56 -> getByteStream
    1:1:java.lang.String getName():61:61 -> getName
    1:1:com.android.tools.r8.origin.Origin getOrigin():66:66 -> getOrigin
com.android.tools.r8.DataEntryResource$LocalDataEntryResource -> com.android.tools.r8.DataEntryResource$b:
    java.io.File file -> a
    java.lang.String relativePath -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():101:101 -> <clinit>
    1:5:void <init>(java.io.File,java.lang.String):105:109 -> <init>
    1:5:void <init>(java.io.File,java.lang.String,com.android.tools.r8.DataEntryResource$1):101 -> <init>
    1:3:java.io.InputStream getByteStream():125:127 -> getByteStream
    4:4:com.android.tools.r8.origin.Origin getOrigin():114:114 -> getByteStream
    4:4:java.io.InputStream getByteStream():127 -> getByteStream
    5:5:java.io.InputStream getByteStream():127:127 -> getByteStream
    1:1:java.lang.String getName():119:119 -> getName
    1:1:com.android.tools.r8.origin.Origin getOrigin():114:114 -> getOrigin
com.android.tools.r8.DataEntryResource$NestedDataEntryResource -> com.android.tools.r8.DataEntryResource$c:
    com.android.tools.r8.origin.Origin origin -> b
    com.android.tools.r8.DataEntryResource resource -> c
    java.lang.String name -> a
    1:4:void <init>(java.lang.String,com.android.tools.r8.origin.Origin,com.android.tools.r8.DataEntryResource):141:144 -> <init>
    1:1:java.io.InputStream getByteStream():149:149 -> getByteStream
    1:1:java.lang.String getName():154:154 -> getName
    1:1:com.android.tools.r8.origin.Origin getOrigin():159:159 -> getOrigin
com.android.tools.r8.DataEntryResource$ZipDataEntryResource -> com.android.tools.r8.DataEntryResource$d:
    java.util.zip.ZipFile zip -> a
    boolean $assertionsDisabled -> c
    java.util.zip.ZipEntry entry -> b
    1:1:void <clinit>():70:70 -> <clinit>
    1:5:void <init>(java.util.zip.ZipFile,java.util.zip.ZipEntry):74:78 -> <init>
    1:5:void <init>(java.util.zip.ZipFile,java.util.zip.ZipEntry,com.android.tools.r8.DataEntryResource$1):70 -> <init>
    1:3:java.io.InputStream getByteStream():94:96 -> getByteStream
    4:4:com.android.tools.r8.origin.Origin getOrigin():83:83 -> getByteStream
    4:4:java.io.InputStream getByteStream():96 -> getByteStream
    5:5:java.io.InputStream getByteStream():96:96 -> getByteStream
    1:1:java.lang.String getName():88:88 -> getName
    1:1:com.android.tools.r8.origin.Origin getOrigin():83:83 -> getOrigin
com.android.tools.r8.DexFileMergerHelper -> com.android.tools.r8.DexFileMergerHelper:
    java.util.Map inputOrdering -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():26:26 -> <clinit>
    1:2:void <init>(java.util.Map):30:31 -> <init>
    1:19:com.android.tools.r8.graph.DexProgramClass keepFirstProgramClassConflictResolver(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):36:54 -> a
    20:31:com.android.tools.r8.graph.DexProgramClass keepFirstProgramClassConflictResolver(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):41:52 -> a
    32:33:void run(com.android.tools.r8.D8Command,java.lang.Boolean,java.util.Map):60:61 -> a
    34:34:void com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):43:43 -> a
    34:34:void run(com.android.tools.r8.D8Command,java.lang.Boolean,java.util.Map):61 -> a
    35:35:void lambda$run$0(com.android.tools.r8.D8Command,com.android.tools.r8.utils.InternalOptions,java.lang.Boolean,java.util.Map):63:63 -> a
    36:67:void runInternal(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.lang.Boolean,java.util.Map):72:103 -> a
    68:68:void com.android.tools.r8.dex.ApplicationWriter.<init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,java.util.List,java.lang.String,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,java.lang.String,com.android.tools.r8.naming.ProguardMapSupplier):141:141 -> a
    68:68:void runInternal(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.lang.Boolean,java.util.Map):103 -> a
    69:77:void runInternal(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.lang.Boolean,java.util.Map):106:114 -> a
    78:83:void runInternal(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.lang.Boolean,java.util.Map):109:114 -> a
    1:3:void runD8ForTesting(com.android.tools.r8.D8Command,boolean):120:122 -> runD8ForTesting
com.android.tools.r8.DexFilePerClassFileConsumer -> com.android.tools.r8.DexFilePerClassFileConsumer:
    1:1:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):62:62 -> accept
    2:2:void accept(java.lang.String,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):72:72 -> accept
    1:1:com.android.tools.r8.DexFilePerClassFileConsumer emptyConsumer():91:91 -> emptyConsumer
com.android.tools.r8.DexFilePerClassFileConsumer$ArchiveConsumer -> com.android.tools.r8.DexFilePerClassFileConsumer$ArchiveConsumer:
    boolean $assertionsDisabled -> e
    com.android.tools.r8.utils.OutputBuilder outputBuilder -> c
    boolean consumeDataResources -> d
    1:1:void <clinit>():140:140 -> <clinit>
    1:1:void <init>(java.nio.file.Path):152:152 -> <init>
    2:2:void <init>(java.nio.file.Path,boolean):156:156 -> <init>
    3:3:void <init>(java.nio.file.Path,com.android.tools.r8.DexFilePerClassFileConsumer):160:160 -> <init>
    4:9:void <init>(java.nio.file.Path,com.android.tools.r8.DexFilePerClassFileConsumer,boolean):165:170 -> <init>
    1:1:java.lang.String access$100(java.lang.String):141:141 -> a
    2:2:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):226:226 -> a
    1:2:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):185:186 -> accept
    3:3:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):191:191 -> accept
    4:4:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):196:196 -> accept
    1:2:java.lang.String getDexFileName(java.lang.String):147:148 -> b
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):201:202 -> finished
    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():176:176 -> getDataResourceConsumer
    1:1:java.nio.file.Path internalGetOutputPath():207:207 -> internalGetOutputPath
    1:12:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):215:226 -> writeResources
    13:20:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):218:225 -> writeResources
    21:30:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):217:226 -> writeResources
com.android.tools.r8.DexFilePerClassFileConsumer$DirectoryConsumer -> com.android.tools.r8.DexFilePerClassFileConsumer$DirectoryConsumer:
    com.android.tools.r8.utils.OutputBuilder outputBuilder -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():231:231 -> <clinit>
    1:2:void <init>(java.nio.file.Path,com.android.tools.r8.DexFilePerClassFileConsumer,boolean):256:257 -> <init>
    1:2:void <init>(java.nio.file.Path):243 -> <init>
    3:4:void <init>(java.nio.file.Path,com.android.tools.r8.DexFilePerClassFileConsumer,boolean):256:257 -> <init>
    3:4:void <init>(java.nio.file.Path,com.android.tools.r8.DexFilePerClassFileConsumer):251 -> <init>
    5:6:void <init>(java.nio.file.Path,com.android.tools.r8.DexFilePerClassFileConsumer,boolean):256:257 -> <init>
    7:8:void <init>(java.nio.file.Path,com.android.tools.r8.DexFilePerClassFileConsumer,boolean):256:257 -> <init>
    7:8:void <init>(java.nio.file.Path,boolean):247 -> <init>
    1:2:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):267:268 -> accept
    3:4:java.lang.String getDexFileName(java.lang.String):238:239 -> accept
    3:4:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):268 -> accept
    5:5:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):268:268 -> accept
    6:6:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):273:273 -> accept
    7:7:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):278:278 -> accept
    1:1:void finished(com.android.tools.r8.DiagnosticsHandler):282:282 -> finished
    1:1:java.nio.file.Path internalGetOutputPath():287:287 -> internalGetOutputPath
    1:3:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):295:297 -> writeResources
    4:4:java.nio.file.Path getTargetDexFile(java.nio.file.Path,java.lang.String):305:305 -> writeResources
    4:4:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):298 -> writeResources
    5:5:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):299:299 -> writeResources
    6:7:void writeFile(byte[],java.nio.file.Path):309:310 -> writeResources
    6:7:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):299 -> writeResources
    8:8:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):301:301 -> writeResources
    9:15:void writeResources(java.nio.file.Path,java.util.List,java.util.Map):295:301 -> writeResources
com.android.tools.r8.DexFilePerClassFileConsumer$ForwardingConsumer -> com.android.tools.r8.DexFilePerClassFileConsumer$ForwardingConsumer:
    com.android.tools.r8.DexFilePerClassFileConsumer EMPTY_CONSUMER -> b
    com.android.tools.r8.DexFilePerClassFileConsumer consumer -> a
    1:1:void <clinit>():98:98 -> <clinit>
    1:2:void <init>(com.android.tools.r8.DexFilePerClassFileConsumer):102:103 -> <init>
    1:1:com.android.tools.r8.DexFilePerClassFileConsumer access$000():96:96 -> a
    1:2:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):117:118 -> accept
    1:4:boolean combineSyntheticClassesWithPrimaryClass():124:127 -> combineSyntheticClassesWithPrimaryClass
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):133:134 -> finished
    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():108:108 -> getDataResourceConsumer
com.android.tools.r8.DexIndexedConsumer -> com.android.tools.r8.DexIndexedConsumer:
    1:1:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):62:62 -> accept
    2:2:void accept(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):69:69 -> accept
    1:1:com.android.tools.r8.DexIndexedConsumer emptyConsumer():75:75 -> emptyConsumer
com.android.tools.r8.DexIndexedConsumer$ArchiveConsumer -> com.android.tools.r8.DexIndexedConsumer$ArchiveConsumer:
    com.android.tools.r8.utils.OutputBuilder outputBuilder -> c
    boolean consumeDataResources -> d
    1:1:void <init>(java.nio.file.Path):129:129 -> <init>
    2:2:void <init>(java.nio.file.Path,boolean):133:133 -> <init>
    3:3:void <init>(java.nio.file.Path,com.android.tools.r8.DexIndexedConsumer):137:137 -> <init>
    4:9:void <init>(java.nio.file.Path,com.android.tools.r8.DexIndexedConsumer,boolean):141:146 -> <init>
    1:1:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):201:201 -> a
    1:2:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):162:163 -> accept
    3:3:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):168:168 -> accept
    4:4:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):173:173 -> accept
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):178:179 -> finished
    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():156:156 -> getDataResourceConsumer
    1:1:com.android.tools.r8.origin.Origin getOrigin():151:151 -> getOrigin
    1:1:java.nio.file.Path internalGetOutputPath():206:206 -> internalGetOutputPath
    1:17:void writeResources(java.nio.file.Path,java.util.List,java.util.Set):185:201 -> writeResources
    18:30:void writeResources(java.nio.file.Path,java.util.List,java.util.Set):188:200 -> writeResources
    31:45:void writeResources(java.nio.file.Path,java.util.List,java.util.Set):187:201 -> writeResources
com.android.tools.r8.DexIndexedConsumer$DirectoryConsumer -> com.android.tools.r8.DexIndexedConsumer$DirectoryConsumer:
    java.nio.file.Path directory -> c
    com.android.tools.r8.utils.OutputBuilder outputBuilder -> e
    boolean consumeDataResouces -> f
    boolean preparedDirectory -> d
    1:1:void <init>(java.nio.file.Path):219:219 -> <init>
    2:2:void <init>(java.nio.file.Path,boolean):223:223 -> <init>
    3:3:void <init>(java.nio.file.Path,com.android.tools.r8.DexIndexedConsumer):227:227 -> <init>
    4:4:void <init>(java.nio.file.Path,com.android.tools.r8.DexIndexedConsumer,boolean):232:232 -> <init>
    5:26:void <init>(java.nio.file.Path,com.android.tools.r8.DexIndexedConsumer,boolean):214:235 -> <init>
    1:7:void deleteClassesDexFiles(java.nio.file.Path):280:286 -> a
    8:14:void deleteClassesDexFiles(java.nio.file.Path):280:286 -> a
    15:15:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):286:286 -> a
    1:7:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):246:252 -> accept
    8:8:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):257:257 -> accept
    9:9:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):262:262 -> accept
    1:5:void prepareDirectory():272:276 -> b
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):267:268 -> finished
    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():240:240 -> getDataResourceConsumer
    1:1:java.nio.file.Path internalGetOutputPath():312:312 -> internalGetOutputPath
    1:4:void writeResources(java.nio.file.Path,java.util.List):291:294 -> writeResources
    5:5:java.nio.file.Path getTargetDexFile(java.nio.file.Path,int):302:302 -> writeResources
    5:5:void writeResources(java.nio.file.Path,java.util.List):295 -> writeResources
    6:6:void writeResources(java.nio.file.Path,java.util.List):296:296 -> writeResources
    7:8:void writeFile(byte[],java.nio.file.Path):306:307 -> writeResources
    7:8:void writeResources(java.nio.file.Path,java.util.List):296 -> writeResources
    9:9:void writeResources(java.nio.file.Path,java.util.List):298:298 -> writeResources
    10:16:void writeResources(java.nio.file.Path,java.util.List):292:298 -> writeResources
com.android.tools.r8.DexIndexedConsumer$ForwardingConsumer -> com.android.tools.r8.DexIndexedConsumer$ForwardingConsumer:
    com.android.tools.r8.DexIndexedConsumer EMPTY_CONSUMER -> b
    com.android.tools.r8.DexIndexedConsumer consumer -> a
    1:1:void <clinit>():82:82 -> <clinit>
    1:2:void <init>(com.android.tools.r8.DexIndexedConsumer):86:87 -> <init>
    1:1:com.android.tools.r8.DexIndexedConsumer access$000():80:80 -> a
    2:2:java.lang.String getDefaultDexFileName(int):93:93 -> a
    1:2:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):108:109 -> accept
    1:1:java.lang.String getDexFileName(int):97:97 -> b
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):115:116 -> finished
    1:1:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():102:102 -> getDataResourceConsumer
com.android.tools.r8.DexSplitterHelper -> com.android.tools.r8.DexSplitterHelper:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():35:35 -> <clinit>
    1:1:void <init>():36:36 -> <init>
    1:1:void lambda$run$0(com.android.tools.r8.D8Command,com.android.tools.r8.utils.FeatureClassMapping,java.lang.String,java.lang.String,java.util.concurrent.ExecutorService):45:45 -> a
    2:16:java.util.Map getDistribution(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.FeatureClassMapping,com.android.tools.r8.naming.ClassNameMapper):126:140 -> a
    1:4:void run(com.android.tools.r8.D8Command,com.android.tools.r8.utils.FeatureClassMapping,java.lang.String,java.lang.String):41:44 -> run
    5:9:void run(com.android.tools.r8.D8Command,com.android.tools.r8.utils.FeatureClassMapping,java.lang.String,java.lang.String):43:47 -> run
    10:71:void run(com.android.tools.r8.D8Command,com.android.tools.r8.utils.FeatureClassMapping,java.lang.String,java.lang.String,java.util.concurrent.ExecutorService):58:119 -> run
    72:74:void run(com.android.tools.r8.D8Command,com.android.tools.r8.utils.FeatureClassMapping,java.lang.String,java.lang.String,java.util.concurrent.ExecutorService):117:119 -> run
    75:79:void run(com.android.tools.r8.D8Command,com.android.tools.r8.utils.FeatureClassMapping,java.lang.String,java.lang.String,java.util.concurrent.ExecutorService):115:119 -> run
    1:3:void runD8ForTesting(com.android.tools.r8.D8Command,boolean):147:149 -> runD8ForTesting
com.android.tools.r8.DiagnosticsHandler -> com.android.tools.r8.DiagnosticsHandler:
    1:10:void error(com.android.tools.r8.Diagnostic):23:32 -> error
    1:4:void info(com.android.tools.r8.Diagnostic):55:58 -> info
    1:6:void warning(com.android.tools.r8.Diagnostic):41:46 -> warning
com.android.tools.r8.DirectoryClassFileProvider -> com.android.tools.r8.DirectoryClassFileProvider:
    java.nio.file.Path root -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():22:22 -> <clinit>
    1:2:void <init>(java.nio.file.Path):31:32 -> <init>
    1:11:void collectClassDescriptors(java.nio.file.Path,java.util.Set):43:53 -> a
    1:1:com.android.tools.r8.ClassFileResourceProvider fromDirectory(java.nio.file.Path):28:28 -> fromDirectory
    1:2:java.util.Set getClassDescriptors():37:38 -> getClassDescriptors
    1:6:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):63:68 -> getProgramResource
    1:1:java.nio.file.Path getRoot():73:73 -> getRoot
com.android.tools.r8.Disassemble -> com.android.tools.r8.Disassemble:
    1:18:void disassemble(com.android.tools.r8.Disassemble$DisassembleCommand):220:237 -> disassemble
com.android.tools.r8.Disassemble$1 -> com.android.tools.r8.i:
com.android.tools.r8.Disassemble$DisassembleCommand -> com.android.tools.r8.Disassemble$DisassembleCommand:
    java.nio.file.Path outputPath -> e
    boolean useIr -> i
    com.android.tools.r8.StringResource proguardMap -> f
    boolean allInfo -> g
    boolean useSmali -> h
    1:6:void <init>(com.android.tools.r8.utils.AndroidApp,java.nio.file.Path,com.android.tools.r8.StringResource,boolean,boolean,boolean):165:170 -> <init>
    1:6:void <init>(com.android.tools.r8.utils.AndroidApp,java.nio.file.Path,com.android.tools.r8.StringResource,boolean,boolean,boolean,com.android.tools.r8.Disassemble$1):26 -> <init>
    7:12:void <init>(boolean,boolean):174:179 -> <init>
    7:12:void <init>(boolean,boolean,com.android.tools.r8.Disassemble$1):26 -> <init>
    1:1:com.android.tools.r8.StringResource access$200(com.android.tools.r8.Disassemble$DisassembleCommand):26:26 -> a
    2:2:java.nio.file.Path getOutputPath():183:183 -> a
    1:1:boolean access$300(com.android.tools.r8.Disassemble$DisassembleCommand):26:26 -> b
    2:2:boolean useIr():191:191 -> b
    1:1:com.android.tools.r8.Disassemble$DisassembleCommand$Builder builder():107:107 -> builder
    1:1:boolean useSmali():187:187 -> c
    1:3:com.android.tools.r8.utils.InternalOptions getInternalOptions():196:198 -> getInternalOptions
com.android.tools.r8.Disassemble$DisassembleCommand$Builder -> com.android.tools.r8.Disassemble$DisassembleCommand$Builder:
    boolean allInfo -> i
    boolean useIr -> j
    java.nio.file.Path proguardMapFile -> g
    java.nio.file.Path outputPath -> f
    boolean useSmali -> h
    1:6:void <init>():31:36 -> <init>
    1:1:com.android.tools.r8.BaseCommand makeCommand():31:31 -> a
    2:8:com.android.tools.r8.Disassemble$DisassembleCommand makeCommand():76:82 -> a
    9:9:com.android.tools.r8.Disassemble$DisassembleCommand makeCommand():77:77 -> a
    com.android.tools.r8.Disassemble$DisassembleCommand$Builder self() -> b
    1:1:com.android.tools.r8.BaseCommand$Builder self():31:31 -> b
    1:1:java.nio.file.Path getOutputPath():50:50 -> getOutputPath
    1:1:com.android.tools.r8.Disassemble$DisassembleCommand$Builder setOutputPath(java.nio.file.Path):54:54 -> setOutputPath
    1:1:com.android.tools.r8.Disassemble$DisassembleCommand$Builder setProguardMapFile(java.nio.file.Path):45:45 -> setProguardMapFile
    1:1:com.android.tools.r8.Disassemble$DisassembleCommand$Builder setUseSmali(boolean):64:64 -> setUseSmali
com.android.tools.r8.ExtractMarker -> com.android.tools.r8.ExtractMarker:
    1:1:void <init>():30:30 -> <init>
    1:1:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):61:61 -> a
    2:12:void addDexResources(com.android.tools.r8.utils.AndroidApp$Builder,java.nio.file.Path):81:91 -> a
    13:23:void addDexResources(com.android.tools.r8.utils.AndroidApp$Builder,java.nio.file.Path):83:93 -> a
    24:29:java.util.Collection extractMarker(com.android.tools.r8.utils.AndroidApp):99:104 -> a
    1:8:int extractDexSize(java.nio.file.Path):54:61 -> extractDexSize
    9:11:int extractDexSize(java.nio.file.Path):59:61 -> extractDexSize
    1:2:java.util.Collection extractMarkerFromClassProgramData(byte[]):75:76 -> extractMarkerFromClassProgramData
    1:3:java.util.Collection extractMarkerFromDexFile(java.nio.file.Path):48:50 -> extractMarkerFromDexFile
    1:2:java.util.Collection extractMarkerFromDexProgramData(byte[]):69:70 -> extractMarkerFromDexProgramData
    1:55:void main(java.lang.String[]):109:163 -> main
    56:57:void main(java.lang.String[]):127:128 -> main
    58:101:void main(java.lang.String[]):127:170 -> main
com.android.tools.r8.ExtractMarker$VdexOrigin -> com.android.tools.r8.ExtractMarker$a:
    int index -> e
    1:2:void <init>(com.android.tools.r8.origin.Origin,int):36:37 -> <init>
    1:1:java.lang.String part():42:42 -> part
com.android.tools.r8.ExtractMarkerCommand -> com.android.tools.r8.l:
    java.lang.String USAGE_MESSAGE -> g
    java.util.List programFiles -> f
    boolean csv -> e
    boolean printHelp -> a
    boolean includeOther -> b
    boolean verbose -> c
    boolean summary -> d
    1:1:void <clinit>():67:67 -> <clinit>
    1:7:void <init>(boolean,boolean,boolean,boolean,java.util.List):118:124 -> <init>
    1:7:void <init>(boolean,boolean,boolean,boolean,java.util.List,com.android.tools.r8.ExtractMarkerCommand$1):14 -> <init>
    8:14:void <init>(boolean):127:133 -> <init>
    8:14:void <init>(boolean,com.android.tools.r8.ExtractMarkerCommand$1):14 -> <init>
    1:1:com.android.tools.r8.ExtractMarkerCommand$Builder builder():77:77 -> a
    1:1:com.android.tools.r8.ExtractMarkerCommand$Builder parse(java.lang.String[]):81 -> a
    2:20:void parse(java.lang.String[],com.android.tools.r8.ExtractMarkerCommand$Builder):87:105 -> a
    2:20:com.android.tools.r8.ExtractMarkerCommand$Builder parse(java.lang.String[]):82 -> a
    21:21:void parse(java.lang.String[],com.android.tools.r8.ExtractMarkerCommand$Builder):103:103 -> a
    21:21:com.android.tools.r8.ExtractMarkerCommand$Builder parse(java.lang.String[]):82 -> a
    22:22:boolean getCSV():157:157 -> a
    1:1:boolean getIncludeOther():145:145 -> b
    1:1:java.util.List getProgramFiles():141:141 -> c
    1:1:boolean getSummary():153:153 -> d
    1:1:boolean getVerbose():149:149 -> e
    1:1:boolean isPrintHelp():137:137 -> f
com.android.tools.r8.ExtractMarkerCommand$1 -> com.android.tools.r8.j:
com.android.tools.r8.ExtractMarkerCommand$Builder -> com.android.tools.r8.k:
    java.util.List programFiles -> f
    boolean csv -> e
    boolean printHelp -> a
    boolean includeOther -> b
    boolean verbose -> c
    boolean summary -> d
    1:7:void <init>():16:22 -> <init>
    1:1:boolean isPrintHelp():30:30 -> a
    1:1:com.android.tools.r8.ExtractMarkerCommand build():60 -> a
    2:4:com.android.tools.r8.ExtractMarkerCommand build():61:63 -> a
    5:5:com.android.tools.r8.ExtractMarkerCommand$Builder setCSV(boolean):49:49 -> a
    6:6:com.android.tools.r8.ExtractMarkerCommand$Builder addProgramFile(java.nio.file.Path):54:54 -> a
    1:1:com.android.tools.r8.ExtractMarkerCommand$Builder setIncludeOther(boolean):34:34 -> b
    1:1:com.android.tools.r8.ExtractMarkerCommand$Builder setPrintHelp(boolean):25:25 -> c
    1:1:com.android.tools.r8.ExtractMarkerCommand$Builder setSummary(boolean):44:44 -> d
    1:1:com.android.tools.r8.ExtractMarkerCommand$Builder setVerbose(boolean):39:39 -> e
com.android.tools.r8.GenerateMainDexList -> com.android.tools.r8.GenerateMainDexList:
    com.android.tools.r8.utils.Timing timing -> a
    com.android.tools.r8.utils.InternalOptions options -> b
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions):38:38 -> <init>
    2:6:void <init>(com.android.tools.r8.utils.InternalOptions):35:39 -> <init>
    1:17:java.util.List run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):45:61 -> a
    18:18:void com.android.tools.r8.shaking.Enqueuer.<init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.experimental.graphinfo.GraphConsumer):288:288 -> a
    18:18:java.util.List run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):61 -> a
    19:40:java.util.List run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):62:83 -> a
    41:48:java.util.List run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):82:89 -> a
    49:49:java.lang.String lambda$run$0(com.android.tools.r8.graph.DexType):68:68 -> a
    50:52:void lambda$run$1(com.android.tools.r8.GenerateMainDexList$ResultBox,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):138:140 -> a
    1:13:void main(java.lang.String[]):151:163 -> main
    1:5:java.util.List run(com.android.tools.r8.GenerateMainDexListCommand):107:111 -> run
    6:11:java.util.List run(com.android.tools.r8.GenerateMainDexListCommand,java.util.concurrent.ExecutorService):130:135 -> run
    12:12:void com.android.tools.r8.utils.ExceptionUtils.withMainDexListHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):53:53 -> run
    12:12:java.util.List run(com.android.tools.r8.GenerateMainDexListCommand,java.util.concurrent.ExecutorService):134 -> run
    13:13:java.util.List run(com.android.tools.r8.GenerateMainDexListCommand,java.util.concurrent.ExecutorService):143:143 -> run
com.android.tools.r8.GenerateMainDexList$1 -> com.android.tools.r8.m:
com.android.tools.r8.GenerateMainDexList$ResultBox -> com.android.tools.r8.GenerateMainDexList$a:
    java.util.List content -> a
    1:1:void <init>():146:146 -> <init>
    1:1:void <init>(com.android.tools.r8.GenerateMainDexList$1):146 -> <init>
com.android.tools.r8.GenerateMainDexListCommand -> com.android.tools.r8.GenerateMainDexListCommand:
    com.android.tools.r8.experimental.graphinfo.GraphConsumer mainDexKeptGraphConsumer -> g
    java.lang.String USAGE_MESSAGE -> j
    java.util.List mainDexKeepRules -> e
    com.android.tools.r8.utils.Reporter reporter -> i
    com.android.tools.r8.graph.DexItemFactory factory -> h
    com.android.tools.r8.StringConsumer mainDexListConsumer -> f
    1:1:void <clinit>():137:137 -> <clinit>
    1:6:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApp,java.util.List,com.android.tools.r8.StringConsumer,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.utils.Reporter):206:211 -> <init>
    1:6:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApp,java.util.List,com.android.tools.r8.StringConsumer,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.utils.Reporter,com.android.tools.r8.GenerateMainDexListCommand$1):26 -> <init>
    7:12:void <init>(boolean,boolean):215:220 -> <init>
    7:12:void <init>(boolean,boolean,com.android.tools.r8.GenerateMainDexListCommand$1):26 -> <init>
    1:1:com.android.tools.r8.utils.Reporter getReporter():169:169 -> a
    1:1:com.android.tools.r8.GenerateMainDexListCommand$Builder builder():151:151 -> builder
    2:2:com.android.tools.r8.GenerateMainDexListCommand$Builder builder(com.android.tools.r8.DiagnosticsHandler):155:155 -> builder
    1:7:com.android.tools.r8.utils.InternalOptions getInternalOptions():225:231 -> getInternalOptions
    1:1:com.android.tools.r8.StringConsumer getMainDexListConsumer():165:165 -> getMainDexListConsumer
    1:1:com.android.tools.r8.GenerateMainDexListCommand$Builder parse(java.lang.String[]):159:159 -> parse
    2:23:void parse(java.lang.String[],com.android.tools.r8.GenerateMainDexListCommand$Builder):173:194 -> parse
    2:23:com.android.tools.r8.GenerateMainDexListCommand$Builder parse(java.lang.String[]):160 -> parse
com.android.tools.r8.GenerateMainDexListCommand$1 -> com.android.tools.r8.n:
com.android.tools.r8.GenerateMainDexListCommand$Builder -> com.android.tools.r8.GenerateMainDexListCommand$Builder:
    com.android.tools.r8.experimental.graphinfo.GraphConsumer mainDexKeptGraphConsumer -> i
    com.android.tools.r8.graph.DexItemFactory factory -> f
    com.android.tools.r8.StringConsumer mainDexListConsumer -> h
    java.util.List mainDexRules -> g
    1:1:void <init>():42:42 -> <init>
    1:1:void <init>(com.android.tools.r8.GenerateMainDexListCommand$1):35 -> <init>
    2:5:void <init>():37:40 -> <init>
    2:5:void <init>(com.android.tools.r8.GenerateMainDexListCommand$1):35 -> <init>
    6:6:void <init>(com.android.tools.r8.DiagnosticsHandler):46:46 -> <init>
    6:6:void <init>(com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.GenerateMainDexListCommand$1):35 -> <init>
    7:10:void <init>(com.android.tools.r8.DiagnosticsHandler):37:40 -> <init>
    7:10:void <init>(com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.GenerateMainDexListCommand$1):35 -> <init>
    1:1:com.android.tools.r8.BaseCommand makeCommand():34:34 -> a
    2:3:void lambda$addMainDexRulesFiles$1(java.util.List):72:73 -> a
    4:5:void lambda$addMainDexRules$2(java.util.List,com.android.tools.r8.origin.Origin):83:84 -> a
    6:6:void lambda$addMainDexRules$2(java.util.List,com.android.tools.r8.origin.Origin):83:83 -> a
    7:27:com.android.tools.r8.GenerateMainDexListCommand makeCommand():107:127 -> a
    28:28:com.android.tools.r8.GenerateMainDexListCommand makeCommand():108:108 -> a
    1:3:com.android.tools.r8.GenerateMainDexListCommand$Builder addMainDexRules(java.util.List,com.android.tools.r8.origin.Origin):83:85 -> addMainDexRules
    1:6:com.android.tools.r8.GenerateMainDexListCommand$Builder addMainDexRulesFiles(java.nio.file.Path[]):59:64 -> addMainDexRulesFiles
    7:12:com.android.tools.r8.GenerateMainDexListCommand$Builder addMainDexRulesFiles(java.util.List):71:76 -> addMainDexRulesFiles
    com.android.tools.r8.GenerateMainDexListCommand$Builder self() -> b
    1:1:com.android.tools.r8.BaseCommand$Builder self():34:34 -> b
    2:3:void lambda$addMainDexRulesFiles$0(java.nio.file.Path[]):60:61 -> b
    1:2:com.android.tools.r8.GenerateMainDexListCommand$Builder setMainDexKeptGraphConsumer(com.android.tools.r8.experimental.graphinfo.GraphConsumer):132:133 -> setMainDexKeptGraphConsumer
    1:2:com.android.tools.r8.GenerateMainDexListCommand$Builder setMainDexListConsumer(com.android.tools.r8.StringConsumer):100:101 -> setMainDexListConsumer
    1:1:com.android.tools.r8.GenerateMainDexListCommand$Builder setMainDexListOutputPath(java.nio.file.Path):94:94 -> setMainDexListOutputPath
    2:2:void com.android.tools.r8.StringConsumer$FileConsumer.<init>(java.nio.file.Path):76:76 -> setMainDexListOutputPath
    2:2:com.android.tools.r8.GenerateMainDexListCommand$Builder setMainDexListOutputPath(java.nio.file.Path):94 -> setMainDexListOutputPath
    3:4:com.android.tools.r8.GenerateMainDexListCommand$Builder setMainDexListOutputPath(java.nio.file.Path):94:95 -> setMainDexListOutputPath
com.android.tools.r8.GeneratedOutlineSupport -> com.android.tools.r8.o:
    long outline0(long,long,long) -> a
    com.android.tools.r8.ir.code.BasicBlock outline1(com.android.tools.r8.ir.code.BasicBlock) -> a
    java.lang.String outline10(java.lang.StringBuilder,java.lang.Object,java.lang.String) -> a
    java.lang.String outline11(java.lang.StringBuilder,java.lang.String,java.lang.String) -> a
    java.lang.StringBuilder outline12(com.android.tools.r8.graph.DexType,java.lang.StringBuilder,java.lang.String) -> a
    java.lang.StringBuilder outline13(java.lang.String) -> a
    java.lang.StringBuilder outline14(java.lang.String,int,java.lang.String) -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type outline2(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type) -> a
    java.lang.String outline4(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,java.lang.StringBuilder) -> a
    java.lang.String outline5(java.lang.String,int) -> a
    java.lang.String outline6(java.lang.String,java.lang.Object) -> a
    java.lang.String outline7(java.lang.String,java.lang.Object,java.lang.String) -> a
    java.lang.String outline8(java.lang.String,java.lang.String) -> a
    java.lang.String outline9(java.lang.StringBuilder,int,java.lang.String) -> a
    java.lang.String outline3(com.android.tools.r8.graph.DexType,java.lang.StringBuilder,java.lang.String) -> b
com.android.tools.r8.OutputMode -> com.android.tools.r8.OutputMode:
    com.android.tools.r8.OutputMode[] $VALUES -> a
    1:16:void <clinit>():11:26 -> <clinit>
    17:17:void <clinit>():7:7 -> <clinit>
    1:1:void <init>(java.lang.String,int):8:8 -> <init>
    1:1:com.android.tools.r8.OutputMode valueOf(java.lang.String):7:7 -> valueOf
    1:1:com.android.tools.r8.OutputMode[] values():7:7 -> values
com.android.tools.r8.ProgramResource -> com.android.tools.r8.ProgramResource:
    1:1:com.android.tools.r8.ProgramResource fromBytes(com.android.tools.r8.origin.Origin,com.android.tools.r8.ProgramResource$Kind,byte[],java.util.Set):52:52 -> fromBytes
    1:1:com.android.tools.r8.ProgramResource fromFile(com.android.tools.r8.ProgramResource$Kind,java.nio.file.Path):41:41 -> fromFile
com.android.tools.r8.ProgramResource$1 -> com.android.tools.r8.p:
com.android.tools.r8.ProgramResource$ByteResource -> com.android.tools.r8.ProgramResource$ByteResource:
    com.android.tools.r8.origin.Origin origin -> a
    java.util.Set classDescriptors -> d
    boolean $assertionsDisabled -> e
    com.android.tools.r8.ProgramResource$Kind kind -> b
    byte[] bytes -> c
    1:1:void <clinit>():111:111 -> <clinit>
    1:6:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.ProgramResource$Kind,byte[],java.util.Set):118:123 -> <init>
    1:6:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.ProgramResource$Kind,byte[],java.util.Set,com.android.tools.r8.ProgramResource$1):112 -> <init>
    1:1:java.io.InputStream getByteStream():138:138 -> getByteStream
    1:1:java.util.Set getClassDescriptors():143:143 -> getClassDescriptors
    1:1:com.android.tools.r8.ProgramResource$Kind getKind():133:133 -> getKind
    1:1:com.android.tools.r8.origin.Origin getOrigin():128:128 -> getOrigin
com.android.tools.r8.ProgramResource$FileResource -> com.android.tools.r8.ProgramResource$FileResource:
    com.android.tools.r8.origin.Origin origin -> a
    java.nio.file.Path file -> c
    java.util.Set classDescriptors -> d
    com.android.tools.r8.ProgramResource$Kind kind -> b
    1:5:void <init>(com.android.tools.r8.ProgramResource$Kind,java.nio.file.Path,java.util.Set):78:82 -> <init>
    1:5:void <init>(com.android.tools.r8.ProgramResource$Kind,java.nio.file.Path,java.util.Set,com.android.tools.r8.ProgramResource$1):72 -> <init>
    1:3:java.io.InputStream getByteStream():98:100 -> getByteStream
    1:1:java.util.Set getClassDescriptors():106:106 -> getClassDescriptors
    1:1:com.android.tools.r8.ProgramResource$Kind getKind():92:92 -> getKind
    1:1:com.android.tools.r8.origin.Origin getOrigin():87:87 -> getOrigin
com.android.tools.r8.ProgramResource$Kind -> com.android.tools.r8.ProgramResource$Kind:
    com.android.tools.r8.ProgramResource$Kind[] $VALUES -> a
    1:3:void <clinit>():30:32 -> <clinit>
    4:4:void <clinit>():27:27 -> <clinit>
    1:1:void <init>(java.lang.String,int):28:28 -> <init>
    1:1:com.android.tools.r8.ProgramResource$Kind valueOf(java.lang.String):27:27 -> valueOf
    1:1:com.android.tools.r8.ProgramResource$Kind[] values():27:27 -> values
com.android.tools.r8.R8 -> com.android.tools.r8.R8:
    com.android.tools.r8.utils.Timing timing -> a
    com.android.tools.r8.utils.InternalOptions options -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():125:125 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions):131:131 -> <init>
    2:7:void <init>(com.android.tools.r8.utils.InternalOptions):128:133 -> <init>
    1:1:void lambda$run$0(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):166:166 -> a
    2:13:com.android.tools.r8.dex.Marker getMarker(com.android.tools.r8.utils.InternalOptions):172:183 -> a
    14:15:java.util.Set filterMissingClasses(java.util.Set,com.android.tools.r8.shaking.ProguardClassFilter):234:235 -> a
    16:39:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):259:282 -> a
    40:65:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):281:306 -> a
    66:72:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):304:310 -> a
    73:73:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):308:308 -> a
    74:86:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):307:319 -> a
    87:95:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):318:326 -> a
    96:96:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):324:324 -> a
    97:123:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):323:349 -> a
    124:134:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):345:355 -> a
    135:155:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):354:374 -> a
    156:177:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):364:385 -> a
    178:217:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):384:423 -> a
    218:240:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):420:442 -> a
    241:251:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):438:448 -> a
    252:259:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):447:454 -> a
    260:269:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):451:460 -> a
    270:278:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):458:466 -> a
    279:319:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):463:503 -> a
    320:324:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):499:503 -> a
    325:367:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):497:539 -> a
    368:396:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):538:566 -> a
    397:397:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):564:564 -> a
    398:414:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):563:579 -> a
    415:415:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):577:577 -> a
    416:427:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):574:585 -> a
    428:461:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):584:617 -> a
    462:534:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):616:688 -> a
    535:543:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):653:661 -> a
    544:544:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):657:657 -> a
    545:565:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):655:675 -> a
    566:584:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):670:688 -> a
    585:585:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):598:598 -> a
    586:586:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):485:485 -> a
    587:898:void run(com.android.tools.r8.utils.AndroidApp,java.util.concurrent.ExecutorService):377:688 -> a
    899:900:void lambda$run$2(com.android.tools.r8.graph.DexType):286:287 -> a
    901:901:void lambda$run$2(com.android.tools.r8.graph.DexType):286:286 -> a
    902:902:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):374:374 -> a
    903:903:void lambda$run$4(java.lang.String):648:648 -> a
    904:907:void computeKotlinInfoForProgramClasses(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView):695:698 -> a
    908:917:java.lang.RuntimeException unwrapExecutionException(java.util.concurrent.ExecutionException):703:712 -> a
    918:919:java.lang.RuntimeException unwrapExecutionException(java.util.concurrent.ExecutionException):706:707 -> a
    920:920:void lambda$run$5(com.android.tools.r8.R8Command,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):731:731 -> a
    921:921:void lambda$main$6(java.lang.String[]):747:747 -> a
    boolean lambda$run$3(com.android.tools.r8.graph.DexType) -> b
    1:3:void lambda$runForTesting$1(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):246:248 -> b
    4:5:void run(java.lang.String[]):717:718 -> b
    6:6:void com.android.tools.r8.utils.SelfRetraceTest.test():25:25 -> b
    6:6:void run(java.lang.String[]):719 -> b
    7:7:void run(java.lang.String[]):720:720 -> b
    8:8:void com.android.tools.r8.utils.SelfRetraceTest.test():26:26 -> b
    8:8:void run(java.lang.String[]):719 -> b
    9:9:void com.android.tools.r8.utils.SelfRetraceTest.foo3():13:13 -> b
    9:9:void com.android.tools.r8.utils.SelfRetraceTest.foo2():17 -> b
    9:9:void com.android.tools.r8.utils.SelfRetraceTest.foo1():21 -> b
    9:9:void com.android.tools.r8.utils.SelfRetraceTest.test():26 -> b
    9:9:void run(java.lang.String[]):719 -> b
    10:17:void run(java.lang.String[]):723:730 -> b
    18:18:void com.android.tools.r8.utils.ExceptionUtils.withR8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):48:48 -> b
    18:18:void run(java.lang.String[]):730 -> b
    19:19:void run(java.lang.String[]):733:733 -> b
    1:1:void run(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):255:255 -> c
    1:5:void main(java.lang.String[]):743:747 -> main
    1:3:void run(com.android.tools.r8.R8Command):145:147 -> run
    4:7:void run(com.android.tools.r8.R8Command,java.util.concurrent.ExecutorService):161:164 -> run
    8:8:void com.android.tools.r8.utils.ExceptionUtils.withR8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):48:48 -> run
    8:8:void run(com.android.tools.r8.R8Command,java.util.concurrent.ExecutorService):163 -> run
    1:1:java.util.concurrent.ExecutorService com.android.tools.r8.utils.ThreadUtils.getExecutorService(com.android.tools.r8.utils.InternalOptions):53:53 -> runForTesting
    1:1:void runForTesting(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):241 -> runForTesting
    2:2:void runForTesting(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):242:242 -> runForTesting
    3:3:void com.android.tools.r8.utils.ExceptionUtils.withR8CompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):48:48 -> runForTesting
    3:3:void runForTesting(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):242 -> runForTesting
    1:20:void writeApplication(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,java.lang.String,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,java.lang.String,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.ProguardMapSupplier):200:219 -> writeApplication
    21:21:void com.android.tools.r8.dex.ApplicationWriter.<init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,java.util.List,java.lang.String,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,java.lang.String,com.android.tools.r8.naming.ProguardMapSupplier):141:141 -> writeApplication
    21:21:void writeApplication(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,java.lang.String,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,java.lang.String,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.ProguardMapSupplier):219 -> writeApplication
    22:25:void writeApplication(java.util.concurrent.ExecutorService,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,java.lang.String,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,java.lang.String,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.ProguardMapSupplier):225:228 -> writeApplication
com.android.tools.r8.R8Command -> com.android.tools.r8.R8Command:
    boolean enableTreeShaking -> o
    boolean enableMinification -> p
    java.util.function.Consumer syntheticProguardRulesConsumer -> w
    boolean disableVerticalClassMerging -> q
    com.android.tools.r8.StringConsumer proguardMapConsumer -> s
    boolean forceProguardCompatibility -> r
    com.android.tools.r8.experimental.graphinfo.GraphConsumer keptGraphConsumer -> u
    java.nio.file.Path proguardCompatibilityRulesOutput -> t
    com.android.tools.r8.experimental.graphinfo.GraphConsumer mainDexKeptGraphConsumer -> v
    java.lang.String USAGE_MESSAGE -> x
    boolean $assertionsDisabled -> y
    com.android.tools.r8.shaking.ProguardConfiguration proguardConfiguration -> n
    java.util.List mainDexKeepRules -> m
    1:475:void <clinit>():51:525 -> <clinit>
    1:15:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.ProgramConsumer,java.util.List,com.android.tools.r8.StringConsumer,com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.CompilationMode,int,com.android.tools.r8.utils.Reporter,boolean,boolean,boolean,boolean,boolean,com.android.tools.r8.StringConsumer,java.nio.file.Path,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.experimental.graphinfo.GraphConsumer,java.util.function.Consumer,boolean):606:620 -> <init>
    1:15:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.ProgramConsumer,java.util.List,com.android.tools.r8.StringConsumer,com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.CompilationMode,int,com.android.tools.r8.utils.Reporter,boolean,boolean,boolean,boolean,boolean,com.android.tools.r8.StringConsumer,java.nio.file.Path,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.experimental.graphinfo.GraphConsumer,java.util.function.Consumer,boolean,com.android.tools.r8.R8Command$1):52 -> <init>
    16:27:void <init>(boolean,boolean):624:635 -> <init>
    16:27:void <init>(boolean,boolean,com.android.tools.r8.R8Command$1):52 -> <init>
    1:1:com.android.tools.r8.R8Command$Builder builder():541:541 -> builder
    2:2:void com.android.tools.r8.R8Command$Builder.<init>():100:100 -> builder
    2:2:com.android.tools.r8.R8Command$Builder builder():541 -> builder
    3:3:com.android.tools.r8.R8Command$Builder builder(com.android.tools.r8.DiagnosticsHandler):546:546 -> builder
    4:4:com.android.tools.r8.R8Command$Builder builder(com.android.tools.r8.utils.AndroidApp):551:551 -> builder
    5:5:com.android.tools.r8.R8Command$Builder builder(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler):556:556 -> builder
    1:1:boolean getEnableMinification():645:645 -> getEnableMinification
    1:1:boolean getEnableTreeShaking():640:640 -> getEnableTreeShaking
    1:109:com.android.tools.r8.utils.InternalOptions getInternalOptions():650:758 -> getInternalOptions
    1:1:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin):569:569 -> parse
    2:2:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.DiagnosticsHandler):583:583 -> parse
com.android.tools.r8.R8Command$1 -> com.android.tools.r8.q:
com.android.tools.r8.R8Command$Builder -> com.android.tools.r8.R8Command$Builder:
    java.util.function.Consumer proguardConfigurationConsumer -> p
    java.util.List proguardConfigs -> r
    java.util.List mainDexRules -> o
    java.util.function.Consumer syntheticProguardRulesConsumer -> q
    boolean disableVerticalClassMerging -> u
    com.android.tools.r8.StringConsumer proguardMapConsumer -> w
    boolean forceProguardCompatibility -> v
    boolean disableTreeShaking -> s
    boolean disableMinification -> t
    com.android.tools.r8.experimental.graphinfo.GraphConsumer keptGraphConsumer -> x
    com.android.tools.r8.experimental.graphinfo.GraphConsumer mainDexKeptGraphConsumer -> y
    java.nio.file.Path proguardCompatibilityRulesOutput -> z
    boolean allowTestProguardOptions -> A
    boolean $assertionsDisabled -> B
    1:1:void <clinit>():59:59 -> <clinit>
    1:1:void <init>(com.android.tools.r8.DiagnosticsHandler):104:104 -> <init>
    2:18:void <init>(com.android.tools.r8.DiagnosticsHandler):80:96 -> <init>
    19:19:void <init>(com.android.tools.r8.utils.AndroidApp):108:108 -> <init>
    19:19:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.R8Command$1):60 -> <init>
    20:36:void <init>(com.android.tools.r8.utils.AndroidApp):80:96 -> <init>
    20:36:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.R8Command$1):60 -> <init>
    37:37:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler):112:112 -> <init>
    37:37:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.R8Command$1):60 -> <init>
    38:54:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler):80:96 -> <init>
    38:54:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.DiagnosticsHandler,com.android.tools.r8.R8Command$1):60 -> <init>
    1:1:com.android.tools.r8.BaseCommand makeCommand():59:59 -> a
    2:3:void lambda$addMainDexRules$2(java.util.List,com.android.tools.r8.origin.Origin):179:180 -> a
    4:4:void lambda$addMainDexRules$2(java.util.List,com.android.tools.r8.origin.Origin):179:179 -> a
    5:6:void lambda$addProguardConfigurationFiles$4(java.util.List):197:198 -> a
    7:9:com.android.tools.r8.InternalProgramOutputPathConsumer com.android.tools.r8.BaseCompilerCommand$Builder.createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):300:302 -> a
    7:9:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):311 -> a
    10:10:void com.android.tools.r8.DexIndexedConsumer$ArchiveConsumer.<init>(java.nio.file.Path,boolean):133:133 -> a
    10:10:com.android.tools.r8.InternalProgramOutputPathConsumer com.android.tools.r8.BaseCompilerCommand$Builder.createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):302 -> a
    10:10:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):311 -> a
    11:11:com.android.tools.r8.InternalProgramOutputPathConsumer com.android.tools.r8.BaseCompilerCommand$Builder.createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):303:303 -> a
    11:11:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):311 -> a
    12:12:void com.android.tools.r8.DexIndexedConsumer$DirectoryConsumer.<init>(java.nio.file.Path,boolean):223:223 -> a
    12:12:com.android.tools.r8.InternalProgramOutputPathConsumer com.android.tools.r8.BaseCompilerCommand$Builder.createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):303 -> a
    12:12:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):311 -> a
    13:32:com.android.tools.r8.InternalProgramOutputPathConsumer com.android.tools.r8.BaseCompilerCommand$Builder.createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):305:324 -> a
    13:32:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):311 -> a
    33:33:void com.android.tools.r8.DexFilePerClassFileConsumer$ArchiveConsumer.<init>(java.nio.file.Path,boolean):156:156 -> a
    33:33:com.android.tools.r8.InternalProgramOutputPathConsumer com.android.tools.r8.BaseCompilerCommand$Builder.createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):324 -> a
    33:33:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):311 -> a
    34:38:com.android.tools.r8.InternalProgramOutputPathConsumer com.android.tools.r8.BaseCompilerCommand$Builder.createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):325:329 -> a
    34:38:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):311 -> a
    39:39:void com.android.tools.r8.ClassFileConsumer$ArchiveConsumer.<init>(java.nio.file.Path,boolean):100:100 -> a
    39:39:com.android.tools.r8.InternalProgramOutputPathConsumer com.android.tools.r8.BaseCompilerCommand$Builder.createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):329 -> a
    39:39:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):311 -> a
    40:40:com.android.tools.r8.InternalProgramOutputPathConsumer com.android.tools.r8.BaseCompilerCommand$Builder.createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):330:330 -> a
    40:40:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):311 -> a
    41:41:void com.android.tools.r8.ClassFileConsumer$DirectoryConsumer.<init>(java.nio.file.Path,boolean):189:189 -> a
    41:41:com.android.tools.r8.InternalProgramOutputPathConsumer com.android.tools.r8.BaseCompilerCommand$Builder.createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):330 -> a
    41:41:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):311 -> a
    42:42:com.android.tools.r8.InternalProgramOutputPathConsumer com.android.tools.r8.BaseCompilerCommand$Builder.createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):332:332 -> a
    42:42:com.android.tools.r8.InternalProgramOutputPathConsumer createProgramOutputConsumer(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):311 -> a
    43:46:com.android.tools.r8.R8Command makeCommand():352:355 -> a
    47:47:com.android.tools.r8.R8Command makeCommand():353:353 -> a
    48:50:void lambda$makeR8Command$6(com.android.tools.r8.DataResourceProvider$Visitor,com.android.tools.r8.utils.Reporter,com.android.tools.r8.DataResourceProvider):417:419 -> a
    51:53:void lambda$addProguardConfigurationConsumerForTesting$7(java.util.function.Consumer,java.util.function.Consumer,com.android.tools.r8.shaking.ProguardConfiguration$Builder):472:474 -> a
    1:3:com.android.tools.r8.R8Command$Builder addMainDexRules(java.util.List,com.android.tools.r8.origin.Origin):179:181 -> addMainDexRules
    1:6:com.android.tools.r8.R8Command$Builder addMainDexRulesFiles(java.nio.file.Path[]):159:164 -> addMainDexRulesFiles
    7:12:com.android.tools.r8.R8Command$Builder addMainDexRulesFiles(java.util.Collection):169:174 -> addMainDexRulesFiles
    1:1:com.android.tools.r8.BaseCommand$Builder addProgramResourceProvider(com.android.tools.r8.ProgramResourceProvider):59:59 -> addProgramResourceProvider
    2:2:com.android.tools.r8.R8Command$Builder addProgramResourceProvider(com.android.tools.r8.ProgramResourceProvider):302:302 -> addProgramResourceProvider
    1:3:com.android.tools.r8.R8Command$Builder addProguardConfiguration(java.util.List,com.android.tools.r8.origin.Origin):206:208 -> addProguardConfiguration
    1:2:void addProguardConfigurationConsumerForTesting(java.util.function.Consumer):468:469 -> addProguardConfigurationConsumerForTesting
    1:6:com.android.tools.r8.R8Command$Builder addProguardConfigurationFiles(java.nio.file.Path[]):186:191 -> addProguardConfigurationFiles
    7:12:com.android.tools.r8.R8Command$Builder addProguardConfigurationFiles(java.util.List):196:201 -> addProguardConfigurationFiles
    1:3:void addSyntheticProguardRulesConsumerForTesting(java.util.function.Consumer):481:483 -> addSyntheticProguardRulesConsumerForTesting
    1:1:void allowTestProguardOptions():494:494 -> allowTestProguardOptions
    com.android.tools.r8.R8Command$Builder self() -> b
    1:1:com.android.tools.r8.BaseCommand$Builder self():59:59 -> b
    2:2:void setDisableVerticalClassMerging(boolean):122:122 -> b
    3:4:void lambda$addMainDexRulesFiles$0(java.nio.file.Path[]):160:161 -> b
    5:6:void lambda$addProguardConfiguration$5(java.util.List,com.android.tools.r8.origin.Origin):206:207 -> b
    7:7:void lambda$addProguardConfiguration$5(java.util.List,com.android.tools.r8.origin.Origin):206:206 -> b
    1:2:void lambda$addProguardConfigurationFiles$3(java.nio.file.Path[]):187:188 -> c
    3:20:void validate():316:333 -> c
    21:36:void validate():331:346 -> c
    1:1:com.android.tools.r8.CompilationMode defaultCompilationMode():132:132 -> d
    1:2:void lambda$addMainDexRulesFiles$1(java.util.Collection):170:171 -> e
    1:1:void internalForceProguardCompatibility():118:118 -> g
    1:7:com.android.tools.r8.R8Command makeR8Command():359:365 -> h
    8:8:void com.android.tools.r8.shaking.ProguardConfigurationParser.<init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):107:107 -> h
    8:8:com.android.tools.r8.R8Command makeR8Command():365 -> h
    9:103:com.android.tools.r8.R8Command makeR8Command():367:461 -> h
    1:2:com.android.tools.r8.R8Command$Builder setDisableMinification(boolean):153:154 -> setDisableMinification
    1:2:com.android.tools.r8.R8Command$Builder setDisableTreeShaking(boolean):142:143 -> setDisableTreeShaking
    1:2:com.android.tools.r8.R8Command$Builder setKeptGraphConsumer(com.android.tools.r8.experimental.graphinfo.GraphConsumer):245:246 -> setKeptGraphConsumer
    1:2:com.android.tools.r8.R8Command$Builder setMainDexKeptGraphConsumer(com.android.tools.r8.experimental.graphinfo.GraphConsumer):255:256 -> setMainDexKeptGraphConsumer
    1:1:com.android.tools.r8.BaseCompilerCommand$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode):59:59 -> setOutput
    2:2:com.android.tools.r8.BaseCompilerCommand$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):59:59 -> setOutput
    3:4:com.android.tools.r8.R8Command$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode):274:275 -> setOutput
    5:5:com.android.tools.r8.R8Command$Builder setOutput(java.nio.file.Path,com.android.tools.r8.OutputMode,boolean):297:297 -> setOutput
    1:2:com.android.tools.r8.R8Command$Builder setProguardMapConsumer(com.android.tools.r8.StringConsumer):235:236 -> setProguardMapConsumer
    1:2:com.android.tools.r8.R8Command$Builder setProguardMapOutputPath(java.nio.file.Path):221:222 -> setProguardMapOutputPath
    3:3:void com.android.tools.r8.StringConsumer$FileConsumer.<init>(java.nio.file.Path):76:76 -> setProguardMapOutputPath
    3:3:com.android.tools.r8.R8Command$Builder setProguardMapOutputPath(java.nio.file.Path):222 -> setProguardMapOutputPath
    4:5:com.android.tools.r8.R8Command$Builder setProguardMapOutputPath(java.nio.file.Path):222:223 -> setProguardMapOutputPath
com.android.tools.r8.R8Command$Builder$1 -> com.android.tools.r8.r:
    com.android.tools.r8.shaking.ProguardConfigurationParser val$parser -> a
    com.android.tools.r8.utils.Reporter val$reporter -> b
    1:1:void <init>(com.android.tools.r8.R8Command$Builder,com.android.tools.r8.shaking.ProguardConfigurationParser,com.android.tools.r8.utils.Reporter):388:388 -> <init>
    1:6:void visit(com.android.tools.r8.DataEntryResource):396:401 -> visit
    7:15:void visit(com.android.tools.r8.DataEntryResource):397:405 -> visit
    16:17:void visit(com.android.tools.r8.DataEntryResource):402:403 -> visit
    18:18:void visit(com.android.tools.r8.DataEntryResource):402:402 -> visit
com.android.tools.r8.R8Command$Builder$DefaultR8DiagnosticsHandler -> com.android.tools.r8.R8Command$Builder$a:
    1:1:void <init>():62:62 -> <init>
    1:1:void <init>(com.android.tools.r8.R8Command$1):62 -> <init>
    1:6:void error(com.android.tools.r8.Diagnostic):66:71 -> error
    7:14:void error(com.android.tools.r8.Diagnostic):69:76 -> error
com.android.tools.r8.R8Command$EnsureNonDexProgramResourceProvider -> com.android.tools.r8.R8Command$a:
    com.android.tools.r8.ProgramResourceProvider provider -> a
    1:2:void <init>(com.android.tools.r8.ProgramResourceProvider):503:504 -> <init>
    1:1:com.android.tools.r8.DataResourceProvider getDataResourceProvider():521:521 -> getDataResourceProvider
    1:4:java.util.Collection getProgramResources():509:512 -> getProgramResources
com.android.tools.r8.R8CommandParser -> com.android.tools.r8.u:
    java.util.Set OPTIONS_WITH_PARAMETER -> a
    java.lang.String USAGE_MESSAGE -> b
    1:30:void <clinit>():18:47 -> <clinit>
    31:31:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getDefault():59:59 -> <clinit>
    31:31:void <clinit>():63 -> <clinit>
    32:32:void <clinit>():63:63 -> <clinit>
    33:33:void <clinit>():50:50 -> <clinit>
    34:34:void <clinit>():48:48 -> <clinit>
    1:1:void <init>():16:16 -> <init>
    1:1:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin):88:88 -> a
    2:2:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.DiagnosticsHandler):102:102 -> a
    3:3:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.R8Command$Builder):106:106 -> a
    4:57:void parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.R8Command$Builder,com.android.tools.r8.R8CommandParser$ParseState):119:172 -> a
    4:57:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.R8Command$Builder):107 -> a
    58:101:void parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.R8Command$Builder,com.android.tools.r8.R8CommandParser$ParseState):169:212 -> a
    58:101:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.R8Command$Builder):107 -> a
    102:107:com.android.tools.r8.R8Command$Builder parse(java.lang.String[],com.android.tools.r8.origin.Origin,com.android.tools.r8.R8Command$Builder):108:113 -> a
com.android.tools.r8.R8CommandParser$1 -> com.android.tools.r8.s:
com.android.tools.r8.R8CommandParser$ParseState -> com.android.tools.r8.t:
    java.nio.file.Path outputPath -> c
    com.android.tools.r8.OutputMode outputMode -> b
    boolean includeDataResources -> e
    com.android.tools.r8.CompilationMode mode -> a
    boolean hasDefinedApiLevel -> d
    1:6:void <init>():39:44 -> <init>
    1:6:void <init>(com.android.tools.r8.R8CommandParser$1):39 -> <init>
    1:1:boolean access$100(com.android.tools.r8.R8CommandParser$ParseState):39:39 -> a
    2:2:boolean access$102(com.android.tools.r8.R8CommandParser$ParseState,boolean):39:39 -> a
com.android.tools.r8.ResourceException -> com.android.tools.r8.ResourceException:
    com.android.tools.r8.origin.Origin origin -> a
    1:2:void <init>(com.android.tools.r8.origin.Origin,java.lang.String):20:21 -> <init>
    3:4:void <init>(com.android.tools.r8.origin.Origin,java.lang.Throwable):25:26 -> <init>
    5:6:void <init>(com.android.tools.r8.origin.Origin,java.lang.String,java.lang.Throwable):30:31 -> <init>
    1:1:com.android.tools.r8.origin.Origin getOrigin():35:35 -> getOrigin
com.android.tools.r8.ResourceShrinker -> com.android.tools.r8.ResourceShrinker:
    1:1:void <init>():95:95 -> <init>
    1:6:void run(com.android.tools.r8.ResourceShrinker$Command,com.android.tools.r8.ResourceShrinker$ReferenceChecker):462:467 -> run
com.android.tools.r8.ResourceShrinker$Builder -> com.android.tools.r8.ResourceShrinker$Builder:
    1:1:void <init>():111:111 -> <init>
    1:1:com.android.tools.r8.BaseCommand makeCommand():110:110 -> a
    2:2:com.android.tools.r8.ResourceShrinker$Command makeCommand():120:120 -> a
    com.android.tools.r8.ResourceShrinker$Builder self() -> b
    1:1:com.android.tools.r8.BaseCommand$Builder self():110:110 -> b
com.android.tools.r8.ResourceShrinker$Command -> com.android.tools.r8.ResourceShrinker$Command:
    1:1:void <init>(com.android.tools.r8.utils.AndroidApp):101:101 -> <init>
    1:1:com.android.tools.r8.utils.InternalOptions getInternalOptions():106:106 -> getInternalOptions
com.android.tools.r8.ResourceShrinker$DexClassUsageVisitor -> com.android.tools.r8.ResourceShrinker$a:
    com.android.tools.r8.graph.DexProgramClass classDef -> a
    com.android.tools.r8.ResourceShrinker$ReferenceChecker callback -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():146:146 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ResourceShrinker$ReferenceChecker):151:153 -> <init>
    1:6:void visit():157:162 -> a
    7:17:void processFieldValue(com.android.tools.r8.graph.DexValue):178:188 -> a
    7:17:void visit():164 -> a
    18:18:void visit():168:168 -> a
    19:32:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):195:208 -> a
    19:32:void visit():169 -> a
    33:50:void processIntConstInstruction(com.android.tools.r8.code.Instruction):332:349 -> a
    33:50:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):209 -> a
    33:50:void visit():169 -> a
    51:51:void processIntConstInstruction(com.android.tools.r8.code.Instruction):346:346 -> a
    51:51:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):209 -> a
    51:51:void visit():169 -> a
    52:52:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):210:210 -> a
    52:52:void visit():169 -> a
    53:66:void processStringConstantInstruction(com.android.tools.r8.code.Instruction):358:371 -> a
    53:66:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):211 -> a
    53:66:void visit():169 -> a
    67:67:void processStringConstantInstruction(com.android.tools.r8.code.Instruction):368:368 -> a
    67:67:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):211 -> a
    67:67:void visit():169 -> a
    68:68:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):212:212 -> a
    68:68:void visit():169 -> a
    69:97:void processGetStatic(com.android.tools.r8.code.Instruction):386:414 -> a
    69:97:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):213 -> a
    69:97:void visit():169 -> a
    98:98:void processGetStatic(com.android.tools.r8.code.Instruction):411:411 -> a
    98:98:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):213 -> a
    98:98:void visit():169 -> a
    99:99:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):214:214 -> a
    99:99:void visit():169 -> a
    100:108:void processInvokeInstruction(com.android.tools.r8.code.Instruction):427:435 -> a
    100:108:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):215 -> a
    100:108:void visit():169 -> a
    109:109:void processInvokeInstruction(com.android.tools.r8.code.Instruction):432:432 -> a
    109:109:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):215 -> a
    109:109:void visit():169 -> a
    110:110:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):216:216 -> a
    110:110:void visit():169 -> a
    111:119:void processInvokeRangeInstruction(com.android.tools.r8.code.Instruction):448:456 -> a
    111:119:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):217 -> a
    111:119:void visit():169 -> a
    120:120:void processInvokeRangeInstruction(com.android.tools.r8.code.Instruction):453:453 -> a
    120:120:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):217 -> a
    120:120:void visit():169 -> a
    121:121:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):218:218 -> a
    121:121:void visit():169 -> a
    122:132:void processFillArray(com.android.tools.r8.code.Instruction[],int,java.util.Set):288:298 -> a
    122:132:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):219 -> a
    122:132:void visit():169 -> a
    133:139:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):220:226 -> a
    133:139:void visit():169 -> a
    140:145:boolean isIntArrayPayload(com.android.tools.r8.code.Instruction,java.util.Set):278:283 -> a
    140:145:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):227 -> a
    140:145:void visit():169 -> a
    146:148:void processIntArrayPayload(com.android.tools.r8.code.Instruction):270:272 -> a
    146:148:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):228 -> a
    146:148:void visit():169 -> a
    149:150:void visit():172:173 -> a
    151:174:void processAnnotations(com.android.tools.r8.graph.DexProgramClass):236:259 -> a
    175:175:java.util.stream.Stream lambda$processAnnotations$0(com.android.tools.r8.graph.DexEncodedField):238:238 -> a
    176:176:java.util.stream.Stream lambda$processAnnotations$2(com.android.tools.r8.graph.DexEncodedMethod):246:246 -> a
    177:179:void lambda$processAnnotations$4(com.android.tools.r8.graph.DexAnnotation):260:262 -> a
    180:194:void processAnnotationValue(com.android.tools.r8.graph.DexValue):302:316 -> a
    195:195:boolean isGetStatic(com.android.tools.r8.code.Instruction):375:375 -> a
    1:1:java.util.stream.Stream lambda$processAnnotations$1(com.android.tools.r8.graph.DexEncodedField):242:242 -> b
    2:2:java.util.stream.Stream lambda$processAnnotations$3(com.android.tools.r8.graph.DexEncodedMethod):250:250 -> b
    3:3:boolean isIntConstInstruction(com.android.tools.r8.code.Instruction):322:322 -> b
    1:1:boolean isInvokeInstruction(com.android.tools.r8.code.Instruction):418:418 -> c
    1:1:boolean isInvokeRangeInstruction(com.android.tools.r8.code.Instruction):439:439 -> d
    1:1:boolean isStringConstInstruction(com.android.tools.r8.code.Instruction):353:353 -> e
com.android.tools.r8.StringConsumer -> com.android.tools.r8.StringConsumer:
    1:1:com.android.tools.r8.StringConsumer$EmptyConsumer emptyConsumer():35:35 -> emptyConsumer
com.android.tools.r8.StringConsumer$EmptyConsumer -> com.android.tools.r8.StringConsumer$EmptyConsumer:
    com.android.tools.r8.StringConsumer$EmptyConsumer EMPTY_CONSUMER -> a
    1:1:void <clinit>():41:41 -> <clinit>
    1:1:void <init>():39:39 -> <init>
    1:1:com.android.tools.r8.StringConsumer$EmptyConsumer access$000():39:39 -> a
com.android.tools.r8.StringConsumer$FileConsumer -> com.android.tools.r8.StringConsumer$FileConsumer:
    java.nio.charset.Charset encoding -> c
    java.nio.file.Path outputPath -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():68:68 -> <clinit>
    1:1:void <init>(java.nio.file.Path):76:76 -> <init>
    2:2:void <init>(java.nio.file.Path,com.android.tools.r8.StringConsumer):81:81 -> <init>
    3:13:void <init>(java.nio.file.Path,com.android.tools.r8.StringConsumer):72:82 -> <init>
    1:7:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):103:109 -> accept
    8:16:void com.android.tools.r8.com.google.common.io.CharSink.write(java.lang.CharSequence):96:104 -> accept
    8:16:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):109 -> accept
    17:19:void com.android.tools.r8.com.google.common.io.CharSink.write(java.lang.CharSequence):102:104 -> accept
    17:19:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):109 -> accept
    20:20:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> accept
    20:20:void com.android.tools.r8.com.google.common.io.CharSink.write(java.lang.CharSequence):94 -> accept
    20:20:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):109 -> accept
    21:22:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):111:112 -> accept
    1:1:java.nio.charset.Charset getEncoding():98:98 -> getEncoding
    1:1:java.nio.file.Path getOutputPath():87:87 -> getOutputPath
    1:2:void setEncoding(java.nio.charset.Charset):92:93 -> setEncoding
com.android.tools.r8.StringConsumer$ForwardingConsumer -> com.android.tools.r8.StringConsumer$a:
    com.android.tools.r8.StringConsumer consumer -> a
    1:2:void <init>(com.android.tools.r8.StringConsumer):55:56 -> <init>
    1:2:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):61:62 -> accept
com.android.tools.r8.StringConsumer$StreamConsumer -> com.android.tools.r8.StringConsumer$b:
    java.nio.charset.Charset encoding -> d
    com.android.tools.r8.origin.Origin origin -> b
    java.io.OutputStream outputStream -> c
    1:1:void <clinit>():124:124 -> <clinit>
    1:1:void <init>(com.android.tools.r8.origin.Origin,java.io.OutputStream):132:132 -> <init>
    2:2:void <init>(com.android.tools.r8.origin.Origin,java.io.OutputStream,com.android.tools.r8.StringConsumer):137:137 -> <init>
    3:14:void <init>(com.android.tools.r8.origin.Origin,java.io.OutputStream,com.android.tools.r8.StringConsumer):128:139 -> <init>
    1:10:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):150:159 -> accept
com.android.tools.r8.StringResource -> com.android.tools.r8.StringResource:
    1:1:com.android.tools.r8.StringResource fromFile(java.nio.file.Path,java.nio.charset.Charset):49:49 -> a
    1:1:com.android.tools.r8.StringResource fromFile(java.nio.file.Path):37:37 -> fromFile
    1:1:com.android.tools.r8.StringResource fromString(java.lang.String,com.android.tools.r8.origin.Origin):26:26 -> fromString
com.android.tools.r8.StringResource$1 -> com.android.tools.r8.v:
com.android.tools.r8.StringResource$FileResource -> com.android.tools.r8.StringResource$a:
    java.nio.charset.Charset charset -> b
    com.android.tools.r8.origin.Origin origin -> c
    java.nio.file.Path file -> a
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():82:82 -> <clinit>
    1:6:void <init>(java.nio.file.Path,java.nio.charset.Charset):87:92 -> <init>
    1:6:void <init>(java.nio.file.Path,java.nio.charset.Charset,com.android.tools.r8.StringResource$1):82 -> <init>
    1:1:com.android.tools.r8.origin.Origin getOrigin():97:97 -> getOrigin
    1:3:java.lang.String getString():103:105 -> getString
com.android.tools.r8.StringResource$StringContentResource -> com.android.tools.r8.StringResource$b:
    com.android.tools.r8.origin.Origin origin -> a
    java.lang.String content -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():60:60 -> <clinit>
    1:5:void <init>(com.android.tools.r8.origin.Origin,java.lang.String):64:68 -> <init>
    1:5:void <init>(com.android.tools.r8.origin.Origin,java.lang.String,com.android.tools.r8.StringResource$1):60 -> <init>
    1:1:com.android.tools.r8.origin.Origin getOrigin():73:73 -> getOrigin
    1:1:java.lang.String getString():78:78 -> getString
com.android.tools.r8.Version -> com.android.tools.r8.Version:
    1:2:void printToolVersion(java.lang.String):20:21 -> a
    3:3:boolean isDev():26:26 -> a
    1:1:java.lang.String getVersionString():32:32 -> getVersionString
com.android.tools.r8.bisect.Bisect -> com.android.tools.r8.bisect.Bisect:
    1:4:com.android.tools.r8.graph.DexProgramClass run(com.android.tools.r8.bisect.BisectState,com.android.tools.r8.bisect.Bisect$Command,java.nio.file.Path,java.util.concurrent.ExecutorService):72:75 -> run
    5:7:void writeApp(com.android.tools.r8.graph.DexApplication,java.nio.file.Path,java.util.concurrent.ExecutorService):178:180 -> run
    5:7:com.android.tools.r8.graph.DexProgramClass run(com.android.tools.r8.bisect.BisectState,com.android.tools.r8.bisect.Bisect$Command,java.nio.file.Path,java.util.concurrent.ExecutorService):78 -> run
    8:8:void com.android.tools.r8.dex.ApplicationWriter.<init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,java.util.List,java.lang.String,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,java.lang.String,com.android.tools.r8.naming.ProguardMapSupplier):141:141 -> run
    8:8:void writeApp(com.android.tools.r8.graph.DexApplication,java.nio.file.Path,java.util.concurrent.ExecutorService):180 -> run
    8:8:com.android.tools.r8.graph.DexProgramClass run(com.android.tools.r8.bisect.BisectState,com.android.tools.r8.bisect.Bisect$Command,java.nio.file.Path,java.util.concurrent.ExecutorService):78 -> run
    9:10:void writeApp(com.android.tools.r8.graph.DexApplication,java.nio.file.Path,java.util.concurrent.ExecutorService):182:183 -> run
    9:10:com.android.tools.r8.graph.DexProgramClass run(com.android.tools.r8.bisect.BisectState,com.android.tools.r8.bisect.Bisect$Command,java.nio.file.Path,java.util.concurrent.ExecutorService):78 -> run
    11:17:com.android.tools.r8.graph.DexProgramClass run(com.android.tools.r8.bisect.BisectState,com.android.tools.r8.bisect.Bisect$Command,java.nio.file.Path,java.util.concurrent.ExecutorService):79:85 -> run
com.android.tools.r8.bisect.BisectOptions$Result -> com.android.tools.r8.bisect.BisectOptions$Result:
    com.android.tools.r8.bisect.BisectOptions$Result UNKNOWN -> a
    1:1:void <clinit>():31:31 -> <clinit>
    1:1:void <init>(java.lang.String,int):31:31 -> <init>
com.android.tools.r8.bisect.BisectState -> com.android.tools.r8.bisect.BisectState:
    com.android.tools.r8.graph.DexApplication badApp -> b
    java.util.Map indexMap -> d
    com.android.tools.r8.bisect.BisectState$Range nextRange -> g
    java.util.List runs -> f
    java.io.File stateFile -> e
    java.util.List sortedGoodClasses -> c
    java.lang.String signature -> a
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():28:28 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexApplication,java.io.File):156:156 -> <init>
    2:20:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexApplication,java.io.File):151:169 -> <init>
    21:21:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexApplication,java.io.File):161:161 -> <init>
    1:1:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):186:186 -> a
    2:22:void setPreviousResult(com.android.tools.r8.bisect.BisectOptions$Result):198:218 -> a
    23:23:void setPreviousResult(com.android.tools.r8.bisect.BisectOptions$Result):199:199 -> a
    24:30:com.android.tools.r8.graph.DexApplication bisect():237:243 -> a
    31:33:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():285:287 -> a
    31:33:com.android.tools.r8.graph.DexApplication bisect():246 -> a
    34:34:boolean com.android.tools.r8.bisect.BisectState$Run.isBad():141:141 -> a
    34:34:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():288 -> a
    34:34:com.android.tools.r8.graph.DexApplication bisect():246 -> a
    35:35:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():289:289 -> a
    35:35:com.android.tools.r8.graph.DexApplication bisect():246 -> a
    36:43:com.android.tools.r8.graph.DexApplication bisect():247:254 -> a
    44:45:com.android.tools.r8.bisect.BisectState$Range com.android.tools.r8.bisect.BisectState$Range.split():85:86 -> a
    44:45:com.android.tools.r8.graph.DexApplication bisect():255 -> a
    46:52:com.android.tools.r8.graph.DexApplication bisect():255:261 -> a
    53:54:com.android.tools.r8.graph.DexProgramClass getGoodClass(com.android.tools.r8.graph.DexProgramClass):277:278 -> a
    53:54:com.android.tools.r8.graph.DexApplication bisect():262 -> a
    55:55:boolean com.android.tools.r8.bisect.BisectState$Range.contains(int):90:90 -> a
    55:55:com.android.tools.r8.graph.DexProgramClass getGoodClass(com.android.tools.r8.graph.DexProgramClass):278 -> a
    55:55:com.android.tools.r8.graph.DexApplication bisect():262 -> a
    56:56:com.android.tools.r8.graph.DexProgramClass getGoodClass(com.android.tools.r8.graph.DexProgramClass):279:279 -> a
    56:56:com.android.tools.r8.graph.DexApplication bisect():262 -> a
    57:66:com.android.tools.r8.graph.DexApplication bisect():264:273 -> a
    67:67:com.android.tools.r8.graph.DexApplication bisect():248:248 -> a
    68:68:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():291:291 -> a
    68:68:com.android.tools.r8.graph.DexApplication bisect():246 -> a
    69:76:com.android.tools.r8.bisect.BisectState$Range com.android.tools.r8.bisect.BisectState$Range.add(com.android.tools.r8.bisect.BisectState$Range):62:69 -> a
    69:76:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():291 -> a
    69:76:com.android.tools.r8.graph.DexApplication bisect():246 -> a
    77:77:com.android.tools.r8.bisect.BisectState$Range getLastBadRange():293:293 -> a
    77:77:com.android.tools.r8.graph.DexApplication bisect():246 -> a
    78:81:java.util.List getSortedClasses(com.android.tools.r8.graph.DexApplication):322:325 -> a
    1:3:com.android.tools.r8.graph.DexProgramClass getFinalClass():229:231 -> b
    4:9:java.lang.String makeSignature(com.android.tools.r8.graph.DexApplication):331:336 -> b
    1:7:void write():305:311 -> c
    8:10:void com.android.tools.r8.bisect.BisectState$Run.write(java.io.Writer):135:137 -> c
    8:10:void write():312 -> c
    11:16:void write():313:318 -> c
    17:27:void write():308:318 -> c
com.android.tools.r8.bisect.BisectState$Range -> com.android.tools.r8.bisect.BisectState$a:
    int end -> b
    boolean $assertionsDisabled -> c
    int start -> a
    1:1:void <clinit>():30:30 -> <clinit>
    1:4:void <init>(int,int):34:37 -> <init>
    5:5:boolean verify():113:113 -> <init>
    5:5:void <init>(int,int):37 -> <init>
    6:6:void <init>(int,int):37:37 -> <init>
    1:3:void write(java.io.Writer):48:50 -> a
    4:4:boolean isEmpty():54:54 -> a
    5:13:com.android.tools.r8.bisect.BisectState$Range sub(com.android.tools.r8.bisect.BisectState$Range):73:81 -> a
    1:1:int size():58:58 -> b
    1:5:boolean equals(java.lang.Object):100:104 -> equals
    1:1:int hashCode():109:109 -> hashCode
    1:1:java.lang.String toString():95:95 -> toString
com.android.tools.r8.bisect.BisectState$Run -> com.android.tools.r8.bisect.BisectState$b:
    boolean good -> a
    boolean $assertionsDisabled -> c
    com.android.tools.r8.bisect.BisectState$Range range -> b
    1:1:void <clinit>():117:117 -> <clinit>
    1:4:void <init>(com.android.tools.r8.bisect.BisectOptions$Result,com.android.tools.r8.bisect.BisectState$Range):121:124 -> <init>
com.android.tools.r8.cf.CfPrinter -> com.android.tools.r8.cf.CfPrinter:
    java.util.List sortedLabels -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap labelToIndex -> c
    boolean $assertionsDisabled -> i
    com.android.tools.r8.naming.ClassNameMapper mapper -> f
    java.util.List localsAtLabel -> d
    int instructionIndexSpace -> h
    int nextInstructionIndex -> g
    java.lang.String indent -> a
    java.lang.StringBuilder builder -> e
    1:1:void <clinit>():86:86 -> <clinit>
    1:1:void <init>():107:107 -> <init>
    2:16:void <init>():100:114 -> <init>
    17:17:void <init>(com.android.tools.r8.graph.CfCode,com.android.tools.r8.naming.ClassNameMapper):118:118 -> <init>
    18:97:void <init>(com.android.tools.r8.graph.CfCode,com.android.tools.r8.naming.ClassNameMapper):100:179 -> <init>
    1:22:java.util.List computeLocalsAtLabels(java.util.List):187:208 -> a
    23:23:boolean lambda$computeLocalsAtLabels$0(int,com.android.tools.r8.graph.CfCode$LocalVariableInfo):192:192 -> a
    24:24:int lambda$computeLocalsAtLabels$1(com.android.tools.r8.graph.CfCode$LocalVariableInfo,com.android.tools.r8.graph.CfCode$LocalVariableInfo):207:207 -> a
    25:26:java.util.List getSortedLocalVariables(com.android.tools.r8.graph.CfCode):214:215 -> a
    27:28:void print(java.lang.String):236:237 -> a
    27:28:void print(com.android.tools.r8.cf.code.CfArrayLength):479 -> a
    29:30:void print(java.lang.String):236:237 -> a
    29:30:void print(com.android.tools.r8.cf.code.CfConstNull):283 -> a
    31:32:void print(java.lang.String):236:237 -> a
    31:32:void print(com.android.tools.r8.cf.code.CfNop):241 -> a
    33:34:void print(java.lang.String):236:237 -> a
    33:34:void print(com.android.tools.r8.cf.code.CfReturnVoid):314 -> a
    35:36:void print(java.lang.String):236:237 -> a
    35:36:void print(com.android.tools.r8.cf.code.CfThrow):279 -> a
    37:66:void print(com.android.tools.r8.cf.code.CfStackInstruction):245:274 -> a
    67:68:void print(java.lang.String):236:237 -> a
    67:68:void print(com.android.tools.r8.cf.code.CfStackInstruction):271 -> a
    69:70:void print(java.lang.String):236:237 -> a
    69:70:void print(com.android.tools.r8.cf.code.CfStackInstruction):268 -> a
    71:72:void print(java.lang.String):236:237 -> a
    71:72:void print(com.android.tools.r8.cf.code.CfStackInstruction):265 -> a
    73:74:void print(java.lang.String):236:237 -> a
    73:74:void print(com.android.tools.r8.cf.code.CfStackInstruction):262 -> a
    75:76:void print(java.lang.String):236:237 -> a
    75:76:void print(com.android.tools.r8.cf.code.CfStackInstruction):259 -> a
    77:78:void print(java.lang.String):236:237 -> a
    77:78:void print(com.android.tools.r8.cf.code.CfStackInstruction):256 -> a
    79:80:void print(java.lang.String):236:237 -> a
    79:80:void print(com.android.tools.r8.cf.code.CfStackInstruction):253 -> a
    81:82:void print(java.lang.String):236:237 -> a
    81:82:void print(com.android.tools.r8.cf.code.CfStackInstruction):250 -> a
    83:84:void print(java.lang.String):236:237 -> a
    83:84:void print(com.android.tools.r8.cf.code.CfStackInstruction):247 -> a
    85:101:void print(com.android.tools.r8.cf.code.CfConstNumber):287:303 -> a
    102:102:void print(com.android.tools.r8.cf.code.CfConstNumber):300:300 -> a
    103:103:void print(com.android.tools.r8.cf.code.CfConstNumber):297:297 -> a
    104:104:void print(com.android.tools.r8.cf.code.CfConstNumber):294:294 -> a
    105:105:void print(com.android.tools.r8.cf.code.CfConstNumber):291:291 -> a
    106:108:void print(com.android.tools.r8.cf.code.CfConstClass):308:310 -> a
    109:109:void print(com.android.tools.r8.cf.code.CfReturn):318:318 -> a
    110:110:void print(com.android.tools.r8.cf.code.CfMonitor):322:322 -> a
    111:112:void print(java.lang.String):236:237 -> a
    111:112:void print(com.android.tools.r8.cf.code.CfMonitor):322 -> a
    113:113:void print(com.android.tools.r8.cf.code.CfArithmeticBinop):326:326 -> a
    114:114:void print(com.android.tools.r8.cf.code.CfCmp):330:330 -> a
    115:115:void print(com.android.tools.r8.cf.code.CfLogicalBinop):334:334 -> a
    116:116:void print(com.android.tools.r8.cf.code.CfNeg):338:338 -> a
    117:117:void print(com.android.tools.r8.cf.code.CfNumberConversion):342:342 -> a
    118:119:void print(com.android.tools.r8.cf.code.CfConstString):346:347 -> a
    120:121:void print(com.android.tools.r8.cf.code.CfDexItemBasedConstString):351:352 -> a
    122:123:void print(com.android.tools.r8.cf.code.CfArrayLoad):356:357 -> a
    124:125:void print(com.android.tools.r8.cf.code.CfArrayStore):361:362 -> a
    126:128:void print(com.android.tools.r8.cf.code.CfInvoke):366:368 -> a
    129:132:void print(com.android.tools.r8.cf.code.CfInvokeDynamic):372:375 -> a
    133:152:void print(com.android.tools.r8.cf.code.CfFrame):379:398 -> a
    153:156:void print(com.android.tools.r8.cf.code.CfFrame$FrameType):402:405 -> a
    157:160:void appendType(com.android.tools.r8.graph.DexType):688:691 -> a
    157:160:void print(com.android.tools.r8.cf.code.CfFrame$FrameType):405 -> a
    161:161:void appendType(com.android.tools.r8.graph.DexType):689:689 -> a
    161:161:void print(com.android.tools.r8.cf.code.CfFrame$FrameType):405 -> a
    162:162:void print(com.android.tools.r8.cf.code.CfFrame$FrameType):407:407 -> a
    163:165:void print(com.android.tools.r8.cf.code.CfInstanceOf):412:414 -> a
    166:168:void print(com.android.tools.r8.cf.code.CfCheckCast):418:420 -> a
    169:184:void print(com.android.tools.r8.cf.code.CfFieldInstruction):424:439 -> a
    185:185:void print(com.android.tools.r8.cf.code.CfFieldInstruction):430:430 -> a
    186:195:void print(com.android.tools.r8.cf.code.CfFieldInstruction):427:436 -> a
    196:204:void print(com.android.tools.r8.cf.code.CfFieldInstruction):433:441 -> a
    205:210:void appendField(com.android.tools.r8.graph.DexField):709:714 -> a
    205:210:void print(com.android.tools.r8.cf.code.CfFieldInstruction):441 -> a
    211:212:void print(com.android.tools.r8.cf.code.CfFieldInstruction):442:443 -> a
    213:217:void appendDescriptor(com.android.tools.r8.graph.DexType):680:684 -> a
    213:217:void print(com.android.tools.r8.cf.code.CfFieldInstruction):443 -> a
    218:220:void print(com.android.tools.r8.cf.code.CfNew):447:449 -> a
    221:234:void print(com.android.tools.r8.cf.code.CfNewArray):453:466 -> a
    235:238:void print(com.android.tools.r8.cf.code.CfMultiANewArray):472:475 -> a
    239:249:void print(com.android.tools.r8.cf.code.CfLabel):483:493 -> a
    250:250:void print(com.android.tools.r8.cf.code.CfLabel):491:491 -> a
    251:251:void print(com.android.tools.r8.cf.code.CfLabel):489:489 -> a
    252:256:void print(com.android.tools.r8.cf.code.CfPosition):498:502 -> a
    257:258:void print(com.android.tools.r8.cf.code.CfGoto):507:508 -> a
    259:263:void print(com.android.tools.r8.cf.code.CfIf):516:520 -> a
    264:264:java.lang.String ifPostfix(com.android.tools.r8.ir.code.If$Type):512:512 -> a
    264:264:void print(com.android.tools.r8.cf.code.CfIf):520 -> a
    265:267:void print(com.android.tools.r8.cf.code.CfIf):520:522 -> a
    268:271:void print(com.android.tools.r8.cf.code.CfIfCmp):526:529 -> a
    272:272:java.lang.String ifPostfix(com.android.tools.r8.ir.code.If$Type):512:512 -> a
    272:272:void print(com.android.tools.r8.cf.code.CfIfCmp):529 -> a
    273:275:void print(com.android.tools.r8.cf.code.CfIfCmp):529:531 -> a
    276:293:void print(com.android.tools.r8.cf.code.CfSwitch):535:552 -> a
    294:294:void print(com.android.tools.r8.cf.code.CfLoad):556:556 -> a
    295:295:void print(com.android.tools.r8.cf.code.CfStore):560:560 -> a
    296:301:void print(com.android.tools.r8.cf.code.CfIinc):564:569 -> a
    302:303:void printPrefixed(com.android.tools.r8.ir.code.ValueType,java.lang.String,int):573:574 -> a
    304:316:char typePrefix(com.android.tools.r8.ir.code.ValueType):578:590 -> a
    317:336:char typePrefix(com.android.tools.r8.ir.code.MemberType):595:614 -> a
    337:339:void print(com.android.tools.r8.cf.code.CfConstMethodHandle):637:639 -> a
    340:342:void print(com.android.tools.r8.cf.code.CfConstMethodType):643:645 -> a
    343:345:void indent():665:667 -> a
    346:346:void appendComment(java.lang.String):676:676 -> a
    347:355:void appendClass(com.android.tools.r8.graph.DexType):696:704 -> a
    356:356:void appendClass(com.android.tools.r8.graph.DexType):703:703 -> a
    357:357:void appendClass(com.android.tools.r8.graph.DexType):702:702 -> a
    358:365:void appendMethod(com.android.tools.r8.graph.DexMethod):718:725 -> a
    366:366:java.lang.String opcodeName(int):729:729 -> a
    1:13:int lambda$getSortedLocalVariables$2(com.android.tools.r8.graph.CfCode$LocalVariableInfo,com.android.tools.r8.graph.CfCode$LocalVariableInfo):218:230 -> b
    14:15:void print(java.lang.String):236:237 -> b
    16:16:java.lang.String getLabel(com.android.tools.r8.cf.code.CfLabel):649:649 -> b
    17:18:void instructionIndex():659:660 -> b
    1:2:void newline():653:654 -> c
    1:1:java.lang.String toString():734:734 -> toString
com.android.tools.r8.cf.CfRegisterAllocator -> com.android.tools.r8.cf.b:
    boolean $assertionsDisabled -> n
    int maxRegisterNumber -> l
    com.android.tools.r8.graph.AppView appView -> a
    int maxArgumentRegisterNumber -> m
    int nextUnusedRegisterNumber -> k
    com.android.tools.r8.ir.code.IRCode code -> b
    com.android.tools.r8.cf.TypeVerificationHelper typeHelper -> c
    java.util.PriorityQueue unhandled -> i
    java.util.NavigableSet freeRegisters -> j
    java.util.Map liveAtEntrySets -> d
    java.util.List liveIntervals -> f
    java.util.List inactive -> h
    java.util.List active -> g
    java.util.Map lazyTypeInfoAtBlockEntry -> e
    1:1:void <clinit>():59:59 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.cf.TypeVerificationHelper):117:117 -> <init>
    2:29:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.cf.TypeVerificationHelper):93:120 -> <init>
    1:5:int getRegisterForValue(com.android.tools.r8.ir.code.Value):134:138 -> a
    6:27:int getNextFreeRegister(boolean):267:288 -> a
    28:31:void freeRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):292:295 -> a
    32:32:void assignRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int):353:353 -> a
    32:32:void assignRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):337 -> a
    33:34:void assignRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):338:339 -> a
    35:38:void updateRegisterState(int,boolean):346:349 -> a
    35:38:void assignRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):339 -> a
    39:43:void updateHints(com.android.tools.r8.ir.regalloc.LiveIntervals):308:312 -> a
    39:43:void assignRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):340 -> a
    44:44:void assignRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):341:341 -> a
    45:49:void addToLiveAtEntrySet(com.android.tools.r8.ir.code.BasicBlock,java.util.Collection):357:361 -> a
    50:50:com.android.tools.r8.cf.CfRegisterAllocator$TypesAtBlockEntry getTypesAtBlockEntry(com.android.tools.r8.ir.code.BasicBlock):367:367 -> a
    51:62:void updateFirstRegisterMapByJoiningTheSecond(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):582:593 -> a
    63:72:void updateFirstStackByJoiningTheSecond(java.util.List,java.util.List):600:609 -> a
    1:12:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):532:543 -> addNewBlockToShareIdenticalSuffix
    13:16:void applyInstructionsToTypes(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.Deque,int):475:478 -> addNewBlockToShareIdenticalSuffix
    13:16:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):542 -> addNewBlockToShareIdenticalSuffix
    17:44:boolean tryApplyInstructionWithDependentOutType(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.Deque):436:463 -> addNewBlockToShareIdenticalSuffix
    17:44:void applyInstructionsToTypes(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.Deque,int):480 -> addNewBlockToShareIdenticalSuffix
    17:44:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):542 -> addNewBlockToShareIdenticalSuffix
    45:65:void applyInstructionsToTypes(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.Deque,int):483:503 -> addNewBlockToShareIdenticalSuffix
    45:65:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):542 -> addNewBlockToShareIdenticalSuffix
    66:72:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):548:554 -> addNewBlockToShareIdenticalSuffix
    73:73:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet.<init>(int):95:95 -> addNewBlockToShareIdenticalSuffix
    73:73:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):554 -> addNewBlockToShareIdenticalSuffix
    74:74:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):555:555 -> addNewBlockToShareIdenticalSuffix
    75:88:void applyInstructionsBackwardsToRegisterLiveness(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet,int):510:523 -> addNewBlockToShareIdenticalSuffix
    75:88:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):556 -> addNewBlockToShareIdenticalSuffix
    89:98:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):562:571 -> addNewBlockToShareIdenticalSuffix
    99:104:void addNewBlockToShareIdenticalSuffix(com.android.tools.r8.ir.code.BasicBlock,int,java.util.List):570:575 -> addNewBlockToShareIdenticalSuffix
    1:8:void computeNeedsRegister():166:173 -> allocateRegisters
    1:8:void allocateRegisters():153 -> allocateRegisters
    9:12:com.android.tools.r8.com.google.common.collect.ImmutableList computeLivenessInformation():179:182 -> allocateRegisters
    9:12:void allocateRegisters():154 -> allocateRegisters
    13:13:com.android.tools.r8.com.google.common.collect.ImmutableList computeLivenessInformation():181:181 -> allocateRegisters
    13:13:void allocateRegisters():154 -> allocateRegisters
    14:54:void performLinearScan():187:227 -> allocateRegisters
    14:54:void allocateRegisters():155 -> allocateRegisters
    55:63:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals):319:327 -> allocateRegisters
    55:63:void performLinearScan():234 -> allocateRegisters
    55:63:void allocateRegisters():155 -> allocateRegisters
    64:64:void performLinearScan():236:236 -> allocateRegisters
    64:64:void allocateRegisters():155 -> allocateRegisters
    65:90:void performLinearScan():235:260 -> allocateRegisters
    65:90:void allocateRegisters():155 -> allocateRegisters
    91:91:void performLinearScan():255:255 -> allocateRegisters
    91:91:void allocateRegisters():155 -> allocateRegisters
    92:93:void allocateRegisters():160:161 -> allocateRegisters
    1:4:void takeRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):300:303 -> b
    5:16:com.android.tools.r8.cf.CfRegisterAllocator$TypesAtBlockEntry lambda$getTypesAtBlockEntry$0(com.android.tools.r8.ir.code.BasicBlock):370:381 -> b
    1:1:int getArgumentOrAllocateRegisterForValue(com.android.tools.r8.ir.code.Value,int):143:143 -> getArgumentOrAllocateRegisterForValue
    1:1:int getRegisterForValue(com.android.tools.r8.ir.code.Value,int):130:130 -> getRegisterForValue
    1:23:boolean hasEqualTypesAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):403:425 -> hasEqualTypesAtEntry
    1:12:void mergeBlocks(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):387:398 -> mergeBlocks
    1:1:com.android.tools.r8.utils.InternalOptions options():148:148 -> options
    1:1:int registersUsed():125:125 -> registersUsed
com.android.tools.r8.cf.CfRegisterAllocator$TypesAtBlockEntry -> com.android.tools.r8.cf.a:
    java.util.List stack -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap registers -> a
    1:3:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.List):72:74 -> <init>
    1:11:java.lang.String toString():79:89 -> toString
com.android.tools.r8.cf.FixedLocalValue -> com.android.tools.r8.cf.c:
    com.android.tools.r8.ir.code.Phi phi -> r
    1:2:void <init>(com.android.tools.r8.ir.code.Phi):21:22 -> <init>
    boolean isConstant() -> A
    1:1:com.android.tools.r8.ir.code.Phi getPhi():30:30 -> Y
    1:1:int getRegister(com.android.tools.r8.cf.CfRegisterAllocator):26:26 -> a
    2:2:int com.android.tools.r8.cf.CfRegisterAllocator.getRegisterForValue(com.android.tools.r8.ir.code.Value,int):130:130 -> a
    2:2:int getRegister(com.android.tools.r8.cf.CfRegisterAllocator):26 -> a
    1:1:java.lang.String toString():45:45 -> toString
com.android.tools.r8.cf.LoadStoreHelper -> com.android.tools.r8.cf.e:
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Map clonableConstants -> d
    boolean $assertionsDisabled -> f
    com.android.tools.r8.ir.code.IRCode code -> b
    com.android.tools.r8.cf.TypeVerificationHelper typesHelper -> c
    java.util.ListIterator blockIterator -> e
    1:1:void <clinit>():33:33 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.cf.TypeVerificationHelper):43:43 -> <init>
    2:9:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.cf.TypeVerificationHelper):39:46 -> <init>
    1:11:void insertLoadsAndStores():101:111 -> a
    12:32:void insertPhiMoves(com.android.tools.r8.cf.CfRegisterAllocator):116:136 -> a
    33:44:void movePhis(java.util.List,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):244:255 -> a
    33:44:void insertPhiMoves(com.android.tools.r8.cf.CfRegisterAllocator):136 -> a
    45:47:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.InstructionListIterator):287:289 -> a
    45:47:void movePhis(java.util.List,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):255 -> a
    45:47:void insertPhiMoves(com.android.tools.r8.cf.CfRegisterAllocator):136 -> a
    48:48:void movePhis(java.util.List,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):256:256 -> a
    48:48:void insertPhiMoves(com.android.tools.r8.cf.CfRegisterAllocator):136 -> a
    49:52:void insertPhiMoves(com.android.tools.r8.cf.CfRegisterAllocator):138:141 -> a
    53:53:com.android.tools.r8.ir.code.StackValue createStackValue(com.android.tools.r8.ir.code.Value,int):145:145 -> a
    54:54:com.android.tools.r8.ir.code.StackValue createStackValue(com.android.tools.r8.graph.DexType,int):149:149 -> a
    54:54:void popOutType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):213 -> a
    55:55:void popOutType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):213:213 -> a
    56:64:void loadInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):154:162 -> a
    65:65:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):282:282 -> a
    65:65:void loadInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):163 -> a
    66:68:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.InstructionListIterator):287:289 -> a
    66:68:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):282 -> a
    66:68:void loadInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):163 -> a
    69:69:void loadInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):165:165 -> a
    70:70:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):282:282 -> a
    70:70:void loadInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):165 -> a
    71:73:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.InstructionListIterator):287:289 -> a
    71:73:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):282 -> a
    71:73:void loadInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):165 -> a
    74:76:void loadInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):167:169 -> a
    77:83:void popOutValue(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):222:228 -> a
    84:86:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.InstructionListIterator):287:289 -> a
    84:86:void popOutValue(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):228 -> a
    87:103:com.android.tools.r8.ir.code.Instruction load(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Value):261:277 -> a
    104:106:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.InstructionListIterator):287:289 -> a
    1:4:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):173:176 -> b
    5:5:boolean canRemoveConstInstruction(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.BasicBlock):95:95 -> b
    5:5:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):176 -> b
    6:13:boolean hasLocalInfoOrUsersOutsideThisBlock(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock):50:57 -> b
    6:13:boolean canRemoveConstInstruction(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.BasicBlock):96 -> b
    6:13:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):176 -> b
    14:14:boolean canRemoveConstInstruction(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.BasicBlock):97:97 -> b
    14:14:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):176 -> b
    15:33:boolean isConstInstructionAlwaysThreeBytes(com.android.tools.r8.ir.code.ConstInstruction):65:83 -> b
    15:33:boolean canRemoveConstInstruction(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.BasicBlock):97 -> b
    15:33:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):176 -> b
    34:34:boolean isConstInstructionAlwaysThreeBytes(com.android.tools.r8.ir.code.ConstInstruction):79:79 -> b
    34:34:boolean canRemoveConstInstruction(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.BasicBlock):97 -> b
    34:34:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):176 -> b
    35:51:boolean isConstInstructionAlwaysThreeBytes(com.android.tools.r8.ir.code.ConstInstruction):74:90 -> b
    35:51:boolean canRemoveConstInstruction(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.BasicBlock):97 -> b
    35:51:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):176 -> b
    52:52:boolean isConstInstructionAlwaysThreeBytes(com.android.tools.r8.ir.code.ConstInstruction):86:86 -> b
    52:52:boolean canRemoveConstInstruction(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.BasicBlock):97 -> b
    52:52:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):176 -> b
    53:54:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):177:178 -> b
    55:65:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):177:187 -> b
    66:66:com.android.tools.r8.ir.code.StackValue createStackValue(com.android.tools.r8.ir.code.Value,int):145:145 -> b
    66:66:void popOutValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):217 -> b
    66:66:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):187 -> b
    67:67:void popOutValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):217:217 -> b
    67:67:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):187 -> b
    68:83:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):190:205 -> b
    84:86:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.InstructionListIterator):287:289 -> b
    84:86:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):205 -> b
    87:89:void storeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):206:208 -> b
com.android.tools.r8.cf.LoadStoreHelper$PhiMove -> com.android.tools.r8.cf.d:
    com.android.tools.r8.ir.code.Phi phi -> a
    com.android.tools.r8.ir.code.Value operand -> b
    1:3:void <init>(com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.Value):235:237 -> <init>
com.android.tools.r8.cf.TypeVerificationHelper -> com.android.tools.r8.cf.k:
    boolean computingVerificationTypes -> i
    boolean $assertionsDisabled -> j
    com.android.tools.r8.graph.AppView appView -> e
    com.android.tools.r8.ir.code.IRCode code -> f
    com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo DOUBLE -> d
    com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo LONG -> c
    com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo FLOAT -> b
    com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo INT -> a
    java.util.Map types -> g
    java.util.Map newInstanceInfos -> h
    1:1:void <clinit>():36:36 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):116:116 -> <init>
    2:15:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):111:124 -> <init>
    1:17:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo createInitializedType(com.android.tools.r8.graph.DexType):128:144 -> a
    18:23:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo createInitializedType(com.android.tools.r8.graph.DexType):140:145 -> a
    24:27:com.android.tools.r8.graph.DexType getDexType(com.android.tools.r8.ir.code.Value):149:152 -> a
    28:33:com.android.tools.r8.graph.DexType join(java.util.Set):181:186 -> a
    34:34:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getLatticeElement(com.android.tools.r8.graph.DexType):220:220 -> a
    34:34:com.android.tools.r8.graph.DexType join(java.util.Set):186 -> a
    35:36:com.android.tools.r8.graph.DexType join(java.util.Set):187:188 -> a
    37:37:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getLatticeElement(com.android.tools.r8.graph.DexType):220:220 -> a
    37:37:com.android.tools.r8.graph.DexType join(java.util.Set):188 -> a
    38:48:com.android.tools.r8.graph.DexType join(java.util.Set):188:198 -> a
    49:49:com.android.tools.r8.graph.DexType join(java.util.Set):197:197 -> a
    50:60:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo join(com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):206:216 -> a
    61:125:java.util.Map computeVerificationTypes():224:288 -> a
    126:128:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.ir.code.Value):314:316 -> a
    126:128:java.util.Map computeVerificationTypes():289 -> a
    129:148:java.util.Map computeVerificationTypes():291:310 -> a
    149:154:void addUsers(com.android.tools.r8.ir.code.Value,java.util.Set):320:325 -> a
    1:19:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo getTypeInfo(com.android.tools.r8.ir.code.Value):156:174 -> b
    20:20:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo getTypeInfo(com.android.tools.r8.ir.code.Value):172:172 -> b
    21:21:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo getTypeInfo(com.android.tools.r8.ir.code.Value):170:170 -> b
    22:22:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo getTypeInfo(com.android.tools.r8.ir.code.Value):168:168 -> b
    23:23:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo getTypeInfo(com.android.tools.r8.ir.code.Value):166:166 -> b
    24:24:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo getTypeInfo(com.android.tools.r8.ir.code.Value):164:164 -> b
com.android.tools.r8.cf.TypeVerificationHelper$1 -> com.android.tools.r8.cf.f:
    int[] $SwitchMap$com$android$tools$r8$ir$code$ValueType -> a
    1:1:void <clinit>():162:162 -> <clinit>
com.android.tools.r8.cf.TypeVerificationHelper$InitializedTypeInfo -> com.android.tools.r8.cf.g:
    com.android.tools.r8.graph.DexType type -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():42:42 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexType):45:47 -> <init>
    1:3:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.cf.TypeVerificationHelper$1):42 -> <init>
    1:1:com.android.tools.r8.graph.DexType getDexType():52:52 -> a
    1:1:java.lang.String toString():57:57 -> toString
com.android.tools.r8.cf.TypeVerificationHelper$NewInstanceInfo -> com.android.tools.r8.cf.h:
    com.android.tools.r8.ir.code.NewInstance newInstance -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():61:61 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.NewInstance):64:66 -> <init>
    1:1:com.android.tools.r8.graph.DexType getDexType():71:71 -> a
    1:1:java.lang.String toString():76:76 -> toString
    2:2:com.android.tools.r8.graph.DexType getDexType():71:71 -> toString
    2:2:java.lang.String toString():76 -> toString
    3:3:java.lang.String toString():76:76 -> toString
com.android.tools.r8.cf.TypeVerificationHelper$ThisInstanceInfo -> com.android.tools.r8.cf.i:
    com.android.tools.r8.ir.code.Argument thisArgument -> b
    com.android.tools.r8.graph.DexType type -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():80:80 -> <clinit>
    1:5:void <init>(com.android.tools.r8.ir.code.Argument,com.android.tools.r8.graph.DexType):84:88 -> <init>
    1:1:com.android.tools.r8.graph.DexType getDexType():93:93 -> a
    1:1:java.lang.String toString():98:98 -> toString
    2:2:com.android.tools.r8.graph.DexType getDexType():93:93 -> toString
    2:2:java.lang.String toString():98 -> toString
    3:3:java.lang.String toString():98:98 -> toString
com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo -> com.android.tools.r8.cf.j:
    com.android.tools.r8.graph.DexType getDexType() -> a
com.android.tools.r8.cf.code.CfArithmeticBinop -> com.android.tools.r8.cf.code.CfArithmeticBinop:
    com.android.tools.r8.ir.code.NumericType type -> b
    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode opcode -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():17:17 -> <clinit>
    1:5:void <init>(com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode,com.android.tools.r8.ir.code.NumericType):30:34 -> <init>
    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):80:80 -> a
    2:2:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):78:78 -> a
    3:3:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):76:76 -> a
    4:4:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):74:74 -> a
    5:5:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):72:72 -> a
    6:6:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):70:70 -> a
    7:7:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):68:68 -> a
    8:8:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):66:66 -> a
    9:9:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):64:64 -> a
    10:10:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):62:62 -> a
    11:11:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):60:60 -> a
    12:12:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):58:58 -> a
    13:13:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):56:56 -> a
    14:14:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):54:54 -> a
    15:15:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):52:52 -> a
    16:16:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):50:50 -> a
    17:17:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):48:48 -> a
    18:18:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):46:46 -> a
    19:19:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):44:44 -> a
    20:20:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):42:42 -> a
    21:21:com.android.tools.r8.cf.code.CfArithmeticBinop fromAsm(int):40:40 -> a
    22:22:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):121:121 -> a
    23:43:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):132:152 -> a
    44:44:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):149:149 -> a
    45:45:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):146:146 -> a
    46:46:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):143:143 -> a
    47:47:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):140:140 -> a
    48:48:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):137:137 -> a
    1:1:boolean canThrow():126:126 -> c
    1:13:int getAsmOpcode():85:97 -> getAsmOpcode
    14:14:int getAsmOpcode():95:95 -> getAsmOpcode
    15:15:int getAsmOpcode():93:93 -> getAsmOpcode
    16:16:int getAsmOpcode():91:91 -> getAsmOpcode
    17:17:int getAsmOpcode():89:89 -> getAsmOpcode
    18:18:int getAsmOpcode():87:87 -> getAsmOpcode
    1:1:int getAsmOpcodeTypeOffset():102:102 -> j
    1:1:void print(com.android.tools.r8.cf.CfPrinter):116:116 -> print
com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode -> com.android.tools.r8.cf.code.CfArithmeticBinop$a:
    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode[] $VALUES -> f
    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode Sub -> b
    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode Add -> a
    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode Rem -> e
    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode Div -> d
    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode Mul -> c
    1:5:void <clinit>():20:24 -> <clinit>
    6:6:void <clinit>():19:19 -> <clinit>
    1:1:void <init>(java.lang.String,int):19:19 -> <init>
com.android.tools.r8.cf.code.CfArrayLength -> com.android.tools.r8.cf.code.a:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():15:15 -> <clinit>
    1:1:void <init>():15:15 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):19:19 -> a
    2:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):34:37 -> a
    6:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):36:36 -> a
    boolean canThrow() -> c
    1:1:void print(com.android.tools.r8.cf.CfPrinter):24:24 -> print
com.android.tools.r8.cf.code.CfArrayLoad -> com.android.tools.r8.cf.code.b:
    boolean $assertionsDisabled -> b
    com.android.tools.r8.ir.code.MemberType type -> a
    1:1:void <clinit>():18:18 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.MemberType):22:24 -> <init>
    1:20:int getLoadType():32:51 -> a
    1:20:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):57 -> a
    21:21:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):57:57 -> a
    22:33:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):72:83 -> a
    boolean canThrow() -> c
    1:1:com.android.tools.r8.ir.code.MemberType getType():28:28 -> getType
    1:1:void print(com.android.tools.r8.cf.CfPrinter):62:62 -> print
com.android.tools.r8.cf.code.CfArrayStore -> com.android.tools.r8.cf.code.CfArrayStore:
    com.android.tools.r8.ir.code.MemberType type -> a
    1:2:void <init>(com.android.tools.r8.ir.code.MemberType):21:22 -> <init>
    1:20:int getStoreType():30:49 -> a
    1:20:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):55 -> a
    21:21:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):55:55 -> a
    22:25:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):70:73 -> a
    boolean canThrow() -> c
    1:1:com.android.tools.r8.ir.code.MemberType getType():26:26 -> getType
    1:1:void print(com.android.tools.r8.cf.CfPrinter):60:60 -> print
com.android.tools.r8.cf.code.CfCheckCast -> com.android.tools.r8.cf.code.CfCheckCast:
    com.android.tools.r8.graph.DexType type -> a
    1:2:void <init>(com.android.tools.r8.graph.DexType):21:22 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):31:31 -> a
    2:2:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):41:41 -> a
    3:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):52:54 -> a
    boolean canThrow() -> c
    1:1:com.android.tools.r8.graph.DexType getType():26:26 -> getType
    1:1:void print(com.android.tools.r8.cf.CfPrinter):36:36 -> print
com.android.tools.r8.cf.code.CfCmp -> com.android.tools.r8.cf.code.c:
    com.android.tools.r8.ir.code.Cmp$Bias bias -> a
    com.android.tools.r8.ir.code.NumericType type -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():19:19 -> <clinit>
    1:8:void <init>(com.android.tools.r8.ir.code.Cmp$Bias,com.android.tools.r8.ir.code.NumericType):24:31 -> <init>
    1:1:com.android.tools.r8.cf.code.CfCmp fromAsm(int):47:47 -> a
    2:2:com.android.tools.r8.cf.code.CfCmp fromAsm(int):45:45 -> a
    3:3:com.android.tools.r8.cf.code.CfCmp fromAsm(int):43:43 -> a
    4:4:com.android.tools.r8.cf.code.CfCmp fromAsm(int):41:41 -> a
    5:5:com.android.tools.r8.cf.code.CfCmp fromAsm(int):39:39 -> a
    6:6:com.android.tools.r8.cf.code.CfCmp fromAsm(int):37:37 -> a
    7:7:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):71:71 -> a
    8:10:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):76:78 -> a
    1:9:int getAsmOpcode():52:60 -> getAsmOpcode
    10:10:int getAsmOpcode():58:58 -> getAsmOpcode
    11:11:int getAsmOpcode():56:56 -> getAsmOpcode
    1:1:void print(com.android.tools.r8.cf.CfPrinter):66:66 -> print
com.android.tools.r8.cf.code.CfConstClass -> com.android.tools.r8.cf.code.CfConstClass:
    com.android.tools.r8.graph.DexType type -> a
    1:2:void <init>(com.android.tools.r8.graph.DexType):21:22 -> <init>
    1:22:java.lang.String getInternalName(com.android.tools.r8.naming.NamingLens):45:66 -> a
    1:22:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):31 -> a
    23:23:java.lang.String getInternalName(com.android.tools.r8.naming.NamingLens):48:48 -> a
    23:23:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):31 -> a
    24:24:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):31:31 -> a
    25:25:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):72:72 -> a
    26:26:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):77:77 -> a
    boolean canThrow() -> c
    1:1:com.android.tools.r8.graph.DexType getType():26:26 -> getType
    1:1:void print(com.android.tools.r8.cf.CfPrinter):36:36 -> print
com.android.tools.r8.cf.code.CfConstMethodHandle -> com.android.tools.r8.cf.code.d:
    com.android.tools.r8.graph.DexMethodHandle handle -> a
    1:2:void <init>(com.android.tools.r8.graph.DexMethodHandle):21:22 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):31:31 -> a
    2:2:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):41:41 -> a
    3:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):52:53 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):52:52 -> a
    boolean canThrow() -> c
    1:1:com.android.tools.r8.graph.DexMethodHandle getHandle():26:26 -> j
    1:1:void print(com.android.tools.r8.cf.CfPrinter):36:36 -> print
com.android.tools.r8.cf.code.CfConstMethodType -> com.android.tools.r8.cf.code.e:
    com.android.tools.r8.graph.DexProto type -> a
    1:2:void <init>(com.android.tools.r8.graph.DexProto):21:22 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):31:31 -> a
    2:2:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):41:41 -> a
    3:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):52:53 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):52:52 -> a
    boolean canThrow() -> c
    1:1:com.android.tools.r8.graph.DexProto getType():26:26 -> getType
    1:1:void print(com.android.tools.r8.cf.CfPrinter):36:36 -> print
com.android.tools.r8.cf.code.CfConstNull -> com.android.tools.r8.cf.code.CfConstNull:
    1:1:void <init>():15:15 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):19:19 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):29:29 -> a
    1:1:void print(com.android.tools.r8.cf.CfPrinter):24:24 -> print
com.android.tools.r8.cf.code.CfConstNumber -> com.android.tools.r8.cf.code.CfConstNumber:
    com.android.tools.r8.ir.code.ValueType type -> b
    long value -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():16:16 -> <clinit>
    1:3:void <init>(long,com.android.tools.r8.ir.code.ValueType):21:23 -> <init>
    1:53:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):56:108 -> a
    54:61:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):96:103 -> a
    62:64:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):98:100 -> a
    65:69:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):73:77 -> a
    70:85:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):75:90 -> a
    86:88:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):85:87 -> a
    89:97:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):59:67 -> a
    98:98:boolean isNegativeZeroDouble(double):113:113 -> a
    99:99:boolean isNegativeZeroFloat(float):117:117 -> a
    100:100:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):127:127 -> a
    1:1:long getRawValue():31:31 -> getRawValue
    1:1:com.android.tools.r8.ir.code.ValueType getType():27:27 -> getType
    1:2:double getDoubleValue():50:51 -> j
    1:2:float getFloatValue():45:46 -> k
    1:2:int getIntValue():35:36 -> l
    1:2:long getLongValue():40:41 -> m
    1:1:void print(com.android.tools.r8.cf.CfPrinter):122:122 -> print
com.android.tools.r8.cf.code.CfConstString -> com.android.tools.r8.cf.code.CfConstString:
    com.android.tools.r8.graph.DexString string -> a
    1:2:void <init>(com.android.tools.r8.graph.DexString):18:19 -> <init>
    com.android.tools.r8.cf.code.CfConstString asConstString() -> a
    1:1:void setString(com.android.tools.r8.graph.DexString):27:27 -> a
    2:2:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):42:42 -> a
    3:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):58:59 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):58:58 -> a
    boolean canThrow() -> c
    boolean isConstString() -> g
    1:1:com.android.tools.r8.graph.DexString getString():23:23 -> getString
    1:1:void print(com.android.tools.r8.cf.CfPrinter):47:47 -> print
com.android.tools.r8.cf.code.CfDexItemBasedConstString -> com.android.tools.r8.cf.code.f:
    com.android.tools.r8.graph.DexReference item -> a
    com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo classNameComputationInfo -> b
    1:3:void <init>(com.android.tools.r8.graph.DexReference,com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo):24:26 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):49:49 -> a
    2:3:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):66:67 -> a
    4:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):73:74 -> a
    6:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):73:73 -> a
    com.android.tools.r8.cf.code.CfDexItemBasedConstString asDexItemBasedConstString() -> b
    boolean canThrow() -> c
    boolean isDexItemBasedConstString() -> h
    1:1:com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo getClassNameComputationInfo():34:34 -> j
    1:1:com.android.tools.r8.graph.DexReference getItem():30:30 -> k
    1:1:void print(com.android.tools.r8.cf.CfPrinter):55:55 -> print
com.android.tools.r8.cf.code.CfFieldInstruction -> com.android.tools.r8.cf.code.CfFieldInstruction:
    com.android.tools.r8.graph.DexField field -> b
    com.android.tools.r8.graph.DexField declaringField -> c
    boolean $assertionsDisabled -> d
    int opcode -> a
    1:1:void <clinit>():19:19 -> <clinit>
    1:5:void <init>(int,com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):25:29 -> <init>
    1:4:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):42:45 -> a
    5:19:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):55:69 -> a
    20:20:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):60:60 -> a
    21:30:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):57:66 -> a
    31:31:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):63:63 -> a
    32:59:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):80:107 -> a
    60:62:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):101:103 -> a
    63:64:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):95:96 -> a
    65:66:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):89:90 -> a
    67:67:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):84:84 -> a
    boolean canThrow() -> c
    1:1:com.android.tools.r8.graph.DexField getField():33:33 -> getField
    1:1:int getOpcode():37:37 -> getOpcode
    1:1:void print(com.android.tools.r8.cf.CfPrinter):50:50 -> print
com.android.tools.r8.cf.code.CfFrame -> com.android.tools.r8.cf.code.m:
    java.util.List stack -> b
    boolean $assertionsDisabled -> c
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap locals -> a
    1:1:void <clinit>():22:22 -> <clinit>
    1:5:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap,java.util.List):196:200 -> <init>
    1:1:int computeStackCount():221:221 -> a
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):213 -> a
    2:8:java.lang.Object[] computeStackTypes(int,com.android.tools.r8.naming.NamingLens):225:231 -> a
    2:8:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):214 -> a
    9:18:int computeLocalsCount():237:246 -> a
    9:18:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):215 -> a
    19:25:java.lang.Object[] computeLocalsTypes(int,com.android.tools.r8.naming.NamingLens):257:263 -> a
    19:25:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):216 -> a
    26:26:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):217:217 -> a
    27:27:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):283:283 -> a
    boolean emitsIR() -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap getLocals():204:204 -> j
    1:1:java.util.List getStack():208:208 -> k
    1:1:void print(com.android.tools.r8.cf.CfPrinter):277:277 -> print
    1:1:java.lang.String toString():272:272 -> toString
com.android.tools.r8.cf.code.CfFrame$1 -> com.android.tools.r8.cf.code.g:
com.android.tools.r8.cf.code.CfFrame$FrameType -> com.android.tools.r8.cf.code.h:
    1:1:void <init>():72:72 -> <init>
    1:1:void <init>(com.android.tools.r8.cf.code.CfFrame$1):24 -> <init>
    com.android.tools.r8.graph.DexType getInitializedType() -> a
    java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens) -> a
    1:1:com.android.tools.r8.cf.code.CfFrame$FrameType initialized(com.android.tools.r8.graph.DexType):27:27 -> a
    2:2:com.android.tools.r8.cf.code.CfFrame$FrameType uninitializedNew(com.android.tools.r8.cf.code.CfLabel):31:31 -> a
    com.android.tools.r8.cf.code.CfLabel getUninitializedLabel() -> b
    boolean isInitialized() -> c
    boolean isTop() -> d
    boolean isUninitializedNew() -> e
    boolean isUninitializedThis() -> f
    boolean isWide() -> g
    1:1:com.android.tools.r8.cf.code.CfFrame$FrameType top():39:39 -> h
    1:1:com.android.tools.r8.cf.code.CfFrame$FrameType uninitializedThis():35:35 -> i
com.android.tools.r8.cf.code.CfFrame$InitializedType -> com.android.tools.r8.cf.code.i:
    com.android.tools.r8.graph.DexType type -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():75:75 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexType):79:81 -> <init>
    1:3:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.cf.code.CfFrame$1):75 -> <init>
    1:16:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):91:106 -> a
    17:17:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):98:98 -> a
    18:26:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):96:104 -> a
    27:27:com.android.tools.r8.graph.DexType getInitializedType():122:122 -> a
    boolean isInitialized() -> c
    1:1:boolean isWide():112:112 -> g
    1:1:java.lang.String toString():86:86 -> toString
com.android.tools.r8.cf.code.CfFrame$Top -> com.android.tools.r8.cf.code.j:
    com.android.tools.r8.cf.code.CfFrame$Top SINGLETON -> a
    1:1:void <clinit>():128:128 -> <clinit>
    1:1:void <init>():126:126 -> <init>
    1:1:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):137:137 -> a
    boolean isTop() -> d
    1:1:com.android.tools.r8.cf.code.CfFrame$Top access$300():126:126 -> j
com.android.tools.r8.cf.code.CfFrame$UninitializedNew -> com.android.tools.r8.cf.code.k:
    com.android.tools.r8.cf.code.CfLabel label -> a
    1:2:void <init>(com.android.tools.r8.cf.code.CfLabel):149:150 -> <init>
    1:2:void <init>(com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.cf.code.CfFrame$1):146 -> <init>
    1:1:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):160:160 -> a
    1:1:com.android.tools.r8.cf.code.CfLabel getUninitializedLabel():170:170 -> b
    boolean isUninitializedNew() -> e
com.android.tools.r8.cf.code.CfFrame$UninitializedThis -> com.android.tools.r8.cf.code.l:
    1:1:void <init>():175:175 -> <init>
    1:1:void <init>(com.android.tools.r8.cf.code.CfFrame$1):174 -> <init>
    1:1:java.lang.Object getTypeOpcode(com.android.tools.r8.naming.NamingLens):179:179 -> a
    boolean isUninitializedThis() -> f
com.android.tools.r8.cf.code.CfGoto -> com.android.tools.r8.cf.code.CfGoto:
    com.android.tools.r8.cf.code.CfLabel target -> a
    1:2:void <init>(com.android.tools.r8.cf.code.CfLabel):18:19 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):29:29 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):39:39 -> a
    1:1:com.android.tools.r8.cf.code.CfLabel getTarget():24:24 -> e
    1:1:void print(com.android.tools.r8.cf.CfPrinter):34:34 -> print
com.android.tools.r8.cf.code.CfIf -> com.android.tools.r8.cf.code.CfIf:
    com.android.tools.r8.ir.code.If$Type kind -> a
    com.android.tools.r8.ir.code.ValueType type -> b
    com.android.tools.r8.cf.code.CfLabel target -> c
    1:4:void <init>(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,com.android.tools.r8.cf.code.CfLabel):24:27 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):69:69 -> a
    2:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):79:82 -> a
    1:1:com.android.tools.r8.cf.code.CfLabel getTarget():40:40 -> e
    boolean isConditionalJump() -> f
    1:1:com.android.tools.r8.ir.code.If$Type getKind():35:35 -> getKind
    1:15:int getOpcode():44:58 -> getOpcode
    16:16:int getOpcode():56:56 -> getOpcode
    17:17:int getOpcode():46:46 -> getOpcode
    1:1:com.android.tools.r8.ir.code.ValueType getType():31:31 -> getType
    1:1:void print(com.android.tools.r8.cf.CfPrinter):64:64 -> print
com.android.tools.r8.cf.code.CfIfCmp -> com.android.tools.r8.cf.code.CfIfCmp:
    com.android.tools.r8.ir.code.If$Type kind -> a
    com.android.tools.r8.ir.code.ValueType type -> b
    com.android.tools.r8.cf.code.CfLabel target -> c
    1:4:void <init>(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,com.android.tools.r8.cf.code.CfLabel):24:27 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):69:69 -> a
    2:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):79:83 -> a
    1:1:com.android.tools.r8.cf.code.CfLabel getTarget():40:40 -> e
    boolean isConditionalJump() -> f
    1:1:com.android.tools.r8.ir.code.If$Type getKind():31:31 -> getKind
    1:15:int getOpcode():44:58 -> getOpcode
    16:16:int getOpcode():56:56 -> getOpcode
    17:17:int getOpcode():46:46 -> getOpcode
    1:1:com.android.tools.r8.ir.code.ValueType getType():35:35 -> getType
    1:1:void print(com.android.tools.r8.cf.CfPrinter):64:64 -> print
com.android.tools.r8.cf.code.CfIinc -> com.android.tools.r8.cf.code.n:
    int increment -> b
    int var -> a
    1:3:void <init>(int,int):19:21 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):26:26 -> a
    2:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):44:45 -> a
    1:1:int getIncrement():39:39 -> j
    1:1:int getLocalIndex():35:35 -> k
    1:1:void print(com.android.tools.r8.cf.CfPrinter):31:31 -> print
com.android.tools.r8.cf.code.CfInstanceOf -> com.android.tools.r8.cf.code.CfInstanceOf:
    com.android.tools.r8.graph.DexType type -> a
    1:2:void <init>(com.android.tools.r8.graph.DexType):20:21 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):30:30 -> a
    2:2:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):40:40 -> a
    3:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):50:52 -> a
    6:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):51:51 -> a
    boolean canThrow() -> c
    1:1:com.android.tools.r8.graph.DexType getType():25:25 -> getType
    1:1:void print(com.android.tools.r8.cf.CfPrinter):35:35 -> print
com.android.tools.r8.cf.code.CfInstruction -> com.android.tools.r8.cf.code.CfInstruction:
    1:1:void <init>():15:15 -> <init>
    com.android.tools.r8.cf.code.CfConstString asConstString() -> a
    void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode) -> a
    void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType) -> a
    void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens) -> a
    com.android.tools.r8.cf.code.CfDexItemBasedConstString asDexItemBasedConstString() -> b
    boolean canThrow() -> c
    boolean emitsIR() -> d
    com.android.tools.r8.cf.code.CfLabel getTarget() -> e
    boolean isConditionalJump() -> f
    boolean isConstString() -> g
    boolean isDexItemBasedConstString() -> h
    boolean isReturn() -> i
    1:3:java.lang.String toString():23:25 -> toString
com.android.tools.r8.cf.code.CfInvoke -> com.android.tools.r8.cf.code.CfInvoke:
    int opcode -> b
    com.android.tools.r8.graph.DexMethod method -> a
    boolean itf -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():25:25 -> <clinit>
    1:7:void <init>(int,com.android.tools.r8.graph.DexMethod,boolean):31:37 -> <init>
    1:4:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):54:57 -> a
    5:25:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):67:87 -> a
    26:41:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):69:84 -> a
    42:47:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):75:80 -> a
    48:48:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):72:72 -> a
    49:51:boolean isInvokeSuper(com.android.tools.r8.graph.DexType):92:94 -> a
    52:91:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):107:146 -> a
    92:124:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):110:142 -> a
    125:131:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):129:135 -> a
    132:176:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):116:160 -> a
    177:180:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):159:162 -> a
    boolean canThrow() -> c
    1:1:com.android.tools.r8.graph.DexMethod getMethod():41:41 -> getMethod
    1:1:int getOpcode():45:45 -> getOpcode
    1:1:boolean isInterface():49:49 -> j
    1:1:void print(com.android.tools.r8.cf.CfPrinter):62:62 -> print
com.android.tools.r8.cf.code.CfInvokeDynamic -> com.android.tools.r8.cf.code.CfInvokeDynamic:
    com.android.tools.r8.graph.DexCallSite callSite -> a
    1:2:void <init>(com.android.tools.r8.graph.DexCallSite):37:38 -> <init>
    1:5:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):43:47 -> a
    6:21:java.lang.Object decodeBootstrapArgument(com.android.tools.r8.graph.DexValue,com.android.tools.r8.naming.NamingLens):56:71 -> a
    6:21:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):47 -> a
    22:22:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):47:47 -> a
    23:24:java.lang.Object decodeBootstrapArgument(com.android.tools.r8.graph.DexValue,com.android.tools.r8.naming.NamingLens):73:74 -> a
    23:24:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):47 -> a
    25:28:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):49:52 -> a
    29:29:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):51:51 -> a
    30:30:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):89:89 -> a
    31:42:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):99:110 -> a
    boolean canThrow() -> c
    1:1:com.android.tools.r8.graph.DexCallSite getCallSite():84:84 -> j
    1:1:void print(com.android.tools.r8.cf.CfPrinter):80:80 -> print
com.android.tools.r8.cf.code.CfLabel -> com.android.tools.r8.cf.code.CfLabel:
    com.android.tools.r8.org.objectweb.asm.Label label -> a
    1:3:void <init>():14:16 -> <init>
    void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode) -> a
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):32:32 -> a
    boolean emitsIR() -> d
    1:4:com.android.tools.r8.org.objectweb.asm.Label getLabel():19:22 -> j
    1:1:void print(com.android.tools.r8.cf.CfPrinter):27:27 -> print
com.android.tools.r8.cf.code.CfLoad -> com.android.tools.r8.cf.code.CfLoad:
    com.android.tools.r8.ir.code.ValueType type -> b
    int var -> a
    1:3:void <init>(com.android.tools.r8.ir.code.ValueType,int):22:24 -> <init>
    1:13:int getLoadType():28:40 -> a
    1:13:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):46 -> a
    14:14:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):46:46 -> a
    15:17:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):64:66 -> a
    boolean emitsIR() -> d
    1:1:com.android.tools.r8.ir.code.ValueType getType():55:55 -> getType
    1:1:int getLocalIndex():59:59 -> j
    1:1:void print(com.android.tools.r8.cf.CfPrinter):51:51 -> print
com.android.tools.r8.cf.code.CfLogicalBinop -> com.android.tools.r8.cf.code.p:
    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode opcode -> a
    com.android.tools.r8.ir.code.NumericType type -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():17:17 -> <clinit>
    1:6:void <init>(com.android.tools.r8.cf.code.CfLogicalBinop$Opcode,com.android.tools.r8.ir.code.NumericType):31:36 -> <init>
    1:1:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):66:66 -> a
    2:2:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):64:64 -> a
    3:3:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):62:62 -> a
    4:4:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):60:60 -> a
    5:5:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):58:58 -> a
    6:6:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):56:56 -> a
    7:7:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):54:54 -> a
    8:8:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):52:52 -> a
    9:9:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):50:50 -> a
    10:10:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):48:48 -> a
    11:11:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):46:46 -> a
    12:12:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):44:44 -> a
    13:13:com.android.tools.r8.cf.code.CfLogicalBinop fromAsm(int):42:42 -> a
    14:14:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):96:96 -> a
    15:38:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):101:124 -> a
    39:39:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):121:121 -> a
    40:40:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):118:118 -> a
    41:41:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):115:115 -> a
    42:42:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):112:112 -> a
    43:43:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):109:109 -> a
    44:44:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):106:106 -> a
    1:15:int getAsmOpcode():71:85 -> getAsmOpcode
    16:16:int getAsmOpcode():83:83 -> getAsmOpcode
    17:17:int getAsmOpcode():81:81 -> getAsmOpcode
    18:18:int getAsmOpcode():79:79 -> getAsmOpcode
    19:19:int getAsmOpcode():77:77 -> getAsmOpcode
    20:20:int getAsmOpcode():75:75 -> getAsmOpcode
    21:21:int getAsmOpcode():73:73 -> getAsmOpcode
    1:1:void print(com.android.tools.r8.cf.CfPrinter):91:91 -> print
com.android.tools.r8.cf.code.CfLogicalBinop$Opcode -> com.android.tools.r8.cf.code.o:
    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode Shl -> a
    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode[] $VALUES -> g
    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode And -> d
    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode Or -> e
    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode Shr -> b
    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode Ushr -> c
    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode Xor -> f
    1:6:void <clinit>():20:25 -> <clinit>
    7:7:void <clinit>():19:19 -> <clinit>
    1:1:void <init>(java.lang.String,int):19:19 -> <init>
com.android.tools.r8.cf.code.CfMonitor -> com.android.tools.r8.cf.code.CfMonitor:
    com.android.tools.r8.ir.code.Monitor$Type type -> a
    1:2:void <init>(com.android.tools.r8.ir.code.Monitor$Type):20:21 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):30:30 -> a
    2:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):45:46 -> a
    boolean canThrow() -> c
    1:1:com.android.tools.r8.ir.code.Monitor$Type getType():25:25 -> getType
    1:1:void print(com.android.tools.r8.cf.CfPrinter):35:35 -> print
com.android.tools.r8.cf.code.CfMultiANewArray -> com.android.tools.r8.cf.code.q:
    com.android.tools.r8.graph.DexType type -> a
    int dimensions -> b
    1:3:void <init>(com.android.tools.r8.graph.DexType,int):22:24 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):37:37 -> a
    2:2:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):47:47 -> a
    3:9:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):57:63 -> a
    10:10:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):60:60 -> a
    boolean canThrow() -> c
    1:1:com.android.tools.r8.graph.DexType getType():28:28 -> getType
    1:1:int getDimensions():32:32 -> j
    1:1:void print(com.android.tools.r8.cf.CfPrinter):42:42 -> print
com.android.tools.r8.cf.code.CfNeg -> com.android.tools.r8.cf.code.r:
    com.android.tools.r8.ir.code.NumericType type -> a
    1:2:void <init>(com.android.tools.r8.ir.code.NumericType):21:22 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):27:27 -> a
    2:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):70:71 -> a
    1:14:int getAsmOpcode():36:49 -> getAsmOpcode
    1:1:void print(com.android.tools.r8.cf.CfPrinter):32:32 -> print
com.android.tools.r8.cf.code.CfNew -> com.android.tools.r8.cf.code.CfNew:
    com.android.tools.r8.graph.DexType type -> a
    1:2:void <init>(com.android.tools.r8.graph.DexType):20:21 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):30:30 -> a
    2:2:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):40:40 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):50:50 -> a
    boolean canThrow() -> c
    1:1:com.android.tools.r8.graph.DexType getType():25:25 -> getType
    1:1:void print(com.android.tools.r8.cf.CfPrinter):35:35 -> print
com.android.tools.r8.cf.code.CfNewArray -> com.android.tools.r8.cf.code.CfNewArray:
    com.android.tools.r8.graph.DexType type -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():19:19 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexType):23:25 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):65:65 -> a
    2:20:int getPrimitiveTypeCode():33:51 -> a
    2:20:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):66 -> a
    21:21:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):66:66 -> a
    22:26:java.lang.String getElementInternalName(com.android.tools.r8.naming.NamingLens):56:60 -> a
    22:26:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):68 -> a
    27:27:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):68:68 -> a
    28:29:void registerUse(com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.DexType):79:80 -> a
    30:32:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):91:93 -> a
    boolean canThrow() -> c
    1:1:com.android.tools.r8.graph.DexType getType():29:29 -> getType
    1:1:void print(com.android.tools.r8.cf.CfPrinter):74:74 -> print
com.android.tools.r8.cf.code.CfNop -> com.android.tools.r8.cf.code.CfNop:
    1:1:void <init>():14:14 -> <init>
    void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode) -> a
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):18:18 -> a
    boolean emitsIR() -> d
    1:1:void print(com.android.tools.r8.cf.CfPrinter):23:23 -> print
com.android.tools.r8.cf.code.CfNumberConversion -> com.android.tools.r8.cf.code.s:
    com.android.tools.r8.ir.code.NumericType to -> b
    com.android.tools.r8.ir.code.NumericType from -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():17:17 -> <clinit>
    1:7:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType):22:28 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):33:33 -> a
    2:2:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):131:131 -> a
    3:3:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):129:129 -> a
    4:4:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):127:127 -> a
    5:5:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):125:125 -> a
    6:6:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):123:123 -> a
    7:7:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):121:121 -> a
    8:8:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):119:119 -> a
    9:9:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):117:117 -> a
    10:10:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):115:115 -> a
    11:11:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):113:113 -> a
    12:12:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):111:111 -> a
    13:13:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):109:109 -> a
    14:14:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):107:107 -> a
    15:15:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):105:105 -> a
    16:16:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):103:103 -> a
    17:17:com.android.tools.r8.cf.code.CfNumberConversion fromAsm(int):101:101 -> a
    18:19:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):137:138 -> a
    1:53:int getAsmOpcode():42:94 -> getAsmOpcode
    54:62:int getAsmOpcode():83:91 -> getAsmOpcode
    63:71:int getAsmOpcode():72:80 -> getAsmOpcode
    72:80:int getAsmOpcode():61:69 -> getAsmOpcode
    81:95:int getAsmOpcode():44:58 -> getAsmOpcode
    1:1:void print(com.android.tools.r8.cf.CfPrinter):38:38 -> print
com.android.tools.r8.cf.code.CfPosition -> com.android.tools.r8.cf.code.CfPosition:
    com.android.tools.r8.cf.code.CfLabel label -> a
    com.android.tools.r8.ir.code.Position position -> b
    1:3:void <init>(com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.ir.code.Position):19:21 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):26:26 -> a
    2:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):44:46 -> a
    1:1:com.android.tools.r8.ir.code.Position getPosition():35:35 -> getPosition
    1:1:com.android.tools.r8.cf.code.CfLabel getLabel():39:39 -> j
    1:1:void print(com.android.tools.r8.cf.CfPrinter):31:31 -> print
com.android.tools.r8.cf.code.CfReturn -> com.android.tools.r8.cf.code.CfReturn:
    com.android.tools.r8.ir.code.ValueType type -> a
    1:2:void <init>(com.android.tools.r8.ir.code.ValueType):21:22 -> <init>
    1:13:int getOpcode():30:42 -> a
    1:13:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):48 -> a
    14:14:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):48:48 -> a
    15:16:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):63:64 -> a
    1:1:com.android.tools.r8.ir.code.ValueType getType():26:26 -> getType
    boolean isReturn() -> i
    1:1:void print(com.android.tools.r8.cf.CfPrinter):53:53 -> print
com.android.tools.r8.cf.code.CfReturnVoid -> com.android.tools.r8.cf.code.CfReturnVoid:
    1:1:void <init>():14:14 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):18:18 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):33:33 -> a
    boolean isReturn() -> i
    1:1:void print(com.android.tools.r8.cf.CfPrinter):23:23 -> print
com.android.tools.r8.cf.code.CfStackInstruction -> com.android.tools.r8.cf.code.CfStackInstruction:
    com.android.tools.r8.cf.code.CfStackInstruction$Opcode opcode -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():18:18 -> <clinit>
    1:2:void <init>(com.android.tools.r8.cf.code.CfStackInstruction$Opcode):69:70 -> <init>
    1:1:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):61:61 -> a
    2:2:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):59:59 -> a
    3:3:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):57:57 -> a
    4:4:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):55:55 -> a
    5:5:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):53:53 -> a
    6:6:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):51:51 -> a
    7:7:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):49:49 -> a
    8:8:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):47:47 -> a
    9:9:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):45:45 -> a
    10:10:com.android.tools.r8.cf.code.CfStackInstruction fromAsm(int):43:43 -> a
    11:11:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):75:75 -> a
    12:143:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):89:220 -> a
    144:155:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):195:206 -> a
    156:156:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):202:202 -> a
    157:182:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):163:188 -> a
    183:189:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):151:157 -> a
    190:212:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):123:145 -> a
    213:214:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):127:128 -> a
    215:219:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):114:118 -> a
    220:222:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):107:109 -> a
    223:226:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):98:101 -> a
    227:228:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):92:93 -> a
    229:238:void dupX1(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfState$Slot,com.android.tools.r8.ir.conversion.CfState$Slot) -> a
    boolean emitsIR() -> d
    1:1:com.android.tools.r8.cf.code.CfStackInstruction$Opcode getOpcode():84:84 -> getOpcode
    1:1:void print(com.android.tools.r8.cf.CfPrinter):80:80 -> print
com.android.tools.r8.cf.code.CfStackInstruction$Opcode -> com.android.tools.r8.cf.code.CfStackInstruction$Opcode:
    com.android.tools.r8.cf.code.CfStackInstruction$Opcode Swap -> i
    com.android.tools.r8.cf.code.CfStackInstruction$Opcode Dup2X2 -> h
    com.android.tools.r8.cf.code.CfStackInstruction$Opcode Dup2X1 -> g
    com.android.tools.r8.cf.code.CfStackInstruction$Opcode[] $VALUES -> j
    com.android.tools.r8.cf.code.CfStackInstruction$Opcode Dup2 -> f
    com.android.tools.r8.cf.code.CfStackInstruction$Opcode DupX2 -> e
    com.android.tools.r8.cf.code.CfStackInstruction$Opcode DupX1 -> d
    com.android.tools.r8.cf.code.CfStackInstruction$Opcode Dup -> c
    com.android.tools.r8.cf.code.CfStackInstruction$Opcode Pop2 -> b
    int opcode -> a
    1:9:void <clinit>():21:29 -> <clinit>
    10:10:void <clinit>():20:20 -> <clinit>
    1:2:void <init>(java.lang.String,int,int):33:34 -> <init>
    1:1:int access$000(com.android.tools.r8.cf.code.CfStackInstruction$Opcode):20:20 -> a
com.android.tools.r8.cf.code.CfStore -> com.android.tools.r8.cf.code.t:
    com.android.tools.r8.ir.code.ValueType type -> b
    int var -> a
    1:3:void <init>(com.android.tools.r8.ir.code.ValueType,int):22:24 -> <init>
    1:13:int getStoreType():28:40 -> a
    1:13:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):46 -> a
    14:14:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):46:46 -> a
    15:16:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):64:65 -> a
    boolean emitsIR() -> d
    1:1:com.android.tools.r8.ir.code.ValueType getType():55:55 -> getType
    1:1:int getLocalIndex():59:59 -> j
    1:1:void print(com.android.tools.r8.cf.CfPrinter):51:51 -> print
com.android.tools.r8.cf.code.CfSwitch -> com.android.tools.r8.cf.code.CfSwitch:
    com.android.tools.r8.cf.code.CfLabel defaultTarget -> b
    int[] keys -> c
    java.util.List targets -> d
    boolean $assertionsDisabled -> e
    com.android.tools.r8.cf.code.CfSwitch$Kind kind -> a
    1:1:void <clinit>():18:18 -> <clinit>
    1:7:void <init>(com.android.tools.r8.cf.code.CfSwitch$Kind,com.android.tools.r8.cf.code.CfLabel,int[],java.util.List):27:33 -> <init>
    1:12:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):54:65 -> a
    13:13:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):60:60 -> a
    14:19:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):77:82 -> a
    1:1:com.android.tools.r8.cf.code.CfSwitch$Kind getKind():37:37 -> getKind
    1:1:com.android.tools.r8.cf.code.CfLabel getDefaultTarget():41:41 -> j
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList getKeys():45:45 -> k
    1:1:java.util.List getSwitchTargets():49:49 -> l
    1:1:void print(com.android.tools.r8.cf.CfPrinter):72:72 -> print
com.android.tools.r8.cf.code.CfSwitch$Kind -> com.android.tools.r8.cf.code.CfSwitch$Kind:
    com.android.tools.r8.cf.code.CfSwitch$Kind[] $VALUES -> a
    1:1:void <clinit>():20:20 -> <clinit>
    1:1:void <init>(java.lang.String,int):20:20 -> <init>
com.android.tools.r8.cf.code.CfThrow -> com.android.tools.r8.cf.code.CfThrow:
    1:1:void <init>():15:15 -> <init>
    1:1:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens):19:19 -> a
    2:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.conversion.CfState,com.android.tools.r8.ir.conversion.CfSourceCode):34:35 -> a
    boolean canThrow() -> c
    1:1:void print(com.android.tools.r8.cf.CfPrinter):24:24 -> print
com.android.tools.r8.cf.code.CfTryCatch -> com.android.tools.r8.cf.code.CfTryCatch:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():13:13 -> <clinit>
    1:6:void <init>(com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.cf.code.CfLabel,java.util.List,java.util.List):19:24 -> <init>
    7:8:boolean verifyAllNonNull(java.util.List):28:29 -> <init>
    7:8:void <init>(com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.cf.code.CfLabel,java.util.List,java.util.List):24 -> <init>
    1:6:com.android.tools.r8.cf.code.CfTryCatch fromBuilder(com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.ir.code.CatchHandlers,com.android.tools.r8.ir.conversion.CfBuilder):39:44 -> a
com.android.tools.r8.code.AddDouble -> com.android.tools.r8.code.b:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AddDouble2Addr -> com.android.tools.r8.code.a:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AddFloat -> com.android.tools.r8.code.d:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AddFloat2Addr -> com.android.tools.r8.code.c:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AddInt -> com.android.tools.r8.code.AddInt:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AddInt2Addr -> com.android.tools.r8.code.AddInt2Addr:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AddIntLit16 -> com.android.tools.r8.code.e:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AddIntLit8 -> com.android.tools.r8.code.AddIntLit8:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AddLong -> com.android.tools.r8.code.g:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AddLong2Addr -> com.android.tools.r8.code.f:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.Aget -> com.android.tools.r8.code.h:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AgetBoolean -> com.android.tools.r8.code.i:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AgetByte -> com.android.tools.r8.code.j:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AgetChar -> com.android.tools.r8.code.k:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AgetObject -> com.android.tools.r8.code.l:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AgetShort -> com.android.tools.r8.code.m:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AgetWide -> com.android.tools.r8.code.n:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AndInt -> com.android.tools.r8.code.p:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AndInt2Addr -> com.android.tools.r8.code.o:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AndIntLit16 -> com.android.tools.r8.code.q:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AndIntLit8 -> com.android.tools.r8.code.r:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AndLong -> com.android.tools.r8.code.t:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AndLong2Addr -> com.android.tools.r8.code.s:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.Aput -> com.android.tools.r8.code.Aput:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AputBoolean -> com.android.tools.r8.code.u:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AputByte -> com.android.tools.r8.code.v:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AputChar -> com.android.tools.r8.code.w:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AputObject -> com.android.tools.r8.code.AputObject:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AputShort -> com.android.tools.r8.code.x:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.AputWide -> com.android.tools.r8.code.y:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.ArrayLength -> com.android.tools.r8.code.z:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.Base1Format -> com.android.tools.r8.code.A:
    1:1:void <init>(com.android.tools.r8.code.BytecodeStream):11:11 -> <init>
    2:2:void <init>():14:14 -> <init>
com.android.tools.r8.code.Base2Format -> com.android.tools.r8.code.B:
    1:1:void <init>():10:10 -> <init>
    2:2:void <init>(com.android.tools.r8.code.BytecodeStream):13:13 -> <init>
com.android.tools.r8.code.Base3Format -> com.android.tools.r8.code.C:
    1:1:void <init>():10:10 -> <init>
    2:2:void <init>(com.android.tools.r8.code.BytecodeStream):13:13 -> <init>
com.android.tools.r8.code.Base4Format -> com.android.tools.r8.code.D:
    1:1:void <init>():10:10 -> <init>
    2:2:void <init>(com.android.tools.r8.code.BytecodeStream):13:13 -> <init>
com.android.tools.r8.code.Base5Format -> com.android.tools.r8.code.E:
    1:1:void <init>():10:10 -> <init>
    2:2:void <init>(com.android.tools.r8.code.BytecodeStream):13:13 -> <init>
com.android.tools.r8.code.BaseInstructionFactory -> com.android.tools.r8.code.F:
    1:1:void <init>():8:8 -> <init>
com.android.tools.r8.code.BytecodeStream -> com.android.tools.r8.code.G:
com.android.tools.r8.code.CheckCast -> com.android.tools.r8.code.CheckCast:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexType):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):47:47 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):56:56 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexType getType():51:51 -> getType
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.CmpLong -> com.android.tools.r8.code.H:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):17:17 -> <init>
    2:2:void <init>(int,int,int):21:21 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):10:10 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):41:41 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.CmpgDouble -> com.android.tools.r8.code.I:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):17:17 -> <init>
    2:2:void <init>(int,int,int):21:21 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):10:10 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):41:41 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.CmpgFloat -> com.android.tools.r8.code.CmpgFloat:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):17:17 -> <init>
    2:2:void <init>(int,int,int):21:21 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):10:10 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):41:41 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.CmplDouble -> com.android.tools.r8.code.J:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):17:17 -> <init>
    2:2:void <init>(int,int,int):21:21 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):10:10 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):41:41 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.CmplFloat -> com.android.tools.r8.code.K:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):17:17 -> <init>
    2:2:void <init>(int,int,int):21:21 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):10:10 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):41:41 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):10:10 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.Const -> com.android.tools.r8.code.Const:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:19 -> <init>
    2:2:void <init>(int,int):23:23 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void com.android.tools.r8.code.Format31i.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:34 -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
    3:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:55 -> a
    5:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
    6:9:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):60:63 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    1:1:int decodedValue():43:43 -> decodedValue
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.Const16 -> com.android.tools.r8.code.Const16:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:19 -> <init>
    2:2:void <init>(int,int):23:23 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void com.android.tools.r8.code.Format21s.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
    3:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):54:57 -> a
    7:7:java.lang.String com.android.tools.r8.code.Format21s.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):60:60 -> a
    7:7:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):12 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    1:1:int decodedValue():43:43 -> decodedValue
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.Const4 -> com.android.tools.r8.code.Const4:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:19 -> <init>
    2:2:void <init>(int,int):23:23 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:void com.android.tools.r8.code.Format11n.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):39:39 -> a
    1:1:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
    2:3:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:55 -> a
    4:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
    5:8:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):60:63 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    1:1:int decodedValue():43:43 -> decodedValue
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.ConstClass -> com.android.tools.r8.code.ConstClass:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexType):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexType getType():46:46 -> getType
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.ConstHigh16 -> com.android.tools.r8.code.ConstHigh16:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:19 -> <init>
    2:2:void <init>(int,int):23:23 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void com.android.tools.r8.code.Format21h.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:34 -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
    3:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:55 -> a
    5:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
    6:9:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):60:63 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    1:1:int decodedValue():43:43 -> decodedValue
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.ConstMethodHandle -> com.android.tools.r8.code.L:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):23:23 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexMethodHandle):27:27 -> <init>
    1:1:com.android.tools.r8.graph.DexMethodHandle getMethodHandle():31:31 -> a
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):62 -> a
    2:2:void registerUse(com.android.tools.r8.graph.UseRegistry):62:62 -> a
    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry):61:61 -> a
    4:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):56:56 -> a
    5:5:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):67:67 -> a
    6:7:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    6:7:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):71 -> a
    8:8:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):69:69 -> a
    9:9:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    9:9:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):16 -> a
    10:10:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):76:76 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):51:51 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.ConstMethodType -> com.android.tools.r8.code.M:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):22:22 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexProto):26:26 -> <init>
    1:1:com.android.tools.r8.graph.DexProto getMethodType():30:30 -> a
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):60 -> a
    2:2:void registerUse(com.android.tools.r8.graph.UseRegistry):60:60 -> a
    3:3:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):55:55 -> a
    4:4:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):65:65 -> a
    5:6:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    5:6:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):69 -> a
    7:7:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):67:67 -> a
    8:8:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    8:8:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):15 -> a
    9:9:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):74:74 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):50:50 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.ConstString -> com.android.tools.r8.code.ConstString:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):21:21 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexString):25:25 -> <init>
    com.android.tools.r8.code.ConstString asConstString() -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):64:64 -> a
    2:2:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    2:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):14 -> a
    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):69:69 -> a
    4:5:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    4:5:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):73 -> a
    6:6:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):71:71 -> a
    7:7:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):78:78 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):59:59 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexString getString():29:29 -> getString
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.ConstStringJumbo -> com.android.tools.r8.code.ConstStringJumbo:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexString):22:22 -> <init>
    1:2:void com.android.tools.r8.code.Format31c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):37:38 -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    3:3:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):61:61 -> a
    4:4:void com.android.tools.r8.code.Format31c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):64:64 -> a
    4:4:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):66:66 -> a
    com.android.tools.r8.code.ConstStringJumbo asConstStringJumbo() -> b
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):56:56 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexString getString():26:26 -> getString
    java.lang.String getSmaliName() -> h
    boolean isConstStringJumbo() -> j
com.android.tools.r8.code.ConstWide -> com.android.tools.r8.code.ConstWide:
    short com.android.tools.r8.code.Format51l.AA -> e
    long com.android.tools.r8.code.Format51l.BBBBBBBBBBBBBBBB -> f
    boolean com.android.tools.r8.code.Format51l.$assertionsDisabled -> g
    1:1:void com.android.tools.r8.code.Format51l.<clinit>():13:13 -> <clinit>
    1:2:void com.android.tools.r8.code.Format51l.<init>(int,com.android.tools.r8.code.BytecodeStream):20:21 -> <init>
    1:2:void <init>(int,com.android.tools.r8.code.BytecodeStream):19 -> <init>
    3:4:long com.android.tools.r8.code.Instruction.read64BitValue(com.android.tools.r8.code.BytecodeStream):70:71 -> <init>
    3:4:void com.android.tools.r8.code.Format51l.<init>(int,com.android.tools.r8.code.BytecodeStream):22 -> <init>
    3:4:void <init>(int,com.android.tools.r8.code.BytecodeStream):19 -> <init>
    5:5:void com.android.tools.r8.code.Format51l.<init>(int,com.android.tools.r8.code.BytecodeStream):22:22 -> <init>
    5:5:void <init>(int,com.android.tools.r8.code.BytecodeStream):19 -> <init>
    6:9:void com.android.tools.r8.code.Format51l.<init>(int,long):25:28 -> <init>
    6:9:void <init>(int,long):23 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void com.android.tools.r8.code.Format51l.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:34 -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
    3:7:boolean com.android.tools.r8.code.Format51l.equals(java.lang.Object):44:48 -> a
    8:9:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:55 -> a
    10:10:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
    11:11:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):60:60 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    1:1:long decodedValue():43:43 -> decodedValue
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
    1:1:int com.android.tools.r8.code.Format51l.hashCode():39:39 -> o
com.android.tools.r8.code.ConstWide16 -> com.android.tools.r8.code.ConstWide16:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:19 -> <init>
    2:2:void <init>(int,int):23:23 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void com.android.tools.r8.code.Format21s.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
    3:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:55 -> a
    5:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
    6:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):60:60 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    1:1:long decodedValue():43:43 -> decodedValue
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.ConstWide32 -> com.android.tools.r8.code.ConstWide32:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:19 -> <init>
    2:2:void <init>(int,int):23:23 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void com.android.tools.r8.code.Format31i.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:34 -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
    3:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:55 -> a
    5:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
    6:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):60:60 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    1:1:long decodedValue():43:43 -> decodedValue
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.ConstWideHigh16 -> com.android.tools.r8.code.ConstWideHigh16:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:19 -> <init>
    2:2:void <init>(int,int):23:23 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void com.android.tools.r8.code.Format21h.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:34 -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):12 -> a
    3:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:55 -> a
    5:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
    6:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):60:60 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:49 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    1:1:long decodedValue():43:43 -> decodedValue
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.DexItemBasedConstString -> com.android.tools.r8.code.N:
    com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo classNameComputationInfo -> c
    1:2:void <init>(int,com.android.tools.r8.graph.DexReference,com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo):24:25 -> <init>
    1:1:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):15 -> a
    2:2:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):71:71 -> a
    3:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):76:76 -> a
    4:5:void registerUse(com.android.tools.r8.graph.UseRegistry):82:83 -> a
    6:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):89:89 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):65:65 -> b
    com.android.tools.r8.code.DexItemBasedConstString asDexItemBasedConstString() -> c
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:int getOpcode():48:48 -> getOpcode
    java.lang.String getSmaliName() -> h
    boolean isDexItemBasedConstString() -> k
    1:1:com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo getClassNameComputationInfo():33:33 -> o
    1:1:com.android.tools.r8.graph.DexReference getItem():29:29 -> p
com.android.tools.r8.code.DivDouble -> com.android.tools.r8.code.P:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.DivDouble2Addr -> com.android.tools.r8.code.O:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.DivFloat -> com.android.tools.r8.code.S:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.DivFloat2Addr -> com.android.tools.r8.code.Q:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.DivInt -> com.android.tools.r8.code.DivInt:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.DivInt2Addr -> com.android.tools.r8.code.DivInt2Addr:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.DivIntLit16 -> com.android.tools.r8.code.T:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.DivIntLit8 -> com.android.tools.r8.code.DivIntLit8:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.DivLong -> com.android.tools.r8.code.V:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.DivLong2Addr -> com.android.tools.r8.code.U:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.DoubleToFloat -> com.android.tools.r8.code.W:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.DoubleToInt -> com.android.tools.r8.code.X:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.DoubleToLong -> com.android.tools.r8.code.Y:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.FillArrayData -> com.android.tools.r8.code.Z:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    2:2:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):45:45 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.FillArrayDataPayload -> com.android.tools.r8.code.aa:
    long size -> b
    short[] data -> c
    boolean $assertionsDisabled -> d
    int element_width -> a
    1:1:void <clinit>():13:13 -> <clinit>
    1:10:void <init>(int,com.android.tools.r8.code.BytecodeStream):20:29 -> <init>
    11:14:void <init>(int,long,short[]):33:36 -> <init>
    void buildIR(com.android.tools.r8.ir.conversion.IRBuilder) -> a
    1:5:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):46:50 -> a
    6:45:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):86:125 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):80:80 -> b
    1:6:boolean equals(java.lang.Object):56:61 -> equals
    1:1:int getSize():75:75 -> getSize
    1:4:int hashCode():66:69 -> hashCode
    boolean isPayload() -> l
com.android.tools.r8.code.FilledNewArray -> com.android.tools.r8.code.ba:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17:17 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexType,int,int,int,int,int):21:21 -> <init>
    1:1:com.android.tools.r8.graph.DexType getType():40:40 -> a
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45:45 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.FilledNewArrayRange -> com.android.tools.r8.code.ca:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17:17 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexType):21:21 -> <init>
    1:1:com.android.tools.r8.graph.DexType getType():40:40 -> a
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45:45 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.FloatToDouble -> com.android.tools.r8.code.da:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.FloatToInt -> com.android.tools.r8.code.ea:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.FloatToLong -> com.android.tools.r8.code.fa:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.Format10x -> com.android.tools.r8.code.ga:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):17:17 -> <init>
    2:2:void <init>():20:20 -> <init>
com.android.tools.r8.code.Format11n -> com.android.tools.r8.code.Format11n:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():13:13 -> <clinit>
    1:8:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:26 -> <init>
    9:13:void <init>(int,int):30:34 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):58:58 -> b
    1:5:boolean equals(java.lang.Object):49:53 -> equals
    1:1:int hashCode():44:44 -> hashCode
com.android.tools.r8.code.Format11x -> com.android.tools.r8.code.ha:
    boolean $assertionsDisabled -> b
    short AA -> a
    1:1:void <clinit>():13:13 -> <clinit>
    1:2:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:20 -> <init>
    3:5:void <init>(int):23:25 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):53:53 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    1:4:boolean equals(java.lang.Object):40:43 -> equals
    1:1:int hashCode():35:35 -> hashCode
com.android.tools.r8.code.Format12x -> com.android.tools.r8.code.Format12x:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():13:13 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:21 -> <init>
    4:8:void <init>(int,int):24:28 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):57:57 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):52:52 -> b
    1:5:boolean equals(java.lang.Object):43:47 -> equals
    1:1:int hashCode():38:38 -> hashCode
com.android.tools.r8.code.Format21c -> com.android.tools.r8.code.Format21c:
    boolean $assertionsDisabled -> b
    short AA -> a
    1:1:void <clinit>():15:15 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.IndexedDexItem[]):22:24 -> <init>
    4:7:void <init>(int,com.android.tools.r8.graph.IndexedDexItem):27:30 -> <init>
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    3:3:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):62:62 -> a
    4:4:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):55:56 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):55:55 -> b
    1:5:boolean equals(java.lang.Object):46:50 -> equals
    1:1:int hashCode():41:41 -> hashCode
com.android.tools.r8.code.Format21h -> com.android.tools.r8.code.ia:
    char BBBB -> b
    boolean $assertionsDisabled -> c
    short AA -> a
    1:1:void <clinit>():12:12 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:21 -> <init>
    4:8:void <init>(int,int):24:28 -> <init>
    1:5:boolean equals(java.lang.Object):44:48 -> equals
    1:1:int hashCode():39:39 -> hashCode
com.android.tools.r8.code.Format21s -> com.android.tools.r8.code.Format21s:
    boolean $assertionsDisabled -> b
    short AA -> a
    1:1:void <clinit>():14:14 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):21:23 -> <init>
    4:8:void <init>(int,int):26:30 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    3:3:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):60:60 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):55:55 -> b
    1:5:boolean equals(java.lang.Object):46:50 -> equals
    1:1:int hashCode():41:41 -> hashCode
com.android.tools.r8.code.Format21t -> com.android.tools.r8.code.Format21t:
    boolean $assertionsDisabled -> b
    short AA -> a
    1:1:void <clinit>():16:16 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):23:25 -> <init>
    4:8:void <init>(int,int):28:32 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):37:38 -> a
    3:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):66:68 -> a
    6:6:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):78:78 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):73:73 -> b
    1:5:boolean equals(java.lang.Object):48:52 -> equals
    1:1:int[] getTargets():61:61 -> getTargets
    1:1:int hashCode():43:43 -> hashCode
    com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint() -> o
com.android.tools.r8.code.Format22b -> com.android.tools.r8.code.Format22b:
    boolean $assertionsDisabled -> b
    short BB -> a
    1:1:void <clinit>():14:14 -> <clinit>
    1:2:void <init>(int,com.android.tools.r8.code.BytecodeStream):22:23 -> <init>
    3:3:byte com.android.tools.r8.code.Instruction.readSigned8BitValue(com.android.tools.r8.code.BytecodeStream):39:39 -> <init>
    3:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):24 -> <init>
    4:5:void <init>(int,com.android.tools.r8.code.BytecodeStream):24:25 -> <init>
    6:12:void <init>(int,int,int):28:34 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):39:40 -> a
    3:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):64:65 -> a
    5:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):64:64 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):59:59 -> b
    1:5:boolean equals(java.lang.Object):50:54 -> equals
    1:1:int hashCode():45:45 -> hashCode
com.android.tools.r8.code.Format22c -> com.android.tools.r8.code.ja:
    byte B -> b
    byte A -> a
    com.android.tools.r8.graph.IndexedDexItem CCCC -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():15:15 -> <clinit>
    1:4:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.IndexedDexItem[]):23:26 -> <init>
    5:10:void <init>(int,int,com.android.tools.r8.graph.IndexedDexItem):29:34 -> <init>
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):39:40 -> a
    3:3:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):66:66 -> a
    4:4:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):72:72 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):59:60 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):59:59 -> b
    1:5:boolean equals(java.lang.Object):50:54 -> equals
    1:1:int hashCode():45:45 -> hashCode
com.android.tools.r8.code.Format22s -> com.android.tools.r8.code.Format22s:
    byte B -> b
    byte A -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():14:14 -> <clinit>
    1:4:void <init>(int,com.android.tools.r8.code.BytecodeStream):22:25 -> <init>
    5:11:void <init>(int,int,int):28:34 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):39:40 -> a
    3:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):64:65 -> a
    5:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):64:64 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):59:59 -> b
    1:5:boolean equals(java.lang.Object):50:54 -> equals
    1:1:int hashCode():45:45 -> hashCode
com.android.tools.r8.code.Format22t -> com.android.tools.r8.code.Format22t:
    byte B -> b
    byte A -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():16:16 -> <clinit>
    1:4:void <init>(int,com.android.tools.r8.code.BytecodeStream):24:27 -> <init>
    5:11:void <init>(int,int,int):30:36 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):41:42 -> a
    3:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):70:72 -> a
    6:6:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):82:82 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):77:77 -> b
    1:5:boolean equals(java.lang.Object):52:56 -> equals
    1:1:int[] getTargets():65:65 -> getTargets
    1:1:int hashCode():47:47 -> hashCode
    com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint() -> o
com.android.tools.r8.code.Format22x -> com.android.tools.r8.code.ka:
    char BBBB -> b
    boolean $assertionsDisabled -> c
    short AA -> a
    1:1:void <clinit>():13:13 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):20:22 -> <init>
    4:8:void <init>(int,int):25:29 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):59:59 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> b
    1:5:boolean equals(java.lang.Object):45:49 -> equals
    1:1:int hashCode():40:40 -> hashCode
com.android.tools.r8.code.Format23x -> com.android.tools.r8.code.la:
    short CC -> c
    short AA -> a
    boolean $assertionsDisabled -> d
    short BB -> b
    1:1:void <clinit>():13:13 -> <clinit>
    1:4:void <init>(int,com.android.tools.r8.code.BytecodeStream):21:24 -> <init>
    5:11:void <init>(int,int,int):27:33 -> <init>
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):38:39 -> a
    3:3:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):63:63 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):58:58 -> b
    1:5:boolean equals(java.lang.Object):49:53 -> equals
    1:1:int hashCode():44:44 -> hashCode
com.android.tools.r8.code.Format30t -> com.android.tools.r8.code.Format30t:
    1:2:void <init>(int,com.android.tools.r8.code.BytecodeStream):18:19 -> <init>
    3:4:void <init>(int):22:23 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):28:29 -> a
    3:3:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):52:52 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):47:47 -> b
    1:4:boolean equals(java.lang.Object):39:42 -> equals
    1:1:int hashCode():34:34 -> hashCode
com.android.tools.r8.code.Format31c -> com.android.tools.r8.code.Format31c:
    boolean $assertionsDisabled -> b
    short AA -> a
    1:1:void <clinit>():17:17 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.DexString[]):24:26 -> <init>
    4:7:void <init>(int,com.android.tools.r8.graph.DexString):29:32 -> <init>
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):37:38 -> a
    3:3:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):64:64 -> a
    1:2:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):57:58 -> b
    3:3:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):57:57 -> b
    1:5:boolean equals(java.lang.Object):48:52 -> equals
    1:1:int hashCode():43:43 -> hashCode
com.android.tools.r8.code.Format31i -> com.android.tools.r8.code.ma:
    int BBBBBBBB -> b
    boolean $assertionsDisabled -> c
    short AA -> a
    1:1:void <clinit>():13:13 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):20:22 -> <init>
    4:7:void <init>(int,int):25:28 -> <init>
    1:5:boolean equals(java.lang.Object):44:48 -> equals
    1:1:int hashCode():39:39 -> hashCode
com.android.tools.r8.code.Format31t -> com.android.tools.r8.code.na:
    int BBBBBBBB -> b
    boolean $assertionsDisabled -> c
    short AA -> a
    1:1:void <clinit>():13:13 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):20:22 -> <init>
    4:7:void <init>(int,int):25:28 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:35 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):68:68 -> b
    1:1:void setPayloadOffset(int):49:49 -> d
    1:5:boolean equals(java.lang.Object):59:63 -> equals
    1:1:int getPayloadOffset():45:45 -> f
    1:1:int hashCode():54:54 -> hashCode
    boolean hasPayload() -> i
com.android.tools.r8.code.Format32x -> com.android.tools.r8.code.oa:
    int BBBB -> b
    boolean $assertionsDisabled -> c
    int AAAA -> a
    1:1:void <clinit>():14:14 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):21:23 -> <init>
    4:8:void <init>(int,int):26:30 -> <init>
    1:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:37 -> a
    4:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):61:61 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):56:56 -> b
    1:5:boolean equals(java.lang.Object):47:51 -> equals
    1:1:int hashCode():42:42 -> hashCode
com.android.tools.r8.code.Format35c -> com.android.tools.r8.code.pa:
    byte C -> b
    byte A -> a
    byte E -> d
    com.android.tools.r8.graph.IndexedDexItem BBBB -> g
    boolean $assertionsDisabled -> h
    byte D -> c
    byte G -> f
    byte F -> e
    1:1:void <clinit>():15:15 -> <clinit>
    1:10:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.IndexedDexItem[]):27:36 -> <init>
    11:24:void <init>(int,com.android.tools.r8.graph.IndexedDexItem,int,int,int,int,int):39:52 -> <init>
    1:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):57:59 -> a
    4:12:void appendRegisterArguments(java.lang.StringBuilder,java.lang.String):79:87 -> a
    13:18:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):105:110 -> a
    19:19:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):116:116 -> a
    1:9:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):92:100 -> b
    1:6:boolean equals(java.lang.Object):70:75 -> equals
    1:2:int hashCode():64:65 -> hashCode
com.android.tools.r8.code.Format3rc -> com.android.tools.r8.code.qa:
    char CCCC -> b
    short AA -> a
    com.android.tools.r8.graph.IndexedDexItem BBBB -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():15:15 -> <clinit>
    1:4:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.IndexedDexItem[]):23:26 -> <init>
    5:10:void <init>(int,int,com.android.tools.r8.graph.IndexedDexItem):29:34 -> <init>
    1:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):39:41 -> a
    4:10:void appendRegisterRange(java.lang.StringBuilder):59:65 -> a
    11:16:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):83:88 -> a
    17:17:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):94:94 -> a
    1:9:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):70:78 -> b
    1:5:boolean equals(java.lang.Object):51:55 -> equals
    1:1:int hashCode():46:46 -> hashCode
com.android.tools.r8.code.Goto -> com.android.tools.r8.code.Goto:
    byte com.android.tools.r8.code.Format10t.AA -> a
    boolean com.android.tools.r8.code.Format10t.$assertionsDisabled -> b
    1:1:void com.android.tools.r8.code.Format10t.<clinit>():12:12 -> <clinit>
    1:3:void com.android.tools.r8.code.Format10t.<init>(int,com.android.tools.r8.code.BytecodeStream):18:20 -> <init>
    1:3:void <init>(int,com.android.tools.r8.code.BytecodeStream):15 -> <init>
    4:6:void com.android.tools.r8.code.Format10t.<init>(int):23:25 -> <init>
    4:6:void <init>(int):19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:void com.android.tools.r8.code.Format10t.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
    1:1:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    2:5:boolean com.android.tools.r8.code.Format10t.equals(java.lang.Object):40:43 -> a
    6:6:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
    7:7:java.lang.String com.android.tools.r8.code.Format10t.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):53:53 -> a
    7:7:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8 -> a
    1:1:java.lang.String com.android.tools.r8.code.Format10t.toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8 -> b
    java.lang.String getName() -> e
    1:1:int[] getTargets():39:39 -> getTargets
    java.lang.String getSmaliName() -> h
    1:1:int com.android.tools.r8.code.Format10t.hashCode():35:35 -> o
com.android.tools.r8.code.Goto16 -> com.android.tools.r8.code.ra:
    boolean com.android.tools.r8.code.Format20t.$assertionsDisabled -> b
    short com.android.tools.r8.code.Format20t.AAAA -> a
    1:1:void com.android.tools.r8.code.Format20t.<clinit>():12:12 -> <clinit>
    1:2:void com.android.tools.r8.code.Format20t.<init>(int,com.android.tools.r8.code.BytecodeStream):18:19 -> <init>
    1:2:void <init>(int,com.android.tools.r8.code.BytecodeStream):15 -> <init>
    3:5:void com.android.tools.r8.code.Format20t.<init>(int):22:24 -> <init>
    3:5:void <init>(int):19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void com.android.tools.r8.code.Format20t.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):29:30 -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:6:boolean com.android.tools.r8.code.Format20t.equals(java.lang.Object):40:43 -> a
    7:7:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
    8:8:java.lang.String com.android.tools.r8.code.Format20t.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):53:53 -> a
    8:8:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8 -> a
    1:1:java.lang.String com.android.tools.r8.code.Format20t.toString(com.android.tools.r8.naming.ClassNameMapper):48:48 -> b
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8 -> b
    java.lang.String getName() -> e
    1:1:int[] getTargets():39:39 -> getTargets
    java.lang.String getSmaliName() -> h
    1:1:int com.android.tools.r8.code.Format20t.hashCode():35:35 -> o
com.android.tools.r8.code.Goto32 -> com.android.tools.r8.code.Goto32:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:2:void com.android.tools.r8.code.Format30t.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):28:29 -> a
    1:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
    4:4:java.lang.String com.android.tools.r8.code.Format30t.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):52:52 -> a
    4:4:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8 -> a
    1:1:java.lang.String com.android.tools.r8.code.Format30t.toString(com.android.tools.r8.naming.ClassNameMapper):47:47 -> b
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8 -> b
    java.lang.String getName() -> e
    1:1:int[] getTargets():39:39 -> getTargets
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.IfEq -> com.android.tools.r8.code.IfEq:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> getType
    java.lang.String getSmaliName() -> h
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> o
com.android.tools.r8.code.IfEqz -> com.android.tools.r8.code.IfEqz:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> getType
    java.lang.String getSmaliName() -> h
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> o
com.android.tools.r8.code.IfGe -> com.android.tools.r8.code.IfGe:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> getType
    java.lang.String getSmaliName() -> h
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> o
com.android.tools.r8.code.IfGez -> com.android.tools.r8.code.IfGez:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> getType
    java.lang.String getSmaliName() -> h
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> o
com.android.tools.r8.code.IfGt -> com.android.tools.r8.code.IfGt:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> getType
    java.lang.String getSmaliName() -> h
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> o
com.android.tools.r8.code.IfGtz -> com.android.tools.r8.code.IfGtz:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> getType
    java.lang.String getSmaliName() -> h
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> o
com.android.tools.r8.code.IfLe -> com.android.tools.r8.code.IfLe:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> getType
    java.lang.String getSmaliName() -> h
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> o
com.android.tools.r8.code.IfLez -> com.android.tools.r8.code.IfLez:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> getType
    java.lang.String getSmaliName() -> h
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> o
com.android.tools.r8.code.IfLt -> com.android.tools.r8.code.IfLt:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> getType
    java.lang.String getSmaliName() -> h
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> o
com.android.tools.r8.code.IfLtz -> com.android.tools.r8.code.IfLtz:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> getType
    java.lang.String getSmaliName() -> h
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> o
com.android.tools.r8.code.IfNe -> com.android.tools.r8.code.IfNe:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> getType
    java.lang.String getSmaliName() -> h
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> o
com.android.tools.r8.code.IfNez -> com.android.tools.r8.code.IfNez:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.ir.code.If$Type getType():40:40 -> getType
    java.lang.String getSmaliName() -> h
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint getOperandTypeConstraint():45:45 -> o
com.android.tools.r8.code.Iget -> com.android.tools.r8.code.Iget:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.IgetBoolean -> com.android.tools.r8.code.IgetBoolean:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.IgetByte -> com.android.tools.r8.code.IgetByte:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():46:46 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.IgetChar -> com.android.tools.r8.code.IgetChar:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():46:46 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.IgetObject -> com.android.tools.r8.code.IgetObject:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):47:47 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():42:42 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.IgetShort -> com.android.tools.r8.code.IgetShort:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):47:47 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():42:42 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.IgetWide -> com.android.tools.r8.code.IgetWide:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):47:47 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():42:42 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.InstanceOf -> com.android.tools.r8.code.InstanceOf:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexType):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexType getType():46:46 -> getType
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.Instruction -> com.android.tools.r8.code.Instruction:
    int[] NO_TARGETS -> b
    int[] EXIT_TARGET -> c
    boolean $assertionsDisabled -> d
    int offset -> a
    1:5:void <clinit>():21:25 -> <clinit>
    1:3:void <init>(com.android.tools.r8.code.BytecodeStream):29:31 -> <init>
    4:5:void <init>():34:35 -> <init>
    com.android.tools.r8.code.ConstString asConstString() -> a
    void buildIR(com.android.tools.r8.ir.conversion.IRBuilder) -> a
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    short combineBytes(int,int) -> a
    void registerUse(com.android.tools.r8.graph.UseRegistry) -> a
    java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper) -> a
    void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping) -> a
    1:1:char read16BitValue(com.android.tools.r8.code.BytecodeStream):52:52 -> a
    2:2:void writeFirst(int,int,java.nio.ShortBuffer):89:89 -> a
    3:3:void write16BitValue(int,java.nio.ShortBuffer):93:93 -> a
    4:5:void write32BitValue(long,java.nio.ShortBuffer):97:98 -> a
    6:8:void write16BitReference(com.android.tools.r8.graph.IndexedDexItem,java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):108:110 -> a
    9:9:java.lang.String formatDecimalOffset(int):183:183 -> a
    10:18:java.lang.String formatSmaliString(java.lang.String):200:208 -> a
    19:19:java.lang.String toSmaliString(com.android.tools.r8.code.Instruction):248:248 -> a
    20:20:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):260:260 -> a
    com.android.tools.r8.code.ConstStringJumbo asConstStringJumbo() -> b
    int makeByte(int,int) -> b
    java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper) -> b
    1:2:long read32BitValue(com.android.tools.r8.code.BytecodeStream):63:64 -> b
    3:3:void writeFirst(int,java.nio.ShortBuffer):85:85 -> b
    4:5:void write64BitValue(long,java.nio.ShortBuffer):102:103 -> b
    6:6:void write32BitReference(com.android.tools.r8.graph.IndexedDexItem,java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):115:115 -> b
    7:7:java.lang.String formatOffset(int):179:179 -> b
    8:13:java.lang.String formatString(java.lang.String):191:196 -> b
    com.android.tools.r8.code.DexItemBasedConstString asDexItemBasedConstString() -> c
    1:1:short read8BitValue(com.android.tools.r8.code.BytecodeStream):43:43 -> c
    2:2:java.lang.String formatRelativeOffset(int):187:187 -> c
    boolean canThrow() -> d
    1:1:short readSigned16BitValue(com.android.tools.r8.code.BytecodeStream):48:48 -> d
    java.lang.String getName() -> e
    1:2:int readSigned32BitValue(com.android.tools.r8.code.BytecodeStream):56:57 -> e
    int getPayloadOffset() -> f
    com.android.tools.r8.graph.DexProto getProto() -> g
    1:1:int getOffset():119:119 -> getOffset
    1:1:int[] getTargets():212:212 -> getTargets
    java.lang.String getSmaliName() -> h
    boolean hasPayload() -> i
    1:1:boolean isSimpleNop():155:155 -> isSimpleNop
    boolean isConstStringJumbo() -> j
    boolean isDexItemBasedConstString() -> k
    boolean isPayload() -> l
    boolean isSwitch() -> m
    boolean isSwitchPayload() -> n
    1:1:void setOffset(int):123:123 -> setOffset
    1:1:java.lang.String toString():265:265 -> toString
com.android.tools.r8.code.InstructionFactory -> com.android.tools.r8.code.InstructionFactory:
    1:1:void <init>():11:11 -> <init>
    1:4:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):22:25 -> readSequenceFrom
    5:6:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):15:16 -> readSequenceFrom
    5:6:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    7:7:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):462:462 -> readSequenceFrom
    7:7:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    7:7:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    8:8:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):136:136 -> readSequenceFrom
    8:8:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    8:8:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    9:9:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):134:134 -> readSequenceFrom
    9:9:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    9:9:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    10:10:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):132:132 -> readSequenceFrom
    10:10:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    10:10:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    11:11:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):130:130 -> readSequenceFrom
    11:11:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    11:11:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    12:12:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):128:128 -> readSequenceFrom
    12:12:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    12:12:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    13:13:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):126:126 -> readSequenceFrom
    13:13:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    13:13:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    14:14:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):124:124 -> readSequenceFrom
    14:14:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    14:14:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    15:15:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):122:122 -> readSequenceFrom
    15:15:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    15:15:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    16:16:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):120:120 -> readSequenceFrom
    16:16:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    16:16:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    17:17:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):118:118 -> readSequenceFrom
    17:17:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    17:17:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    18:18:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):116:116 -> readSequenceFrom
    18:18:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    18:18:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    19:19:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):114:114 -> readSequenceFrom
    19:19:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    19:19:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    20:20:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):112:112 -> readSequenceFrom
    20:20:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    20:20:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    21:21:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):110:110 -> readSequenceFrom
    21:21:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    21:21:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    22:22:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):108:108 -> readSequenceFrom
    22:22:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    22:22:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    23:23:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):106:106 -> readSequenceFrom
    23:23:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    23:23:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    24:24:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):104:104 -> readSequenceFrom
    24:24:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    24:24:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    25:25:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):102:102 -> readSequenceFrom
    25:25:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    25:25:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    26:26:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):100:100 -> readSequenceFrom
    26:26:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    26:26:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    27:27:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):98:98 -> readSequenceFrom
    27:27:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    27:27:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    28:28:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):96:96 -> readSequenceFrom
    28:28:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    28:28:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    29:29:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):94:94 -> readSequenceFrom
    29:29:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    29:29:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    30:30:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):92:92 -> readSequenceFrom
    30:30:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    30:30:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    31:31:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):90:90 -> readSequenceFrom
    31:31:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    31:31:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    32:32:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):88:88 -> readSequenceFrom
    32:32:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    32:32:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    33:33:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):86:86 -> readSequenceFrom
    33:33:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    33:33:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    34:34:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):84:84 -> readSequenceFrom
    34:34:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    34:34:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    35:35:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):82:82 -> readSequenceFrom
    35:35:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    35:35:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    36:36:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):80:80 -> readSequenceFrom
    36:36:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    36:36:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    37:37:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):78:78 -> readSequenceFrom
    37:37:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    37:37:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    38:38:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):76:76 -> readSequenceFrom
    38:38:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    38:38:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    39:39:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):74:74 -> readSequenceFrom
    39:39:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    39:39:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    40:40:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):72:72 -> readSequenceFrom
    40:40:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    40:40:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    41:41:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):70:70 -> readSequenceFrom
    41:41:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    41:41:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    42:42:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):68:68 -> readSequenceFrom
    42:42:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    42:42:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    43:43:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):66:66 -> readSequenceFrom
    43:43:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    43:43:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    44:44:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):64:64 -> readSequenceFrom
    44:44:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    44:44:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    45:45:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):62:62 -> readSequenceFrom
    45:45:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    45:45:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    46:46:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):60:60 -> readSequenceFrom
    46:46:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    46:46:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    47:47:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):58:58 -> readSequenceFrom
    47:47:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    47:47:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    48:48:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):56:56 -> readSequenceFrom
    48:48:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    48:48:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    49:49:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):54:54 -> readSequenceFrom
    49:49:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    49:49:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    50:50:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):52:52 -> readSequenceFrom
    50:50:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    50:50:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    51:51:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):50:50 -> readSequenceFrom
    51:51:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    51:51:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    52:52:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):48:48 -> readSequenceFrom
    52:52:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    52:52:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    53:53:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):46:46 -> readSequenceFrom
    53:53:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    53:53:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    54:54:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):44:44 -> readSequenceFrom
    54:54:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    54:54:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    55:55:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):42:42 -> readSequenceFrom
    55:55:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    55:55:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    56:56:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):40:40 -> readSequenceFrom
    56:56:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    56:56:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    57:57:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):38:38 -> readSequenceFrom
    57:57:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    57:57:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    58:58:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):36:36 -> readSequenceFrom
    58:58:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    58:58:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    59:59:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):34:34 -> readSequenceFrom
    59:59:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    59:59:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    60:60:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):32:32 -> readSequenceFrom
    60:60:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    60:60:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    61:61:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):30:30 -> readSequenceFrom
    61:61:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    61:61:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    62:62:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):28:28 -> readSequenceFrom
    62:62:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    62:62:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    63:63:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):26:26 -> readSequenceFrom
    63:63:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    63:63:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    64:64:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):24:24 -> readSequenceFrom
    64:64:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    64:64:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    65:65:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):22:22 -> readSequenceFrom
    65:65:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    65:65:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    66:66:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):20:20 -> readSequenceFrom
    66:66:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    66:66:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    67:67:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> readSequenceFrom
    67:67:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    67:67:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    68:68:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):16:16 -> readSequenceFrom
    68:68:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    68:68:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    69:285:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):14:230 -> readSequenceFrom
    69:285:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    69:285:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    286:286:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):228:228 -> readSequenceFrom
    286:286:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    286:286:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    287:287:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):226:226 -> readSequenceFrom
    287:287:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    287:287:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    288:288:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):224:224 -> readSequenceFrom
    288:288:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    288:288:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    289:289:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):222:222 -> readSequenceFrom
    289:289:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    289:289:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    290:290:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):220:220 -> readSequenceFrom
    290:290:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    290:290:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    291:291:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):218:218 -> readSequenceFrom
    291:291:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    291:291:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    292:292:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):216:216 -> readSequenceFrom
    292:292:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    292:292:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    293:293:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):214:214 -> readSequenceFrom
    293:293:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    293:293:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    294:294:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):212:212 -> readSequenceFrom
    294:294:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    294:294:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    295:295:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):210:210 -> readSequenceFrom
    295:295:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    295:295:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    296:296:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):208:208 -> readSequenceFrom
    296:296:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    296:296:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    297:297:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):206:206 -> readSequenceFrom
    297:297:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    297:297:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    298:298:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):204:204 -> readSequenceFrom
    298:298:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    298:298:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    299:299:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):202:202 -> readSequenceFrom
    299:299:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    299:299:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    300:300:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):200:200 -> readSequenceFrom
    300:300:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    300:300:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    301:301:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):198:198 -> readSequenceFrom
    301:301:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    301:301:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    302:302:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):196:196 -> readSequenceFrom
    302:302:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    302:302:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    303:303:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):194:194 -> readSequenceFrom
    303:303:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    303:303:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    304:304:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):192:192 -> readSequenceFrom
    304:304:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    304:304:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    305:305:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):190:190 -> readSequenceFrom
    305:305:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    305:305:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    306:306:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):188:188 -> readSequenceFrom
    306:306:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    306:306:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    307:307:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):186:186 -> readSequenceFrom
    307:307:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    307:307:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    308:308:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):184:184 -> readSequenceFrom
    308:308:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    308:308:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    309:309:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):182:182 -> readSequenceFrom
    309:309:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    309:309:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    310:310:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):180:180 -> readSequenceFrom
    310:310:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    310:310:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    311:311:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):178:178 -> readSequenceFrom
    311:311:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    311:311:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    312:312:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):176:176 -> readSequenceFrom
    312:312:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    312:312:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    313:313:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):174:174 -> readSequenceFrom
    313:313:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    313:313:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    314:314:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):172:172 -> readSequenceFrom
    314:314:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    314:314:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    315:315:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):170:170 -> readSequenceFrom
    315:315:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    315:315:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    316:316:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):168:168 -> readSequenceFrom
    316:316:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    316:316:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    317:317:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):166:166 -> readSequenceFrom
    317:317:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    317:317:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    318:318:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):164:164 -> readSequenceFrom
    318:318:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    318:318:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    319:319:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):162:162 -> readSequenceFrom
    319:319:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    319:319:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    320:320:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):160:160 -> readSequenceFrom
    320:320:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    320:320:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    321:321:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):158:158 -> readSequenceFrom
    321:321:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    321:321:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    322:322:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):156:156 -> readSequenceFrom
    322:322:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    322:322:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    323:323:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):154:154 -> readSequenceFrom
    323:323:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    323:323:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    324:324:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):152:152 -> readSequenceFrom
    324:324:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    324:324:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    325:325:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):150:150 -> readSequenceFrom
    325:325:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    325:325:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    326:326:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):148:148 -> readSequenceFrom
    326:326:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    326:326:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    327:327:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):146:146 -> readSequenceFrom
    327:327:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    327:327:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    328:328:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):144:144 -> readSequenceFrom
    328:328:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    328:328:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    329:329:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):142:142 -> readSequenceFrom
    329:329:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    329:329:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    330:330:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):140:140 -> readSequenceFrom
    330:330:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    330:330:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    331:433:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):138:240 -> readSequenceFrom
    331:433:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    331:433:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    434:434:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):238:238 -> readSequenceFrom
    434:434:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    434:434:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    435:435:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):236:236 -> readSequenceFrom
    435:435:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    435:435:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    436:436:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):234:234 -> readSequenceFrom
    436:436:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    436:436:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    437:653:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):232:448 -> readSequenceFrom
    437:653:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    437:653:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    654:654:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):446:446 -> readSequenceFrom
    654:654:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    654:654:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    655:655:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):444:444 -> readSequenceFrom
    655:655:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    655:655:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    656:656:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):442:442 -> readSequenceFrom
    656:656:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    656:656:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    657:657:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):440:440 -> readSequenceFrom
    657:657:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    657:657:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    658:658:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):438:438 -> readSequenceFrom
    658:658:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    658:658:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    659:659:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):436:436 -> readSequenceFrom
    659:659:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    659:659:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    660:660:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):434:434 -> readSequenceFrom
    660:660:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    660:660:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    661:661:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):432:432 -> readSequenceFrom
    661:661:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    661:661:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    662:662:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):430:430 -> readSequenceFrom
    662:662:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    662:662:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    663:663:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):428:428 -> readSequenceFrom
    663:663:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    663:663:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    664:664:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):426:426 -> readSequenceFrom
    664:664:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    664:664:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    665:665:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):424:424 -> readSequenceFrom
    665:665:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    665:665:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    666:666:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):422:422 -> readSequenceFrom
    666:666:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    666:666:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    667:667:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):420:420 -> readSequenceFrom
    667:667:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    667:667:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    668:668:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):418:418 -> readSequenceFrom
    668:668:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    668:668:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    669:669:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):416:416 -> readSequenceFrom
    669:669:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    669:669:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    670:670:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):414:414 -> readSequenceFrom
    670:670:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    670:670:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    671:671:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):412:412 -> readSequenceFrom
    671:671:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    671:671:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    672:672:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):410:410 -> readSequenceFrom
    672:672:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    672:672:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    673:673:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):408:408 -> readSequenceFrom
    673:673:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    673:673:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    674:674:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):406:406 -> readSequenceFrom
    674:674:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    674:674:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    675:675:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):404:404 -> readSequenceFrom
    675:675:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    675:675:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    676:676:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):402:402 -> readSequenceFrom
    676:676:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    676:676:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    677:677:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):400:400 -> readSequenceFrom
    677:677:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    677:677:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    678:678:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):398:398 -> readSequenceFrom
    678:678:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    678:678:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    679:679:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):396:396 -> readSequenceFrom
    679:679:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    679:679:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    680:680:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):394:394 -> readSequenceFrom
    680:680:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    680:680:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    681:681:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):392:392 -> readSequenceFrom
    681:681:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    681:681:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    682:682:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):390:390 -> readSequenceFrom
    682:682:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    682:682:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    683:683:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):388:388 -> readSequenceFrom
    683:683:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    683:683:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    684:684:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):386:386 -> readSequenceFrom
    684:684:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    684:684:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    685:685:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):384:384 -> readSequenceFrom
    685:685:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    685:685:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    686:686:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):382:382 -> readSequenceFrom
    686:686:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    686:686:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    687:687:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):380:380 -> readSequenceFrom
    687:687:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    687:687:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    688:688:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):378:378 -> readSequenceFrom
    688:688:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    688:688:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    689:689:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):376:376 -> readSequenceFrom
    689:689:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    689:689:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    690:690:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):374:374 -> readSequenceFrom
    690:690:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    690:690:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    691:691:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):372:372 -> readSequenceFrom
    691:691:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    691:691:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    692:692:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):370:370 -> readSequenceFrom
    692:692:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    692:692:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    693:693:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):368:368 -> readSequenceFrom
    693:693:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    693:693:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    694:694:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):366:366 -> readSequenceFrom
    694:694:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    694:694:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    695:695:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):364:364 -> readSequenceFrom
    695:695:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    695:695:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    696:696:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):362:362 -> readSequenceFrom
    696:696:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    696:696:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    697:697:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):360:360 -> readSequenceFrom
    697:697:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    697:697:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    698:698:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):358:358 -> readSequenceFrom
    698:698:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    698:698:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    699:699:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):356:356 -> readSequenceFrom
    699:699:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    699:699:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    700:700:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):354:354 -> readSequenceFrom
    700:700:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    700:700:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    701:701:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):352:352 -> readSequenceFrom
    701:701:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    701:701:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    702:702:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):350:350 -> readSequenceFrom
    702:702:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    702:702:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    703:703:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):348:348 -> readSequenceFrom
    703:703:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    703:703:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    704:704:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):346:346 -> readSequenceFrom
    704:704:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    704:704:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    705:705:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):344:344 -> readSequenceFrom
    705:705:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    705:705:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    706:706:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):342:342 -> readSequenceFrom
    706:706:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    706:706:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    707:707:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):340:340 -> readSequenceFrom
    707:707:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    707:707:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    708:708:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):338:338 -> readSequenceFrom
    708:708:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    708:708:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    709:709:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):336:336 -> readSequenceFrom
    709:709:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    709:709:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    710:710:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):334:334 -> readSequenceFrom
    710:710:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    710:710:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    711:711:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):332:332 -> readSequenceFrom
    711:711:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    711:711:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    712:712:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):330:330 -> readSequenceFrom
    712:712:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    712:712:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    713:713:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):328:328 -> readSequenceFrom
    713:713:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    713:713:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    714:714:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):326:326 -> readSequenceFrom
    714:714:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    714:714:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    715:715:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):324:324 -> readSequenceFrom
    715:715:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    715:715:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    716:716:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):322:322 -> readSequenceFrom
    716:716:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    716:716:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    717:717:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):320:320 -> readSequenceFrom
    717:717:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    717:717:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    718:718:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):318:318 -> readSequenceFrom
    718:718:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    718:718:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    719:719:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):316:316 -> readSequenceFrom
    719:719:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    719:719:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    720:720:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):314:314 -> readSequenceFrom
    720:720:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    720:720:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    721:721:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):312:312 -> readSequenceFrom
    721:721:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    721:721:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    722:722:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):310:310 -> readSequenceFrom
    722:722:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    722:722:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    723:723:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):308:308 -> readSequenceFrom
    723:723:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    723:723:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    724:724:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):306:306 -> readSequenceFrom
    724:724:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    724:724:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    725:725:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):304:304 -> readSequenceFrom
    725:725:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    725:725:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    726:726:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):302:302 -> readSequenceFrom
    726:726:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    726:726:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    727:727:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):300:300 -> readSequenceFrom
    727:727:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    727:727:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    728:728:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):298:298 -> readSequenceFrom
    728:728:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    728:728:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    729:729:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):296:296 -> readSequenceFrom
    729:729:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    729:729:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    730:730:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):294:294 -> readSequenceFrom
    730:730:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    730:730:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    731:731:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):292:292 -> readSequenceFrom
    731:731:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    731:731:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    732:732:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):290:290 -> readSequenceFrom
    732:732:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    732:732:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    733:733:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):288:288 -> readSequenceFrom
    733:733:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    733:733:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    734:734:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):286:286 -> readSequenceFrom
    734:734:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    734:734:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    735:735:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):284:284 -> readSequenceFrom
    735:735:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    735:735:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    736:736:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):282:282 -> readSequenceFrom
    736:736:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    736:736:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    737:737:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):280:280 -> readSequenceFrom
    737:737:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    737:737:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    738:738:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):278:278 -> readSequenceFrom
    738:738:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    738:738:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    739:739:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):276:276 -> readSequenceFrom
    739:739:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    739:739:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    740:740:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):274:274 -> readSequenceFrom
    740:740:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    740:740:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    741:741:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):272:272 -> readSequenceFrom
    741:741:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    741:741:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    742:742:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):270:270 -> readSequenceFrom
    742:742:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    742:742:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    743:743:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):268:268 -> readSequenceFrom
    743:743:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    743:743:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    744:744:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):266:266 -> readSequenceFrom
    744:744:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    744:744:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    745:745:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):264:264 -> readSequenceFrom
    745:745:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    745:745:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    746:746:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):262:262 -> readSequenceFrom
    746:746:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    746:746:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    747:747:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):260:260 -> readSequenceFrom
    747:747:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    747:747:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    748:748:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):258:258 -> readSequenceFrom
    748:748:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    748:748:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    749:749:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):256:256 -> readSequenceFrom
    749:749:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    749:749:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    750:750:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):254:254 -> readSequenceFrom
    750:750:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    750:750:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    751:751:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):252:252 -> readSequenceFrom
    751:751:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    751:751:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    752:752:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):250:250 -> readSequenceFrom
    752:752:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    752:752:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    753:753:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):248:248 -> readSequenceFrom
    753:753:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    753:753:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    754:754:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):246:246 -> readSequenceFrom
    754:754:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    754:754:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    755:755:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):244:244 -> readSequenceFrom
    755:755:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    755:755:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    756:974:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):242:460 -> readSequenceFrom
    756:974:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    756:974:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    975:975:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):458:458 -> readSequenceFrom
    975:975:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    975:975:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    976:976:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):456:456 -> readSequenceFrom
    976:976:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    976:976:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    977:977:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):454:454 -> readSequenceFrom
    977:977:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    977:977:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    978:978:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):452:452 -> readSequenceFrom
    978:978:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    978:978:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    979:979:com.android.tools.r8.code.Instruction com.android.tools.r8.code.BaseInstructionFactory.create(int,int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):450:450 -> readSequenceFrom
    979:979:com.android.tools.r8.code.Instruction readFrom(com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):17 -> readSequenceFrom
    979:979:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):26 -> readSequenceFrom
    980:982:com.android.tools.r8.code.Instruction[] readSequenceFrom(java.nio.ShortBuffer,int,int,com.android.tools.r8.graph.OffsetToObjectMapping):27:29 -> readSequenceFrom
com.android.tools.r8.code.InstructionFactory$ShortBufferBytecodeStream -> com.android.tools.r8.code.InstructionFactory$a:
    boolean cacheContainsValidByte -> f
    boolean $assertionsDisabled -> g
    int offset -> d
    int nextByte -> e
    int startIndex -> b
    java.nio.ShortBuffer source -> c
    int length -> a
    1:1:void <clinit>():32:32 -> <clinit>
    1:1:void <init>(java.nio.ShortBuffer,int,int):42:42 -> <init>
    2:9:void <init>(java.nio.ShortBuffer,int,int):38:45 -> <init>
    1:1:int getOffset():77:77 -> a
    1:1:boolean hasMore():72:72 -> b
    1:7:int nextByte():59:65 -> c
    1:4:int nextShort():50:53 -> d
com.android.tools.r8.code.IntToByte -> com.android.tools.r8.code.sa:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.IntToChar -> com.android.tools.r8.code.ta:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.IntToDouble -> com.android.tools.r8.code.ua:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.IntToFloat -> com.android.tools.r8.code.va:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.IntToLong -> com.android.tools.r8.code.wa:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.IntToShort -> com.android.tools.r8.code.xa:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.InvokeCustom -> com.android.tools.r8.code.ya:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.IndexedDexItem,int,int,int,int,int):23:23 -> <init>
    1:1:com.android.tools.r8.graph.DexCallSite getCallSite():48:48 -> a
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
    3:3:com.android.tools.r8.graph.DexCallSite getCallSite():48:48 -> a
    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry):43 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):43:43 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.InvokeCustomRange -> com.android.tools.r8.code.za:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexCallSite):22:22 -> <init>
    1:1:com.android.tools.r8.graph.DexCallSite getCallSite():42:42 -> a
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    3:3:com.android.tools.r8.graph.DexCallSite getCallSite():42:42 -> a
    3:3:void registerUse(com.android.tools.r8.graph.UseRegistry):47 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):47:47 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.InvokeDirect -> com.android.tools.r8.code.InvokeDirect:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):20:20 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.IndexedDexItem,int,int,int,int,int):24:24 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):44:44 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):54:54 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexMethod getMethod():49:49 -> getMethod
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.InvokeDirectRange -> com.android.tools.r8.code.InvokeDirectRange:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexMethod):23:23 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):48:48 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexMethod getMethod():43:43 -> getMethod
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.InvokeInterface -> com.android.tools.r8.code.InvokeInterface:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):20:20 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.IndexedDexItem,int,int,int,int,int):24:24 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):44:44 -> a
    2:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):54:55 -> a
    4:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):54:54 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexMethod getMethod():49:49 -> getMethod
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.InvokeInterfaceRange -> com.android.tools.r8.code.InvokeInterfaceRange:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexMethod):23:23 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):43:43 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> getMethod
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.InvokePolymorphic -> com.android.tools.r8.code.Aa:
    boolean com.android.tools.r8.code.Format45cc.$assertionsDisabled -> m
    byte com.android.tools.r8.code.Format45cc.G -> j
    byte com.android.tools.r8.code.Format45cc.F -> i
    com.android.tools.r8.graph.DexMethod com.android.tools.r8.code.Format45cc.BBBB -> k
    byte com.android.tools.r8.code.Format45cc.C -> f
    byte com.android.tools.r8.code.Format45cc.A -> e
    com.android.tools.r8.graph.DexProto com.android.tools.r8.code.Format45cc.HHHH -> l
    byte com.android.tools.r8.code.Format45cc.E -> h
    byte com.android.tools.r8.code.Format45cc.D -> g
    1:1:void com.android.tools.r8.code.Format45cc.<clinit>():17:17 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):23:23 -> <init>
    2:12:void com.android.tools.r8.code.Format45cc.<init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.DexMethod[],com.android.tools.r8.graph.DexProto[]):29:39 -> <init>
    2:12:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):23 -> <init>
    13:27:void com.android.tools.r8.code.Format45cc.<init>(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto,int,int,int,int,int):43:57 -> <init>
    13:27:void <init>(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto,int,int,int,int,int):28 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):33:33 -> a
    2:2:com.android.tools.r8.graph.DexMethod com.android.tools.r8.code.Format45cc.getMethod():151:151 -> a
    2:2:com.android.tools.r8.graph.DexMethod com.android.tools.r8.code.Format45cc.getMethod():0 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):34 -> a
    3:3:com.android.tools.r8.graph.DexProto com.android.tools.r8.code.Format45cc.getProto():156:156 -> a
    3:3:com.android.tools.r8.graph.DexProto com.android.tools.r8.code.Format45cc.getProto():0 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):34 -> a
    4:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):34:34 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):33:33 -> a
    6:17:boolean com.android.tools.r8.code.Format45cc.equals(java.lang.Object):75:86 -> a
    18:19:void com.android.tools.r8.code.Format45cc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):92:93 -> a
    18:19:void com.android.tools.r8.code.Format45cc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0 -> a
    20:23:void com.android.tools.r8.code.Format45cc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):98:101 -> a
    20:23:void com.android.tools.r8.code.Format45cc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):0 -> a
    24:31:java.lang.String com.android.tools.r8.code.Format45cc.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):106:113 -> a
    24:31:java.lang.String com.android.tools.r8.code.Format45cc.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):0 -> a
    32:34:java.lang.String com.android.tools.r8.code.Format45cc.itemToString(com.android.tools.r8.graph.IndexedDexItem,com.android.tools.r8.naming.ClassNameMapper):130:132 -> a
    35:43:void com.android.tools.r8.code.Format45cc.appendRegisterArguments(java.lang.StringBuilder,java.lang.String):138:146 -> a
    1:7:java.lang.String com.android.tools.r8.code.Format45cc.toString(com.android.tools.r8.naming.ClassNameMapper):118:124 -> b
    1:7:java.lang.String com.android.tools.r8.code.Format45cc.toString(com.android.tools.r8.naming.ClassNameMapper):0 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexProto com.android.tools.r8.code.Format45cc.getProto():156:156 -> g
    1:1:com.android.tools.r8.graph.DexProto com.android.tools.r8.code.Format45cc.getProto():0 -> g
    1:1:com.android.tools.r8.graph.DexMethod com.android.tools.r8.code.Format45cc.getMethod():151:151 -> getMethod
    1:1:com.android.tools.r8.graph.DexMethod com.android.tools.r8.code.Format45cc.getMethod():0 -> getMethod
    java.lang.String getSmaliName() -> h
    1:9:int com.android.tools.r8.code.Format45cc.hashCode():62:70 -> o
com.android.tools.r8.code.InvokePolymorphicRange -> com.android.tools.r8.code.Ba:
    com.android.tools.r8.graph.DexProto com.android.tools.r8.code.Format4rcc.HHHH -> h
    short com.android.tools.r8.code.Format4rcc.AA -> e
    boolean com.android.tools.r8.code.Format4rcc.$assertionsDisabled -> i
    com.android.tools.r8.graph.DexMethod com.android.tools.r8.code.Format4rcc.BBBB -> g
    char com.android.tools.r8.code.Format4rcc.CCCC -> f
    1:1:void com.android.tools.r8.code.Format4rcc.<clinit>():17:17 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):21:21 -> <init>
    2:6:void com.android.tools.r8.code.Format4rcc.<init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.DexMethod[],com.android.tools.r8.graph.DexProto[]):26:30 -> <init>
    2:6:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):21 -> <init>
    7:13:void com.android.tools.r8.code.Format4rcc.<init>(int,int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto):33:39 -> <init>
    7:13:void <init>(int,int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto):26 -> <init>
    1:4:void com.android.tools.r8.code.Format4rcc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):44:47 -> a
    1:4:void com.android.tools.r8.code.Format4rcc.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):0 -> a
    5:5:com.android.tools.r8.graph.DexMethod getMethod():46:46 -> a
    5:5:void registerUse(com.android.tools.r8.graph.UseRegistry):51 -> a
    6:6:void registerUse(com.android.tools.r8.graph.UseRegistry):51:51 -> a
    7:7:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):56:56 -> a
    8:8:com.android.tools.r8.graph.DexMethod getMethod():46:46 -> a
    8:8:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):56 -> a
    9:9:com.android.tools.r8.graph.DexProto com.android.tools.r8.code.Format4rcc.getProto():131:131 -> a
    9:9:com.android.tools.r8.graph.DexProto com.android.tools.r8.code.Format4rcc.getProto():0 -> a
    9:9:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):56 -> a
    10:10:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):56:56 -> a
    11:15:boolean com.android.tools.r8.code.Format4rcc.equals(java.lang.Object):58:62 -> a
    16:23:java.lang.String com.android.tools.r8.code.Format4rcc.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):85:92 -> a
    16:23:java.lang.String com.android.tools.r8.code.Format4rcc.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):0 -> a
    24:25:void com.android.tools.r8.code.Format4rcc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):98:99 -> a
    24:25:void com.android.tools.r8.code.Format4rcc.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):0 -> a
    26:32:void com.android.tools.r8.code.Format4rcc.appendRegisterRange(java.lang.StringBuilder):115:121 -> a
    1:14:java.lang.String com.android.tools.r8.code.Format4rcc.toString(com.android.tools.r8.naming.ClassNameMapper):67:80 -> b
    1:14:java.lang.String com.android.tools.r8.code.Format4rcc.toString(com.android.tools.r8.naming.ClassNameMapper):0 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexProto com.android.tools.r8.code.Format4rcc.getProto():131:131 -> g
    1:1:com.android.tools.r8.graph.DexProto com.android.tools.r8.code.Format4rcc.getProto():0 -> g
    1:1:com.android.tools.r8.graph.DexMethod getMethod():46:46 -> getMethod
    java.lang.String getSmaliName() -> h
    1:2:int com.android.tools.r8.code.Format4rcc.hashCode():52:53 -> o
com.android.tools.r8.code.InvokeStatic -> com.android.tools.r8.code.InvokeStatic:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexMethod,int,int,int,int,int):23:23 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):43:43 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> getMethod
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.InvokeStaticRange -> com.android.tools.r8.code.InvokeStaticRange:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexMethod):23:23 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):43:43 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> getMethod
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.InvokeSuper -> com.android.tools.r8.code.InvokeSuper:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):20:20 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.IndexedDexItem,int,int,int,int,int):24:24 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):44:44 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):54:54 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexMethod getMethod():49:49 -> getMethod
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.InvokeSuperRange -> com.android.tools.r8.code.InvokeSuperRange:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexMethod):23:23 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):43:43 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> getMethod
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.InvokeVirtual -> com.android.tools.r8.code.InvokeVirtual:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexMethod,int,int,int,int,int):23:23 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):43:43 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> getMethod
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.InvokeVirtualRange -> com.android.tools.r8.code.InvokeVirtualRange:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):19:19 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexMethod):23:23 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):43:43 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexMethod getMethod():48:48 -> getMethod
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.Iput -> com.android.tools.r8.code.Iput:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.IputBoolean -> com.android.tools.r8.code.IputBoolean:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.IputByte -> com.android.tools.r8.code.IputByte:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.IputChar -> com.android.tools.r8.code.IputChar:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.IputObject -> com.android.tools.r8.code.IputObject:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.IputShort -> com.android.tools.r8.code.IputShort:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.IputWide -> com.android.tools.r8.code.IputWide:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.LongToDouble -> com.android.tools.r8.code.Ca:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.LongToFloat -> com.android.tools.r8.code.Da:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.LongToInt -> com.android.tools.r8.code.LongToInt:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MonitorEnter -> com.android.tools.r8.code.MonitorEnter:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MonitorExit -> com.android.tools.r8.code.MonitorExit:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.Move -> com.android.tools.r8.code.Fa:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.Move16 -> com.android.tools.r8.code.Ea:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MoveException -> com.android.tools.r8.code.MoveException:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MoveFrom16 -> com.android.tools.r8.code.Ga:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:3:void com.android.tools.r8.code.Format22x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):34:35 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    4:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MoveObject -> com.android.tools.r8.code.Ia:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MoveObject16 -> com.android.tools.r8.code.Ha:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MoveObjectFrom16 -> com.android.tools.r8.code.Ja:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:3:void com.android.tools.r8.code.Format22x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):34:35 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    4:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MoveResult -> com.android.tools.r8.code.MoveResult:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):14:14 -> <init>
    2:2:void <init>(int):18:18 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):7:7 -> a
    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):7 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):38:38 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):7:7 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MoveResultObject -> com.android.tools.r8.code.Ka:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MoveResultWide -> com.android.tools.r8.code.MoveResultWide:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MoveWide -> com.android.tools.r8.code.Ma:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MoveWide16 -> com.android.tools.r8.code.La:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MoveWideFrom16 -> com.android.tools.r8.code.Na:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:3:void com.android.tools.r8.code.Format22x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):34:35 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    4:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MulDouble -> com.android.tools.r8.code.MulDouble:
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():9:9 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:7:void <init>(int,int,int):20:25 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45:45 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MulDouble2Addr -> com.android.tools.r8.code.MulDouble2Addr:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MulFloat -> com.android.tools.r8.code.MulFloat:
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():9:9 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:7:void <init>(int,int,int):20:25 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45:45 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MulFloat2Addr -> com.android.tools.r8.code.MulFloat2Addr:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MulInt -> com.android.tools.r8.code.MulInt:
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():8:8 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:7:void <init>(int,int,int):19:24 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MulInt2Addr -> com.android.tools.r8.code.MulInt2Addr:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MulIntLit16 -> com.android.tools.r8.code.MulIntLit16:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MulIntLit8 -> com.android.tools.r8.code.MulIntLit8:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MulLong -> com.android.tools.r8.code.MulLong:
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():9:9 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:7:void <init>(int,int,int):20:25 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45:45 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.MulLong2Addr -> com.android.tools.r8.code.MulLong2Addr:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.NegDouble -> com.android.tools.r8.code.Oa:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.NegFloat -> com.android.tools.r8.code.Pa:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.NegInt -> com.android.tools.r8.code.Qa:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.NegLong -> com.android.tools.r8.code.Ra:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.NewArray -> com.android.tools.r8.code.NewArray:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,int,com.android.tools.r8.graph.DexType):22:22 -> <init>
    1:1:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexType getType():46:46 -> getType
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.NewInstance -> com.android.tools.r8.code.NewInstance:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexType):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexType getType():46:46 -> getType
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.Nop -> com.android.tools.r8.code.Nop:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>():18:18 -> <init>
    void buildIR(com.android.tools.r8.ir.conversion.IRBuilder) -> a
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:void com.android.tools.r8.code.Format10x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):25:25 -> a
    1:1:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    2:2:com.android.tools.r8.code.Nop create(int,com.android.tools.r8.code.BytecodeStream):30:30 -> a
    3:3:com.android.tools.r8.code.Nop create(int,com.android.tools.r8.code.BytecodeStream):28:28 -> a
    4:4:com.android.tools.r8.code.Nop create(int,com.android.tools.r8.code.BytecodeStream):26:26 -> a
    5:5:com.android.tools.r8.code.Nop create(int,com.android.tools.r8.code.BytecodeStream):24:24 -> a
    6:6:java.lang.String com.android.tools.r8.code.Format10x.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):45:45 -> a
    6:6:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8 -> a
    1:1:java.lang.String com.android.tools.r8.code.Format10x.toString(com.android.tools.r8.naming.ClassNameMapper):40:40 -> b
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8 -> b
    java.lang.String getName() -> e
    1:1:boolean com.android.tools.r8.code.Format10x.equals(java.lang.Object):35:35 -> equals
    1:1:boolean equals(java.lang.Object):8 -> equals
    java.lang.String getSmaliName() -> h
    1:1:int hashCode():36:36 -> hashCode
    2:2:int com.android.tools.r8.code.Format10x.hashCode():30:30 -> hashCode
    2:2:int hashCode():36 -> hashCode
com.android.tools.r8.code.NotInt -> com.android.tools.r8.code.Sa:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.NotLong -> com.android.tools.r8.code.Ta:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.OrInt -> com.android.tools.r8.code.Va:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.OrInt2Addr -> com.android.tools.r8.code.Ua:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.OrIntLit16 -> com.android.tools.r8.code.Wa:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.OrIntLit8 -> com.android.tools.r8.code.Xa:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.OrLong -> com.android.tools.r8.code.Za:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.OrLong2Addr -> com.android.tools.r8.code.Ya:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.PackedSwitch -> com.android.tools.r8.code.PackedSwitch:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):17:17 -> <init>
    2:2:void <init>(int):21:21 -> <init>
    1:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):46:49 -> a
    5:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):54:54 -> a
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
    boolean isSwitch() -> m
com.android.tools.r8.code.PackedSwitchPayload -> com.android.tools.r8.code._a:
    int[] targets -> c
    int first_key -> b
    boolean $assertionsDisabled -> d
    int size -> a
    1:1:void <clinit>():12:12 -> <clinit>
    1:6:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:24 -> <init>
    7:11:void <init>(int,int[]):28:32 -> <init>
    1:5:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):42:46 -> a
    6:21:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):95:110 -> a
    22:36:java.lang.String toSmaliString(com.android.tools.r8.code.Instruction):115:129 -> a
    1:16:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):95:110 -> b
    1:16:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):90 -> b
    1:5:boolean equals(java.lang.Object):52:56 -> equals
    1:1:int getSize():70:70 -> getSize
    1:4:int hashCode():61:64 -> hashCode
    boolean isPayload() -> l
    1:1:int[] keys():85:85 -> o
    1:1:int numberOfKeys():75:75 -> p
    1:1:int[] switchTargetOffsets():80:80 -> q
com.android.tools.r8.code.RemDouble -> com.android.tools.r8.code.bb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.RemDouble2Addr -> com.android.tools.r8.code.ab:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.RemFloat -> com.android.tools.r8.code.db:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.RemFloat2Addr -> com.android.tools.r8.code.cb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.RemInt -> com.android.tools.r8.code.fb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.RemInt2Addr -> com.android.tools.r8.code.eb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.RemIntLit16 -> com.android.tools.r8.code.gb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.RemIntLit8 -> com.android.tools.r8.code.RemIntLit8:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.RemLong -> com.android.tools.r8.code.ib:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.RemLong2Addr -> com.android.tools.r8.code.hb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.Return -> com.android.tools.r8.code.Return:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    1:1:int[] getTargets():39:39 -> getTargets
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.ReturnObject -> com.android.tools.r8.code.ReturnObject:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    1:1:int[] getTargets():39:39 -> getTargets
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.ReturnVoid -> com.android.tools.r8.code.ReturnVoid:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>():18:18 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:void com.android.tools.r8.code.Format10x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):25:25 -> a
    1:1:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    2:2:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):42:42 -> a
    3:3:java.lang.String com.android.tools.r8.code.Format10x.toSmaliString(com.android.tools.r8.naming.ClassNameMapper):45:45 -> a
    3:3:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8 -> a
    1:1:java.lang.String com.android.tools.r8.code.Format10x.toString(com.android.tools.r8.naming.ClassNameMapper):40:40 -> b
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8 -> b
    java.lang.String getName() -> e
    1:1:boolean com.android.tools.r8.code.Format10x.equals(java.lang.Object):35:35 -> equals
    1:1:boolean equals(java.lang.Object):8 -> equals
    1:1:int[] getTargets():37:37 -> getTargets
    java.lang.String getSmaliName() -> h
    1:1:int com.android.tools.r8.code.Format10x.hashCode():30:30 -> hashCode
    1:1:int hashCode():8 -> hashCode
com.android.tools.r8.code.ReturnWide -> com.android.tools.r8.code.ReturnWide:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):44:44 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    1:1:int[] getTargets():39:39 -> getTargets
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.RsubInt -> com.android.tools.r8.code.jb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.RsubIntLit8 -> com.android.tools.r8.code.kb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.Sget -> com.android.tools.r8.code.Sget:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.SgetBoolean -> com.android.tools.r8.code.SgetBoolean:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.SgetByte -> com.android.tools.r8.code.SgetByte:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.SgetChar -> com.android.tools.r8.code.SgetChar:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.SgetObject -> com.android.tools.r8.code.SgetObject:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.SgetShort -> com.android.tools.r8.code.SgetShort:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.SgetWide -> com.android.tools.r8.code.SgetWide:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.ShlInt -> com.android.tools.r8.code.mb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.ShlInt2Addr -> com.android.tools.r8.code.lb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.ShlIntLit8 -> com.android.tools.r8.code.nb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.ShlLong -> com.android.tools.r8.code.pb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.ShlLong2Addr -> com.android.tools.r8.code.ob:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.ShrInt -> com.android.tools.r8.code.rb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.ShrInt2Addr -> com.android.tools.r8.code.qb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.ShrIntLit8 -> com.android.tools.r8.code.sb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.ShrLong -> com.android.tools.r8.code.ub:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.ShrLong2Addr -> com.android.tools.r8.code.tb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.SparseSwitch -> com.android.tools.r8.code.SparseSwitch:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int):20:20 -> <init>
    1:4:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):45:48 -> a
    5:5:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):53:53 -> a
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
    boolean isSwitch() -> m
com.android.tools.r8.code.SparseSwitchPayload -> com.android.tools.r8.code.vb:
    int[] keys -> b
    int[] targets -> c
    boolean $assertionsDisabled -> d
    int size -> a
    1:1:void <clinit>():12:12 -> <clinit>
    1:10:void <init>(int,com.android.tools.r8.code.BytecodeStream):19:28 -> <init>
    11:15:void <init>(int[],int[]):32:36 -> <init>
    1:7:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):46:52 -> a
    8:23:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):102:117 -> a
    24:39:java.lang.String toSmaliString(com.android.tools.r8.code.Instruction):122:137 -> a
    1:16:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.code.Instruction):102:117 -> b
    1:16:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):97 -> b
    1:6:boolean equals(java.lang.Object):58:63 -> equals
    1:1:int getSize():77:77 -> getSize
    1:4:int hashCode():68:71 -> hashCode
    boolean isPayload() -> l
    1:1:int[] keys():87:87 -> o
    1:1:int numberOfKeys():82:82 -> p
    1:1:int[] switchTargetOffsets():92:92 -> q
com.android.tools.r8.code.Sput -> com.android.tools.r8.code.Sput:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.SputBoolean -> com.android.tools.r8.code.SputBoolean:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.SputByte -> com.android.tools.r8.code.SputByte:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.SputChar -> com.android.tools.r8.code.SputChar:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.SputObject -> com.android.tools.r8.code.SputObject:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.SputShort -> com.android.tools.r8.code.SputShort:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.SputWide -> com.android.tools.r8.code.SputWide:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream,com.android.tools.r8.graph.OffsetToObjectMapping):18:18 -> <init>
    2:2:void <init>(int,com.android.tools.r8.graph.DexField):22:22 -> <init>
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> a
    2:3:void com.android.tools.r8.code.Format21c.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):35:36 -> a
    2:3:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):11 -> a
    4:4:void registerUse(com.android.tools.r8.graph.UseRegistry):42:42 -> a
    5:5:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    6:6:void com.android.tools.r8.code.Format21c.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):68:68 -> a
    6:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):11 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):11:11 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    1:1:com.android.tools.r8.graph.DexField getField():47:47 -> getField
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.SubDouble -> com.android.tools.r8.code.xb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.SubDouble2Addr -> com.android.tools.r8.code.wb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.SubFloat -> com.android.tools.r8.code.zb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.SubFloat2Addr -> com.android.tools.r8.code.yb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.SubInt -> com.android.tools.r8.code.Bb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.SubInt2Addr -> com.android.tools.r8.code.Ab:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.SubLong -> com.android.tools.r8.code.Db:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.SubLong2Addr -> com.android.tools.r8.code.Cb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.SwitchPayload -> com.android.tools.r8.code.Eb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):11:11 -> <init>
    2:2:void <init>():14:14 -> <init>
    void buildIR(com.android.tools.r8.ir.conversion.IRBuilder) -> a
    boolean isSwitchPayload() -> n
    int[] keys() -> o
    int numberOfKeys() -> p
    int[] switchTargetOffsets() -> q
com.android.tools.r8.code.Throw -> com.android.tools.r8.code.Throw:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format11x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):30:30 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    boolean canThrow() -> d
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.UshrInt -> com.android.tools.r8.code.Gb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.UshrInt2Addr -> com.android.tools.r8.code.Fb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.UshrIntLit8 -> com.android.tools.r8.code.Hb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.UshrLong -> com.android.tools.r8.code.Jb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8:8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.UshrLong2Addr -> com.android.tools.r8.code.Ib:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.XorInt -> com.android.tools.r8.code.Lb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.XorInt2Addr -> com.android.tools.r8.code.Kb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):15:15 -> <init>
    2:2:void <init>(int,int):19:19 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):8 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):39:39 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):8:8 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.XorIntLit16 -> com.android.tools.r8.code.Mb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.XorIntLit8 -> com.android.tools.r8.code.Nb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    1:1:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.XorLong -> com.android.tools.r8.code.Pb:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9:9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.code.XorLong2Addr -> com.android.tools.r8.code.Ob:
    1:1:void <init>(int,com.android.tools.r8.code.BytecodeStream):16:16 -> <init>
    2:2:void <init>(int,int):20:20 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> a
    2:2:void com.android.tools.r8.code.Format12x.write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):33:33 -> a
    2:2:void write(java.nio.ShortBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):9 -> a
    3:3:void buildIR(com.android.tools.r8.ir.conversion.IRBuilder):40:40 -> a
    1:1:java.lang.String toString(com.android.tools.r8.naming.ClassNameMapper):9:9 -> b
    java.lang.String getName() -> e
    java.lang.String getSmaliName() -> h
com.android.tools.r8.com.google.common.base.Absent -> com.android.tools.r8.a.a.a.a.a:
    com.android.tools.r8.com.google.common.base.Absent INSTANCE -> a
    1:1:void <clinit>():29:29 -> <clinit>
    1:1:void <init>():36:36 -> <init>
    1:1:java.lang.Object or(java.lang.Object):50:50 -> a
com.android.tools.r8.com.google.common.base.Ascii -> com.android.tools.r8.a.a.a.a.b:
    boolean com.android.tools.r8.utils.NumberUtils.is16Bit(long) -> a
    1:1:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoBufUtilKt.getExtensionOrNull(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):12:12 -> a
    2:5:java.util.Set com.android.tools.r8.utils.CollectionUtils.mergeSets(java.util.Collection,java.util.Collection):13:16 -> a
    6:10:boolean com.android.tools.r8.ir.optimize.ArgumentRemovalUtils.isPinned(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView):16:20 -> a
    11:29:com.android.tools.r8.com.google.gson.JsonElement com.android.tools.r8.com.google.gson.internal.Streams.parse(com.android.tools.r8.com.google.gson.stream.JsonReader):46:64 -> a
    30:30:com.android.tools.r8.com.google.gson.JsonElement com.android.tools.r8.com.google.gson.internal.Streams.parse(com.android.tools.r8.com.google.gson.stream.JsonReader):62:62 -> a
    31:31:com.android.tools.r8.com.google.gson.JsonElement com.android.tools.r8.com.google.gson.internal.Streams.parse(com.android.tools.r8.com.google.gson.stream.JsonReader):60:60 -> a
    32:35:com.android.tools.r8.com.google.gson.JsonElement com.android.tools.r8.com.google.gson.internal.Streams.parse(com.android.tools.r8.com.google.gson.stream.JsonReader):55:58 -> a
    36:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.receiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):50:51 -> a
    38:38:boolean com.android.tools.r8.com.google.common.base.Objects.equal(java.lang.Object,java.lang.Object):52:52 -> a
    39:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.returnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):56:58 -> a
    42:42:void com.android.tools.r8.it.unimi.dsi.fastutil.Arrays.ensureFromTo(int,int,int):57:57 -> a
    43:43:void com.android.tools.r8.it.unimi.dsi.fastutil.Arrays.ensureFromTo(int,int,int):56:56 -> a
    44:44:void com.android.tools.r8.it.unimi.dsi.fastutil.Arrays.ensureFromTo(int,int,int):55:55 -> a
    45:52:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):58:65 -> a
    53:59:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:67 -> a
    60:61:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:62 -> a
    62:71:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:70 -> a
    72:79:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:68 -> a
    80:82:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:63 -> a
    83:86:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:64 -> a
    87:92:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:66 -> a
    93:101:java.lang.Class com.android.tools.r8.jetbrains.kotlin.jvm.JvmClassMappingKt.getJavaObjectType(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):61:69 -> a
    102:104:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.type(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):70:72 -> a
    105:124:java.lang.String com.android.tools.r8.com.google.common.base.Strings.repeat(java.lang.String,int):146:165 -> a
    125:125:java.lang.String com.android.tools.r8.com.google.common.base.Strings.repeat(java.lang.String,int):155:155 -> a
    126:126:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    126:126:java.lang.String com.android.tools.r8.com.google.common.base.Strings.repeat(java.lang.String,int):143 -> a
    127:137:java.lang.String toLowerCase(java.lang.String):403:413 -> a
    boolean com.android.tools.r8.utils.NumberUtils.is32Bit(long) -> b
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.returnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):42:44 -> b
    4:4:com.android.tools.r8.jetbrains.kotlin.Pair com.android.tools.r8.jetbrains.kotlin.TuplesKt.to(java.lang.Object,java.lang.Object):43:43 -> b
    boolean com.android.tools.r8.utils.NumberUtils.is4Bit(long) -> c
    int com.android.tools.r8.com.google.common.primitives.Ints.saturatedCast(long) -> d
com.android.tools.r8.com.google.common.base.CharMatcher -> com.android.tools.r8.a.a.a.a.u:
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher whitespace():134:134 -> <clinit>
    1:1:void <clinit>():272 -> <clinit>
    2:2:com.android.tools.r8.com.google.common.base.CharMatcher breakingWhitespace():145:145 -> <clinit>
    2:2:void <clinit>():284 -> <clinit>
    3:3:com.android.tools.r8.com.google.common.base.CharMatcher ascii():154:154 -> <clinit>
    3:3:void <clinit>():294 -> <clinit>
    4:4:com.android.tools.r8.com.google.common.base.CharMatcher digit():165:165 -> <clinit>
    4:4:void <clinit>():306 -> <clinit>
    5:5:com.android.tools.r8.com.google.common.base.CharMatcher javaDigit():176:176 -> <clinit>
    5:5:void <clinit>():317 -> <clinit>
    6:6:com.android.tools.r8.com.google.common.base.CharMatcher javaLetter():187:187 -> <clinit>
    6:6:void <clinit>():329 -> <clinit>
    7:7:com.android.tools.r8.com.google.common.base.CharMatcher javaLetterOrDigit():197:197 -> <clinit>
    7:7:void <clinit>():339 -> <clinit>
    8:8:com.android.tools.r8.com.google.common.base.CharMatcher javaUpperCase():207:207 -> <clinit>
    8:8:void <clinit>():349 -> <clinit>
    9:9:com.android.tools.r8.com.google.common.base.CharMatcher javaLowerCase():217:217 -> <clinit>
    9:9:void <clinit>():359 -> <clinit>
    10:10:com.android.tools.r8.com.google.common.base.CharMatcher javaIsoControl():227:227 -> <clinit>
    10:10:void <clinit>():369 -> <clinit>
    11:11:com.android.tools.r8.com.google.common.base.CharMatcher invisible():238:238 -> <clinit>
    11:11:void <clinit>():380 -> <clinit>
    12:12:com.android.tools.r8.com.google.common.base.CharMatcher singleWidth():252:252 -> <clinit>
    12:12:void <clinit>():394 -> <clinit>
    13:13:com.android.tools.r8.com.google.common.base.CharMatcher any():108:108 -> <clinit>
    13:13:void <clinit>():403 -> <clinit>
    14:14:com.android.tools.r8.com.google.common.base.CharMatcher none():117:117 -> <clinit>
    14:14:void <clinit>():412 -> <clinit>
    1:1:void <init>():484:484 -> <init>
    boolean matches(char) -> a
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher any():108:108 -> a
    2:2:boolean apply(java.lang.Character):1018:1018 -> a
    1:1:boolean apply(java.lang.Object):53:53 -> apply
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher ascii():154:154 -> b
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher none():117:117 -> c
    1:1:java.util.function.Predicate negate():53:53 -> negate
    2:2:com.android.tools.r8.com.google.common.base.CharMatcher negate():497:497 -> negate
com.android.tools.r8.com.google.common.base.CharMatcher$Any -> com.android.tools.r8.a.a.a.a.c:
    com.android.tools.r8.com.google.common.base.CharMatcher$Any INSTANCE -> b
    1:1:void <clinit>():1119:1119 -> <clinit>
    1:1:void <init>():1122:1122 -> <init>
    boolean matches(char) -> a
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher com.android.tools.r8.com.google.common.base.CharMatcher.none():117:117 -> negate
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher negate():1209 -> negate
    2:2:com.android.tools.r8.com.google.common.base.CharMatcher negate():1209:1209 -> negate
    2:2:java.util.function.Predicate negate():1117 -> negate
com.android.tools.r8.com.google.common.base.CharMatcher$Ascii -> com.android.tools.r8.a.a.a.a.d:
    com.android.tools.r8.com.google.common.base.CharMatcher$Ascii INSTANCE -> b
    1:1:void <clinit>():1385:1385 -> <clinit>
    1:1:void <init>():1388:1388 -> <init>
    boolean matches(char) -> a
com.android.tools.r8.com.google.common.base.CharMatcher$BreakingWhitespace -> com.android.tools.r8.a.a.a.a.e:
    com.android.tools.r8.com.google.common.base.CharMatcher INSTANCE -> a
    1:1:void <clinit>():1351:1351 -> <clinit>
    1:1:void <init>():1349:1349 -> <init>
    boolean matches(char) -> a
    1:1:boolean apply(java.lang.Object):1349:1349 -> apply
    1:1:java.util.function.Predicate negate():1349:1349 -> negate
com.android.tools.r8.com.google.common.base.CharMatcher$Digit -> com.android.tools.r8.a.a.a.a.f:
    com.android.tools.r8.com.google.common.base.CharMatcher$Digit INSTANCE -> d
    1:1:void <clinit>():1455:1455 -> <clinit>
    1:1:char[] zeroes():1444:1444 -> <init>
    1:1:void <init>():1458 -> <init>
    2:4:char[] nines():1448:1450 -> <init>
    2:4:void <init>():1458 -> <init>
    5:5:void <init>():1458:1458 -> <init>
com.android.tools.r8.com.google.common.base.CharMatcher$Invisible -> com.android.tools.r8.a.a.a.a.g:
    com.android.tools.r8.com.google.common.base.CharMatcher$Invisible INSTANCE -> d
    1:1:void <clinit>():1567:1567 -> <clinit>
    1:1:void <init>():1570:1570 -> <init>
com.android.tools.r8.com.google.common.base.CharMatcher$JavaDigit -> com.android.tools.r8.a.a.a.a.h:
    com.android.tools.r8.com.google.common.base.CharMatcher$JavaDigit INSTANCE -> a
    1:1:void <clinit>():1465:1465 -> <clinit>
    1:1:void <init>():1463:1463 -> <init>
    1:1:boolean matches(char):1469:1469 -> a
    1:1:boolean apply(java.lang.Object):1463:1463 -> apply
    1:1:java.util.function.Predicate negate():1463:1463 -> negate
com.android.tools.r8.com.google.common.base.CharMatcher$JavaIsoControl -> com.android.tools.r8.a.a.a.a.i:
    com.android.tools.r8.com.google.common.base.CharMatcher$JavaIsoControl INSTANCE -> b
    1:1:void <clinit>():1545:1545 -> <clinit>
    1:1:void <init>():1548:1548 -> <init>
    boolean matches(char) -> a
com.android.tools.r8.com.google.common.base.CharMatcher$JavaLetter -> com.android.tools.r8.a.a.a.a.j:
    com.android.tools.r8.com.google.common.base.CharMatcher$JavaLetter INSTANCE -> a
    1:1:void <clinit>():1481:1481 -> <clinit>
    1:1:void <init>():1479:1479 -> <init>
    1:1:boolean matches(char):1485:1485 -> a
    1:1:boolean apply(java.lang.Object):1479:1479 -> apply
    1:1:java.util.function.Predicate negate():1479:1479 -> negate
com.android.tools.r8.com.google.common.base.CharMatcher$JavaLetterOrDigit -> com.android.tools.r8.a.a.a.a.k:
    com.android.tools.r8.com.google.common.base.CharMatcher$JavaLetterOrDigit INSTANCE -> a
    1:1:void <clinit>():1497:1497 -> <clinit>
    1:1:void <init>():1495:1495 -> <init>
    1:1:boolean matches(char):1501:1501 -> a
    1:1:boolean apply(java.lang.Object):1495:1495 -> apply
    1:1:java.util.function.Predicate negate():1495:1495 -> negate
com.android.tools.r8.com.google.common.base.CharMatcher$JavaLowerCase -> com.android.tools.r8.a.a.a.a.l:
    com.android.tools.r8.com.google.common.base.CharMatcher$JavaLowerCase INSTANCE -> a
    1:1:void <clinit>():1529:1529 -> <clinit>
    1:1:void <init>():1527:1527 -> <init>
    1:1:boolean matches(char):1533:1533 -> a
    1:1:boolean apply(java.lang.Object):1527:1527 -> apply
    1:1:java.util.function.Predicate negate():1527:1527 -> negate
com.android.tools.r8.com.google.common.base.CharMatcher$JavaUpperCase -> com.android.tools.r8.a.a.a.a.m:
    com.android.tools.r8.com.google.common.base.CharMatcher$JavaUpperCase INSTANCE -> a
    1:1:void <clinit>():1513:1513 -> <clinit>
    1:1:void <init>():1511:1511 -> <init>
    1:1:boolean matches(char):1517:1517 -> a
    1:1:boolean apply(java.lang.Object):1511:1511 -> apply
    1:1:java.util.function.Predicate negate():1511:1511 -> negate
com.android.tools.r8.com.google.common.base.CharMatcher$NamedFastMatcher -> com.android.tools.r8.a.a.a.a.n:
    java.lang.String description -> a
    1:1:void com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.<init>():1047:1047 -> <init>
    1:1:void <init>(java.lang.String):1065 -> <init>
    2:2:void <init>(java.lang.String):1066:1066 -> <init>
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    3:3:void <init>(java.lang.String):1066 -> <init>
    1:1:boolean com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.apply(java.lang.Object):1047:1047 -> apply
    1:1:boolean com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.apply(java.lang.Object):0 -> apply
    1:1:java.util.function.Predicate com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.negate():1047:1047 -> negate
    1:1:java.util.function.Predicate com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.negate():0 -> negate
    2:2:com.android.tools.r8.com.google.common.base.CharMatcher com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.negate():1056:1056 -> negate
    2:2:com.android.tools.r8.com.google.common.base.CharMatcher com.android.tools.r8.com.google.common.base.CharMatcher$FastMatcher.negate():0 -> negate
    1:1:java.lang.String toString():1071:1071 -> toString
com.android.tools.r8.com.google.common.base.CharMatcher$Negated -> com.android.tools.r8.a.a.a.a.o:
    com.android.tools.r8.com.google.common.base.CharMatcher original -> a
    1:2:void <init>(com.android.tools.r8.com.google.common.base.CharMatcher):1594:1595 -> <init>
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    3:3:void <init>(com.android.tools.r8.com.google.common.base.CharMatcher):1595 -> <init>
    1:1:boolean matches(char):1600:1600 -> a
    1:1:boolean apply(java.lang.Object):1590:1590 -> apply
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher negate():1629:1629 -> negate
    2:2:com.android.tools.r8.com.google.common.base.CharMatcher negate():1629:1629 -> negate
    2:2:java.util.function.Predicate negate():1590 -> negate
    1:1:java.lang.String toString():1634:1634 -> toString
com.android.tools.r8.com.google.common.base.CharMatcher$NegatedFastMatcher -> com.android.tools.r8.a.a.a.a.p:
    1:1:void <init>(com.android.tools.r8.com.google.common.base.CharMatcher):1079:1079 -> <init>
com.android.tools.r8.com.google.common.base.CharMatcher$None -> com.android.tools.r8.a.a.a.a.q:
    com.android.tools.r8.com.google.common.base.CharMatcher$None INSTANCE -> b
    1:1:void <clinit>():1216:1216 -> <clinit>
    1:1:void <init>():1219:1219 -> <init>
    boolean matches(char) -> a
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher com.android.tools.r8.com.google.common.base.CharMatcher.any():108:108 -> negate
    1:1:com.android.tools.r8.com.google.common.base.CharMatcher negate():1312 -> negate
    2:2:com.android.tools.r8.com.google.common.base.CharMatcher negate():1312:1312 -> negate
    2:2:java.util.function.Predicate negate():1214 -> negate
com.android.tools.r8.com.google.common.base.CharMatcher$RangesMatcher -> com.android.tools.r8.a.a.a.a.r:
    char[] rangeStarts -> b
    char[] rangeEnds -> c
    java.lang.String description -> a
    1:9:void <init>(java.lang.String,char[],char[]):1404:1412 -> <init>
    1:6:boolean matches(char):1419:1424 -> a
    1:1:boolean apply(java.lang.Object):1398:1398 -> apply
    1:1:java.util.function.Predicate negate():1398:1398 -> negate
    1:1:java.lang.String toString():1430:1430 -> toString
com.android.tools.r8.com.google.common.base.CharMatcher$SingleWidth -> com.android.tools.r8.a.a.a.a.s:
    com.android.tools.r8.com.google.common.base.CharMatcher$SingleWidth INSTANCE -> d
    1:1:void <clinit>():1577:1577 -> <clinit>
    1:2:void <init>():1582:1583 -> <init>
    3:3:void <init>():1580:1580 -> <init>
com.android.tools.r8.com.google.common.base.CharMatcher$Whitespace -> com.android.tools.r8.a.a.a.a.t:
    com.android.tools.r8.com.google.common.base.CharMatcher$Whitespace INSTANCE -> c
    int SHIFT -> b
    1:3:void <clinit>():1326:1328 -> <clinit>
    1:1:void <init>():1331:1331 -> <init>
    1:1:boolean matches(char):1336:1336 -> a
com.android.tools.r8.com.google.common.base.Charsets -> com.android.tools.r8.a.a.a.a.v:
    java.nio.charset.Charset UTF_8 -> a
    1:50:void <clinit>():45:94 -> <clinit>
com.android.tools.r8.com.google.common.base.Equivalence -> com.android.tools.r8.a.a.a.a.A:
    1:1:void <init>():41:41 -> <init>
    boolean doEquivalent(java.lang.Object,java.lang.Object) -> a
    int doHash(java.lang.Object) -> a
    1:1:com.android.tools.r8.com.google.common.base.Equivalence equals():323:323 -> a
    1:1:boolean equivalent(java.lang.Object,java.lang.Object):67:67 -> b
    2:2:int hash(java.lang.Object):113:113 -> b
    3:3:com.android.tools.r8.com.google.common.base.Equivalence identity():336:336 -> b
    1:1:com.android.tools.r8.com.google.common.base.Equivalence$Wrapper wrap(java.lang.Object):162:162 -> c
    1:1:boolean test(java.lang.Object,java.lang.Object):78:78 -> test
com.android.tools.r8.com.google.common.base.Equivalence$1 -> com.android.tools.r8.a.a.a.a.w:
com.android.tools.r8.com.google.common.base.Equivalence$Equals -> com.android.tools.r8.a.a.a.a.x:
    com.android.tools.r8.com.google.common.base.Equivalence$Equals INSTANCE -> a
    1:1:void <clinit>():341:341 -> <clinit>
    1:1:void <init>():339:339 -> <init>
    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):345:345 -> a
    2:2:int doHash(java.lang.Object):350:350 -> a
com.android.tools.r8.com.google.common.base.Equivalence$Identity -> com.android.tools.r8.a.a.a.a.y:
    com.android.tools.r8.com.google.common.base.Equivalence$Identity INSTANCE -> a
    1:1:void <clinit>():362:362 -> <clinit>
    1:1:void <init>():360:360 -> <init>
    boolean doEquivalent(java.lang.Object,java.lang.Object) -> a
    1:1:int doHash(java.lang.Object):371:371 -> a
com.android.tools.r8.com.google.common.base.Equivalence$Wrapper -> com.android.tools.r8.a.a.a.a.z:
    com.android.tools.r8.com.google.common.base.Equivalence equivalence -> a
    java.lang.Object reference -> b
    1:3:void <init>(com.android.tools.r8.com.google.common.base.Equivalence,java.lang.Object):187:189 -> <init>
    1:3:void <init>(com.android.tools.r8.com.google.common.base.Equivalence,java.lang.Object,com.android.tools.r8.com.google.common.base.Equivalence$1):183 -> <init>
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    4:4:void <init>(com.android.tools.r8.com.google.common.base.Equivalence,java.lang.Object):188 -> <init>
    4:4:void <init>(com.android.tools.r8.com.google.common.base.Equivalence,java.lang.Object,com.android.tools.r8.com.google.common.base.Equivalence$1):183 -> <init>
    1:11:boolean equals(java.lang.Object):208:218 -> equals
    1:1:java.lang.Object get():195:195 -> get
    1:1:int hashCode():229:229 -> hashCode
    1:1:java.lang.String toString():238:238 -> toString
com.android.tools.r8.com.google.common.base.Function -> com.android.tools.r8.a.a.a.a.B:
com.android.tools.r8.com.google.common.base.MoreObjects -> com.android.tools.r8.a.a.a.a.F:
    1:1:com.android.tools.r8.com.google.common.base.Predicate com.android.tools.r8.com.google.common.base.Predicates.alwaysFalse():62:62 -> a
    2:6:com.android.tools.r8.com.google.common.base.Supplier com.android.tools.r8.com.google.common.base.Suppliers.memoize(com.android.tools.r8.com.google.common.base.Supplier):97:101 -> a
    7:7:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean):121:121 -> a
    8:8:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.Object):135:135 -> a
    9:9:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,char):170:170 -> a
    10:10:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,int):181:181 -> a
    11:11:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,long):192:192 -> a
    12:12:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,java.lang.Object):204:204 -> a
    13:13:void com.android.tools.r8.com.google.common.base.Preconditions.checkArgument(boolean,java.lang.String,int,int):276:276 -> a
    14:14:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    15:15:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object,java.lang.Object):805:805 -> a
    16:16:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int,java.lang.String):1196:1196 -> a
    16:16:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int):1178 -> a
    17:17:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badElementIndex(int,int,java.lang.String):1207:1207 -> a
    17:17:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int,java.lang.String):1196 -> a
    17:17:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int):1178 -> a
    18:18:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badElementIndex(int,int,java.lang.String):1205:1205 -> a
    18:18:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int,java.lang.String):1196 -> a
    18:18:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int):1178 -> a
    19:19:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badElementIndex(int,int,java.lang.String):1203:1203 -> a
    19:19:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int,java.lang.String):1196 -> a
    19:19:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int):1178 -> a
    20:20:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int,java.lang.String):1196:1196 -> a
    20:20:int com.android.tools.r8.com.google.common.base.Preconditions.checkElementIndex(int,int):1178 -> a
    21:25:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badPositionIndex(int,int,java.lang.String):1248:1252 -> a
    26:26:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badPositionIndex(int,int,java.lang.String):1250:1250 -> a
    27:27:void com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndexes(int,int,int):1271:1271 -> a
    28:28:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badPositionIndexes(int,int,int):1283:1283 -> a
    28:28:void com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndexes(int,int,int):1271 -> a
    29:29:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badPositionIndexes(int,int,int):1280:1280 -> a
    29:29:void com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndexes(int,int,int):1271 -> a
    30:30:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.badPositionIndexes(int,int,int):1277:1277 -> a
    30:30:void com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndexes(int,int,int):1271 -> a
    31:31:void com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndexes(int,int,int):1271:1271 -> a
    32:60:java.lang.String com.android.tools.r8.com.google.common.base.Preconditions.format(java.lang.String,java.lang.Object[]):1298:1326 -> a
    1:1:com.android.tools.r8.com.google.common.base.Predicate com.android.tools.r8.com.google.common.base.Predicates.alwaysTrue():54:54 -> b
    2:2:com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper toStringHelper(java.lang.Object):100:100 -> b
    3:3:void com.android.tools.r8.com.google.common.base.Preconditions.checkState(boolean):443:443 -> b
    4:4:void com.android.tools.r8.com.google.common.base.Preconditions.checkState(boolean,java.lang.String,int):509:509 -> b
    5:5:void com.android.tools.r8.com.google.common.base.Preconditions.checkState(boolean,java.lang.String,java.lang.Object):534:534 -> b
    6:6:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
    6:6:java.lang.Object firstNonNull(java.lang.Object,java.lang.Object):56 -> b
    7:7:int com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndex(int,int,java.lang.String):1241:1241 -> b
    7:7:int com.android.tools.r8.com.google.common.base.Preconditions.checkPositionIndex(int,int):1223 -> b
com.android.tools.r8.com.google.common.base.MoreObjects$1 -> com.android.tools.r8.a.a.a.a.C:
com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper -> com.android.tools.r8.a.a.a.a.E:
    com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper$ValueHolder holderTail -> c
    com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper$ValueHolder holderHead -> b
    java.lang.String className -> a
    boolean omitNullValues -> d
    1:1:void <init>(java.lang.String):144:144 -> <init>
    1:1:void <init>(java.lang.String,com.android.tools.r8.com.google.common.base.MoreObjects$1):135 -> <init>
    2:10:void <init>(java.lang.String):137:145 -> <init>
    2:10:void <init>(java.lang.String,com.android.tools.r8.com.google.common.base.MoreObjects$1):135 -> <init>
    11:11:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    11:11:void <init>(java.lang.String):145 -> <init>
    11:11:void <init>(java.lang.String,com.android.tools.r8.com.google.common.base.MoreObjects$1):135 -> <init>
    1:1:com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper add(java.lang.String,java.lang.Object):168:168 -> a
    2:2:com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper add(java.lang.String,int):218:218 -> a
    3:4:com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper$ValueHolder addHolder():358:359 -> a
    5:6:com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper addHolder(java.lang.Object):364:365 -> a
    5:6:com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper addValue(java.lang.Object):239 -> a
    1:3:com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper addHolder(java.lang.String,java.lang.Object):370:372 -> b
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
    4:4:com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper addHolder(java.lang.String,java.lang.Object):372 -> b
    1:20:java.lang.String toString():331:350 -> toString
    21:39:java.lang.String toString():336:354 -> toString
com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper$ValueHolder -> com.android.tools.r8.a.a.a.a.D:
    com.android.tools.r8.com.google.common.base.MoreObjects$ToStringHelper$ValueHolder next -> c
    java.lang.Object value -> b
    java.lang.String name -> a
    1:1:void <init>():376:376 -> <init>
    1:1:void <init>(com.android.tools.r8.com.google.common.base.MoreObjects$1):376 -> <init>
com.android.tools.r8.com.google.common.base.Optional -> com.android.tools.r8.a.a.a.a.G:
    1:1:void <init>():150:150 -> <init>
    java.lang.Object or(java.lang.Object) -> a
    1:1:com.android.tools.r8.com.google.common.base.Optional com.android.tools.r8.com.google.common.base.Absent.withType():33:33 -> a
    1:1:com.android.tools.r8.com.google.common.base.Optional absent():93 -> a
com.android.tools.r8.com.google.common.base.Predicate -> com.android.tools.r8.a.a.a.a.H:
    1:1:boolean test(java.lang.Object):80:80 -> test
com.android.tools.r8.com.google.common.base.Predicates$1 -> com.android.tools.r8.a.a.a.a.I:
com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate -> com.android.tools.r8.a.a.a.a.N:
    com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate NOT_NULL -> d
    com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate ALWAYS_FALSE -> b
    com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate IS_NULL -> c
    com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate ALWAYS_TRUE -> a
    1:37:void <clinit>():283:319 -> <clinit>
    38:38:void <clinit>():281:281 -> <clinit>
    1:1:void <init>(java.lang.String,int):281:281 -> <init>
    1:1:void <init>(java.lang.String,int,com.android.tools.r8.com.google.common.base.Predicates$1):281 -> <init>
    com.android.tools.r8.com.google.common.base.Predicate withNarrowedType() -> a
com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate$1 -> com.android.tools.r8.a.a.a.a.J:
    1:1:void <init>(java.lang.String,int):283:283 -> <init>
com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate$2 -> com.android.tools.r8.a.a.a.a.K:
    1:1:void <init>(java.lang.String,int):295:295 -> <init>
com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate$3 -> com.android.tools.r8.a.a.a.a.L:
    1:1:void <init>(java.lang.String,int):307:307 -> <init>
com.android.tools.r8.com.google.common.base.Predicates$ObjectPredicate$4 -> com.android.tools.r8.a.a.a.a.M:
    1:1:void <init>(java.lang.String,int):319:319 -> <init>
com.android.tools.r8.com.google.common.base.Supplier -> com.android.tools.r8.a.a.a.a.O:
com.android.tools.r8.com.google.common.base.Suppliers$MemoizingSupplier -> com.android.tools.r8.a.a.a.a.P:
    com.android.tools.r8.com.google.common.base.Supplier delegate -> a
    java.lang.Object value -> c
    boolean initialized -> b
    1:2:void <init>(com.android.tools.r8.com.google.common.base.Supplier):114:115 -> <init>
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    3:3:void <init>(com.android.tools.r8.com.google.common.base.Supplier):115 -> <init>
    1:11:java.lang.Object get():121:131 -> get
    1:1:java.lang.String toString():136:136 -> toString
com.android.tools.r8.com.google.common.base.Suppliers$NonSerializableMemoizingSupplier -> com.android.tools.r8.a.a.a.a.Q:
    com.android.tools.r8.com.google.common.base.Supplier delegate -> a
    java.lang.Object value -> c
    boolean initialized -> b
    1:2:void <init>(com.android.tools.r8.com.google.common.base.Supplier):150:151 -> <init>
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    3:3:void <init>(com.android.tools.r8.com.google.common.base.Supplier):151 -> <init>
    1:13:java.lang.Object get():157:169 -> get
    1:1:java.lang.String toString():174:174 -> toString
com.android.tools.r8.com.google.common.base.Throwables -> com.android.tools.r8.a.a.a.a.S:
    java.lang.Object jla -> a
    1:3:java.lang.Object getJLA():482:484 -> <clinit>
    1:3:void <clinit>():452 -> <clinit>
    4:12:void <clinit>():452:460 -> <clinit>
    13:13:java.lang.reflect.Method getGetMethod():503:503 -> <clinit>
    13:13:void <clinit>():460 -> <clinit>
    14:14:void <clinit>():468:468 -> <clinit>
    15:15:java.lang.reflect.Method getSizeMethod():513:513 -> <clinit>
    15:15:void <clinit>():468 -> <clinit>
    16:16:java.lang.Object getJLA():486:486 -> <clinit>
    16:16:void <clinit>():452 -> <clinit>
    1:2:void throwIfInstanceOf(java.lang.Throwable,java.lang.Class):75:76 -> a
    1:2:void propagateIfInstanceOf(java.lang.Throwable,java.lang.Class):104 -> a
    1:2:void propagateIfPossible(java.lang.Throwable,java.lang.Class):184 -> a
    3:7:void throwIfUnchecked(java.lang.Throwable):129:133 -> a
    3:7:void propagateIfPossible(java.lang.Throwable):159 -> a
    3:7:void propagateIfPossible(java.lang.Throwable,java.lang.Class):185 -> a
    8:8:void throwIfUnchecked(java.lang.Throwable):130:130 -> a
    8:8:void propagateIfPossible(java.lang.Throwable):159 -> a
    8:8:void propagateIfPossible(java.lang.Throwable,java.lang.Class):185 -> a
    9:11:java.lang.reflect.Method getJlaMethod(java.lang.String,java.lang.Class[]):520:522 -> a
com.android.tools.r8.com.google.common.collect.AbstractIndexedListIterator -> com.android.tools.r8.a.a.a.b.a:
    int position -> b
    int size -> a
    1:4:void <init>(int,int):66:69 -> <init>
    java.lang.Object get(int) -> a
    1:1:boolean hasNext():74:74 -> hasNext
    1:1:boolean hasPrevious():92:92 -> hasPrevious
    1:1:boolean hasNext():74:74 -> next
    1:1:java.lang.Object next():79 -> next
    2:2:java.lang.Object next():82:82 -> next
    3:3:java.lang.Object next():80:80 -> next
    1:1:int nextIndex():87:87 -> nextIndex
    1:1:boolean hasPrevious():92:92 -> previous
    1:1:java.lang.Object previous():97 -> previous
    2:2:java.lang.Object previous():100:100 -> previous
    3:3:java.lang.Object previous():98:98 -> previous
    1:1:int previousIndex():105:105 -> previousIndex
com.android.tools.r8.com.google.common.collect.AbstractIterator -> com.android.tools.r8.a.a.a.b.c:
    java.lang.Object next -> b
    com.android.tools.r8.com.google.common.collect.AbstractIterator$State state -> a
    1:1:void <init>():68:68 -> <init>
    2:2:void <init>():65:65 -> <init>
    java.lang.Object computeNext() -> c
    1:1:java.lang.Object endOfData():125:125 -> d
    1:2:boolean hasNext():132:133 -> hasNext
    3:6:boolean tryToComputeNext():144:147 -> hasNext
    3:6:boolean hasNext():140 -> hasNext
    1:2:boolean hasNext():132:133 -> next
    1:2:java.lang.Object next():156 -> next
    3:6:boolean tryToComputeNext():144:147 -> next
    3:6:boolean hasNext():140 -> next
    3:6:java.lang.Object next():156 -> next
    7:9:java.lang.Object next():159:161 -> next
    10:10:java.lang.Object next():157:157 -> next
com.android.tools.r8.com.google.common.collect.AbstractIterator$State -> com.android.tools.r8.a.a.a.b.b:
    com.android.tools.r8.com.google.common.collect.AbstractIterator$State[] $VALUES -> e
    com.android.tools.r8.com.google.common.collect.AbstractIterator$State DONE -> c
    com.android.tools.r8.com.google.common.collect.AbstractIterator$State NOT_READY -> b
    com.android.tools.r8.com.google.common.collect.AbstractIterator$State FAILED -> d
    com.android.tools.r8.com.google.common.collect.AbstractIterator$State READY -> a
    1:10:void <clinit>():72:81 -> <clinit>
    11:11:void <clinit>():70:70 -> <clinit>
    1:1:void <init>(java.lang.String,int):70:70 -> <init>
com.android.tools.r8.com.google.common.collect.AbstractListMultimap -> com.android.tools.r8.a.a.a.b.d:
    1:1:void <init>(java.util.Map):45:45 -> <init>
    1:1:java.util.Map asMap():117:117 -> asMap
    1:1:boolean equals(java.lang.Object):129:129 -> equals
    1:1:java.util.Collection get(java.lang.Object):35:35 -> get
    2:2:java.util.List get(java.lang.Object):67:67 -> get
    1:1:boolean put(java.lang.Object,java.lang.Object):106:106 -> put
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap -> com.android.tools.r8.a.a.a.b.f:
    int totalSize -> f
    java.util.Map map -> e
    1:3:void <init>(java.util.Map):122:124 -> <init>
    1:1:java.util.Map access$000(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap):91:91 -> a
    2:2:int access$202(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,int):91:91 -> a
    3:3:java.util.List access$300(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.List,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):91:91 -> a
    4:13:java.util.Collection wrapCollection(java.lang.Object,java.util.Collection):317:326 -> a
    14:14:java.util.List wrapList(java.lang.Object,java.util.List,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):331:331 -> a
    15:20:void removeValuesForKey(java.lang.Object):1145:1150 -> a
    15:20:void access$400(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object):91 -> a
    21:24:java.util.Spliterator lambda$entrySpliterator$1(java.util.Map$Entry):1266:1269 -> a
    25:25:java.util.Spliterator lambda$entrySpliterator$1(java.util.Map$Entry):1268:1268 -> a
    26:31:java.util.Map createAsMap():1284:1289 -> a
    1:1:int access$200(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap):91:91 -> b
    2:2:java.util.Map$Entry lambda$null$0(java.lang.Object,java.lang.Object):1269:1269 -> b
    1:1:int access$208(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap):91:91 -> c
    2:7:java.util.Set createKeySet():932:937 -> c
    1:5:void clear():288:292 -> clear
    1:1:boolean containsKey(java.lang.Object):185:185 -> containsKey
    1:1:int access$210(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap):91:91 -> d
    1:1:java.util.Iterator entryIterator():1253:1253 -> e
    1:1:java.util.Collection entries():1240:1240 -> entries
    1:10:java.util.Spliterator entrySpliterator():1263:1272 -> f
    11:11:java.util.Spliterator entrySpliterator():1263:1263 -> f
    java.util.Collection createCollection() -> g
    1:1:java.util.Collection get(java.lang.Object):304:304 -> get
    2:2:java.util.Collection createCollection(java.lang.Object):169:169 -> get
    2:2:java.util.Collection get(java.lang.Object):306 -> get
    3:3:java.util.Collection get(java.lang.Object):308:308 -> get
    1:1:boolean put(java.lang.Object,java.lang.Object):192:192 -> put
    2:2:java.util.Collection createCollection(java.lang.Object):169:169 -> put
    2:2:boolean put(java.lang.Object,java.lang.Object):194 -> put
    3:11:boolean put(java.lang.Object,java.lang.Object):195:203 -> put
    1:1:int size():180:180 -> size
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$2 -> com.android.tools.r8.a.a.a.b.e:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap):1253:1253 -> <init>
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap -> com.android.tools.r8.a.a.a.b.f$a:
    java.util.Map submap -> b
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> c
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.util.Map):1301:1302 -> <init>
    1:2:java.util.Map$Entry wrapEntry(java.util.Map$Entry):1377:1378 -> a
    1:2:void clear():1369:1370 -> clear
    3:3:void com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap$AsMapIterator.<init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap):1418:1418 -> clear
    3:3:void clear():1372 -> clear
    4:4:boolean com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap$AsMapIterator.hasNext():1423:1423 -> clear
    4:4:void com.android.tools.r8.com.google.common.collect.Iterators.clear(java.util.Iterator):1033 -> clear
    4:4:void clear():1372 -> clear
    5:7:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap$AsMapIterator.next():1428:1430 -> clear
    5:7:java.lang.Object com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap$AsMapIterator.next():1417 -> clear
    5:7:void com.android.tools.r8.com.google.common.collect.Iterators.clear(java.util.Iterator):1034 -> clear
    5:7:void clear():1372 -> clear
    8:10:void com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap$AsMapIterator.remove():1435:1437 -> clear
    8:10:void com.android.tools.r8.com.google.common.collect.Iterators.clear(java.util.Iterator):1035 -> clear
    8:10:void clear():1372 -> clear
    1:1:boolean containsKey(java.lang.Object):1314:1314 -> containsKey
    1:1:boolean equals(java.lang.Object):1354:1354 -> equals
    1:7:java.util.Collection get(java.lang.Object):1319:1325 -> get
    1:7:java.lang.Object get(java.lang.Object):1293 -> get
    1:1:java.util.Set createEntrySet():1307:1307 -> h
    1:1:int hashCode():1359:1359 -> hashCode
    1:1:java.util.Set keySet():1330:1330 -> keySet
    1:9:java.util.Collection remove(java.lang.Object):1340:1348 -> remove
    1:9:java.lang.Object remove(java.lang.Object):1293 -> remove
    1:1:int size():1335:1335 -> size
    1:1:java.lang.String toString():1364:1364 -> toString
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap$AsMapEntries -> com.android.tools.r8.a.a.a.b.f$a$a:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap this$1 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap):1382:1382 -> <init>
    1:1:java.util.Map map():1385:1385 -> c
    1:1:boolean contains(java.lang.Object):1402:1402 -> contains
    1:1:java.util.Iterator iterator():1390:1390 -> iterator
    1:1:boolean contains(java.lang.Object):1402:1402 -> remove
    1:1:boolean remove(java.lang.Object):1407 -> remove
    2:3:boolean remove(java.lang.Object):1410:1411 -> remove
    1:1:java.util.Spliterator spliterator():1395:1395 -> spliterator
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap$AsMapIterator -> com.android.tools.r8.a.a.a.b.f$a$b:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap this$1 -> c
    java.util.Collection collection -> b
    java.util.Iterator delegateIterator -> a
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$AsMap):1417:1418 -> <init>
    1:1:boolean hasNext():1423:1423 -> hasNext
    1:3:java.util.Map$Entry next():1428:1430 -> next
    1:3:java.lang.Object next():1417 -> next
    1:3:void remove():1435:1437 -> remove
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$Itr -> com.android.tools.r8.a.a.a.b.f$b:
    java.util.Iterator valueIterator -> d
    java.util.Collection collection -> c
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> e
    java.util.Iterator keyIterator -> a
    java.lang.Object key -> b
    1:4:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap):1160:1163 -> <init>
    5:5:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.emptyModifiableIterator():125:125 -> <init>
    5:5:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap):1164 -> <init>
    6:6:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap):1164:1164 -> <init>
    1:1:boolean hasNext():1171:1171 -> hasNext
    1:7:java.lang.Object next():1176:1182 -> next
    8:8:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$2.output(java.lang.Object,java.lang.Object):1256:1256 -> next
    8:8:java.lang.Object com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$2.output(java.lang.Object,java.lang.Object):1253 -> next
    8:8:java.lang.Object next():1182 -> next
    1:5:void remove():1187:1191 -> remove
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$KeySet -> com.android.tools.r8.a.a.a.b.f$c:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> b
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.util.Map):943:944 -> <init>
    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> clear
    1:1:java.util.Iterator iterator():949 -> clear
    1:1:void clear():996 -> clear
    2:3:java.util.Iterator iterator():949:950 -> clear
    2:3:void clear():996 -> clear
    4:4:void clear():996:996 -> clear
    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> containsAll
    1:1:boolean containsAll(java.util.Collection):1001 -> containsAll
    2:2:boolean containsAll(java.util.Collection):1001:1001 -> containsAll
    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> equals
    1:1:boolean equals(java.lang.Object):1006 -> equals
    2:2:boolean equals(java.lang.Object):1006:1006 -> equals
    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> hashCode
    1:1:int hashCode():1011 -> hashCode
    2:2:int hashCode():1011:1011 -> hashCode
    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> iterator
    1:1:java.util.Iterator iterator():949 -> iterator
    2:3:java.util.Iterator iterator():949:950 -> iterator
    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> remove
    1:1:boolean remove(java.lang.Object):985 -> remove
    2:6:boolean remove(java.lang.Object):985:989 -> remove
    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> spliterator
    1:1:java.util.Spliterator spliterator():979 -> spliterator
    2:2:java.util.Spliterator spliterator():979:979 -> spliterator
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$KeySet$1 -> com.android.tools.r8.a.a.a.b.g:
    java.util.Map$Entry entry -> a
    java.util.Iterator val$entryIterator -> b
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$KeySet this$1 -> c
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$KeySet,java.util.Iterator):950:950 -> <init>
    1:1:boolean hasNext():955:955 -> hasNext
    1:2:java.lang.Object next():960:961 -> next
    1:5:void remove():966:970 -> remove
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$NavigableAsMap -> com.android.tools.r8.a.a.a.b.f$d:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> f
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.util.NavigableMap):1500:1501 -> <init>
    1:8:java.util.Map$Entry pollAsMapEntry(java.util.Iterator):1576:1583 -> a
    9:18:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap.unmodifiableCollectionSubclass(java.util.Collection):272:281 -> a
    9:18:java.util.Map$Entry pollAsMapEntry(java.util.Iterator):1583 -> a
    19:19:java.util.Map$Entry pollAsMapEntry(java.util.Iterator):1583:1583 -> a
    1:2:java.util.Map$Entry ceilingEntry(java.lang.Object):1533:1534 -> ceilingEntry
    1:1:java.lang.Object ceilingKey(java.lang.Object):1539:1539 -> ceilingKey
    1:1:java.util.NavigableMap descendingMap():1588:1588 -> descendingKeySet
    1:1:java.util.NavigableSet descendingKeySet():1608 -> descendingKeySet
    2:2:java.util.NavigableSet descendingKeySet():1608:1608 -> descendingKeySet
    1:1:java.util.NavigableMap descendingMap():1588:1588 -> descendingMap
    1:2:java.util.Map$Entry firstEntry():1555:1556 -> firstEntry
    1:2:java.util.Map$Entry floorEntry(java.lang.Object):1522:1523 -> floorEntry
    1:1:java.lang.Object floorKey(java.lang.Object):1528:1528 -> floorKey
    1:1:java.util.NavigableMap headMap(java.lang.Object,boolean):1629:1629 -> headMap
    2:2:java.util.NavigableMap headMap(java.lang.Object,boolean):1629:1629 -> headMap
    2:2:java.util.NavigableMap headMap(java.lang.Object):1624 -> headMap
    2:2:java.util.SortedMap headMap(java.lang.Object):1498 -> headMap
    1:2:java.util.Map$Entry higherEntry(java.lang.Object):1544:1545 -> higherEntry
    1:1:java.lang.Object higherKey(java.lang.Object):1550:1550 -> higherKey
    1:1:java.util.NavigableSet createKeySet():1598:1598 -> i
    1:1:java.util.Set createKeySet():1498 -> i
    2:2:java.util.NavigableSet createKeySet():1598:1598 -> i
    2:2:java.util.SortedSet createKeySet():1498 -> i
    1:1:java.util.SortedMap com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$SortedAsMap.sortedMap():1449:1449 -> j
    1:1:java.util.NavigableMap sortedMap():1506 -> j
    2:2:java.util.NavigableMap sortedMap():1506:1506 -> j
    3:3:java.util.SortedMap sortedMap():1498:1498 -> j
    1:2:java.util.SortedSet com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$SortedAsMap.keySet():1488:1489 -> keySet
    1:2:java.util.NavigableSet keySet():1593 -> keySet
    3:3:java.util.NavigableSet keySet():1593:1593 -> keySet
    4:4:java.util.Set keySet():1498:1498 -> keySet
    5:5:java.util.SortedSet keySet():1498:1498 -> keySet
    1:2:java.util.Map$Entry lastEntry():1561:1562 -> lastEntry
    1:2:java.util.Map$Entry lowerEntry(java.lang.Object):1511:1512 -> lowerEntry
    1:1:java.lang.Object lowerKey(java.lang.Object):1517:1517 -> lowerKey
    1:1:java.util.NavigableSet navigableKeySet():1603:1603 -> navigableKeySet
    1:1:java.util.Map$Entry pollFirstEntry():1567:1567 -> pollFirstEntry
    1:1:java.util.NavigableMap descendingMap():1588:1588 -> pollLastEntry
    1:1:java.util.Map$Entry pollLastEntry():1572 -> pollLastEntry
    2:2:java.util.Map$Entry pollLastEntry():1572:1572 -> pollLastEntry
    1:1:java.util.NavigableMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):1619:1619 -> subMap
    2:2:java.util.NavigableMap subMap(java.lang.Object,boolean,java.lang.Object,boolean):1619:1619 -> subMap
    2:2:java.util.NavigableMap subMap(java.lang.Object,java.lang.Object):1613 -> subMap
    2:2:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):1498 -> subMap
    1:1:java.util.NavigableMap tailMap(java.lang.Object,boolean):1639:1639 -> tailMap
    2:2:java.util.NavigableMap tailMap(java.lang.Object,boolean):1639:1639 -> tailMap
    2:2:java.util.NavigableMap tailMap(java.lang.Object):1634 -> tailMap
    2:2:java.util.SortedMap tailMap(java.lang.Object):1498 -> tailMap
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$NavigableKeySet -> com.android.tools.r8.a.a.a.b.f$e:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> d
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.util.NavigableMap):1059:1060 -> <init>
    1:1:java.util.SortedMap sortedMap():1057:1057 -> c
    2:2:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> c
    2:2:java.util.SortedMap com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$SortedKeySet.sortedMap():1023 -> c
    2:2:java.util.NavigableMap sortedMap():1065 -> c
    3:3:java.util.NavigableMap sortedMap():1065:1065 -> c
    1:1:java.lang.Object ceiling(java.lang.Object):1080:1080 -> ceiling
    1:1:java.util.NavigableSet descendingSet():1100:1100 -> descendingIterator
    1:1:java.util.Iterator descendingIterator():1105 -> descendingIterator
    2:2:java.util.Iterator descendingIterator():1105:1105 -> descendingIterator
    1:1:java.util.NavigableSet descendingSet():1100:1100 -> descendingSet
    1:1:java.lang.Object floor(java.lang.Object):1075:1075 -> floor
    1:1:java.util.NavigableSet headSet(java.lang.Object,boolean):1115:1115 -> headSet
    2:2:java.util.NavigableSet headSet(java.lang.Object,boolean):1115:1115 -> headSet
    2:2:java.util.NavigableSet headSet(java.lang.Object):1110 -> headSet
    2:2:java.util.SortedSet headSet(java.lang.Object):1057 -> headSet
    1:1:java.lang.Object higher(java.lang.Object):1085:1085 -> higher
    1:1:java.lang.Object lower(java.lang.Object):1070:1070 -> lower
    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> pollFirst
    1:1:java.util.Iterator com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$KeySet.iterator():949 -> pollFirst
    1:1:java.lang.Object pollFirst():1090 -> pollFirst
    2:2:java.util.Iterator com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$KeySet.iterator():949:949 -> pollFirst
    2:2:java.lang.Object pollFirst():1090 -> pollFirst
    3:3:boolean com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$KeySet$1.hasNext():955:955 -> pollFirst
    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.pollNext(java.util.Iterator):1017 -> pollFirst
    3:3:java.lang.Object pollFirst():1090 -> pollFirst
    4:5:java.lang.Object com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$KeySet$1.next():960:961 -> pollFirst
    4:5:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.pollNext(java.util.Iterator):1018 -> pollFirst
    4:5:java.lang.Object pollFirst():1090 -> pollFirst
    6:10:void com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$KeySet$1.remove():966:970 -> pollFirst
    6:10:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.pollNext(java.util.Iterator):1019 -> pollFirst
    6:10:java.lang.Object pollFirst():1090 -> pollFirst
    1:1:java.util.NavigableSet descendingSet():1100:1100 -> pollLast
    1:1:java.util.Iterator descendingIterator():1105 -> pollLast
    1:1:java.lang.Object pollLast():1095 -> pollLast
    2:2:java.util.Iterator descendingIterator():1105:1105 -> pollLast
    2:2:java.lang.Object pollLast():1095 -> pollLast
    3:3:java.lang.Object pollLast():1095:1095 -> pollLast
    1:2:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):1126:1127 -> subSet
    3:4:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):1126:1127 -> subSet
    3:4:java.util.NavigableSet subSet(java.lang.Object,java.lang.Object):1120 -> subSet
    3:4:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1057 -> subSet
    1:1:java.util.NavigableSet tailSet(java.lang.Object,boolean):1137:1137 -> tailSet
    2:2:java.util.NavigableSet tailSet(java.lang.Object,boolean):1137:1137 -> tailSet
    2:2:java.util.NavigableSet tailSet(java.lang.Object):1132 -> tailSet
    2:2:java.util.SortedSet tailSet(java.lang.Object):1057 -> tailSet
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$RandomAccessWrappedList -> com.android.tools.r8.a.a.a.b.f$f:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.List,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):926:926 -> <init>
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$SortedAsMap -> com.android.tools.r8.a.a.a.b.f$g:
    java.util.SortedSet sortedKeySet -> d
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> e
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.util.SortedMap):1444:1445 -> <init>
    1:1:java.util.Comparator comparator():1454:1454 -> comparator
    1:1:java.lang.Object firstKey():1459:1459 -> firstKey
    1:1:java.util.SortedMap headMap(java.lang.Object):1469:1469 -> headMap
    1:1:java.util.Set createKeySet():1442:1442 -> i
    2:2:java.util.SortedSet createKeySet():1494:1494 -> i
    1:1:java.util.SortedMap sortedMap():1449:1449 -> j
    1:1:java.util.Set keySet():1442:1442 -> keySet
    2:3:java.util.SortedSet keySet():1488:1489 -> keySet
    1:1:java.lang.Object lastKey():1464:1464 -> lastKey
    1:1:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):1474:1474 -> subMap
    1:1:java.util.SortedMap tailMap(java.lang.Object):1479:1479 -> tailMap
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$SortedKeySet -> com.android.tools.r8.a.a.a.b.f$h:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> c
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.util.SortedMap):1018:1019 -> <init>
    1:1:java.util.Map com.android.tools.r8.com.google.common.collect.Maps$KeySet.map():3844:3844 -> c
    1:1:java.util.SortedMap sortedMap():1023 -> c
    2:2:java.util.SortedMap sortedMap():1023:1023 -> c
    1:1:java.util.Comparator comparator():1028:1028 -> comparator
    1:1:java.lang.Object first():1033:1033 -> first
    1:1:java.util.SortedSet headSet(java.lang.Object):1038:1038 -> headSet
    1:1:java.lang.Object last():1043:1043 -> last
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1048:1048 -> subSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):1053:1053 -> tailSet
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection -> com.android.tools.r8.a.a.a.b.f$i:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection ancestor -> c
    java.util.Collection ancestorDelegate -> d
    java.util.Collection delegate -> b
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> e
    java.lang.Object key -> a
    1:4:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.Collection,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):361:364 -> <init>
    5:5:java.util.Collection getDelegate():448:448 -> <init>
    5:5:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.Collection,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):365 -> <init>
    6:6:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.Collection,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):365:365 -> <init>
    1:7:boolean add(java.lang.Object):514:520 -> add
    1:10:boolean addAll(java.util.Collection):534:543 -> addAll
    1:4:void addToMap():413:416 -> c
    1:7:void clear():563:569 -> clear
    1:2:boolean contains(java.lang.Object):551:552 -> contains
    1:2:boolean containsAll(java.util.Collection):557:558 -> containsAll
    1:3:void refreshIfEmpty():376:378 -> e
    4:4:java.util.Collection getDelegate():448:448 -> e
    4:4:void refreshIfEmpty():378 -> e
    5:11:void refreshIfEmpty():378:384 -> e
    1:2:boolean equals(java.lang.Object):431:432 -> equals
    1:4:void removeIfEmpty():394:397 -> g
    1:2:int hashCode():437:438 -> hashCode
    1:2:java.util.Iterator iterator():453:454 -> iterator
    1:5:boolean remove(java.lang.Object):574:578 -> remove
    1:9:boolean removeAll(java.util.Collection):585:593 -> removeAll
    1:6:boolean retainAll(java.util.Collection):601:606 -> retainAll
    7:7:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> retainAll
    7:7:boolean retainAll(java.util.Collection):600 -> retainAll
    1:2:int size():422:423 -> size
    1:2:java.util.Spliterator spliterator():459:460 -> spliterator
    1:2:java.lang.String toString():443:444 -> toString
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection$WrappedIterator -> com.android.tools.r8.a.a.a.b.f$i$a:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection this$1 -> c
    java.util.Collection originalDelegate -> b
    java.util.Iterator delegateIterator -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):468:468 -> <init>
    2:5:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):466:469 -> <init>
    6:8:java.util.Iterator com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap.iteratorOrListIterator(java.util.Collection):613:615 -> <init>
    6:8:java.util.Iterator com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap.access$100(java.util.Collection):91 -> <init>
    6:8:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):469 -> <init>
    9:9:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):469:469 -> <init>
    10:10:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection,java.util.Iterator):472:472 -> <init>
    11:18:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection,java.util.Iterator):466:473 -> <init>
    1:3:void validateIterator():481:483 -> c
    1:2:boolean hasNext():489:490 -> hasNext
    1:2:java.lang.Object next():495:496 -> next
    1:3:void remove():501:503 -> remove
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedList -> com.android.tools.r8.a.a.a.b.f$j:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> f
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.List,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):780:781 -> <init>
    1:1:void add(int,java.lang.Object):819:819 -> add
    2:2:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> add
    2:2:void add(int,java.lang.Object):820 -> add
    3:7:void add(int,java.lang.Object):820:824 -> add
    1:5:boolean addAll(int,java.util.Collection):790:794 -> addAll
    6:6:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> addAll
    6:6:boolean addAll(int,java.util.Collection):796 -> addAll
    7:10:boolean addAll(int,java.util.Collection):796:799 -> addAll
    1:2:java.lang.Object get(int):807:808 -> get
    1:1:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> h
    1:1:java.util.List getListDelegate():785 -> h
    2:2:java.util.List getListDelegate():785:785 -> h
    1:2:int indexOf(java.lang.Object):839:840 -> indexOf
    1:2:int lastIndexOf(java.lang.Object):845:846 -> lastIndexOf
    1:2:java.util.ListIterator listIterator():851:852 -> listIterator
    3:4:java.util.ListIterator listIterator(int):857:858 -> listIterator
    1:4:java.lang.Object remove(int):830:833 -> remove
    1:2:java.lang.Object set(int,java.lang.Object):813:814 -> set
    1:2:java.util.List subList(int,int):863:864 -> subList
    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getKey():402:402 -> subList
    3:3:java.util.List subList(int,int):865 -> subList
    4:4:java.util.List subList(int,int):866:866 -> subList
    5:5:com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getAncestor():527:527 -> subList
    5:5:java.util.List subList(int,int):867 -> subList
    6:6:java.util.List subList(int,int):864:864 -> subList
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedList$WrappedListIterator -> com.android.tools.r8.a.a.a.b.f$j$a:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedList this$1 -> d
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedList):872:872 -> <init>
    2:3:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedList,int):874:875 -> <init>
    1:5:void add(java.lang.Object):909:913 -> add
    1:2:java.util.Iterator com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection$WrappedIterator.getDelegateIterator():507:508 -> d
    1:2:java.util.ListIterator getDelegateListIterator():879 -> d
    3:3:java.util.ListIterator getDelegateListIterator():879:879 -> d
    1:1:boolean hasPrevious():884:884 -> hasPrevious
    1:1:int nextIndex():894:894 -> nextIndex
    1:1:java.lang.Object previous():889:889 -> previous
    1:1:int previousIndex():899:899 -> previousIndex
    1:1:void set(java.lang.Object):904:904 -> set
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedNavigableSet -> com.android.tools.r8.a.a.a.b.f$k:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> g
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.NavigableSet,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):706:707 -> <init>
    1:1:java.util.NavigableSet wrap(java.util.NavigableSet):746:746 -> a
    2:2:com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getAncestor():527:527 -> a
    2:2:java.util.NavigableSet wrap(java.util.NavigableSet):746 -> a
    3:3:java.util.NavigableSet wrap(java.util.NavigableSet):746:746 -> a
    1:1:java.lang.Object ceiling(java.lang.Object):727:727 -> ceiling
    1:1:java.util.Iterator descendingIterator():756:756 -> descendingIterator
    1:1:java.util.NavigableSet descendingSet():751:751 -> descendingSet
    1:1:java.lang.Object floor(java.lang.Object):722:722 -> floor
    1:1:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> h
    1:1:java.util.SortedSet com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedSortedSet.getSortedSetDelegate():655 -> h
    1:1:java.util.NavigableSet getSortedSetDelegate():712 -> h
    2:2:java.util.NavigableSet getSortedSetDelegate():712:712 -> h
    3:3:java.util.SortedSet getSortedSetDelegate():703:703 -> h
    1:1:java.util.NavigableSet headSet(java.lang.Object,boolean):768:768 -> headSet
    1:1:java.lang.Object higher(java.lang.Object):732:732 -> higher
    1:1:java.lang.Object lower(java.lang.Object):717:717 -> lower
    1:2:java.util.Iterator com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.iterator():453:454 -> pollFirst
    1:2:java.lang.Object pollFirst():737 -> pollFirst
    3:3:java.lang.Object pollFirst():737:737 -> pollFirst
    1:1:java.util.Iterator descendingIterator():756:756 -> pollLast
    1:1:java.lang.Object pollLast():742 -> pollLast
    2:2:java.lang.Object pollLast():742:742 -> pollLast
    1:1:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):763:763 -> subSet
    2:2:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):762:762 -> subSet
    1:1:java.util.NavigableSet tailSet(java.lang.Object,boolean):773:773 -> tailSet
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedSet -> com.android.tools.r8.a.a.a.b.f$l:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> f
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.Set):621:622 -> <init>
    1:13:boolean removeAll(java.util.Collection):627:639 -> removeAll
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedSortedSet -> com.android.tools.r8.a.a.a.b.f$m:
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap this$0 -> f
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap,java.lang.Object,java.util.SortedSet,com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection):650:651 -> <init>
    1:1:java.util.Comparator comparator():660:660 -> comparator
    1:2:java.lang.Object first():665:666 -> first
    1:1:java.util.Collection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getDelegate():448:448 -> h
    1:1:java.util.SortedSet getSortedSetDelegate():655 -> h
    2:2:java.util.SortedSet getSortedSetDelegate():655:655 -> h
    1:2:java.util.SortedSet headSet(java.lang.Object):677:678 -> headSet
    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getKey():402:402 -> headSet
    3:3:java.util.SortedSet headSet(java.lang.Object):679 -> headSet
    4:4:java.util.SortedSet headSet(java.lang.Object):680:680 -> headSet
    5:5:com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getAncestor():527:527 -> headSet
    5:5:java.util.SortedSet headSet(java.lang.Object):681 -> headSet
    6:6:java.util.SortedSet headSet(java.lang.Object):681:681 -> headSet
    1:2:java.lang.Object last():671:672 -> last
    1:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):686:687 -> subSet
    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getKey():402:402 -> subSet
    3:3:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):688 -> subSet
    4:4:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):689:689 -> subSet
    5:5:com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getAncestor():527:527 -> subSet
    5:5:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):690 -> subSet
    6:6:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):690:690 -> subSet
    1:2:java.util.SortedSet tailSet(java.lang.Object):695:696 -> tailSet
    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getKey():402:402 -> tailSet
    3:3:java.util.SortedSet tailSet(java.lang.Object):697 -> tailSet
    4:4:java.util.SortedSet tailSet(java.lang.Object):698:698 -> tailSet
    5:5:com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultimap$WrappedCollection.getAncestor():527:527 -> tailSet
    5:5:java.util.SortedSet tailSet(java.lang.Object):699 -> tailSet
    6:6:java.util.SortedSet tailSet(java.lang.Object):699:699 -> tailSet
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset -> com.android.tools.r8.a.a.a.b.j:
    java.util.Map backingMap -> c
    long size -> d
    1:2:void <init>(java.util.Map):60:61 -> <init>
    3:6:int com.android.tools.r8.com.google.common.collect.Multisets.sizeImpl(com.android.tools.r8.com.google.common.collect.Multiset):1138:1141 -> <init>
    3:6:int com.android.tools.r8.com.google.common.collect.AbstractMultiset.size():52 -> <init>
    3:6:void <init>(java.util.Map):62 -> <init>
    7:7:void <init>(java.util.Map):62:62 -> <init>
    8:8:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    8:8:void <init>(java.util.Map):61 -> <init>
    1:1:java.util.Map access$000(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset):48:48 -> a
    2:2:long access$102(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset,long):48:48 -> a
    3:8:int setCount(java.lang.Object,int):274:279 -> a
    9:9:int getAndSet(com.android.tools.r8.com.google.common.collect.Count,int):299:299 -> a
    9:9:int setCount(java.lang.Object,int):280 -> a
    10:10:int setCount(java.lang.Object,int):282:282 -> a
    11:11:int getAndSet(com.android.tools.r8.com.google.common.collect.Count,int):299:299 -> a
    11:11:int setCount(java.lang.Object,int):283 -> a
    12:16:int setCount(java.lang.Object,int):286:290 -> a
    1:1:long access$100(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset):48:48 -> b
    2:3:int count(java.lang.Object):208:209 -> b
    4:23:int remove(java.lang.Object,int):247:266 -> b
    1:1:long access$110(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset):48:48 -> c
    2:16:int add(java.lang.Object,int):225:239 -> c
    1:5:void clear():136:140 -> clear
    1:1:int distinctElements():145:145 -> e
    1:1:java.util.Set entrySet():81:81 -> entrySet
    1:2:java.util.Iterator entryIterator():86:87 -> g
    1:1:int size():152:152 -> size
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset$1 -> com.android.tools.r8.a.a.a.b.i:
    java.util.Map$Entry toRemove -> a
    java.util.Iterator val$backingEntries -> b
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset this$0 -> c
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset,java.util.Iterator):87:87 -> <init>
    1:1:boolean hasNext():92:92 -> hasNext
    1:3:com.android.tools.r8.com.google.common.collect.Multiset$Entry next():97:99 -> next
    1:3:java.lang.Object next():87 -> next
    1:4:void remove():121:124 -> remove
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset$1$1 -> com.android.tools.r8.a.a.a.b.h:
    java.util.Map$Entry val$mapEntry -> a
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset$1 this$1 -> b
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset$1,java.util.Map$Entry):99:99 -> <init>
    1:3:int getCount():107:109 -> getCount
    4:4:java.lang.Object getElement():102:102 -> getCount
    4:4:int getCount():109 -> getCount
    5:10:int getCount():109:114 -> getCount
    1:1:java.lang.Object getElement():102:102 -> getElement
com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset$MapBasedMultisetIterator -> com.android.tools.r8.a.a.a.b.j$a:
    java.util.Map$Entry currentEntry -> b
    java.util.Iterator entryIterator -> a
    com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset this$0 -> e
    int occurrencesLeft -> c
    boolean canRemove -> d
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset):171:172 -> <init>
    1:1:boolean hasNext():177:177 -> hasNext
    1:7:java.lang.Object next():182:188 -> next
    1:10:void remove():193:202 -> remove
    11:11:void remove():196:196 -> remove
com.android.tools.r8.com.google.common.collect.AbstractMapEntry -> com.android.tools.r8.a.a.a.b.k:
    1:1:void <init>():31:31 -> <init>
    1:4:boolean equals(java.lang.Object):46:49 -> equals
    1:3:int hashCode():56:58 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):41:41 -> setValue
    1:1:java.lang.String toString():66:66 -> toString
com.android.tools.r8.com.google.common.collect.AbstractMultimap -> com.android.tools.r8.a.a.a.b.m:
    java.util.Map asMap -> d
    java.util.Collection entries -> a
    java.util.Set keySet -> b
    com.android.tools.r8.com.google.common.collect.Multiset keys -> c
    1:1:void <init>():40:40 -> <init>
    java.util.Map createAsMap() -> a
    1:2:boolean containsEntry(java.lang.Object,java.lang.Object):59:60 -> a
    3:8:boolean putAll(java.lang.Object,java.lang.Iterable):82:87 -> a
    9:9:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    9:9:boolean putAll(java.lang.Object,java.lang.Iterable):79 -> a
    1:2:java.util.Map asMap():240:241 -> asMap
    1:1:java.util.Collection createEntries():122:122 -> b
    1:1:java.util.Set createKeySet():173:173 -> c
    1:1:com.android.tools.r8.com.google.common.collect.Multiset createKeys():185:185 -> d
    java.util.Iterator entryIterator() -> e
    1:2:java.util.Collection entries():114:115 -> entries
    1:3:boolean com.android.tools.r8.com.google.common.collect.Multimaps.equalsImpl(com.android.tools.r8.com.google.common.collect.Multimap,java.lang.Object):2220:2222 -> equals
    1:3:boolean equals(java.lang.Object):250 -> equals
    java.util.Spliterator entrySpliterator() -> f
    1:1:int hashCode():263:263 -> hashCode
    1:1:boolean isEmpty():43:43 -> isEmpty
    1:2:java.util.Set keySet():168:169 -> keySet
    1:2:com.android.tools.r8.com.google.common.collect.Multiset keys():180:181 -> keys
    1:2:boolean remove(java.lang.Object,java.lang.Object):66:67 -> remove
    1:1:java.lang.String toString():274:274 -> toString
com.android.tools.r8.com.google.common.collect.AbstractMultimap$1 -> com.android.tools.r8.a.a.a.b.l:
com.android.tools.r8.com.google.common.collect.AbstractMultimap$Entries -> com.android.tools.r8.a.a.a.b.m$a:
    com.android.tools.r8.com.google.common.collect.AbstractMultimap this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMultimap):127:127 -> <init>
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMultimap,com.android.tools.r8.com.google.common.collect.AbstractMultimap$1):127 -> <init>
    1:1:java.util.Iterator iterator():135:135 -> iterator
    1:1:java.util.Spliterator spliterator():140:140 -> spliterator
com.android.tools.r8.com.google.common.collect.AbstractMultiset -> com.android.tools.r8.a.a.a.b.n:
    java.util.Set elementSet -> a
    java.util.Set entrySet -> b
    1:1:void <init>():47:47 -> <init>
    1:9:int com.android.tools.r8.com.google.common.collect.Multisets.setCountImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.lang.Object,int):948:956 -> a
    1:9:int setCount(java.lang.Object,int):109 -> a
    10:14:boolean com.android.tools.r8.com.google.common.collect.Multisets.setCountImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.lang.Object,int,int):966:970 -> a
    10:14:boolean setCount(java.lang.Object,int,int):115 -> a
    1:1:boolean add(java.lang.Object):84:84 -> add
    1:4:boolean com.android.tools.r8.com.google.common.collect.Multisets.addAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):905:908 -> addAll
    1:4:boolean addAll(java.util.Collection):129 -> addAll
    5:5:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.Multisets.cast(java.lang.Iterable):1148:1148 -> addAll
    5:5:boolean com.android.tools.r8.com.google.common.collect.Multisets.addAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):909 -> addAll
    5:5:boolean addAll(java.util.Collection):129 -> addAll
    6:10:boolean com.android.tools.r8.com.google.common.collect.Multisets.addAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):910:914 -> addAll
    6:10:boolean addAll(java.util.Collection):129 -> addAll
    int count(java.lang.Object) -> b
    int remove(java.lang.Object,int) -> b
    1:1:int add(java.lang.Object,int):91:91 -> c
    2:2:java.util.Set createEntrySet():212:212 -> c
    int distinctElements() -> e
    1:3:java.util.Set entrySet():186:188 -> entrySet
    1:1:boolean equals(java.lang.Object):226:226 -> equals
    1:1:java.util.Set elementSet():155:155 -> f
    2:2:java.util.Set createElementSet():167:167 -> f
    2:2:java.util.Set elementSet():157 -> f
    3:3:java.util.Set elementSet():157:157 -> f
    java.util.Iterator entryIterator() -> g
    1:1:int hashCode():237:237 -> hashCode
    1:1:boolean isEmpty():57:57 -> isEmpty
    1:1:boolean remove(java.lang.Object):97:97 -> remove
    1:6:boolean com.android.tools.r8.com.google.common.collect.Multisets.removeAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):923:928 -> removeAll
    1:6:boolean removeAll(java.util.Collection):135 -> removeAll
    1:6:boolean com.android.tools.r8.com.google.common.collect.Multisets.retainAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):936:941 -> retainAll
    1:6:boolean retainAll(java.util.Collection):141 -> retainAll
    7:7:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> retainAll
    7:7:boolean com.android.tools.r8.com.google.common.collect.Multisets.retainAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):935 -> retainAll
    7:7:boolean retainAll(java.util.Collection):141 -> retainAll
    1:4:int com.android.tools.r8.com.google.common.collect.Multisets.sizeImpl(com.android.tools.r8.com.google.common.collect.Multiset):1138:1141 -> size
    1:4:int size():52 -> size
    1:1:java.lang.String toString():248:248 -> toString
com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet -> com.android.tools.r8.a.a.a.b.n$a:
    com.android.tools.r8.com.google.common.collect.AbstractMultiset this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMultiset):171:171 -> <init>
com.android.tools.r8.com.google.common.collect.AbstractMultiset$EntrySet -> com.android.tools.r8.a.a.a.b.n$b:
    com.android.tools.r8.com.google.common.collect.AbstractMultiset this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractMultiset):194:194 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.Multiset multiset():197:197 -> c
    1:1:java.util.Iterator iterator():202:202 -> iterator
    1:1:int size():207:207 -> size
com.android.tools.r8.com.google.common.collect.AbstractTable -> com.android.tools.r8.a.a.a.b.o:
    java.util.Set cellSet -> a
    1:1:void <init>():36:36 -> <init>
    java.util.Iterator cellIterator() -> a
    1:1:java.util.Set cellSet():114:114 -> b
    2:2:java.util.Set createCellSet():119:119 -> b
    2:2:java.util.Set cellSet():115 -> b
    3:3:java.util.Set cellSet():115:115 -> b
    java.util.Spliterator cellSpliterator() -> c
com.android.tools.r8.com.google.common.collect.AbstractTable$CellSet -> com.android.tools.r8.a.a.a.b.o$a:
    com.android.tools.r8.com.google.common.collect.AbstractTable this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.AbstractTable):127:127 -> <init>
    1:1:void clear():154:154 -> clear
    2:2:void com.android.tools.r8.com.google.common.collect.StandardTable.clear():132:132 -> clear
    2:2:void com.android.tools.r8.com.google.common.collect.HashBasedTable.clear():55 -> clear
    2:2:void clear():154 -> clear
    1:6:boolean contains(java.lang.Object):130:135 -> contains
    7:7:boolean contains(java.lang.Object):134:134 -> contains
    1:1:java.util.Iterator iterator():159:159 -> iterator
    1:6:boolean remove(java.lang.Object):142:147 -> remove
    7:7:boolean com.android.tools.r8.com.google.common.collect.Collections2.safeRemove(java.util.Collection,java.lang.Object):125:125 -> remove
    7:7:boolean remove(java.lang.Object):146 -> remove
    8:8:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> remove
    8:8:boolean com.android.tools.r8.com.google.common.collect.Collections2.safeRemove(java.util.Collection,java.lang.Object):123 -> remove
    8:8:boolean remove(java.lang.Object):146 -> remove
    1:1:int size():169:169 -> size
    1:1:java.util.Spliterator spliterator():164:164 -> spliterator
com.android.tools.r8.com.google.common.collect.ArrayListMultimap -> com.android.tools.r8.a.a.a.b.p:
    int expectedValuesPerKey -> g
    1:1:void <init>():112:112 -> <init>
    2:2:void com.android.tools.r8.com.google.common.collect.ArrayListMultimapGwtSerializationDependencies.<init>(java.util.Map):36:36 -> <init>
    2:2:void <init>():112 -> <init>
    3:3:void <init>():113:113 -> <init>
    1:1:boolean containsEntry(java.lang.Object,java.lang.Object):65:65 -> a
    2:7:boolean com.android.tools.r8.com.google.common.collect.AbstractMultimap.putAll(java.lang.Object,java.lang.Iterable):82:87 -> a
    2:7:boolean putAll(java.lang.Object,java.lang.Iterable):65 -> a
    8:8:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    8:8:boolean com.android.tools.r8.com.google.common.collect.AbstractMultimap.putAll(java.lang.Object,java.lang.Iterable):79 -> a
    8:8:boolean putAll(java.lang.Object,java.lang.Iterable):65 -> a
    1:1:java.util.Map asMap():65:65 -> asMap
    1:1:void clear():65:65 -> clear
    1:1:boolean containsKey(java.lang.Object):65:65 -> containsKey
    1:1:java.util.Collection entries():65:65 -> entries
    1:1:boolean equals(java.lang.Object):65:65 -> equals
    1:1:java.util.List createCollection():137:137 -> g
    1:1:java.util.Collection createCollection():65 -> g
    1:1:java.util.List get(java.lang.Object):65:65 -> get
    1:1:com.android.tools.r8.com.google.common.collect.ArrayListMultimap create():80:80 -> h
    1:1:int com.android.tools.r8.com.google.common.collect.AbstractMultimap.hashCode():263:263 -> hashCode
    1:1:int hashCode():65 -> hashCode
    1:1:boolean com.android.tools.r8.com.google.common.collect.AbstractMultimap.isEmpty():43:43 -> isEmpty
    1:1:boolean isEmpty():65 -> isEmpty
    1:1:java.util.Set keySet():65:65 -> keySet
    1:1:com.android.tools.r8.com.google.common.collect.Multiset keys():65:65 -> keys
    1:1:boolean put(java.lang.Object,java.lang.Object):65:65 -> put
    1:2:boolean com.android.tools.r8.com.google.common.collect.AbstractMultimap.remove(java.lang.Object,java.lang.Object):66:67 -> remove
    1:2:boolean remove(java.lang.Object,java.lang.Object):65 -> remove
    1:1:int size():65:65 -> size
    1:1:java.lang.String com.android.tools.r8.com.google.common.collect.AbstractMultimap.toString():274:274 -> toString
    1:1:java.lang.String toString():65 -> toString
com.android.tools.r8.com.google.common.collect.BiMap -> com.android.tools.r8.a.a.a.b.q:
    java.lang.Object forcePut(java.lang.Object,java.lang.Object) -> a
    com.android.tools.r8.com.google.common.collect.BiMap inverse() -> g
com.android.tools.r8.com.google.common.collect.ByFunctionOrdering -> com.android.tools.r8.a.a.a.b.r:
    com.android.tools.r8.com.google.common.base.Function function -> a
    com.android.tools.r8.com.google.common.collect.Ordering ordering -> b
    1:3:void <init>(com.android.tools.r8.com.google.common.base.Function,com.android.tools.r8.com.google.common.collect.Ordering):36:38 -> <init>
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    4:4:void <init>(com.android.tools.r8.com.google.common.base.Function,com.android.tools.r8.com.google.common.collect.Ordering):38 -> <init>
    5:5:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    5:5:void <init>(com.android.tools.r8.com.google.common.base.Function,com.android.tools.r8.com.google.common.collect.Ordering):37 -> <init>
    1:1:int compare(java.lang.Object,java.lang.Object):43:43 -> compare
    1:3:boolean equals(java.lang.Object):51:53 -> equals
    1:1:int hashCode():60:60 -> hashCode
    2:2:int com.android.tools.r8.com.google.common.base.Objects.hashCode(java.lang.Object[]):76:76 -> hashCode
    2:2:int hashCode():60 -> hashCode
    1:1:java.lang.String toString():65:65 -> toString
com.android.tools.r8.com.google.common.collect.CollectCollectors -> com.android.tools.r8.a.a.a.b.s:
    java.util.stream.Collector TO_IMMUTABLE_SET -> a
    1:25:void <clinit>():44:68 -> <clinit>
    1:1:java.util.stream.Collector toImmutableMap(java.util.function.Function,java.util.function.Function):60:60 -> a
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    2:2:java.util.stream.Collector toImmutableMap(java.util.function.Function,java.util.function.Function):59 -> a
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    3:3:java.util.stream.Collector toImmutableMap(java.util.function.Function,java.util.function.Function):58 -> a
    4:4:void lambda$toImmutableMap$1(java.util.function.Function,java.util.function.Function,com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder,java.lang.Object):62:62 -> a
    5:5:java.util.stream.Collector toImmutableSet():75:75 -> a
com.android.tools.r8.com.google.common.collect.CollectSpliterators$1 -> com.android.tools.r8.a.a.a.b.t:
    java.util.Spliterator val$fromSpliterator -> a
    java.util.function.Function val$function -> b
    1:1:void <init>(java.util.Spliterator,java.util.function.Function):105:105 -> <init>
    1:1:void lambda$forEachRemaining$1(java.util.function.Consumer,java.util.function.Function,java.lang.Object):115:115 -> a
    1:1:void lambda$tryAdvance$0(java.util.function.Consumer,java.util.function.Function,java.lang.Object):110:110 -> b
    1:1:int characteristics():131:131 -> characteristics
    1:1:long estimateSize():126:126 -> estimateSize
    1:1:void forEachRemaining(java.util.function.Consumer):115:115 -> forEachRemaining
    1:1:boolean tryAdvance(java.util.function.Consumer):109:109 -> tryAdvance
    1:2:java.util.Spliterator trySplit():120:121 -> trySplit
com.android.tools.r8.com.google.common.collect.CollectSpliterators$1FlatMapSpliterator -> com.android.tools.r8.a.a.a.b.u:
    long estimatedSize -> d
    java.util.function.Function val$function -> e
    java.util.Spliterator from -> b
    java.util.Spliterator prefix -> a
    int characteristics -> c
    1:5:void <init>(java.util.Spliterator,java.util.Spliterator,int,long,java.util.function.Function):216:220 -> <init>
    1:1:void lambda$tryAdvance$0(java.util.function.Function,java.lang.Object):234:234 -> a
    2:2:void lambda$forEachRemaining$1(java.util.function.Function,java.util.function.Consumer,java.lang.Object):246:246 -> a
    1:1:int characteristics():284:284 -> characteristics
    1:4:long estimateSize():276:279 -> estimateSize
    1:6:void forEachRemaining(java.util.function.Consumer):242:247 -> forEachRemaining
    1:9:boolean tryAdvance(java.util.function.Consumer):226:234 -> tryAdvance
    1:3:java.util.Spliterator trySplit():252:254 -> trySplit
    4:7:long estimateSize():276:279 -> trySplit
    4:7:java.util.Spliterator trySplit():255 -> trySplit
    8:18:java.util.Spliterator trySplit():257:267 -> trySplit
com.android.tools.r8.com.google.common.collect.CollectSpliterators$1Splitr -> com.android.tools.r8.a.a.a.b.v:
    java.util.function.Predicate val$predicate -> c
    java.lang.Object holder -> a
    java.util.Spliterator val$fromSpliterator -> b
    1:2:void <init>(java.util.Spliterator,java.util.function.Predicate):141:142 -> <init>
    1:1:void accept(java.lang.Object):146:146 -> accept
    1:1:int characteristics():182:182 -> characteristics
    1:1:long estimateSize():172:172 -> estimateSize
    1:1:java.util.Comparator getComparator():177:177 -> getComparator
    1:8:boolean tryAdvance(java.util.function.Consumer):151:158 -> tryAdvance
    1:2:java.util.Spliterator trySplit():166:167 -> trySplit
com.android.tools.r8.com.google.common.collect.CollectSpliterators$1WithCharacteristics -> com.android.tools.r8.a.a.a.b.w:
    java.util.Comparator val$comparator -> c
    java.util.Spliterator delegate -> a
    int val$extraCharacteristics -> b
    1:2:void <init>(java.util.Spliterator,int,java.util.Comparator):54:55 -> <init>
    1:1:int characteristics():82:82 -> characteristics
    1:1:long estimateSize():77:77 -> estimateSize
    1:1:void forEachRemaining(java.util.function.Consumer):65:65 -> forEachRemaining
    1:4:java.util.Comparator getComparator():87:90 -> getComparator
    1:1:boolean tryAdvance(java.util.function.Consumer):60:60 -> tryAdvance
    1:2:java.util.Spliterator trySplit():71:72 -> trySplit
com.android.tools.r8.com.google.common.collect.Collections2 -> com.android.tools.r8.a.a.a.b.x:
    java.util.Spliterator com.android.tools.r8.com.google.common.collect.Streams.lambda$concat$0(java.util.Spliterator) -> a
    1:1:void com.android.tools.r8.com.google.common.collect.CollectPreconditions.checkEntryNotNull(java.lang.Object,java.lang.Object):34:34 -> a
    2:2:void com.android.tools.r8.com.google.common.collect.CollectPreconditions.checkEntryNotNull(java.lang.Object,java.lang.Object):32:32 -> a
    3:4:boolean com.android.tools.r8.com.google.common.collect.SortedIterables.hasSameComparator(java.util.Comparator,java.lang.Iterable):40:41 -> a
    5:7:java.util.Comparator com.android.tools.r8.com.google.common.collect.SortedIterables.comparator(java.util.SortedSet):53:55 -> a
    5:7:boolean com.android.tools.r8.com.google.common.collect.SortedIterables.hasSameComparator(java.util.Comparator,java.lang.Iterable):41 -> a
    8:13:boolean com.android.tools.r8.com.google.common.collect.SortedIterables.hasSameComparator(java.util.Comparator,java.lang.Iterable):42:47 -> a
    14:14:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    14:14:boolean com.android.tools.r8.com.google.common.collect.SortedIterables.hasSameComparator(java.util.Comparator,java.lang.Iterable):38 -> a
    15:15:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    15:15:boolean com.android.tools.r8.com.google.common.collect.SortedIterables.hasSameComparator(java.util.Comparator,java.lang.Iterable):37 -> a
    16:16:int com.android.tools.r8.com.google.common.collect.CollectPreconditions.checkNonnegative(int,java.lang.String):41:41 -> a
    17:62:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.indexed(int,int,java.util.function.IntFunction,java.util.Comparator):49:94 -> a
    63:64:int com.android.tools.r8.com.google.common.collect.Hashing.closedTableSize(int,double):62:63 -> a
    65:65:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.Iterators.emptyListIterator():90:90 -> a
    65:65:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.emptyIterator():78 -> a
    66:66:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.map(java.util.Spliterator,java.util.function.Function):105:105 -> a
    67:67:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    67:67:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.map(java.util.Spliterator,java.util.function.Function):104 -> a
    68:68:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    68:68:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.map(java.util.Spliterator,java.util.function.Function):103 -> a
    69:69:boolean safeContains(java.util.Collection,java.lang.Object):109:109 -> a
    70:70:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    70:70:boolean safeContains(java.util.Collection,java.lang.Object):107 -> a
    71:82:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.concat(java.util.stream.Stream[]):148:159 -> a
    83:83:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.concat(java.util.stream.Stream[]):158:158 -> a
    84:84:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.concat(java.util.stream.Stream[]):157:157 -> a
    85:85:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.filter(java.util.Spliterator,java.util.function.Predicate):189:189 -> a
    86:86:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    86:86:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.filter(java.util.Spliterator,java.util.function.Predicate):140 -> a
    87:87:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    87:87:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.filter(java.util.Spliterator,java.util.function.Predicate):139 -> a
    88:174:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.flatMap(java.util.Spliterator,java.util.function.Function,int,long):201:287 -> a
    175:175:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    175:175:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.flatMap(java.util.Spliterator,java.util.function.Function,int,long):208 -> a
    176:176:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    176:176:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.flatMap(java.util.Spliterator,java.util.function.Function,int,long):207 -> a
    177:177:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[]):219:219 -> a
    178:178:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[],int):225:225 -> a
    178:178:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[]):219 -> a
    179:179:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[],int):225:225 -> a
    180:180:java.lang.Object com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementNotNull(java.lang.Object,int):235:235 -> a
    181:181:int com.android.tools.r8.com.google.common.collect.Maps.capacity(int):309:309 -> a
    182:184:java.util.Collection com.android.tools.r8.com.google.common.collect.Iterables.castOrCopyToCollection(java.lang.Iterable):318:320 -> a
    182:184:java.lang.Object[] com.android.tools.r8.com.google.common.collect.Iterables.toArray(java.lang.Iterable,java.lang.Object[]):297 -> a
    185:185:java.lang.Object[] com.android.tools.r8.com.google.common.collect.Iterables.toArray(java.lang.Iterable,java.lang.Object[]):298:298 -> a
    186:186:boolean com.android.tools.r8.com.google.common.collect.Iterables.addAll(java.util.Collection,java.lang.Iterable):331:331 -> a
    187:187:java.util.Collection cast(java.lang.Iterable):377:377 -> a
    187:187:boolean com.android.tools.r8.com.google.common.collect.Iterables.addAll(java.util.Collection,java.lang.Iterable):332 -> a
    188:190:boolean com.android.tools.r8.com.google.common.collect.Iterables.addAll(java.util.Collection,java.lang.Iterable):333:335 -> a
    191:191:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    191:191:boolean com.android.tools.r8.com.google.common.collect.Iterables.addAll(java.util.Collection,java.lang.Iterable):335 -> a
    192:200:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.mapWithIndex(java.util.stream.Stream,com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex):344:352 -> a
    201:248:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.mapWithIndex(java.util.stream.Stream,com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex):349:396 -> a
    249:249:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    249:249:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.mapWithIndex(java.util.stream.Stream,com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex):343 -> a
    250:250:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    250:250:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.mapWithIndex(java.util.stream.Stream,com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex):342 -> a
    251:252:boolean com.android.tools.r8.com.google.common.collect.Iterators.addAll(java.util.Collection,java.util.Iterator):372:373 -> a
    253:253:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    253:253:boolean com.android.tools.r8.com.google.common.collect.Iterators.addAll(java.util.Collection,java.util.Iterator):370 -> a
    254:254:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    254:254:boolean com.android.tools.r8.com.google.common.collect.Iterators.addAll(java.util.Collection,java.util.Iterator):369 -> a
    255:255:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.cycle(java.lang.Iterable):411:411 -> a
    256:256:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    256:256:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.cycle(java.lang.Iterable):410 -> a
    257:257:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
    258:258:void com.android.tools.r8.com.google.common.base.Preconditions.checkState(boolean,java.lang.Object):459:459 -> a
    258:258:void com.android.tools.r8.com.google.common.collect.CollectPreconditions.checkRemove(boolean):65 -> a
    259:259:boolean com.android.tools.r8.com.google.common.collect.Iterables.any(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate):627:627 -> a
    260:263:int com.android.tools.r8.com.google.common.collect.Iterators.indexOf(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate):796:799 -> a
    260:263:boolean com.android.tools.r8.com.google.common.collect.Iterators.any(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate):688 -> a
    260:263:boolean com.android.tools.r8.com.google.common.collect.Iterables.any(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate):627 -> a
    264:264:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.find(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate,java.lang.Object):669:669 -> a
    265:267:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.find(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate,java.lang.Object):745:747 -> a
    265:267:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.find(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate,java.lang.Object):669 -> a
    268:268:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    268:268:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.find(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate,java.lang.Object):744 -> a
    268:268:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.find(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate,java.lang.Object):669 -> a
    269:269:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    269:269:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.find(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate,java.lang.Object):743 -> a
    269:269:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.find(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate,java.lang.Object):669 -> a
    270:270:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.transform(java.util.Iterator,com.android.tools.r8.com.google.common.base.Function):817:817 -> a
    271:271:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    271:271:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.transform(java.util.Iterator,com.android.tools.r8.com.google.common.base.Function):816 -> a
    272:279:java.util.List com.android.tools.r8.com.google.common.collect.Lists.reverse(java.util.List):840:847 -> a
    280:292:boolean com.android.tools.r8.com.google.common.collect.Multisets.equalsImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.lang.Object):880:892 -> a
    293:296:com.android.tools.r8.com.google.common.collect.Sets$SetView com.android.tools.r8.com.google.common.collect.Sets.difference(java.util.Set,java.util.Set):911:914 -> a
    297:298:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.limit(java.util.Iterator,int):951:952 -> a
    299:299:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    299:299:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.limit(java.util.Iterator,int):950 -> a
    300:302:void com.android.tools.r8.com.google.common.collect.Iterators.clear(java.util.Iterator):1033:1035 -> a
    303:303:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    303:303:void com.android.tools.r8.com.google.common.collect.Iterators.clear(java.util.Iterator):1032 -> a
    304:309:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.Iterators.forArray(java.lang.Object[],int,int,int):1085:1090 -> a
    310:310:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.Iterators.emptyListIterator():90:90 -> a
    310:310:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.Iterators.forArray(java.lang.Object[],int,int,int):1092 -> a
    311:311:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.Iterators.forArray(java.lang.Object[],int,int,int):1094:1094 -> a
    312:312:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.singletonIterator(java.lang.Object):1104:1104 -> a
    313:313:java.util.Spliterator com.android.tools.r8.com.google.common.collect.Multisets.lambda$spliteratorImpl$2(com.android.tools.r8.com.google.common.collect.Multiset$Entry):1126:1126 -> a
    314:316:com.android.tools.r8.com.google.common.collect.ImmutableMultiset com.android.tools.r8.com.google.common.collect.Multisets.copyHighestCountFirst(com.android.tools.r8.com.google.common.collect.Multiset):1159:1161 -> a
    317:318:int com.android.tools.r8.com.google.common.collect.Sets.hashCodeImpl(java.util.Set):1770:1771 -> a
    319:323:boolean com.android.tools.r8.com.google.common.collect.Sets.equalsImpl(java.util.Set,java.lang.Object):1786:1790 -> a
    324:327:java.util.NavigableSet com.android.tools.r8.com.google.common.collect.Sets.unmodifiableNavigableSet(java.util.NavigableSet):1817:1820 -> a
    328:339:boolean com.android.tools.r8.com.google.common.collect.Sets.removeAllImpl(java.util.Set,java.util.Collection):1988:1999 -> a
    340:342:boolean com.android.tools.r8.com.google.common.collect.Iterators.removeAll(java.util.Iterator,java.util.Collection):208:210 -> a
    340:342:boolean com.android.tools.r8.com.google.common.collect.Sets.removeAllImpl(java.util.Set,java.util.Collection):1999 -> a
    343:343:boolean com.android.tools.r8.com.google.common.collect.Sets.removeAllImpl(java.util.Set,java.util.Collection):2001:2001 -> a
    344:345:boolean com.android.tools.r8.com.google.common.collect.Sets.removeAllImpl(java.util.Set,java.util.Iterator):1980:1981 -> a
    344:345:boolean com.android.tools.r8.com.google.common.collect.Sets.removeAllImpl(java.util.Set,java.util.Collection):2001 -> a
    346:346:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    346:346:boolean com.android.tools.r8.com.google.common.collect.Sets.removeAllImpl(java.util.Set,java.util.Collection):1987 -> a
    347:347:boolean com.android.tools.r8.com.google.common.collect.Maps.safeContainsKey(java.util.Map,java.lang.Object):3721:3721 -> a
    348:348:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    348:348:boolean com.android.tools.r8.com.google.common.collect.Maps.safeContainsKey(java.util.Map,java.lang.Object):3719 -> a
    349:354:com.android.tools.r8.com.google.common.collect.ImmutableMap com.android.tools.r8.com.google.common.collect.Maps.indexMap(java.util.Collection):4375:4380 -> a
    349:354:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.combinations(java.util.Set,int):1668 -> a
    355:362:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.combinations(java.util.Set,int):1669:1676 -> a
    1:1:int com.android.tools.r8.com.google.common.collect.Hashing.smearedHash(java.lang.Object):54:54 -> b
    2:2:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList():88:88 -> b
    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.getOnlyElement(java.lang.Iterable):266:266 -> b
    4:4:java.util.HashMap com.android.tools.r8.com.google.common.collect.Maps.newHashMapWithExpectedSize(int):300:300 -> b
    5:19:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.getOnlyElement(java.util.Iterator):314:328 -> b
    20:20:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.filter(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate):575:575 -> b
    21:21:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
    21:21:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.filter(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate):574 -> b
    22:22:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
    22:22:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.filter(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate):573 -> b
    23:26:com.android.tools.r8.com.google.common.collect.Sets$SetView com.android.tools.r8.com.google.common.collect.Sets.intersection(java.util.Set,java.util.Set):839:842 -> b
    27:27:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.forArray(java.lang.Object[]):1054:1054 -> b
    28:35:java.util.Spliterator com.android.tools.r8.com.google.common.collect.Multisets.spliteratorImpl(com.android.tools.r8.com.google.common.collect.Multiset):1123:1130 -> b
    36:36:java.util.Spliterator com.android.tools.r8.com.google.common.collect.Multisets.spliteratorImpl(com.android.tools.r8.com.google.common.collect.Multiset):1124:1124 -> b
    37:37:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.immutableEntry(java.lang.Object,java.lang.Object):1421:1421 -> b
    38:38:java.lang.Object com.android.tools.r8.com.google.common.collect.Maps.safeGet(java.util.Map,java.lang.Object):3706:3706 -> b
    39:39:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
    39:39:java.lang.Object com.android.tools.r8.com.google.common.collect.Maps.safeGet(java.util.Map,java.lang.Object):3704 -> b
    1:1:com.android.tools.r8.com.google.common.base.Function com.android.tools.r8.com.google.common.collect.Maps.keyFunction():111:111 -> c
    1:1:java.util.Iterator com.android.tools.r8.com.google.common.collect.Maps.keyIterator(java.util.Iterator):120 -> c
    2:2:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.transform(java.util.Iterator,com.android.tools.r8.com.google.common.base.Function):817:817 -> c
    2:2:java.util.Iterator com.android.tools.r8.com.google.common.collect.Maps.keyIterator(java.util.Iterator):120 -> c
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> c
    3:3:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.transform(java.util.Iterator,com.android.tools.r8.com.google.common.base.Function):816 -> c
    3:3:java.util.Iterator com.android.tools.r8.com.google.common.collect.Maps.keyIterator(java.util.Iterator):120 -> c
    4:4:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Object[]):114:114 -> c
    5:8:int com.android.tools.r8.com.google.common.collect.Lists.computeArrayListCapacity(int):122:125 -> c
    5:8:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Object[]):114 -> c
    9:10:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Object[]):115:116 -> c
    11:11:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> c
    11:11:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Object[]):112 -> c
    12:12:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Iterable):148:148 -> c
    13:13:java.util.Collection cast(java.lang.Iterable):377:377 -> c
    13:13:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Iterable):149 -> c
    14:15:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Iterable):149:150 -> c
    16:16:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> c
    16:16:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.lang.Iterable):146 -> c
    17:17:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.newConcurrentHashSet():310:310 -> c
    18:18:java.util.LinkedHashMap com.android.tools.r8.com.google.common.collect.Maps.newLinkedHashMapWithExpectedSize(int):377:377 -> c
    19:22:com.android.tools.r8.com.google.common.collect.Sets$SetView com.android.tools.r8.com.google.common.collect.Sets.union(java.util.Set,java.util.Set):741:744 -> c
    23:23:java.lang.Object com.android.tools.r8.com.google.common.collect.Maps.safeRemove(java.util.Map,java.lang.Object):3736:3736 -> c
    24:24:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> c
    24:24:java.lang.Object com.android.tools.r8.com.google.common.collect.Maps.safeRemove(java.util.Map,java.lang.Object):3734 -> c
    1:1:int com.android.tools.r8.com.google.common.collect.Hashing.smear(int):50:50 -> d
    2:2:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList():88:88 -> d
    2:2:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.util.Iterator):164 -> d
    3:3:java.util.ArrayList com.android.tools.r8.com.google.common.collect.Lists.newArrayList(java.util.Iterator):165:165 -> d
    4:4:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet():218:218 -> d
    5:5:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Iterable):275:275 -> d
    6:6:java.util.Collection cast(java.lang.Iterable):377:377 -> d
    6:6:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Iterable):276 -> d
    7:8:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Iterable):276:277 -> d
    9:10:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.util.Iterator):293:294 -> d
    9:10:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSet(java.lang.Iterable):277 -> d
    1:3:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.stream(java.lang.Iterable):62:64 -> e
    4:4:java.util.IdentityHashMap com.android.tools.r8.com.google.common.collect.Maps.newIdentityHashMap():511:511 -> e
    5:7:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.pollNext(java.util.Iterator):1017:1019 -> e
    1:1:java.util.stream.Stream com.android.tools.r8.com.google.common.collect.Streams.stream(java.util.Iterator):82:82 -> f
    2:4:java.util.Collection com.android.tools.r8.com.google.common.collect.Iterables.castOrCopyToCollection(java.lang.Iterable):318:320 -> f
    2:4:java.lang.Object[] com.android.tools.r8.com.google.common.collect.Iterables.toArray(java.lang.Iterable):309 -> f
    5:5:java.lang.Object[] com.android.tools.r8.com.google.common.collect.Iterables.toArray(java.lang.Iterable):309:309 -> f
    6:6:java.util.Set com.android.tools.r8.com.google.common.collect.Sets.newIdentityHashSet():466:466 -> f
    1:6:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.unmodifiableIterator(java.util.Iterator):132:137 -> g
    7:7:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> g
    7:7:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.unmodifiableIterator(java.util.Iterator):131 -> g
    8:8:java.util.LinkedHashSet com.android.tools.r8.com.google.common.collect.Sets.newLinkedHashSet():347:347 -> g
com.android.tools.r8.com.google.common.collect.ComparatorOrdering -> com.android.tools.r8.a.a.a.b.y:
    java.util.Comparator comparator -> a
    1:2:void <init>(java.util.Comparator):31:32 -> <init>
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    3:3:void <init>(java.util.Comparator):32 -> <init>
    1:1:int compare(java.lang.Object,java.lang.Object):37:37 -> compare
    1:3:boolean equals(java.lang.Object):45:47 -> equals
    1:1:int hashCode():54:54 -> hashCode
    1:1:java.lang.String toString():59:59 -> toString
com.android.tools.r8.com.google.common.collect.Count -> com.android.tools.r8.a.a.a.b.z:
    int value -> a
    1:2:void <init>(int):30:31 -> <init>
    1:1:void add(int):39:39 -> a
    1:1:int addAndGet(int):43:43 -> b
    1:2:int getAndSet(int):51:52 -> c
    1:1:void set(int):47:47 -> d
    1:1:boolean equals(java.lang.Object):63:63 -> equals
    1:1:int get():35:35 -> get
    1:1:int hashCode():58:58 -> hashCode
    1:1:java.lang.String toString():68:68 -> toString
com.android.tools.r8.com.google.common.collect.EmptyImmutableListMultimap -> com.android.tools.r8.a.a.a.b.A:
    com.android.tools.r8.com.google.common.collect.EmptyImmutableListMultimap INSTANCE -> g
    1:1:void <clinit>():28:28 -> <clinit>
    1:1:void <init>():31:31 -> <init>
com.android.tools.r8.com.google.common.collect.FluentIterable -> com.android.tools.r8.a.a.a.b.D:
    com.android.tools.r8.com.google.common.base.Optional iterableDelegate -> a
    1:2:void <init>():117:118 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.FluentIterable concat(java.lang.Iterable,java.lang.Iterable):190:190 -> a
    2:2:com.android.tools.r8.com.google.common.collect.FluentIterable concat(java.lang.Iterable,java.lang.Iterable,java.lang.Iterable,java.lang.Iterable):232:232 -> a
    3:3:com.android.tools.r8.com.google.common.collect.FluentIterable concat(java.lang.Iterable[]):252:252 -> a
    1:4:com.android.tools.r8.com.google.common.collect.FluentIterable concatNoDefensiveCopy(java.lang.Iterable[]):258:261 -> b
    1:1:java.lang.Iterable getDelegate():127:127 -> toString
    1:1:java.lang.String toString():336 -> toString
    2:2:java.lang.String com.android.tools.r8.com.google.common.collect.Iterables.toString(java.lang.Iterable):253:253 -> toString
    2:2:java.lang.String toString():336 -> toString
    3:12:java.lang.String com.android.tools.r8.com.google.common.collect.Iterators.toString(java.util.Iterator):293:302 -> toString
    3:12:java.lang.String com.android.tools.r8.com.google.common.collect.Iterables.toString(java.lang.Iterable):253 -> toString
    3:12:java.lang.String toString():336 -> toString
com.android.tools.r8.com.google.common.collect.FluentIterable$2 -> com.android.tools.r8.a.a.a.b.C:
    java.lang.Iterable[] val$inputs -> b
    1:1:void <init>(java.lang.Iterable[]):261:261 -> <init>
    1:1:java.util.Iterator iterator():264:264 -> iterator
    2:2:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.concat(java.util.Iterator):578:578 -> iterator
    2:2:java.util.Iterator iterator():264 -> iterator
com.android.tools.r8.com.google.common.collect.FluentIterable$2$1 -> com.android.tools.r8.a.a.a.b.B:
    com.android.tools.r8.com.google.common.collect.FluentIterable$2 this$0 -> c
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.FluentIterable$2,int):266:266 -> <init>
    2:2:void com.android.tools.r8.com.google.common.collect.AbstractIndexedListIterator.<init>(int):52:52 -> <init>
    2:2:void <init>(com.android.tools.r8.com.google.common.collect.FluentIterable$2,int):266 -> <init>
    1:1:java.util.Iterator get(int):269:269 -> a
    1:1:java.lang.Object get(int):266 -> a
com.android.tools.r8.com.google.common.collect.ForwardingCollection -> com.android.tools.r8.a.a.a.b.E:
    1:1:void <init>():55:55 -> <init>
    1:1:boolean add(java.lang.Object):89:89 -> add
    1:1:boolean addAll(java.util.Collection):106:106 -> addAll
    1:1:void clear():117:117 -> clear
    1:1:boolean contains(java.lang.Object):83:83 -> contains
    1:1:boolean containsAll(java.util.Collection):100:100 -> containsAll
    java.util.Collection delegate() -> g
    1:1:boolean isEmpty():78:78 -> isEmpty
    1:1:java.util.Iterator iterator():62:62 -> iterator
    1:1:boolean remove(java.lang.Object):95:95 -> remove
    1:1:boolean removeAll(java.util.Collection):73:73 -> removeAll
    1:1:boolean retainAll(java.util.Collection):112:112 -> retainAll
    1:1:int size():67:67 -> size
    1:1:java.lang.Object[] toArray():122:122 -> toArray
    2:2:java.lang.Object[] toArray(java.lang.Object[]):128:128 -> toArray
com.android.tools.r8.com.google.common.collect.ForwardingMapEntry -> com.android.tools.r8.a.a.a.b.F:
    1:1:void <init>():57:57 -> <init>
    1:1:java.lang.Object getKey():64:64 -> getKey
    2:2:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.StandardTable$Row$2.delegate():401:401 -> getKey
    2:2:java.lang.Object getKey():64 -> getKey
    3:3:java.lang.Object getKey():64:64 -> getKey
    1:1:java.lang.Object getValue():69:69 -> getValue
    2:2:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.StandardTable$Row$2.delegate():401:401 -> getValue
    2:2:java.lang.Object getValue():69 -> getValue
    3:3:java.lang.Object getValue():69:69 -> getValue
    1:1:int hashCode():84:84 -> hashCode
    2:2:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.StandardTable$Row$2.delegate():401:401 -> hashCode
    2:2:int hashCode():84 -> hashCode
    3:3:int hashCode():84:84 -> hashCode
com.android.tools.r8.com.google.common.collect.ForwardingObject -> com.android.tools.r8.a.a.a.b.G:
    1:1:void <init>():55:55 -> <init>
    java.lang.Object delegate() -> g
    1:1:java.lang.String toString():72:72 -> toString
com.android.tools.r8.com.google.common.collect.ForwardingSet -> com.android.tools.r8.a.a.a.b.H:
    1:1:void <init>():55:55 -> <init>
    1:1:boolean equals(java.lang.Object):62:62 -> equals
    java.util.Set delegate() -> g
    1:1:int hashCode():67:67 -> hashCode
com.android.tools.r8.com.google.common.collect.ForwardingSortedSet -> com.android.tools.r8.a.a.a.b.I:
    1:1:void <init>():62:62 -> <init>
    1:1:java.util.Comparator comparator():69:69 -> comparator
    1:1:java.lang.Object first():74:74 -> first
    java.util.SortedSet delegate() -> g
    1:1:java.util.SortedSet headSet(java.lang.Object):79:79 -> headSet
    1:1:java.lang.Object last():84:84 -> last
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):89:89 -> subSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):94:94 -> tailSet
com.android.tools.r8.com.google.common.collect.HashBasedTable -> com.android.tools.r8.a.a.a.b.K:
    1:1:void <init>(java.util.Map,com.android.tools.r8.com.google.common.collect.HashBasedTable$Factory):111:111 -> <init>
    1:2:java.lang.Object com.android.tools.r8.com.google.common.collect.AbstractTable.get(java.lang.Object,java.lang.Object):76:77 -> a
    1:2:java.lang.Object com.android.tools.r8.com.google.common.collect.StandardTable.get(java.lang.Object,java.lang.Object):111 -> a
    1:2:java.lang.Object get(java.lang.Object,java.lang.Object):138 -> a
    3:3:boolean com.android.tools.r8.com.google.common.collect.StandardTable.containsRow(java.lang.Object):101:101 -> a
    3:3:boolean containsRow(java.lang.Object):128 -> a
    4:7:java.util.Map com.android.tools.r8.com.google.common.collect.StandardTable.getOrCreate(java.lang.Object):136:139 -> a
    4:7:java.lang.Object com.android.tools.r8.com.google.common.collect.StandardTable.put(java.lang.Object,java.lang.Object,java.lang.Object):150 -> a
    4:7:java.lang.Object put(java.lang.Object,java.lang.Object,java.lang.Object):55 -> a
    8:8:java.lang.Object com.android.tools.r8.com.google.common.collect.StandardTable.put(java.lang.Object,java.lang.Object,java.lang.Object):150:150 -> a
    8:8:java.lang.Object put(java.lang.Object,java.lang.Object,java.lang.Object):55 -> a
    9:9:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    9:9:java.lang.Object com.android.tools.r8.com.google.common.collect.StandardTable.put(java.lang.Object,java.lang.Object,java.lang.Object):149 -> a
    9:9:java.lang.Object put(java.lang.Object,java.lang.Object,java.lang.Object):55 -> a
    10:10:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    10:10:java.lang.Object com.android.tools.r8.com.google.common.collect.StandardTable.put(java.lang.Object,java.lang.Object,java.lang.Object):148 -> a
    10:10:java.lang.Object put(java.lang.Object,java.lang.Object,java.lang.Object):55 -> a
    11:11:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    11:11:java.lang.Object com.android.tools.r8.com.google.common.collect.StandardTable.put(java.lang.Object,java.lang.Object,java.lang.Object):147 -> a
    11:11:java.lang.Object put(java.lang.Object,java.lang.Object,java.lang.Object):55 -> a
    1:1:java.util.Set cellSet():55:55 -> b
    2:2:java.util.Map com.android.tools.r8.com.google.common.collect.StandardTable.row(java.lang.Object):284:284 -> b
    2:2:java.util.Map row(java.lang.Object):55 -> b
    1:2:boolean com.android.tools.r8.com.google.common.collect.AbstractTable.containsValue(java.lang.Object):60:61 -> c
    1:2:boolean com.android.tools.r8.com.google.common.collect.StandardTable.containsValue(java.lang.Object):106 -> c
    1:2:boolean containsValue(java.lang.Object):133 -> c
    1:1:java.util.Map rowMap():55:55 -> d
    1:1:com.android.tools.r8.com.google.common.collect.HashBasedTable create():76:76 -> e
    1:1:boolean com.android.tools.r8.com.google.common.collect.AbstractTable.equals(java.lang.Object):228:228 -> equals
    1:1:boolean equals(java.lang.Object):143 -> equals
    1:1:java.util.Set com.android.tools.r8.com.google.common.collect.StandardTable.rowKeySet():625:625 -> f
    1:1:java.util.Set rowKeySet():55 -> f
    1:1:int com.android.tools.r8.com.google.common.collect.AbstractTable.hashCode():233:233 -> hashCode
    1:1:int hashCode():55 -> hashCode
    1:1:boolean com.android.tools.r8.com.google.common.collect.StandardTable.isEmpty():116:116 -> isEmpty
    1:1:boolean isEmpty():55 -> isEmpty
    1:2:int com.android.tools.r8.com.google.common.collect.StandardTable.size():122:123 -> size
    1:2:int size():55 -> size
    1:1:java.lang.String com.android.tools.r8.com.google.common.collect.AbstractTable.toString():241:241 -> toString
    1:1:java.lang.String toString():55 -> toString
com.android.tools.r8.com.google.common.collect.HashBasedTable$Factory -> com.android.tools.r8.a.a.a.b.J:
    int expectedSize -> a
    1:2:void <init>(int):60:61 -> <init>
    1:1:java.util.Map get():66:66 -> get
    1:1:java.lang.Object get():57 -> get
com.android.tools.r8.com.google.common.collect.HashBiMap -> com.android.tools.r8.a.a.a.b.P:
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry firstInKeyInsertionOrder -> c
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry lastInKeyInsertionOrder -> d
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry[] hashTableVToK -> b
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry[] hashTableKToV -> a
    int mask -> f
    int modCount -> g
    com.android.tools.r8.com.google.common.collect.BiMap inverse -> h
    int size -> e
    1:1:void <init>(int):115:115 -> <init>
    2:3:void init(int):120:121 -> <init>
    2:3:void <init>(int):116 -> <init>
    4:4:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry[] createTable(int):361:361 -> <init>
    4:4:void init(int):122 -> <init>
    4:4:void <init>(int):116 -> <init>
    5:5:void init(int):122:122 -> <init>
    5:5:void <init>(int):116 -> <init>
    6:6:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry[] createTable(int):361:361 -> <init>
    6:6:void init(int):123 -> <init>
    6:6:void <init>(int):116 -> <init>
    7:12:void init(int):123:128 -> <init>
    7:12:void <init>(int):116 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry access$000(com.android.tools.r8.com.google.common.collect.HashBiMap):58:58 -> a
    2:2:void access$200(com.android.tools.r8.com.google.common.collect.HashBiMap,com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):58:58 -> a
    3:3:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry access$300(com.android.tools.r8.com.google.common.collect.HashBiMap,java.lang.Object,int):58:58 -> a
    4:4:void access$500(com.android.tools.r8.com.google.common.collect.HashBiMap,com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry,com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):58:58 -> a
    5:5:java.lang.Object access$800(com.android.tools.r8.com.google.common.collect.HashBiMap,java.lang.Object,java.lang.Object,boolean):58:58 -> a
    6:6:com.android.tools.r8.com.google.common.collect.HashBiMap create(java.util.Map):83:83 -> a
    7:7:com.android.tools.r8.com.google.common.collect.HashBiMap create(int):75:75 -> a
    7:7:com.android.tools.r8.com.google.common.collect.HashBiMap create(java.util.Map):83 -> a
    8:8:com.android.tools.r8.com.google.common.collect.HashBiMap create(java.util.Map):84:84 -> a
    9:54:void delete(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):136:181 -> a
    55:55:void delete(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):156:156 -> a
    56:56:void delete(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):140:140 -> a
    57:90:void insert(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry,com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):185:218 -> a
    91:94:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry seekByKey(java.lang.Object,int):222:225 -> a
    95:95:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry seekByKey(java.lang.Object,int):224:224 -> a
    96:96:java.lang.Object forcePut(java.lang.Object,java.lang.Object):268:268 -> a
    97:126:java.lang.Object put(java.lang.Object,java.lang.Object,boolean):272:301 -> a
    1:1:int access$100(com.android.tools.r8.com.google.common.collect.HashBiMap):58:58 -> b
    2:2:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry access$400(com.android.tools.r8.com.google.common.collect.HashBiMap,java.lang.Object,int):58:58 -> b
    3:6:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry seekByValue(java.lang.Object,int):233:236 -> b
    7:7:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry seekByValue(java.lang.Object,int):235:235 -> b
    8:36:java.lang.Object putInverse(java.lang.Object,java.lang.Object,boolean):308:336 -> b
    37:37:java.lang.Object com.android.tools.r8.com.google.common.collect.Maps.keyOrNull(java.util.Map$Entry):3891:3891 -> b
    37:37:java.lang.Object putInverse(java.lang.Object,java.lang.Object,boolean):337 -> b
    1:1:int access$700(com.android.tools.r8.com.google.common.collect.HashBiMap):58:58 -> c
    1:6:void clear():380:385 -> clear
    1:1:boolean containsKey(java.lang.Object):245:245 -> containsKey
    1:1:boolean containsValue(java.lang.Object):250:250 -> containsValue
    1:1:java.util.Set com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap.entrySet():3666:3666 -> entrySet
    1:1:java.util.Set entrySet():57 -> entrySet
    1:4:void forEach(java.util.function.BiConsumer):525:528 -> forEach
    5:5:void forEach(java.util.function.BiConsumer):527:527 -> forEach
    6:6:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    6:6:void forEach(java.util.function.BiConsumer):524 -> forEach
    1:1:com.android.tools.r8.com.google.common.collect.BiMap inverse():547:547 -> g
    1:1:java.lang.Object get(java.lang.Object):256:256 -> get
    2:2:java.lang.Object com.android.tools.r8.com.google.common.collect.Maps.valueOrNull(java.util.Map$Entry):3896:3896 -> get
    2:2:java.lang.Object get(java.lang.Object):256 -> get
    1:1:java.util.Iterator entryIterator():474:474 -> h
    1:1:com.android.tools.r8.com.google.common.collect.HashBiMap create(int):75:75 -> j
    1:1:com.android.tools.r8.com.google.common.collect.HashBiMap create():65 -> j
    1:3:void rehashIfNecessary():341:343 -> k
    4:4:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry[] createTable(int):361:361 -> k
    4:4:void rehashIfNecessary():345 -> k
    5:5:void rehashIfNecessary():345:345 -> k
    6:6:com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry[] createTable(int):361:361 -> k
    6:6:void rehashIfNecessary():346 -> k
    7:14:void rehashIfNecessary():346:353 -> k
    15:18:void rehashIfNecessary():352:355 -> k
    1:1:java.util.Set keySet():434:434 -> keySet
    1:1:java.lang.Object put(java.lang.Object,java.lang.Object):262:262 -> put
    1:8:java.lang.Object remove(java.lang.Object):367:374 -> remove
    1:1:void replaceAll(java.util.function.BiFunction):535:535 -> replaceAll
    2:7:void clear():380:385 -> replaceAll
    2:7:void replaceAll(java.util.function.BiFunction):536 -> replaceAll
    8:8:void replaceAll(java.util.function.BiFunction):538:538 -> replaceAll
    9:9:java.lang.Object put(java.lang.Object,java.lang.Object):262:262 -> replaceAll
    9:9:void replaceAll(java.util.function.BiFunction):538 -> replaceAll
    10:10:void replaceAll(java.util.function.BiFunction):537:537 -> replaceAll
    11:11:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> replaceAll
    11:11:void replaceAll(java.util.function.BiFunction):534 -> replaceAll
    1:1:int size():390:390 -> size
    1:1:com.android.tools.r8.com.google.common.collect.BiMap inverse():547:547 -> values
    1:1:java.util.Set values():469 -> values
    1:1:java.util.Collection values():57 -> values
    2:2:java.util.Set values():469:469 -> values
    2:2:java.util.Collection values():57 -> values
com.android.tools.r8.com.google.common.collect.HashBiMap$1 -> com.android.tools.r8.a.a.a.b.L:
    com.android.tools.r8.com.google.common.collect.HashBiMap this$0 -> e
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap):474:474 -> <init>
    1:1:java.util.Map$Entry output(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):477:477 -> a
    1:1:java.lang.Object output(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):474 -> a
com.android.tools.r8.com.google.common.collect.HashBiMap$1$MapEntry -> com.android.tools.r8.a.a.a.b.L$a:
    com.android.tools.r8.com.google.common.collect.HashBiMap$1 this$1 -> b
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry delegate -> a
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap$1,com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):483:484 -> <init>
    1:1:java.lang.Object getKey():489:489 -> getKey
    1:1:java.lang.Object getValue():494:494 -> getValue
    1:17:java.lang.Object setValue(java.lang.Object):499:515 -> setValue
com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry -> com.android.tools.r8.a.a.a.b.M:
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry nextInKToVBucket -> e
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry nextInVToKBucket -> f
    int valueHash -> d
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry nextInKeyInsertionOrder -> g
    int keyHash -> c
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry prevInKeyInsertionOrder -> h
    1:3:void <init>(java.lang.Object,int,java.lang.Object,int):99:101 -> <init>
com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse -> com.android.tools.r8.a.a.a.b.P$a:
    com.android.tools.r8.com.google.common.collect.HashBiMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap):550:550 -> <init>
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap,com.android.tools.r8.com.google.common.collect.HashBiMap$1):550 -> <init>
    1:1:java.lang.Object forcePut(java.lang.Object,java.lang.Object):584:584 -> a
    2:2:void lambda$forEach$0(java.util.function.BiConsumer,java.lang.Object,java.lang.Object):693:693 -> a
    1:1:com.android.tools.r8.com.google.common.collect.BiMap forward():553:553 -> clear
    1:1:void clear():563 -> clear
    2:2:void clear():563:563 -> clear
    1:1:com.android.tools.r8.com.google.common.collect.BiMap forward():553:553 -> containsKey
    1:1:boolean containsKey(java.lang.Object):568 -> containsKey
    2:2:boolean containsKey(java.lang.Object):568:568 -> containsKey
    1:1:void forEach(java.util.function.BiConsumer):693:693 -> forEach
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    2:2:void forEach(java.util.function.BiConsumer):692 -> forEach
    1:1:com.android.tools.r8.com.google.common.collect.BiMap forward():553:553 -> g
    1:1:com.android.tools.r8.com.google.common.collect.BiMap inverse():602 -> g
    1:1:java.lang.Object get(java.lang.Object):573:573 -> get
    2:2:java.lang.Object com.android.tools.r8.com.google.common.collect.Maps.keyOrNull(java.util.Map$Entry):3891:3891 -> get
    2:2:java.lang.Object get(java.lang.Object):573 -> get
    1:1:java.util.Iterator entryIterator():645:645 -> h
    1:1:java.util.Set keySet():607:607 -> keySet
    1:1:java.lang.Object put(java.lang.Object,java.lang.Object):579:579 -> put
    1:8:java.lang.Object remove(java.lang.Object):589:596 -> remove
    1:1:void replaceAll(java.util.function.BiFunction):699:699 -> replaceAll
    2:2:com.android.tools.r8.com.google.common.collect.BiMap forward():553:553 -> replaceAll
    2:2:void clear():563 -> replaceAll
    2:2:void replaceAll(java.util.function.BiFunction):700 -> replaceAll
    3:3:void clear():563:563 -> replaceAll
    3:3:void replaceAll(java.util.function.BiFunction):700 -> replaceAll
    4:4:void replaceAll(java.util.function.BiFunction):702:702 -> replaceAll
    5:5:java.lang.Object put(java.lang.Object,java.lang.Object):579:579 -> replaceAll
    5:5:void replaceAll(java.util.function.BiFunction):702 -> replaceAll
    6:6:void replaceAll(java.util.function.BiFunction):701:701 -> replaceAll
    7:7:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> replaceAll
    7:7:void replaceAll(java.util.function.BiFunction):698 -> replaceAll
    1:1:int size():558:558 -> size
    1:1:com.android.tools.r8.com.google.common.collect.BiMap forward():553:553 -> values
    1:1:java.util.Set values():640 -> values
    1:1:java.util.Collection values():550 -> values
    2:2:java.util.Set values():640:640 -> values
    2:2:java.util.Collection values():550 -> values
com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse$1 -> com.android.tools.r8.a.a.a.b.N:
    com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse this$1 -> e
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse):645:645 -> <init>
    1:1:java.util.Map$Entry output(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):648:648 -> a
    1:1:java.lang.Object output(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):645 -> a
com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse$1$InverseEntry -> com.android.tools.r8.a.a.a.b.N$a:
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry delegate -> a
    com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse$1 this$2 -> b
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse$1,com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):654:655 -> <init>
    1:1:java.lang.Object getKey():660:660 -> getKey
    1:1:java.lang.Object getValue():665:665 -> getValue
    1:12:java.lang.Object setValue(java.lang.Object):670:681 -> setValue
com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse$InverseKeySet -> com.android.tools.r8.a.a.a.b.P$a$a:
    com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse this$1 -> b
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse):612:613 -> <init>
    1:1:java.util.Iterator iterator():629:629 -> iterator
    1:5:boolean remove(java.lang.Object):618:622 -> remove
com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse$InverseKeySet$1 -> com.android.tools.r8.a.a.a.b.O:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap$Inverse$InverseKeySet):629:629 -> <init>
    1:1:java.lang.Object output(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):632:632 -> a
com.android.tools.r8.com.google.common.collect.HashBiMap$Itr -> com.android.tools.r8.a.a.a.b.P$b:
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry next -> a
    com.android.tools.r8.com.google.common.collect.HashBiMap this$0 -> d
    com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry toRemove -> b
    int expectedModCount -> c
    1:4:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap):393:396 -> <init>
    java.lang.Object output(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry) -> a
    1:4:boolean hasNext():400:403 -> hasNext
    5:5:boolean hasNext():401:401 -> hasNext
    1:4:boolean hasNext():400:403 -> next
    1:4:java.lang.Object next():408 -> next
    5:8:java.lang.Object next():412:415 -> next
    9:9:java.lang.Object next():409:409 -> next
    10:10:boolean hasNext():401:401 -> next
    10:10:java.lang.Object next():408 -> next
    1:7:void remove():420:426 -> remove
    8:8:void remove():421:421 -> remove
com.android.tools.r8.com.google.common.collect.HashBiMap$KeySet -> com.android.tools.r8.a.a.a.b.P$c:
    com.android.tools.r8.com.google.common.collect.HashBiMap this$0 -> b
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap):439:440 -> <init>
    1:1:java.util.Iterator iterator():445:445 -> iterator
    1:7:boolean remove(java.lang.Object):455:461 -> remove
com.android.tools.r8.com.google.common.collect.HashBiMap$KeySet$1 -> com.android.tools.r8.a.a.a.b.Q:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.HashBiMap$KeySet):445:445 -> <init>
    1:1:java.lang.Object output(com.android.tools.r8.com.google.common.collect.HashBiMap$BiEntry):448:448 -> a
com.android.tools.r8.com.google.common.collect.HashMultiset -> com.android.tools.r8.a.a.a.b.S:
    1:1:void <init>():70:70 -> <init>
    1:1:int setCount(java.lang.Object,int):33:33 -> a
    2:6:boolean com.android.tools.r8.com.google.common.collect.Multisets.setCountImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.lang.Object,int,int):966:970 -> a
    2:6:boolean com.android.tools.r8.com.google.common.collect.AbstractMultiset.setCount(java.lang.Object,int,int):115 -> a
    2:6:boolean setCount(java.lang.Object,int,int):33 -> a
    1:1:boolean com.android.tools.r8.com.google.common.collect.AbstractMultiset.add(java.lang.Object):84:84 -> add
    1:1:boolean add(java.lang.Object):33 -> add
    1:4:boolean com.android.tools.r8.com.google.common.collect.Multisets.addAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):905:908 -> addAll
    1:4:boolean com.android.tools.r8.com.google.common.collect.AbstractMultiset.addAll(java.util.Collection):129 -> addAll
    1:4:boolean addAll(java.util.Collection):33 -> addAll
    5:5:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.Multisets.cast(java.lang.Iterable):1148:1148 -> addAll
    5:5:boolean com.android.tools.r8.com.google.common.collect.Multisets.addAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):909 -> addAll
    5:5:boolean com.android.tools.r8.com.google.common.collect.AbstractMultiset.addAll(java.util.Collection):129 -> addAll
    5:5:boolean addAll(java.util.Collection):33 -> addAll
    6:10:boolean com.android.tools.r8.com.google.common.collect.Multisets.addAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):910:914 -> addAll
    6:10:boolean com.android.tools.r8.com.google.common.collect.AbstractMultiset.addAll(java.util.Collection):129 -> addAll
    6:10:boolean addAll(java.util.Collection):33 -> addAll
    1:1:int count(java.lang.Object):33:33 -> b
    2:2:int remove(java.lang.Object,int):33:33 -> b
    1:1:int add(java.lang.Object,int):33:33 -> c
    1:1:void clear():33:33 -> clear
    1:1:boolean com.android.tools.r8.com.google.common.collect.AbstractMultiset.contains(java.lang.Object):62:62 -> contains
    1:1:boolean contains(java.lang.Object):33 -> contains
    1:1:java.util.Set entrySet():33:33 -> entrySet
    1:1:boolean com.android.tools.r8.com.google.common.collect.AbstractMultiset.equals(java.lang.Object):226:226 -> equals
    1:1:boolean equals(java.lang.Object):33 -> equals
    1:1:java.util.Set elementSet():33:33 -> f
    1:1:com.android.tools.r8.com.google.common.collect.HashMultiset create():41:41 -> h
    1:1:int com.android.tools.r8.com.google.common.collect.AbstractMultiset.hashCode():237:237 -> hashCode
    1:1:int hashCode():33 -> hashCode
    1:1:boolean com.android.tools.r8.com.google.common.collect.AbstractMultiset.isEmpty():57:57 -> isEmpty
    1:1:boolean isEmpty():33 -> isEmpty
    1:1:java.util.Iterator com.android.tools.r8.com.google.common.collect.AbstractMapBasedMultiset.iterator():157:157 -> iterator
    1:1:java.util.Iterator iterator():33 -> iterator
    1:1:boolean com.android.tools.r8.com.google.common.collect.AbstractMultiset.remove(java.lang.Object):97:97 -> remove
    1:1:boolean remove(java.lang.Object):33 -> remove
    1:6:boolean com.android.tools.r8.com.google.common.collect.Multisets.removeAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):923:928 -> removeAll
    1:6:boolean com.android.tools.r8.com.google.common.collect.AbstractMultiset.removeAll(java.util.Collection):135 -> removeAll
    1:6:boolean removeAll(java.util.Collection):33 -> removeAll
    1:6:boolean com.android.tools.r8.com.google.common.collect.Multisets.retainAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):936:941 -> retainAll
    1:6:boolean com.android.tools.r8.com.google.common.collect.AbstractMultiset.retainAll(java.util.Collection):141 -> retainAll
    1:6:boolean retainAll(java.util.Collection):33 -> retainAll
    7:7:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> retainAll
    7:7:boolean com.android.tools.r8.com.google.common.collect.Multisets.retainAllImpl(com.android.tools.r8.com.google.common.collect.Multiset,java.util.Collection):935 -> retainAll
    7:7:boolean com.android.tools.r8.com.google.common.collect.AbstractMultiset.retainAll(java.util.Collection):141 -> retainAll
    7:7:boolean retainAll(java.util.Collection):33 -> retainAll
    1:1:int size():33:33 -> size
    1:1:java.lang.String com.android.tools.r8.com.google.common.collect.AbstractMultiset.toString():248:248 -> toString
    1:1:java.lang.String toString():33 -> toString
com.android.tools.r8.com.google.common.collect.ImmutableAsList -> com.android.tools.r8.a.a.a.b.T:
    1:1:void <init>():34:34 -> <init>
    1:1:boolean contains(java.lang.Object):41:41 -> contains
    1:1:boolean isPartialView():56:56 -> e
    1:1:boolean isEmpty():51:51 -> isEmpty
    com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection() -> j
    1:1:int size():46:46 -> size
com.android.tools.r8.com.google.common.collect.ImmutableBiMap -> com.android.tools.r8.a.a.a.b.V:
    1:1:void <init>():341:341 -> <init>
    1:1:java.lang.Object forcePut(java.lang.Object,java.lang.Object):376:376 -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableBiMap of(java.lang.Object,java.lang.Object):73:73 -> c
    com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse() -> g
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableBiMap$Builder builder():122:122 -> h
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createValues():363:363 -> k
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection createValues():36 -> k
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableBiMap of():66:66 -> p
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet values():358:358 -> values
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection values():36 -> values
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet values():358:358 -> values
    2:2:java.util.Collection values():36 -> values
com.android.tools.r8.com.google.common.collect.ImmutableBiMap$Builder -> com.android.tools.r8.a.a.a.b.U:
    1:1:void <init>():159:159 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap build():153:153 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder put(java.lang.Object,java.lang.Object):153:153 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableBiMap$Builder put(java.lang.Object,java.lang.Object):172:172 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableBiMap$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder):240:240 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder):153 -> a
    5:26:com.android.tools.r8.com.google.common.collect.ImmutableBiMap build():253:274 -> a
    27:27:com.android.tools.r8.com.google.common.base.Function com.android.tools.r8.com.google.common.collect.Maps.valueFunction():116:116 -> a
    27:27:com.android.tools.r8.com.google.common.collect.ImmutableBiMap build():274 -> a
    28:28:com.android.tools.r8.com.google.common.collect.ImmutableBiMap build():274:274 -> a
    29:36:com.android.tools.r8.com.google.common.collect.ImmutableBiMap build():270:277 -> a
    37:37:com.android.tools.r8.com.google.common.collect.ImmutableBiMap build():257:257 -> a
    38:38:com.android.tools.r8.com.google.common.collect.ImmutableBiMap build():255:255 -> a
com.android.tools.r8.com.google.common.collect.ImmutableBiMapFauxverideShim -> com.android.tools.r8.a.a.a.b.W:
    1:1:void <init>():32:32 -> <init>
com.android.tools.r8.com.google.common.collect.ImmutableCollection -> com.android.tools.r8.a.a.a.b.Z:
    java.lang.Object[] EMPTY_ARRAY -> a
    1:1:void <clinit>():181:181 -> <clinit>
    1:1:void <init>():168:168 -> <init>
    1:2:int copyIntoArray(java.lang.Object[],int):335:336 -> a
    1:1:boolean add(java.lang.Object):221:221 -> add
    1:1:boolean addAll(java.util.Collection):247:247 -> addAll
    1:7:com.android.tools.r8.com.google.common.collect.ImmutableList asList():311:317 -> c
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableList asList():315:315 -> c
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableList asList():313:313 -> c
    1:1:void clear():297:297 -> clear
    boolean isPartialView() -> e
    1:1:boolean remove(java.lang.Object):234:234 -> remove
    1:1:boolean removeAll(java.util.Collection):260:260 -> removeAll
    1:1:boolean removeIf(java.util.function.Predicate):273:273 -> removeIf
    1:1:boolean retainAll(java.util.Collection):285:285 -> retainAll
    1:1:java.util.Spliterator spliterator():178:178 -> spliterator
    1:6:java.lang.Object[] toArray():185:190 -> toArray
    7:8:java.lang.Object[] toArray(java.lang.Object[]):198:199 -> toArray
    9:14:java.lang.Object[] com.android.tools.r8.com.google.common.collect.Platform.newArray(java.lang.Object[],int):37:42 -> toArray
    9:14:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.newArray(java.lang.Object[],int):60 -> toArray
    9:14:java.lang.Object[] toArray(java.lang.Object[]):200 -> toArray
    15:18:java.lang.Object[] toArray(java.lang.Object[]):201:204 -> toArray
    19:19:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> toArray
    19:19:java.lang.Object[] toArray(java.lang.Object[]):197 -> toArray
com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder -> com.android.tools.r8.a.a.a.b.X:
    java.lang.Object[] contents -> a
    int size -> b
    1:4:void <init>(int):459:462 -> <init>
    1:1:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[]):219:219 -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder add(java.lang.Object[]):489 -> a
    2:4:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder add(java.lang.Object[]):490:492 -> a
    5:8:void ensureCapacity(int):470:473 -> a
    9:9:void ensureCapacity(int):472:472 -> a
    10:11:com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder add(java.lang.Object):481:482 -> a
    12:12:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    12:12:com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder add(java.lang.Object):480 -> a
    13:15:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder addAll(java.lang.Iterable):499:501 -> a
    16:17:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder.addAll(java.lang.Iterable):419:420 -> a
    16:17:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder addAll(java.lang.Iterable):503 -> a
    18:20:com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):510:512 -> a
    21:21:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    21:21:com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):509 -> a
com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder -> com.android.tools.r8.a.a.a.b.Y:
    1:1:void <init>():370:370 -> <init>
    com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder add(java.lang.Object) -> a
    1:1:int expandedCapacity(int,int):361:361 -> a
    2:2:int expandedCapacity(int,int):356:356 -> a
com.android.tools.r8.com.google.common.collect.ImmutableEntry -> com.android.tools.r8.a.a.a.b.aa:
    java.lang.Object value -> b
    java.lang.Object key -> a
    1:3:void <init>(java.lang.Object,java.lang.Object):31:33 -> <init>
    1:1:java.lang.Object getKey():39:39 -> getKey
    1:1:java.lang.Object getValue():45:45 -> getValue
    1:1:java.lang.Object setValue(java.lang.Object):50:50 -> setValue
com.android.tools.r8.com.google.common.collect.ImmutableEnumMap -> com.android.tools.r8.a.a.a.b.ba:
    java.util.EnumMap delegate -> e
    1:1:void com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.<init>():445:445 -> <init>
    1:1:void <init>(java.util.EnumMap):51 -> <init>
    2:3:void <init>(java.util.EnumMap):52:53 -> <init>
    1:8:com.android.tools.r8.com.google.common.collect.ImmutableMap asImmutable(java.util.EnumMap):38:45 -> a
    9:10:com.android.tools.r8.com.google.common.collect.ImmutableMap asImmutable(java.util.EnumMap):42:43 -> a
    11:11:com.android.tools.r8.com.google.common.collect.ImmutableMap com.android.tools.r8.com.google.common.collect.ImmutableMap.of(java.lang.Object,java.lang.Object):123:123 -> a
    11:11:com.android.tools.r8.com.google.common.collect.ImmutableMap asImmutable(java.util.EnumMap):43 -> a
    12:12:com.android.tools.r8.com.google.common.collect.ImmutableMap com.android.tools.r8.com.google.common.collect.ImmutableMap.of():113:113 -> a
    12:12:com.android.tools.r8.com.google.common.collect.ImmutableMap asImmutable(java.util.EnumMap):40 -> a
    1:1:boolean containsKey(java.lang.Object):73:73 -> containsKey
    1:1:java.util.Set com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.entrySet():445:445 -> entrySet
    1:1:java.util.Set com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.entrySet():0 -> entrySet
    1:4:boolean equals(java.lang.Object):86:89 -> equals
    1:1:void forEach(java.util.function.BiConsumer):103:103 -> forEach
    1:1:java.lang.Object get(java.lang.Object):78:78 -> get
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.createEntrySet():474:474 -> i
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.createEntrySet():0 -> i
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.createKeySet():457:457 -> j
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.createKeySet():0 -> j
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.createValues():479:479 -> k
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.createValues():0 -> k
    1:1:java.util.Set com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.keySet():445:445 -> keySet
    1:1:java.util.Set com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.keySet():0 -> keySet
    boolean isPartialView() -> m
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator keyIterator():58:58 -> n
    1:1:java.util.Spliterator keySpliterator():63:63 -> o
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator entryIterator():94:94 -> q
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Maps.unmodifiableEntryIterator(java.util.Iterator):1462:1462 -> q
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator entryIterator():94 -> q
    1:1:int size():68:68 -> size
    1:1:java.util.Collection com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.values():445:445 -> values
    1:1:java.util.Collection com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap.values():0 -> values
com.android.tools.r8.com.google.common.collect.ImmutableEnumSet -> com.android.tools.r8.a.a.a.b.ca:
    java.util.EnumSet delegate -> c
    int hashCode -> d
    1:2:void <init>(java.util.EnumSet):58:59 -> <init>
    1:7:com.android.tools.r8.com.google.common.collect.ImmutableSet asImmutable(java.util.EnumSet):38:44 -> a
    8:8:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.getOnlyElement(java.lang.Iterable):266:266 -> a
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableSet asImmutable(java.util.EnumSet):42 -> a
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableSet asImmutable(java.util.EnumSet):42:42 -> a
    10:10:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableSet.of():74:74 -> a
    10:10:com.android.tools.r8.com.google.common.collect.ImmutableSet asImmutable(java.util.EnumSet):40 -> a
    1:1:boolean contains(java.lang.Object):89:89 -> contains
    1:4:boolean containsAll(java.util.Collection):94:97 -> containsAll
    boolean isPartialView() -> e
    1:4:boolean equals(java.lang.Object):110:113 -> equals
    1:1:void forEach(java.util.function.Consumer):79:79 -> forEach
    1:2:int hashCode():126:127 -> hashCode
    boolean isHashCodeFast() -> i
    1:1:boolean isEmpty():102:102 -> isEmpty
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():69:69 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():69:69 -> iterator
    2:2:java.util.Iterator iterator():33 -> iterator
    1:1:int size():84:84 -> size
    1:1:java.util.Spliterator spliterator():74:74 -> spliterator
    1:1:java.lang.String toString():132:132 -> toString
com.android.tools.r8.com.google.common.collect.ImmutableList -> com.android.tools.r8.a.a.a.b.ga:
    1:1:void <init>():377:377 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object):93:93 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object):102:102 -> a
    3:3:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[]):219:219 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableList construct(java.lang.Object[]):347 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object):102 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableList construct(java.lang.Object[]):347:347 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object):102 -> a
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object):111:111 -> a
    6:6:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[]):219:219 -> a
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableList construct(java.lang.Object[]):347 -> a
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object):111 -> a
    7:7:com.android.tools.r8.com.google.common.collect.ImmutableList construct(java.lang.Object[]):347:347 -> a
    7:7:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object):111 -> a
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):129:129 -> a
    9:9:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[]):219:219 -> a
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableList construct(java.lang.Object[]):347 -> a
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):129 -> a
    10:10:com.android.tools.r8.com.google.common.collect.ImmutableList construct(java.lang.Object[]):347:347 -> a
    10:10:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):129 -> a
    11:11:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):138:138 -> a
    12:12:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[]):219:219 -> a
    12:12:com.android.tools.r8.com.google.common.collect.ImmutableList construct(java.lang.Object[]):347 -> a
    12:12:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):138 -> a
    13:13:com.android.tools.r8.com.google.common.collect.ImmutableList construct(java.lang.Object[]):347:347 -> a
    13:13:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):138 -> a
    14:14:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):147:147 -> a
    15:15:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[]):219:219 -> a
    15:15:com.android.tools.r8.com.google.common.collect.ImmutableList construct(java.lang.Object[]):347 -> a
    15:15:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):147 -> a
    16:16:com.android.tools.r8.com.google.common.collect.ImmutableList construct(java.lang.Object[]):347:347 -> a
    16:16:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):147 -> a
    17:17:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):156:156 -> a
    18:18:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[]):219:219 -> a
    18:18:com.android.tools.r8.com.google.common.collect.ImmutableList construct(java.lang.Object[]):347 -> a
    18:18:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):156 -> a
    19:19:com.android.tools.r8.com.google.common.collect.ImmutableList construct(java.lang.Object[]):347:347 -> a
    19:19:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):156 -> a
    20:20:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):175:175 -> a
    21:21:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[]):219:219 -> a
    21:21:com.android.tools.r8.com.google.common.collect.ImmutableList construct(java.lang.Object[]):347 -> a
    21:21:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):175 -> a
    22:22:com.android.tools.r8.com.google.common.collect.ImmutableList construct(java.lang.Object[]):347:347 -> a
    22:22:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):175 -> a
    23:36:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object[]):200:213 -> a
    37:37:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[]):219:219 -> a
    37:37:com.android.tools.r8.com.google.common.collect.ImmutableList construct(java.lang.Object[]):347 -> a
    37:37:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object[]):214 -> a
    38:38:com.android.tools.r8.com.google.common.collect.ImmutableList construct(java.lang.Object[]):347:347 -> a
    38:38:com.android.tools.r8.com.google.common.collect.ImmutableList of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object[]):214 -> a
    39:44:com.android.tools.r8.com.google.common.collect.ImmutableList copyOf(java.util.Collection):252:257 -> a
    45:47:com.android.tools.r8.com.google.common.collect.ImmutableList sortedCopyOf(java.util.Comparator,java.lang.Iterable):337:339 -> a
    48:48:com.android.tools.r8.com.google.common.collect.ImmutableList asImmutableList(java.lang.Object[]):356:356 -> a
    48:48:com.android.tools.r8.com.google.common.collect.ImmutableList sortedCopyOf(java.util.Comparator,java.lang.Iterable):340 -> a
    49:49:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    49:49:com.android.tools.r8.com.google.common.collect.ImmutableList sortedCopyOf(java.util.Comparator,java.lang.Iterable):335 -> a
    50:50:com.android.tools.r8.com.google.common.collect.ImmutableList asImmutableList(java.lang.Object[]):356:356 -> a
    51:53:int copyIntoArray(java.lang.Object[],int):582:584 -> a
    1:1:void add(int,java.lang.Object):524:524 -> add
    1:1:boolean addAll(int,java.util.Collection):499:499 -> addAll
    1:1:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[]):219:219 -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList construct(java.lang.Object[]):347 -> b
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList construct(java.lang.Object[]):347:347 -> b
    3:6:com.android.tools.r8.com.google.common.collect.ImmutableList asImmutableList(java.lang.Object[],int):370:373 -> b
    7:7:com.android.tools.r8.com.google.common.collect.ImmutableList asImmutableList(java.lang.Object[],int):368:368 -> b
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableList of():81:81 -> b
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableList asImmutableList(java.lang.Object[],int):366 -> b
    com.android.tools.r8.com.google.common.collect.ImmutableList asList() -> c
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList subListUnchecked(int,int):454:454 -> c
    1:1:boolean contains(java.lang.Object):422:422 -> contains
    1:18:boolean com.android.tools.r8.com.google.common.collect.Lists.equalsImpl(java.util.List,java.lang.Object):1017:1034 -> equals
    1:18:boolean equals(java.lang.Object):663 -> equals
    19:29:boolean com.android.tools.r8.com.google.common.collect.Iterators.elementsEqual(java.util.Iterator,java.util.Iterator):274:284 -> equals
    19:29:boolean com.android.tools.r8.com.google.common.collect.Lists.equalsImpl(java.util.List,java.lang.Object):1034 -> equals
    19:29:boolean equals(java.lang.Object):663 -> equals
    1:3:void forEach(java.util.function.Consumer):404:406 -> forEach
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    4:4:void forEach(java.util.function.Consumer):403 -> forEach
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder builder():711:711 -> g
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList of():81:81 -> h
    1:3:int hashCode():669:671 -> hashCode
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList reverse():598:598 -> i
    1:10:int com.android.tools.r8.com.google.common.collect.Lists.indexOfRandomAccess(java.util.List,java.lang.Object):1069:1078 -> indexOf
    1:10:int com.android.tools.r8.com.google.common.collect.Lists.indexOfImpl(java.util.List,java.lang.Object):1056 -> indexOf
    1:10:int indexOf(java.lang.Object):412 -> indexOf
    1:1:java.util.Iterator iterator():57:57 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():383:383 -> iterator
    1:2:int com.android.tools.r8.com.google.common.collect.Lists.lastIndexOfRandomAccess(java.util.List,java.lang.Object):1111:1112 -> lastIndexOf
    1:2:int com.android.tools.r8.com.google.common.collect.Lists.lastIndexOfImpl(java.util.List,java.lang.Object):1091 -> lastIndexOf
    1:2:int lastIndexOf(java.lang.Object):417 -> lastIndexOf
    1:1:java.util.ListIterator listIterator():57:57 -> listIterator
    2:2:java.util.ListIterator listIterator(int):57:57 -> listIterator
    3:3:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator():388:388 -> listIterator
    4:4:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator(int):393:393 -> listIterator
    1:1:java.lang.Object remove(int):537:537 -> remove
    1:1:void replaceAll(java.util.function.UnaryOperator):549:549 -> replaceAll
    1:1:java.lang.Object set(int,java.lang.Object):512:512 -> set
    1:1:void sort(java.util.Comparator):561:561 -> sort
    1:1:java.util.Spliterator spliterator():576:576 -> spliterator
    2:2:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.indexed(int,int,java.util.function.IntFunction):40:40 -> spliterator
    2:2:java.util.Spliterator spliterator():576 -> spliterator
    1:1:java.util.List subList(int,int):57:57 -> subList
    2:4:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):435:437 -> subList
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableList of():81:81 -> subList
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):440 -> subList
    6:8:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):442:444 -> subList
com.android.tools.r8.com.google.common.collect.ImmutableList$1 -> com.android.tools.r8.a.a.a.b.da:
    com.android.tools.r8.com.google.common.collect.ImmutableList this$0 -> c
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,int,int):393:393 -> <init>
    1:1:java.lang.Object get(int):396:396 -> a
com.android.tools.r8.com.google.common.collect.ImmutableList$Builder -> com.android.tools.r8.a.a.a.b.ea:
    1:1:void <init>(int):744:744 -> <init>
    1:1:void <init>():739 -> <init>
    2:2:void <init>(int):744:744 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder add(java.lang.Object):757:757 -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder add(java.lang.Object):733 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder add(java.lang.Object):757:757 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder addAll(java.lang.Iterable):772:772 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableList$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):809:809 -> a
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableList build():819:819 -> a
com.android.tools.r8.com.google.common.collect.ImmutableList$ReverseImmutableList -> com.android.tools.r8.a.a.a.b.fa:
    com.android.tools.r8.com.google.common.collect.ImmutableList forwardList -> b
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList):604:605 -> <init>
    1:1:boolean contains(java.lang.Object):623:623 -> contains
    1:1:int reverseIndex(int):609:609 -> d
    1:1:int reversePosition(int):613:613 -> e
    2:2:boolean isPartialView():657:657 -> e
    1:2:java.lang.Object get(int):646:647 -> get
    3:3:int reverseIndex(int):609:609 -> get
    3:3:java.lang.Object get(int):647 -> get
    4:4:java.lang.Object get(int):647:647 -> get
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList reverse():618:618 -> i
    1:2:int indexOf(java.lang.Object):628:629 -> indexOf
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.ImmutableList.iterator():383:383 -> iterator
    1:1:java.util.Iterator iterator():601 -> iterator
    1:2:int lastIndexOf(java.lang.Object):634:635 -> lastIndexOf
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.ImmutableList.listIterator(int):393:393 -> listIterator
    1:1:java.util.ListIterator listIterator(int):601 -> listIterator
    2:2:java.util.ListIterator listIterator():601:601 -> listIterator
    1:1:int size():652:652 -> size
    1:2:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):640:641 -> subList
    3:3:int reversePosition(int):613:613 -> subList
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):641 -> subList
    4:4:int reversePosition(int):613:613 -> subList
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):641 -> subList
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):641:641 -> subList
    6:7:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):640:641 -> subList
    6:7:java.util.List subList(int,int):601 -> subList
com.android.tools.r8.com.google.common.collect.ImmutableList$SubList -> com.android.tools.r8.a.a.a.b.ga$a:
    int offset -> b
    int length -> c
    com.android.tools.r8.com.google.common.collect.ImmutableList this$0 -> d
    1:3:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,int,int):461:463 -> <init>
    boolean isPartialView() -> e
    1:2:java.lang.Object get(int):473:474 -> get
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.ImmutableList.iterator():383:383 -> iterator
    1:1:java.util.Iterator iterator():457 -> iterator
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator com.android.tools.r8.com.google.common.collect.ImmutableList.listIterator(int):393:393 -> listIterator
    1:1:java.util.ListIterator listIterator(int):457 -> listIterator
    2:2:java.util.ListIterator listIterator():457:457 -> listIterator
    1:1:int size():468:468 -> size
    1:2:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):479:480 -> subList
    3:4:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):479:480 -> subList
    3:4:java.util.List subList(int,int):457 -> subList
com.android.tools.r8.com.google.common.collect.ImmutableListMultimap -> com.android.tools.r8.a.a.a.b.ia:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMap,int):391:391 -> <init>
    1:2:com.android.tools.r8.com.google.common.collect.ImmutableList get(java.lang.Object):405:406 -> get
    1:2:java.util.Collection get(java.lang.Object):52 -> get
com.android.tools.r8.com.google.common.collect.ImmutableListMultimap$Builder -> com.android.tools.r8.a.a.a.b.ha:
    1:1:void <init>():237:237 -> <init>
    1:2:com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.put(java.lang.Object,java.lang.Object):168:169 -> a
    1:2:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap$Builder put(java.lang.Object,java.lang.Object):242 -> a
    3:15:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():278:290 -> a
    3:15:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
    16:16:com.android.tools.r8.com.google.common.collect.ImmutableList com.android.tools.r8.com.google.common.collect.Ordering.immutableSortedCopy(java.lang.Iterable):876:876 -> a
    16:16:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():290 -> a
    16:16:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
    17:22:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():291:296 -> a
    17:22:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
    23:26:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):313:316 -> a
    23:26:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():296 -> a
    23:26:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
    27:27:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap com.android.tools.r8.com.google.common.collect.ImmutableListMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):346:346 -> a
    27:27:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):320 -> a
    27:27:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():296 -> a
    27:27:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
    28:28:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap com.android.tools.r8.com.google.common.collect.ImmutableListMultimap.of():144:144 -> a
    28:28:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap com.android.tools.r8.com.google.common.collect.ImmutableListMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):347 -> a
    28:28:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):320 -> a
    28:28:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():296 -> a
    28:28:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
    29:50:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap com.android.tools.r8.com.google.common.collect.ImmutableListMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):351:372 -> a
    29:50:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap.copyOf(com.android.tools.r8.com.google.common.collect.Multimap):320 -> a
    29:50:com.android.tools.r8.com.google.common.collect.ImmutableMultimap com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder.build():296 -> a
    29:50:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328 -> a
    51:51:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap build():328:328 -> a
com.android.tools.r8.com.google.common.collect.ImmutableMap -> com.android.tools.r8.a.a.a.b.ma:
    com.android.tools.r8.com.google.common.collect.ImmutableCollection values -> c
    java.util.Map$Entry[] EMPTY_ENTRY_ARRAY -> d
    com.android.tools.r8.com.google.common.collect.ImmutableSet keySet -> b
    com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet -> a
    1:1:void <clinit>():443:443 -> <clinit>
    1:1:void <init>():483:483 -> <init>
    1:1:java.util.stream.Collector toImmutableMap(java.util.function.Function,java.util.function.Function):80:80 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableMap of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):132:132 -> a
    3:3:void checkNoConflict(boolean,java.lang.String,java.util.Map$Entry,java.util.Map$Entry):190:190 -> a
    4:12:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):392:400 -> a
    13:17:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOfEnumMap(java.util.EnumMap):436:440 -> a
    13:17:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):400 -> a
    18:18:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403:403 -> a
    19:31:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):418:430 -> a
    19:31:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
    32:33:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):423:424 -> a
    32:33:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
    34:34:com.android.tools.r8.com.google.common.collect.ImmutableMap of(java.lang.Object,java.lang.Object):123:123 -> a
    34:34:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):424 -> a
    34:34:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
    35:35:com.android.tools.r8.com.google.common.collect.ImmutableMap of():113:113 -> a
    35:35:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.lang.Iterable):421 -> a
    35:35:com.android.tools.r8.com.google.common.collect.ImmutableMap copyOf(java.util.Map):403 -> a
    1:2:java.util.Map$Entry entryOf(java.lang.Object,java.lang.Object):175:176 -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap of(java.lang.Object,java.lang.Object):123:123 -> c
    1:1:void clear():642:642 -> clear
    1:1:java.lang.Object compute(java.lang.Object,java.util.function.BiFunction):569:569 -> compute
    1:1:java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function):544:544 -> computeIfAbsent
    1:1:java.lang.Object computeIfPresent(java.lang.Object,java.util.function.BiFunction):557:557 -> computeIfPresent
    1:1:boolean containsKey(java.lang.Object):652:652 -> containsKey
    1:1:boolean containsValue(java.lang.Object):657:657 -> containsValue
    1:1:java.util.Set entrySet():60:60 -> entrySet
    2:3:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():679:680 -> entrySet
    1:3:boolean com.android.tools.r8.com.google.common.collect.Maps.equalsImpl(java.util.Map,java.lang.Object):3804:3806 -> equals
    1:3:boolean equals(java.lang.Object):835 -> equals
    1:1:java.lang.Object getOrDefault(java.lang.Object,java.lang.Object):666:666 -> getOrDefault
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder builder():184:184 -> h
    1:1:int hashCode():842:842 -> hashCode
    com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet() -> i
    1:1:boolean isEmpty():647:647 -> isEmpty
    com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet() -> j
    com.android.tools.r8.com.google.common.collect.ImmutableCollection createValues() -> k
    1:1:java.util.Set keySet():60:60 -> keySet
    2:3:com.android.tools.r8.com.google.common.collect.ImmutableSet keySet():694:695 -> keySet
    boolean isHashCodeFast() -> l
    boolean isPartialView() -> m
    1:1:java.lang.Object merge(java.lang.Object,java.lang.Object,java.util.function.BiFunction):582:582 -> merge
    1:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator keyIterator():706:707 -> n
    1:1:java.util.Spliterator keySpliterator():721:721 -> o
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap of():113:113 -> p
    1:1:java.lang.Object put(java.lang.Object,java.lang.Object):495:495 -> put
    1:1:void putAll(java.util.Map):594:594 -> putAll
    1:1:java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object):508:508 -> putIfAbsent
    1:1:java.lang.Object remove(java.lang.Object):618:618 -> remove
    2:2:boolean remove(java.lang.Object,java.lang.Object):630:630 -> remove
    1:1:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):520:520 -> replace
    2:2:java.lang.Object replace(java.lang.Object,java.lang.Object):532:532 -> replace
    1:1:void replaceAll(java.util.function.BiFunction):606:606 -> replaceAll
    1:1:java.lang.String com.android.tools.r8.com.google.common.collect.Maps.toStringImpl(java.util.Map):3815:3815 -> toString
    1:1:java.lang.String toString():851 -> toString
    2:3:java.lang.StringBuilder com.android.tools.r8.com.google.common.collect.Collections2.newStringBuilderForCollection(int):369:370 -> toString
    2:3:java.lang.String com.android.tools.r8.com.google.common.collect.Maps.toStringImpl(java.util.Map):3815 -> toString
    2:3:java.lang.String toString():851 -> toString
    4:13:java.lang.String com.android.tools.r8.com.google.common.collect.Maps.toStringImpl(java.util.Map):3815:3824 -> toString
    4:13:java.lang.String toString():851 -> toString
    1:1:java.util.Collection values():60:60 -> values
    2:3:com.android.tools.r8.com.google.common.collect.ImmutableCollection values():733:734 -> values
com.android.tools.r8.com.google.common.collect.ImmutableMap$1 -> com.android.tools.r8.a.a.a.b.ja:
    com.android.tools.r8.com.google.common.collect.UnmodifiableIterator val$entryIterator -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMap,com.android.tools.r8.com.google.common.collect.UnmodifiableIterator):707:707 -> <init>
    1:1:boolean hasNext():710:710 -> hasNext
    1:1:java.lang.Object next():715:715 -> next
com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder -> com.android.tools.r8.a.a.a.b.ka:
    java.util.Map$Entry[] entries -> b
    int size -> c
    java.util.Comparator valueComparator -> a
    boolean entriesUsed -> d
    1:1:void <init>():234:234 -> <init>
    2:5:void <init>(int):238:241 -> <init>
    1:4:void ensureCapacity(int):245:248 -> a
    5:7:void ensureCapacity(int):247:249 -> a
    8:11:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder put(java.lang.Object,java.lang.Object):259:262 -> a
    12:14:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder):330:332 -> a
    15:15:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    15:15:com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder):329 -> a
    16:24:com.android.tools.r8.com.google.common.collect.ImmutableMap build():356:364 -> a
    25:25:com.android.tools.r8.com.google.common.base.Function com.android.tools.r8.com.google.common.collect.Maps.valueFunction():116:116 -> a
    25:25:com.android.tools.r8.com.google.common.collect.ImmutableMap build():364 -> a
    26:26:com.android.tools.r8.com.google.common.collect.ImmutableMap build():364:364 -> a
    27:40:com.android.tools.r8.com.google.common.collect.ImmutableMap build():360:373 -> a
    41:41:com.android.tools.r8.com.google.common.collect.ImmutableMap build():371:371 -> a
    42:42:com.android.tools.r8.com.google.common.collect.ImmutableMap build():369:369 -> a
com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap$1EntrySetImpl -> com.android.tools.r8.a.a.a.b.la:
    com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap this$0 -> c
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMap$IteratorBasedImmutableMap):463:463 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():471:471 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():471:471 -> iterator
    2:2:java.util.Iterator iterator():462 -> iterator
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap map():466:466 -> l
com.android.tools.r8.com.google.common.collect.ImmutableMapEntry -> com.android.tools.r8.a.a.a.b.pa:
    1:2:void <init>(java.lang.Object,java.lang.Object):48:49 -> <init>
    com.android.tools.r8.com.google.common.collect.ImmutableMapEntry getNextInKeyBucket() -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] createEntryArray(int):44:44 -> a
    com.android.tools.r8.com.google.common.collect.ImmutableMapEntry getNextInValueBucket() -> b
    boolean isReusable() -> d
com.android.tools.r8.com.google.common.collect.ImmutableMapEntry$NonTerminalImmutableBiMapEntry -> com.android.tools.r8.a.a.a.b.na:
    com.android.tools.r8.com.google.common.collect.ImmutableMapEntry nextInValueBucket -> d
    1:2:void <init>(java.lang.Object,java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):104:105 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMapEntry getNextInValueBucket():111:111 -> b
com.android.tools.r8.com.google.common.collect.ImmutableMapEntry$NonTerminalImmutableMapEntry -> com.android.tools.r8.a.a.a.b.oa:
    com.android.tools.r8.com.google.common.collect.ImmutableMapEntry nextInKeyBucket -> c
    1:2:void <init>(java.lang.Object,java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):79:80 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMapEntry getNextInKeyBucket():86:86 -> a
    boolean isReusable() -> d
com.android.tools.r8.com.google.common.collect.ImmutableMapEntrySet -> com.android.tools.r8.a.a.a.b.ra:
    1:1:void <init>():77:77 -> <init>
    1:4:boolean contains(java.lang.Object):88:91 -> contains
    1:1:boolean isPartialView():98:98 -> e
    1:1:int hashCode():109:109 -> hashCode
    1:1:boolean isHashCodeFast():104:104 -> i
    com.android.tools.r8.com.google.common.collect.ImmutableMap map() -> l
    1:1:int size():83:83 -> size
com.android.tools.r8.com.google.common.collect.ImmutableMapEntrySet$RegularEntrySet -> com.android.tools.r8.a.a.a.b.qa:
    com.android.tools.r8.com.google.common.collect.ImmutableMap map -> c
    java.util.Map$Entry[] entries -> d
    1:3:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMap,java.util.Map$Entry[]):43:45 -> <init>
    1:2:void forEach(java.util.function.Consumer):66:67 -> forEach
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    3:3:void forEach(java.util.function.Consumer):65 -> forEach
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():73:73 -> h
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():55:55 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.forArray(java.lang.Object[]):1054:1054 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():55 -> iterator
    3:3:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():55:55 -> iterator
    3:3:java.util.Iterator iterator():39 -> iterator
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap map():50:50 -> l
    1:1:java.util.Spliterator spliterator():60:60 -> spliterator
com.android.tools.r8.com.google.common.collect.ImmutableMapKeySet -> com.android.tools.r8.a.a.a.b.sa:
    com.android.tools.r8.com.google.common.collect.ImmutableMap map -> c
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMap):39:40 -> <init>
    1:1:void lambda$forEach$0(java.util.function.Consumer,java.lang.Object,java.lang.Object):71:71 -> a
    1:1:boolean contains(java.lang.Object):60:60 -> contains
    boolean isPartialView() -> e
    1:1:void forEach(java.util.function.Consumer):71:71 -> forEach
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    2:2:void forEach(java.util.function.Consumer):70 -> forEach
    1:1:java.lang.Object get(int):65:65 -> get
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():50:50 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():50:50 -> iterator
    2:2:java.util.Iterator iterator():35 -> iterator
    1:1:int size():45:45 -> size
    1:1:java.util.Spliterator spliterator():55:55 -> spliterator
com.android.tools.r8.com.google.common.collect.ImmutableMapValues -> com.android.tools.r8.a.a.a.b.va:
    com.android.tools.r8.com.google.common.collect.ImmutableMap map -> b
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMap):40:41 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap access$000(com.android.tools.r8.com.google.common.collect.ImmutableMapValues):37:37 -> a
    2:2:void lambda$forEach$0(java.util.function.Consumer,java.lang.Object,java.lang.Object):100:100 -> a
    1:2:com.android.tools.r8.com.google.common.collect.ImmutableList asList():82:83 -> c
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():51:51 -> contains
    1:1:boolean contains(java.lang.Object):72 -> contains
    2:3:boolean com.android.tools.r8.com.google.common.collect.Iterators.contains(java.util.Iterator,java.lang.Object):186:187 -> contains
    2:3:boolean contains(java.lang.Object):72 -> contains
    boolean isPartialView() -> e
    1:1:void forEach(java.util.function.Consumer):100:100 -> forEach
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    2:2:void forEach(java.util.function.Consumer):99 -> forEach
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():51:51 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():51:51 -> iterator
    2:2:java.util.Iterator iterator():36 -> iterator
    1:1:int size():46:46 -> size
    1:1:java.util.Spliterator spliterator():67:67 -> spliterator
com.android.tools.r8.com.google.common.collect.ImmutableMapValues$1 -> com.android.tools.r8.a.a.a.b.ta:
    com.android.tools.r8.com.google.common.collect.UnmodifiableIterator entryItr -> a
    com.android.tools.r8.com.google.common.collect.ImmutableMapValues this$0 -> b
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMapValues):51:52 -> <init>
    1:1:boolean hasNext():56:56 -> hasNext
    1:1:java.lang.Object next():61:61 -> next
com.android.tools.r8.com.google.common.collect.ImmutableMapValues$2 -> com.android.tools.r8.a.a.a.b.ua:
    com.android.tools.r8.com.google.common.collect.ImmutableMapValues this$0 -> c
    com.android.tools.r8.com.google.common.collect.ImmutableList val$entryList -> b
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMapValues,com.android.tools.r8.com.google.common.collect.ImmutableList):83:83 -> <init>
    1:1:java.lang.Object get(int):86:86 -> get
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection():91:91 -> j
com.android.tools.r8.com.google.common.collect.ImmutableMultimap -> com.android.tools.r8.a.a.a.b.za:
    com.android.tools.r8.com.google.common.collect.ImmutableMap map -> e
    int size -> f
    1:3:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMap,int):354:356 -> <init>
    1:1:boolean containsEntry(java.lang.Object,java.lang.Object):67:67 -> a
    2:2:boolean putAll(java.lang.Object,java.lang.Iterable):440:440 -> a
    3:3:java.util.Map createAsMap():520:520 -> a
    4:7:java.util.Spliterator lambda$entrySpliterator$1(java.util.Map$Entry):608:611 -> a
    8:8:java.util.Spliterator lambda$entrySpliterator$1(java.util.Map$Entry):610:610 -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap asMap():515:515 -> asMap
    1:1:java.util.Map asMap():67 -> asMap
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection createEntries():533:533 -> b
    1:1:java.util.Collection createEntries():67 -> b
    2:2:java.util.Map$Entry lambda$null$0(java.lang.Object,java.lang.Object):611:611 -> b
    1:1:void clear():396:396 -> clear
    1:1:boolean containsKey(java.lang.Object):483:483 -> containsKey
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMultiset createKeys():637:637 -> d
    1:1:com.android.tools.r8.com.google.common.collect.Multiset createKeys():67 -> d
    1:1:java.util.Iterator entryIterator():67:67 -> e
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator entryIterator():595:595 -> e
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection entries():528:528 -> entries
    1:1:java.util.Collection entries():67 -> entries
    1:1:boolean equals(java.lang.Object):67:67 -> equals
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap asMap():515:515 -> f
    1:1:java.util.Spliterator entrySpliterator():606 -> f
    2:2:java.util.Spliterator entrySpliterator():606:606 -> f
    3:3:int size():493:493 -> f
    3:3:java.util.Spliterator entrySpliterator():614 -> f
    4:4:java.util.Spliterator entrySpliterator():605:605 -> f
    1:1:boolean isPartialView():476:476 -> g
    1:1:int com.android.tools.r8.com.google.common.collect.AbstractMultimap.hashCode():263:263 -> hashCode
    1:1:int hashCode():67 -> hashCode
    1:1:boolean com.android.tools.r8.com.google.common.collect.AbstractMultimap.isEmpty():43:43 -> isEmpty
    1:1:boolean isEmpty():67 -> isEmpty
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet keySet():504:504 -> keySet
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet keySet():504:504 -> keySet
    2:2:java.util.Set keySet():67 -> keySet
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMultiset keys():632:632 -> keys
    1:1:com.android.tools.r8.com.google.common.collect.Multiset keys():67 -> keys
    1:1:boolean put(java.lang.Object,java.lang.Object):427:427 -> put
    1:1:boolean remove(java.lang.Object,java.lang.Object):466:466 -> remove
    1:1:int size():493:493 -> size
    1:1:java.lang.String com.android.tools.r8.com.google.common.collect.AbstractMultimap.toString():274:274 -> toString
    1:1:java.lang.String toString():67 -> toString
com.android.tools.r8.com.google.common.collect.ImmutableMultimap$1 -> com.android.tools.r8.a.a.a.b.wa:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultimap):595:595 -> <init>
com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Builder -> com.android.tools.r8.a.a.a.b.xa:
    java.util.Comparator valueComparator -> c
    java.util.Comparator keyComparator -> b
    com.android.tools.r8.com.google.common.collect.Multimap builderMultimap -> a
    1:2:com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys com.android.tools.r8.com.google.common.collect.MultimapBuilder.linkedHashKeys(int):126:127 -> <init>
    1:2:com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys com.android.tools.r8.com.google.common.collect.MultimapBuilder.linkedHashKeys():113 -> <init>
    1:2:void <init>():156 -> <init>
    3:3:com.android.tools.r8.com.google.common.collect.MultimapBuilder$ListMultimapBuilder com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys.arrayListValues(int):300:300 -> <init>
    3:3:com.android.tools.r8.com.google.common.collect.MultimapBuilder$ListMultimapBuilder com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys.arrayListValues():290 -> <init>
    3:3:void <init>():156 -> <init>
    4:4:java.util.Map com.android.tools.r8.com.google.common.collect.MultimapBuilder$2.createMap():130:130 -> <init>
    4:4:com.android.tools.r8.com.google.common.collect.ListMultimap com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys$1.build():305 -> <init>
    4:4:void <init>():156 -> <init>
    5:5:com.android.tools.r8.com.google.common.collect.ListMultimap com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys$1.build():305:305 -> <init>
    5:5:void <init>():156 -> <init>
    6:6:com.android.tools.r8.com.google.common.collect.ListMultimap com.android.tools.r8.com.google.common.collect.Multimaps.newListMultimap(java.util.Map,com.android.tools.r8.com.google.common.base.Supplier):294:294 -> <init>
    6:6:com.android.tools.r8.com.google.common.collect.ListMultimap com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys$1.build():304 -> <init>
    6:6:void <init>():156 -> <init>
    7:8:void <init>(com.android.tools.r8.com.google.common.collect.Multimap):159:160 -> <init>
    7:8:void <init>():156 -> <init>
com.android.tools.r8.com.google.common.collect.ImmutableMultimap$EntryCollection -> com.android.tools.r8.a.a.a.b.ya:
    com.android.tools.r8.com.google.common.collect.ImmutableMultimap multimap -> b
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultimap):539:540 -> <init>
    1:3:boolean contains(java.lang.Object):560:562 -> contains
    1:1:boolean isPartialView():550:550 -> e
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():545:545 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():545:545 -> iterator
    2:2:java.util.Iterator iterator():536 -> iterator
    1:1:int size():555:555 -> size
    2:2:int com.android.tools.r8.com.google.common.collect.ImmutableMultimap.size():493:493 -> size
    2:2:int size():555 -> size
com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Itr -> com.android.tools.r8.a.a.a.b.za$a:
    java.util.Iterator valueIterator -> c
    java.util.Iterator mapIterator -> a
    java.lang.Object key -> b
    com.android.tools.r8.com.google.common.collect.ImmutableMultimap this$0 -> d
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultimap):570:571 -> <init>
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultimap,com.android.tools.r8.com.google.common.collect.ImmutableMultimap$1):570 -> <init>
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableMap com.android.tools.r8.com.google.common.collect.ImmutableMultimap.asMap():515:515 -> <init>
    3:3:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultimap):571 -> <init>
    3:3:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultimap,com.android.tools.r8.com.google.common.collect.ImmutableMultimap$1):570 -> <init>
    4:6:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultimap):571:573 -> <init>
    4:6:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultimap,com.android.tools.r8.com.google.common.collect.ImmutableMultimap$1):570 -> <init>
    1:1:boolean hasNext():579:579 -> hasNext
    1:6:java.lang.Object next():584:589 -> next
    7:7:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.ImmutableMultimap$1.output(java.lang.Object,java.lang.Object):598:598 -> next
    7:7:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableMultimap$1.output(java.lang.Object,java.lang.Object):595 -> next
    7:7:java.lang.Object next():589 -> next
com.android.tools.r8.com.google.common.collect.ImmutableMultimap$Keys -> com.android.tools.r8.a.a.a.b.za$b:
    com.android.tools.r8.com.google.common.collect.ImmutableMultimap this$0 -> d
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultimap):642:642 -> <init>
    1:2:int count(java.lang.Object):650:651 -> b
    1:1:boolean contains(java.lang.Object):645:645 -> contains
    2:2:boolean com.android.tools.r8.com.google.common.collect.ImmutableMultimap.containsKey(java.lang.Object):483:483 -> contains
    2:2:boolean contains(java.lang.Object):645 -> contains
    1:2:com.android.tools.r8.com.google.common.collect.Multiset$Entry getEntry(int):666:667 -> d
    3:3:com.android.tools.r8.com.google.common.collect.Multiset$Entry com.android.tools.r8.com.google.common.collect.Multisets.immutableEntry(java.lang.Object,int):251:251 -> d
    3:3:com.android.tools.r8.com.google.common.collect.Multiset$Entry getEntry(int):667 -> d
    boolean isPartialView() -> e
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():656:656 -> f
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet com.android.tools.r8.com.google.common.collect.ImmutableMultimap.keySet():504:504 -> f
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():656 -> f
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():656:656 -> f
    3:3:java.util.Set elementSet():640 -> f
    1:1:int size():661:661 -> size
    2:2:int com.android.tools.r8.com.google.common.collect.ImmutableMultimap.size():493:493 -> size
    2:2:int size():661 -> size
com.android.tools.r8.com.google.common.collect.ImmutableMultiset -> com.android.tools.r8.a.a.a.b.Ba:
    com.android.tools.r8.com.google.common.collect.ImmutableList asList -> b
    com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet -> c
    1:1:void <init>():235:235 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMultiset copyFromEntries(java.util.Collection):216:216 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableMultiset of():101:101 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableMultiset copyFromEntries(java.util.Collection):217 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableMultiset copyFromEntries(java.util.Collection):219:219 -> a
    4:4:int setCount(java.lang.Object,int):312:312 -> a
    5:5:boolean setCount(java.lang.Object,int,int):325:325 -> a
    6:8:int copyIntoArray(java.lang.Object[],int):331:333 -> a
    1:1:int remove(java.lang.Object,int):299:299 -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList asList():267:267 -> c
    2:8:com.android.tools.r8.com.google.common.collect.ImmutableList com.android.tools.r8.com.google.common.collect.ImmutableCollection.asList():311:317 -> c
    2:8:com.android.tools.r8.com.google.common.collect.ImmutableList asList():268 -> c
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableList com.android.tools.r8.com.google.common.collect.ImmutableCollection.asList():315:315 -> c
    9:9:com.android.tools.r8.com.google.common.collect.ImmutableList asList():268 -> c
    10:10:com.android.tools.r8.com.google.common.collect.ImmutableList com.android.tools.r8.com.google.common.collect.ImmutableCollection.asList():313:313 -> c
    10:10:com.android.tools.r8.com.google.common.collect.ImmutableList asList():268 -> c
    11:11:com.android.tools.r8.com.google.common.collect.ImmutableList asList():268:268 -> c
    12:12:int add(java.lang.Object,int):286:286 -> c
    1:1:boolean contains(java.lang.Object):273:273 -> contains
    com.android.tools.r8.com.google.common.collect.Multiset$Entry getEntry(int) -> d
    1:1:java.util.Set entrySet():53:53 -> entrySet
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():362:362 -> entrySet
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():367:367 -> entrySet
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():363 -> entrySet
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSet entrySet():363:363 -> entrySet
    1:1:boolean equals(java.lang.Object):340:340 -> equals
    com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet() -> f
    1:1:int hashCode():345:345 -> hashCode
    1:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():239:240 -> iterator
    3:4:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():239:240 -> iterator
    3:4:java.util.Iterator iterator():53 -> iterator
    1:1:java.lang.String toString():350:350 -> toString
com.android.tools.r8.com.google.common.collect.ImmutableMultiset$1 -> com.android.tools.r8.a.a.a.b.Aa:
    java.util.Iterator val$entryIterator -> c
    java.lang.Object element -> b
    int remaining -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultiset,java.util.Iterator):240:240 -> <init>
    1:1:boolean hasNext():246:246 -> hasNext
    1:7:java.lang.Object next():251:257 -> next
com.android.tools.r8.com.google.common.collect.ImmutableMultiset$EntrySet -> com.android.tools.r8.a.a.a.b.Ba$a:
    com.android.tools.r8.com.google.common.collect.ImmutableMultiset this$0 -> c
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultiset):373:373 -> <init>
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMultiset,com.android.tools.r8.com.google.common.collect.ImmutableMultiset$1):373 -> <init>
    1:7:boolean contains(java.lang.Object):391:397 -> contains
    1:1:boolean isPartialView():376:376 -> e
    1:1:com.android.tools.r8.com.google.common.collect.Multiset$Entry get(int):381:381 -> get
    1:1:java.lang.Object get(int):372 -> get
    1:1:int hashCode():404:404 -> hashCode
    1:1:int size():386:386 -> size
com.android.tools.r8.com.google.common.collect.ImmutableMultisetGwtSerializationDependencies -> com.android.tools.r8.a.a.a.b.Ca:
    1:1:void <init>():40:40 -> <init>
com.android.tools.r8.com.google.common.collect.ImmutableSet -> com.android.tools.r8.a.a.a.b.Ga:
    com.android.tools.r8.com.google.common.collect.ImmutableList asList -> b
    1:1:void <init>():332:332 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet access$000(int,java.lang.Object[]):51:51 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet of(java.lang.Object):83:83 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSet of(java.lang.Object,java.lang.Object):92:92 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSet of(java.lang.Object,java.lang.Object,java.lang.Object):101:101 -> a
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSet of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object):110:110 -> a
    6:14:com.android.tools.r8.com.google.common.collect.ImmutableSet of(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object[]):132:140 -> a
    15:22:com.android.tools.r8.com.google.common.collect.ImmutableSet copyOf(java.util.Collection):259:266 -> a
    23:23:com.android.tools.r8.com.google.common.collect.ImmutableSet copyOfEnumSet(java.util.EnumSet):329:329 -> a
    23:23:com.android.tools.r8.com.google.common.collect.ImmutableSet copyOf(java.util.Collection):266 -> a
    24:25:com.android.tools.r8.com.google.common.collect.ImmutableSet copyOf(java.util.Collection):268:269 -> a
    26:32:com.android.tools.r8.com.google.common.collect.ImmutableSet copyOf(java.lang.Object[]):317:323 -> a
    33:33:com.android.tools.r8.com.google.common.collect.ImmutableSet copyOf(java.lang.Object[]):321:321 -> a
    34:34:com.android.tools.r8.com.google.common.collect.ImmutableSet of():74:74 -> a
    34:34:com.android.tools.r8.com.google.common.collect.ImmutableSet copyOf(java.lang.Object[]):319 -> a
    1:36:com.android.tools.r8.com.google.common.collect.ImmutableSet construct(int,java.lang.Object[]):169:204 -> b
    37:38:com.android.tools.r8.com.google.common.collect.ImmutableSet construct(int,java.lang.Object[]):164:165 -> b
    39:39:com.android.tools.r8.com.google.common.collect.ImmutableSet of():74:74 -> b
    39:39:com.android.tools.r8.com.google.common.collect.ImmutableSet construct(int,java.lang.Object[]):161 -> b
    1:2:com.android.tools.r8.com.google.common.collect.ImmutableList asList():368:369 -> c
    1:9:int chooseTableSize(int):229:237 -> d
    1:7:boolean equals(java.lang.Object):343:349 -> equals
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder builder():445:445 -> g
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():373:373 -> h
    1:1:int hashCode():354:354 -> hashCode
    boolean isHashCodeFast() -> i
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet of():74:74 -> j
    1:1:java.util.stream.Collector toImmutableSet():65:65 -> k
com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder -> com.android.tools.r8.a.a.a.b.Da:
    1:1:void <init>(int):475:475 -> <init>
    1:1:void <init>():471 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder add(java.lang.Object):464:464 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder add(java.lang.Object):490:490 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder add(java.lang.Object[]):506:506 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder addAll(java.lang.Iterable):522:522 -> a
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):545:545 -> a
    6:9:com.android.tools.r8.com.google.common.collect.ImmutableSet build():555:558 -> a
com.android.tools.r8.com.google.common.collect.ImmutableSet$Indexed -> com.android.tools.r8.a.a.a.b.Fa:
    1:1:void <init>():376:376 -> <init>
    1:3:void forEach(java.util.function.Consumer):392:394 -> forEach
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    4:4:void forEach(java.util.function.Consumer):391 -> forEach
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():400:400 -> h
    1:1:java.util.Iterator iterator():376:376 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():381:381 -> iterator
    1:1:java.util.Spliterator spliterator():386:386 -> spliterator
    2:2:java.util.Spliterator com.android.tools.r8.com.google.common.collect.CollectSpliterators.indexed(int,int,java.util.function.IntFunction):40:40 -> spliterator
    2:2:java.util.Spliterator spliterator():386 -> spliterator
com.android.tools.r8.com.google.common.collect.ImmutableSet$Indexed$1 -> com.android.tools.r8.a.a.a.b.Ea:
    com.android.tools.r8.com.google.common.collect.ImmutableSet$Indexed this$0 -> b
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableSet$Indexed):400:400 -> <init>
    1:1:java.lang.Object get(int):403:403 -> get
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet$Indexed delegateCollection():408:408 -> j
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection():400 -> j
com.android.tools.r8.com.google.common.collect.ImmutableSortedAsList -> com.android.tools.r8.a.a.a.b.Ha:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableSortedSet,com.android.tools.r8.com.google.common.collect.ImmutableList):34:34 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList com.android.tools.r8.com.google.common.collect.ImmutableList.subListUnchecked(int,int):454:454 -> c
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList subListUnchecked(int,int):83 -> c
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList subListUnchecked(int,int):84:84 -> c
    3:3:java.util.Comparator comparator():44:44 -> c
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableList subListUnchecked(int,int):84 -> c
    4:4:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> c
    4:4:java.util.Comparator comparator():44 -> c
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableList subListUnchecked(int,int):84 -> c
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableList subListUnchecked(int,int):84:84 -> c
    1:1:java.util.Comparator comparator():44:44 -> comparator
    2:2:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> comparator
    2:2:java.util.Comparator comparator():44 -> comparator
    1:1:boolean contains(java.lang.Object):72:72 -> contains
    1:8:int indexOf(java.lang.Object):53:60 -> indexOf
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection():29:29 -> j
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet delegateCollection():39:39 -> j
    1:1:int lastIndexOf(java.lang.Object):66:66 -> lastIndexOf
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection():29:29 -> spliterator
    1:1:int com.android.tools.r8.com.google.common.collect.ImmutableAsList.size():46 -> spliterator
    1:1:java.util.Spliterator spliterator():90 -> spliterator
    2:2:int com.android.tools.r8.com.google.common.collect.ImmutableAsList.size():46:46 -> spliterator
    2:2:java.util.Spliterator spliterator():90 -> spliterator
    3:3:java.util.Spliterator spliterator():92:92 -> spliterator
    4:4:java.util.Comparator comparator():44:44 -> spliterator
    4:4:java.util.Spliterator spliterator():93 -> spliterator
    5:5:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> spliterator
    5:5:java.util.Comparator comparator():44 -> spliterator
    5:5:java.util.Spliterator spliterator():93 -> spliterator
    6:6:java.util.Spliterator spliterator():89:89 -> spliterator
com.android.tools.r8.com.google.common.collect.ImmutableSortedSet -> com.android.tools.r8.a.a.a.b.Ja:
    com.android.tools.r8.com.google.common.collect.ImmutableSortedSet descendingSet -> d
    java.util.Comparator comparator -> c
    1:2:void <init>(java.util.Comparator):564:565 -> <init>
    com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSetImpl(java.lang.Object,boolean) -> a
    1:4:com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet emptySet(java.util.Comparator):86:89 -> a
    5:16:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet copyOf(java.util.Comparator,java.lang.Iterable):311:322 -> a
    5:16:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet copyOf(java.util.Comparator,java.util.Collection):345 -> a
    17:17:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    17:17:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet copyOf(java.util.Comparator,java.lang.Iterable):310 -> a
    17:17:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet copyOf(java.util.Comparator,java.util.Collection):345 -> a
    18:18:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet construct(java.util.Comparator,int,java.lang.Object[]):390:390 -> a
    19:19:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.checkElementsNotNull(java.lang.Object[],int):225:225 -> a
    19:19:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet construct(java.util.Comparator,int,java.lang.Object[]):392 -> a
    20:31:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet construct(java.util.Comparator,int,java.lang.Object[]):393:404 -> a
    1:1:java.util.Comparator comparator():577:577 -> comparator
    1:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet descendingSet():762:765 -> descendingSet
    1:4:java.util.NavigableSet descendingSet():63 -> descendingSet
    1:1:java.util.NavigableSet headSet(java.lang.Object,boolean):63:63 -> headSet
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSet(java.lang.Object):596:596 -> headSet
    2:2:java.util.SortedSet headSet(java.lang.Object):63 -> headSet
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSet(java.lang.Object,boolean):605:605 -> headSet
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet.headSetImpl(java.lang.Object,boolean):236:236 -> headSet
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSet(java.lang.Object,boolean):605 -> headSet
    5:5:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> headSet
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSet(java.lang.Object,boolean):605 -> headSet
    com.android.tools.r8.com.google.common.collect.ImmutableSortedSet createDescendingSet() -> l
    1:1:java.lang.Object pollFirst():733:733 -> pollFirst
    1:1:java.lang.Object pollLast():748:748 -> pollLast
    1:1:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):63:63 -> subSet
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSet(java.lang.Object,java.lang.Object):623:623 -> subSet
    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):63 -> subSet
    3:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):635:636 -> subSet
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet.subSetImpl(java.lang.Object,boolean,java.lang.Object,boolean):251:251 -> subSet
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):636 -> subSet
    6:6:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> subSet
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):634 -> subSet
    7:7:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> subSet
    7:7:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):633 -> subSet
    1:1:java.util.NavigableSet tailSet(java.lang.Object,boolean):63:63 -> tailSet
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSet(java.lang.Object):652:652 -> tailSet
    2:2:java.util.SortedSet tailSet(java.lang.Object):63 -> tailSet
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSet(java.lang.Object,boolean):661:661 -> tailSet
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet.tailSetImpl(java.lang.Object,boolean):256:256 -> tailSet
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSet(java.lang.Object,boolean):661 -> tailSet
    5:5:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> tailSet
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSet(java.lang.Object,boolean):661 -> tailSet
com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder -> com.android.tools.r8.a.a.a.b.Ia:
    java.util.Comparator comparator -> c
    1:2:void <init>(java.util.Comparator):462:463 -> <init>
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    3:3:void <init>(java.util.Comparator):463 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder addAll(java.lang.Iterable):455:455 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet build():455:455 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder add(java.lang.Object):479:479 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableCollection$Builder add(java.lang.Object):455 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder add(java.lang.Object):479:479 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder add(java.lang.Object):455 -> a
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder add(java.lang.Object):479:479 -> a
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder add(java.lang.Object[]):494:494 -> a
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder add(java.lang.Object[]):455 -> a
    7:7:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder addAll(java.lang.Iterable):509:509 -> a
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):531:531 -> a
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder combine(com.android.tools.r8.com.google.common.collect.ImmutableCollection$ArrayBasedBuilder):455 -> a
    9:11:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet build():542:544 -> a
com.android.tools.r8.com.google.common.collect.ImmutableSortedSetFauxverideShim -> com.android.tools.r8.a.a.a.b.Ka:
    1:1:void <init>():39:39 -> <init>
com.android.tools.r8.com.google.common.collect.Iterables$4 -> com.android.tools.r8.a.a.a.b.La:
    com.android.tools.r8.com.google.common.base.Predicate val$retainIfTrue -> c
    java.lang.Iterable val$unfiltered -> b
    1:1:void <init>(java.lang.Iterable,com.android.tools.r8.com.google.common.base.Predicate):575:575 -> <init>
    1:2:void lambda$forEach$0(com.android.tools.r8.com.google.common.base.Predicate,java.util.function.Consumer,java.lang.Object):586:587 -> a
    1:1:void forEach(java.util.function.Consumer):584:584 -> forEach
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    2:2:void forEach(java.util.function.Consumer):583 -> forEach
    1:1:java.util.Iterator iterator():578:578 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.filter(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate):659:659 -> iterator
    2:2:java.util.Iterator iterator():578 -> iterator
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> iterator
    3:3:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.filter(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate):658 -> iterator
    3:3:java.util.Iterator iterator():578 -> iterator
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> iterator
    4:4:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.filter(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate):657 -> iterator
    4:4:java.util.Iterator iterator():578 -> iterator
    1:1:java.util.Spliterator spliterator():594:594 -> spliterator
com.android.tools.r8.com.google.common.collect.Iterators$1 -> com.android.tools.r8.a.a.a.b.Ma:
    java.util.Iterator val$iterator -> a
    1:1:void <init>(java.util.Iterator):137:137 -> <init>
    1:1:boolean hasNext():140:140 -> hasNext
    1:1:java.lang.Object next():145:145 -> next
com.android.tools.r8.com.google.common.collect.Iterators$2 -> com.android.tools.r8.a.a.a.b.Na:
    java.util.Iterator iterator -> a
    java.lang.Iterable val$iterable -> b
    1:1:void <init>(java.lang.Iterable):411:411 -> <init>
    2:2:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.emptyModifiableIterator():125:125 -> <init>
    2:2:void <init>(java.lang.Iterable):412 -> <init>
    3:3:void <init>(java.lang.Iterable):412:412 -> <init>
    1:1:boolean hasNext():425:425 -> hasNext
    1:7:java.lang.Object next():430:436 -> next
    1:1:void remove():441:441 -> remove
com.android.tools.r8.com.google.common.collect.Iterators$5 -> com.android.tools.r8.a.a.a.b.Oa:
    java.util.Iterator val$unfiltered -> c
    com.android.tools.r8.com.google.common.base.Predicate val$retainIfTrue -> d
    1:1:void <init>(java.util.Iterator,com.android.tools.r8.com.google.common.base.Predicate):659:659 -> <init>
    1:7:java.lang.Object computeNext():662:668 -> c
com.android.tools.r8.com.google.common.collect.Iterators$6 -> com.android.tools.r8.a.a.a.b.Pa:
    com.android.tools.r8.com.google.common.base.Function val$function -> b
    1:1:void <init>(java.util.Iterator,com.android.tools.r8.com.google.common.base.Function):817:817 -> <init>
    1:1:java.lang.Object transform(java.lang.Object):820:820 -> a
com.android.tools.r8.com.google.common.collect.Iterators$7 -> com.android.tools.r8.a.a.a.b.Qa:
    java.util.Iterator val$iterator -> c
    int val$limitSize -> b
    int count -> a
    1:1:void <init>(int,java.util.Iterator):952:952 -> <init>
    1:1:boolean hasNext():957:957 -> hasNext
    1:1:boolean hasNext():957:957 -> next
    1:1:java.lang.Object next():962 -> next
    2:3:java.lang.Object next():965:966 -> next
    4:4:java.lang.Object next():963:963 -> next
    1:1:void remove():971:971 -> remove
com.android.tools.r8.com.google.common.collect.Iterators$9 -> com.android.tools.r8.a.a.a.b.Ra:
    java.lang.Object val$value -> b
    boolean done -> a
    1:1:void <init>(java.lang.Object):1104:1104 -> <init>
    1:1:boolean hasNext():1109:1109 -> hasNext
    1:5:java.lang.Object next():1114:1118 -> next
    6:6:java.lang.Object next():1115:1115 -> next
com.android.tools.r8.com.google.common.collect.Iterators$ArrayItr -> com.android.tools.r8.a.a.a.b.Sa:
    com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator EMPTY -> e
    java.lang.Object[] array -> c
    int offset -> d
    1:1:void <clinit>():1058:1058 -> <clinit>
    1:3:void <init>(java.lang.Object[],int,int,int):1065:1067 -> <init>
    1:1:java.lang.Object get(int):1072:1072 -> a
com.android.tools.r8.com.google.common.collect.Iterators$ConcatenatedIterator -> com.android.tools.r8.a.a.a.b.Ta:
    java.util.Deque metaIterators -> d
    java.util.Iterator topMetaIterator -> c
    java.util.Iterator iterator -> b
    java.util.Iterator toRemove -> a
    1:3:void <init>(java.util.Iterator):1365:1367 -> <init>
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    4:4:void <init>(java.util.Iterator):1367 -> <init>
    1:1:boolean hasNext():1385:1385 -> hasNext
    2:9:java.util.Iterator getTopMetaIterator():1373:1380 -> hasNext
    2:9:boolean hasNext():1389 -> hasNext
    10:11:java.util.Iterator getTopMetaIterator():1374:1375 -> hasNext
    10:11:boolean hasNext():1389 -> hasNext
    12:38:boolean hasNext():1389:1415 -> hasNext
    1:1:boolean hasNext():1385:1385 -> next
    1:1:java.lang.Object next():1423 -> next
    2:9:java.util.Iterator getTopMetaIterator():1373:1380 -> next
    2:9:boolean hasNext():1389 -> next
    2:9:java.lang.Object next():1423 -> next
    10:11:java.util.Iterator getTopMetaIterator():1374:1375 -> next
    10:11:boolean hasNext():1389 -> next
    10:11:java.lang.Object next():1423 -> next
    12:38:boolean hasNext():1389:1415 -> next
    12:38:java.lang.Object next():1423 -> next
    39:42:java.lang.Object next():1424:1427 -> next
    1:3:void remove():1433:1435 -> remove
com.android.tools.r8.com.google.common.collect.Iterators$EmptyModifiableIterator -> com.android.tools.r8.a.a.a.b.Ua:
    com.android.tools.r8.com.google.common.collect.Iterators$EmptyModifiableIterator INSTANCE -> a
    1:1:void <clinit>():98:98 -> <clinit>
    2:2:void <clinit>():97:97 -> <clinit>
    1:1:void <init>(java.lang.String,int):97:97 -> <init>
    1:1:java.lang.Object next():107:107 -> next
    1:1:void remove():112:112 -> remove
com.android.tools.r8.com.google.common.collect.ListMultimap -> com.android.tools.r8.a.a.a.b.Va:
com.android.tools.r8.com.google.common.collect.Lists$RandomAccessReverseList -> com.android.tools.r8.a.a.a.b.Wa:
    1:1:void <init>(java.util.List):991:991 -> <init>
com.android.tools.r8.com.google.common.collect.Lists$ReverseList -> com.android.tools.r8.a.a.a.b.Ya:
    java.util.List forwardList -> a
    1:2:void <init>(java.util.List):854:855 -> <init>
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    3:3:void <init>(java.util.List):855 -> <init>
    1:2:int reversePosition(int):869:870 -> a
    1:2:int access$000(com.android.tools.r8.com.google.common.collect.Lists$ReverseList,int):851 -> a
    1:1:void add(int,java.lang.Object):876:876 -> add
    2:3:int reversePosition(int):869:870 -> add
    2:3:void add(int,java.lang.Object):876 -> add
    4:4:void add(int,java.lang.Object):876:876 -> add
    1:1:java.util.List getForwardList():859:859 -> c
    1:1:void clear():881:881 -> clear
    1:2:int reverseIndex(int):863:864 -> d
    1:1:java.lang.Object get(int):901:901 -> get
    1:1:java.util.Iterator iterator():917:917 -> iterator
    1:2:int reversePosition(int):869:870 -> listIterator
    1:2:java.util.ListIterator listIterator(int):922 -> listIterator
    3:4:java.util.ListIterator listIterator(int):923:924 -> listIterator
    1:1:java.lang.Object remove(int):886:886 -> remove
    1:2:java.util.List subList(int,int):911:912 -> removeRange
    1:2:void removeRange(int,int):891 -> removeRange
    3:4:int reversePosition(int):869:870 -> removeRange
    3:4:java.util.List subList(int,int):912 -> removeRange
    3:4:void removeRange(int,int):891 -> removeRange
    5:6:int reversePosition(int):869:870 -> removeRange
    5:6:java.util.List subList(int,int):912 -> removeRange
    5:6:void removeRange(int,int):891 -> removeRange
    7:7:java.util.List subList(int,int):912:912 -> removeRange
    7:7:void removeRange(int,int):891 -> removeRange
    8:8:void removeRange(int,int):891:891 -> removeRange
    1:1:java.lang.Object set(int,java.lang.Object):896:896 -> set
    1:1:int size():906:906 -> size
    1:2:java.util.List subList(int,int):911:912 -> subList
    3:4:int reversePosition(int):869:870 -> subList
    3:4:java.util.List subList(int,int):912 -> subList
    5:6:int reversePosition(int):869:870 -> subList
    5:6:java.util.List subList(int,int):912 -> subList
    7:7:java.util.List subList(int,int):912:912 -> subList
com.android.tools.r8.com.google.common.collect.Lists$ReverseList$1 -> com.android.tools.r8.a.a.a.b.Xa:
    com.android.tools.r8.com.google.common.collect.Lists$ReverseList this$0 -> c
    java.util.ListIterator val$forwardIterator -> b
    boolean canRemoveOrSet -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Lists$ReverseList,java.util.ListIterator):924:924 -> <init>
    1:3:void add(java.lang.Object):930:932 -> add
    1:1:boolean hasNext():937:937 -> hasNext
    1:1:boolean hasPrevious():942:942 -> hasPrevious
    1:1:boolean hasNext():937:937 -> next
    1:1:java.lang.Object next():947 -> next
    2:3:java.lang.Object next():950:951 -> next
    4:4:java.lang.Object next():948:948 -> next
    1:1:int nextIndex():956:956 -> nextIndex
    1:1:boolean hasPrevious():942:942 -> previous
    1:1:java.lang.Object previous():961 -> previous
    2:3:java.lang.Object previous():964:965 -> previous
    4:4:java.lang.Object previous():962:962 -> previous
    1:1:int nextIndex():956:956 -> previousIndex
    1:1:int previousIndex():970 -> previousIndex
    1:3:void remove():975:977 -> remove
    1:2:void set(java.lang.Object):982:983 -> set
com.android.tools.r8.com.google.common.collect.MapMaker -> com.android.tools.r8.a.a.a.b.Za:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength valueStrength -> e
    com.android.tools.r8.com.google.common.base.Equivalence keyEquivalence -> f
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength keyStrength -> d
    boolean useCustomMap -> a
    int initialCapacity -> b
    int concurrencyLevel -> c
    1:1:void <init>():108:108 -> <init>
    2:3:void <init>():96:97 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength getKeyStrength():217:217 -> a
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength getValueStrength():263:263 -> b
    1:2:java.util.concurrent.ConcurrentMap makeMap():278:279 -> c
    3:3:int getInitialCapacity():152:152 -> c
    3:3:java.util.concurrent.ConcurrentMap makeMap():279 -> c
    4:4:int getConcurrencyLevel():186:186 -> c
    4:4:java.util.concurrent.ConcurrentMap makeMap():279 -> c
    5:7:java.util.concurrent.ConcurrentMap makeMap():279:281 -> c
    1:1:com.android.tools.r8.com.google.common.collect.MapMaker weakValues():239:239 -> d
    2:6:com.android.tools.r8.com.google.common.collect.MapMaker setValueStrength(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength):253:257 -> d
    2:6:com.android.tools.r8.com.google.common.collect.MapMaker weakValues():239 -> d
    7:7:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> d
    7:7:com.android.tools.r8.com.google.common.collect.MapMaker setValueStrength(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength):254 -> d
    7:7:com.android.tools.r8.com.google.common.collect.MapMaker weakValues():239 -> d
    1:17:java.lang.String toString():290:306 -> toString
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap -> com.android.tools.r8.a.a.a.b.db:
    java.util.Set entrySet -> g
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntryHelper entryHelper -> f
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference UNSET_WEAK_VALUE_REFERENCE -> h
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment[] segments -> c
    int concurrencyLevel -> d
    com.android.tools.r8.com.google.common.base.Equivalence keyEquivalence -> e
    int segmentShift -> b
    int segmentMask -> a
    1:1:void <clinit>():1023:1023 -> <clinit>
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMaker,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntryHelper):160:160 -> <init>
    2:2:int com.android.tools.r8.com.google.common.collect.MapMaker.getConcurrencyLevel():186:186 -> <init>
    2:2:void <init>(com.android.tools.r8.com.google.common.collect.MapMaker,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntryHelper):161 -> <init>
    3:3:void <init>(com.android.tools.r8.com.google.common.collect.MapMaker,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntryHelper):161:161 -> <init>
    4:4:com.android.tools.r8.com.google.common.base.Equivalence com.android.tools.r8.com.google.common.collect.MapMaker.getKeyEquivalence():127:127 -> <init>
    4:4:void <init>(com.android.tools.r8.com.google.common.collect.MapMaker,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntryHelper):163 -> <init>
    5:6:void <init>(com.android.tools.r8.com.google.common.collect.MapMaker,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntryHelper):163:164 -> <init>
    7:7:int com.android.tools.r8.com.google.common.collect.MapMaker.getInitialCapacity():152:152 -> <init>
    7:7:void <init>(com.android.tools.r8.com.google.common.collect.MapMaker,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntryHelper):166 -> <init>
    8:19:void <init>(com.android.tools.r8.com.google.common.collect.MapMaker,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntryHelper):166:177 -> <init>
    20:20:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment[] newSegmentArray(int):1153:1153 -> <init>
    20:20:void <init>(com.android.tools.r8.com.google.common.collect.MapMaker,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntryHelper):179 -> <init>
    21:33:void <init>(com.android.tools.r8.com.google.common.collect.MapMaker,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntryHelper):179:191 -> <init>
    34:34:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment createSegment(int,int):1133:1133 -> <init>
    34:34:void <init>(com.android.tools.r8.com.google.common.collect.MapMaker,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntryHelper):192 -> <init>
    35:35:void <init>(com.android.tools.r8.com.google.common.collect.MapMaker,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntryHelper):192:192 -> <init>
    1:24:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap create(com.android.tools.r8.com.google.common.collect.MapMaker):199:222 -> a
    25:25:int hash(java.lang.Object):1097:1097 -> a
    26:28:void reclaimValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference):1102:1104 -> a
    29:56:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.reclaimValue(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference):1877:1904 -> a
    29:56:void reclaimValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference):1104 -> a
    57:77:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.reclaimValue(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference):1884:1904 -> a
    57:77:void reclaimValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference):1104 -> a
    78:81:java.lang.Object getLiveValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1141:1144 -> a
    82:83:java.util.ArrayList toArrayList(java.util.Collection):2861:2862 -> a
    82:83:java.util.ArrayList access$900(java.util.Collection):69 -> a
    1:2:void reclaimKey(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1108:1109 -> b
    3:23:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.reclaimKey(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,int):1850:1870 -> b
    3:23:void reclaimKey(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1109 -> b
    24:37:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.reclaimKey(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,int):1857:1870 -> b
    24:37:void reclaimKey(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1109 -> b
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment segmentFor(int):1129:1129 -> c
    1:1:void clear():2505:2505 -> clear
    2:15:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.clear():1801:1814 -> clear
    2:15:void clear():2506 -> clear
    1:2:boolean containsKey(java.lang.Object):2395:2396 -> containsKey
    1:11:boolean containsValue(java.lang.Object):2410:2420 -> containsValue
    12:18:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.getLiveValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1977:1983 -> containsValue
    12:18:boolean containsValue(java.lang.Object):2421 -> containsValue
    19:19:boolean containsValue(java.lang.Object):2422:2422 -> containsValue
    20:27:boolean containsValue(java.lang.Object):2420:2427 -> containsValue
    1:2:java.util.Set entrySet():2530:2531 -> entrySet
    1:2:java.lang.Object get(java.lang.Object):2374:2375 -> get
    1:1:com.android.tools.r8.com.google.common.base.Equivalence valueEquivalence():2322:2322 -> h
    1:14:boolean isEmpty():2337:2350 -> isEmpty
    1:2:java.util.Set keySet():2514:2515 -> keySet
    1:2:java.lang.Object put(java.lang.Object,java.lang.Object):2442:2443 -> put
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> put
    3:3:java.lang.Object put(java.lang.Object,java.lang.Object):2441 -> put
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> put
    4:4:java.lang.Object put(java.lang.Object,java.lang.Object):2440 -> put
    1:2:void putAll(java.util.Map):2457:2458 -> putAll
    1:2:java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object):2451:2452 -> putIfAbsent
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> putIfAbsent
    3:3:java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object):2450 -> putIfAbsent
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> putIfAbsent
    4:4:java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object):2449 -> putIfAbsent
    1:2:java.lang.Object remove(java.lang.Object):2468:2469 -> remove
    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int):1720:1720 -> remove
    3:3:java.lang.Object remove(java.lang.Object):2469 -> remove
    4:4:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.preWriteCleanup():2007:2007 -> remove
    4:4:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int):1722 -> remove
    4:4:java.lang.Object remove(java.lang.Object):2469 -> remove
    5:14:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int):1725:1734 -> remove
    5:14:java.lang.Object remove(java.lang.Object):2469 -> remove
    15:15:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.isCollected(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1968:1968 -> remove
    15:15:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int):1738 -> remove
    15:15:java.lang.Object remove(java.lang.Object):2469 -> remove
    16:27:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int):1744:1755 -> remove
    16:27:java.lang.Object remove(java.lang.Object):2469 -> remove
    28:54:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int):1729:1755 -> remove
    28:54:java.lang.Object remove(java.lang.Object):2469 -> remove
    55:56:boolean remove(java.lang.Object,java.lang.Object):2478:2479 -> remove
    57:57:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int,java.lang.Object):1760:1760 -> remove
    57:57:boolean remove(java.lang.Object,java.lang.Object):2479 -> remove
    58:58:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.preWriteCleanup():2007:2007 -> remove
    58:58:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int,java.lang.Object):1762 -> remove
    58:58:boolean remove(java.lang.Object,java.lang.Object):2479 -> remove
    59:71:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int,java.lang.Object):1765:1777 -> remove
    59:71:boolean remove(java.lang.Object,java.lang.Object):2479 -> remove
    72:72:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.isCollected(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1968:1968 -> remove
    72:72:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int,java.lang.Object):1779 -> remove
    72:72:boolean remove(java.lang.Object,java.lang.Object):2479 -> remove
    73:84:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int,java.lang.Object):1785:1796 -> remove
    73:84:boolean remove(java.lang.Object,java.lang.Object):2479 -> remove
    85:112:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.remove(java.lang.Object,int,java.lang.Object):1769:1796 -> remove
    85:112:boolean remove(java.lang.Object,java.lang.Object):2479 -> remove
    1:2:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2490:2491 -> replace
    3:3:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1631:1631 -> replace
    3:3:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
    4:4:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.preWriteCleanup():2007:2007 -> replace
    4:4:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1633 -> replace
    4:4:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
    5:16:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1635:1646 -> replace
    5:16:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
    17:17:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.isCollected(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1968:1968 -> replace
    17:17:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1648 -> replace
    17:17:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
    18:28:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1650:1660 -> replace
    18:28:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
    29:29:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):1254:1254 -> replace
    29:29:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1661 -> replace
    29:29:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
    30:30:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1673:1673 -> replace
    30:30:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
    31:65:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object,java.lang.Object):1639:1673 -> replace
    31:65:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2491 -> replace
    66:66:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> replace
    66:66:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2486 -> replace
    67:67:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> replace
    67:67:boolean replace(java.lang.Object,java.lang.Object,java.lang.Object):2485 -> replace
    68:69:java.lang.Object replace(java.lang.Object,java.lang.Object):2499:2500 -> replace
    70:70:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1678:1678 -> replace
    70:70:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
    71:71:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.preWriteCleanup():2007:2007 -> replace
    71:71:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1680 -> replace
    71:71:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
    72:83:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1682:1693 -> replace
    72:83:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
    84:84:boolean com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.isCollected(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1968:1968 -> replace
    84:84:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1695 -> replace
    84:84:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
    85:94:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1697:1706 -> replace
    85:94:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
    95:95:void com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):1254:1254 -> replace
    95:95:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1707 -> replace
    95:95:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
    96:96:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1714:1714 -> replace
    96:96:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
    97:125:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment.replace(java.lang.Object,int,java.lang.Object):1686:1714 -> replace
    97:125:java.lang.Object replace(java.lang.Object,java.lang.Object):2500 -> replace
    126:126:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> replace
    126:126:java.lang.Object replace(java.lang.Object,java.lang.Object):2498 -> replace
    127:127:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> replace
    127:127:java.lang.Object replace(java.lang.Object,java.lang.Object):2497 -> replace
    1:6:int size():2361:2366 -> size
    1:2:java.util.Collection values():2522:2523 -> values
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$1 -> com.android.tools.r8.a.a.a.b._a:
    1:1:void <init>():1024:1024 -> <init>
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry() -> a
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference copyFor(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1024:1024 -> a
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$AbstractStrongKeyEntry -> com.android.tools.r8.a.a.a.b.ab:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry next -> c
    java.lang.Object key -> a
    int hash -> b
    1:4:void <init>(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):360:363 -> <init>
    1:1:int getHash():373:373 -> a
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getNext():378:378 -> b
    1:1:java.lang.Object getKey():368:368 -> getKey
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$AbstractWeakKeyEntry -> com.android.tools.r8.a.a.a.b.bb:
    int hash -> a
    1:3:void <init>(java.lang.ref.ReferenceQueue,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):671:673 -> <init>
    1:1:int getHash():683:683 -> a
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getNext():688:688 -> b
    1:1:java.lang.Object getKey():678:678 -> getKey
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$DummyInternalEntry -> com.android.tools.r8.a.a.a.b.cb:
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$EntryIterator -> com.android.tools.r8.a.a.a.b.db$a:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap):2711:2711 -> <init>
    1:1:java.util.Map$Entry next():2715:2715 -> next
    1:1:java.lang.Object next():2711 -> next
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$EntrySet -> com.android.tools.r8.a.a.a.b.db$b:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap):2796:2796 -> <init>
    1:1:void clear():2840:2840 -> clear
    1:11:boolean contains(java.lang.Object):2805:2815 -> contains
    1:1:boolean isEmpty():2835:2835 -> isEmpty
    1:1:java.util.Iterator iterator():2800:2800 -> iterator
    1:6:boolean remove(java.lang.Object):2820:2825 -> remove
    1:1:int size():2830:2830 -> size
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$HashIterator -> com.android.tools.r8.a.a.a.b.db$c:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry nextEntry -> e
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment currentSegment -> c
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap this$0 -> h
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry nextExternal -> f
    java.util.concurrent.atomic.AtomicReferenceArray currentTable -> d
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry lastReturned -> g
    int nextTableIndex -> b
    int nextSegmentIndex -> a
    1:4:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap):2546:2549 -> <init>
    1:11:boolean advanceTo(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):2612:2622 -> a
    1:16:void advance():2556:2571 -> c
    1:6:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry nextEntry():2632:2637 -> d
    7:7:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry nextEntry():2633:2633 -> d
    1:3:boolean nextInChain():2582:2584 -> e
    4:4:boolean nextInChain():2583:2583 -> e
    1:3:boolean nextInTable():2596:2598 -> f
    1:1:boolean hasNext():2628:2628 -> hasNext
    1:2:void remove():2642:2643 -> remove
    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry.getKey():2679:2679 -> remove
    3:3:void remove():2643 -> remove
    4:5:void remove():2643:2644 -> remove
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry -> com.android.tools.r8.a.a.a.b.eb:
    int getHash() -> a
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getNext() -> b
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntryHelper -> com.android.tools.r8.a.a.a.b.fb:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry) -> a
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry) -> a
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int) -> a
    void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object) -> a
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength valueStrength() -> a
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$KeyIterator -> com.android.tools.r8.a.a.a.b.db$d:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap):2648:2648 -> <init>
    1:1:java.lang.Object next():2652:2652 -> next
    2:2:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry.getKey():2679:2679 -> next
    2:2:java.lang.Object next():2652 -> next
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$KeySet -> com.android.tools.r8.a.a.a.b.db$e:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap):2720:2720 -> <init>
    1:1:void clear():2749:2749 -> clear
    1:1:boolean contains(java.lang.Object):2739:2739 -> contains
    1:1:boolean isEmpty():2734:2734 -> isEmpty
    1:1:java.util.Iterator iterator():2724:2724 -> iterator
    1:1:boolean remove(java.lang.Object):2744:2744 -> remove
    1:1:int size():2729:2729 -> size
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$SafeToArraySet -> com.android.tools.r8.a.a.a.b.gb:
    1:1:void <init>():2844:2844 -> <init>
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$1):2844 -> <init>
    1:1:java.lang.Object[] toArray():2850:2850 -> toArray
    2:2:java.lang.Object[] toArray(java.lang.Object[]):2855:2855 -> toArray
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment -> com.android.tools.r8.a.a.a.b.hb:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap map -> a
    java.util.concurrent.atomic.AtomicInteger readCount -> g
    int maxSegmentSize -> f
    int threshold -> d
    java.util.concurrent.atomic.AtomicReferenceArray table -> e
    int count -> b
    int modCount -> c
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):1231:1231 -> <init>
    2:6:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):1229:1233 -> <init>
    7:7:java.util.concurrent.atomic.AtomicReferenceArray newEntryArray(int):1263:1263 -> <init>
    7:7:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):1234 -> <init>
    8:13:void initTable(java.util.concurrent.atomic.AtomicReferenceArray):1267:1272 -> <init>
    8:13:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):1234 -> <init>
    1:1:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):1254:1254 -> a
    2:2:void clearReferenceQueue(java.lang.ref.ReferenceQueue):1405:1405 -> a
    3:10:boolean containsKey(java.lang.Object,int):1462:1469 -> a
    11:11:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1503:1503 -> a
    12:12:void preWriteCleanup():2007:2007 -> a
    12:12:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1505 -> a
    13:34:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1507:1528 -> a
    35:35:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):1254:1254 -> a
    35:35:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1529 -> a
    36:61:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1530:1555 -> a
    62:62:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1540:1540 -> a
    63:63:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):1254:1254 -> a
    63:63:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1541 -> a
    64:64:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1555:1555 -> a
    65:102:java.lang.Object put(java.lang.Object,int,java.lang.Object,boolean):1518:1555 -> a
    103:119:void expand():1564:1580 -> a
    120:120:java.util.concurrent.atomic.AtomicReferenceArray newEntryArray(int):1263:1263 -> a
    120:120:void expand():1581 -> a
    121:142:void expand():1582:1603 -> a
    143:156:void expand():1602:1615 -> a
    157:157:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copyEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1259:1259 -> a
    157:157:void expand():1616 -> a
    158:158:void expand():1618:1618 -> a
    159:173:void expand():1613:1627 -> a
    174:175:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry removeFromChain(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1833:1834 -> a
    176:176:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copyEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1259:1259 -> a
    176:176:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry removeFromChain(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1836 -> a
    177:185:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry removeFromChain(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1835:1843 -> a
    186:186:boolean isCollected(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1968:1968 -> a
    void maybeClearReferenceQueues() -> b
    1:4:void drainKeyReferenceQueue(java.lang.ref.ReferenceQueue):1380:1383 -> b
    5:16:java.lang.Object get(java.lang.Object,int):1445:1456 -> b
    17:23:java.lang.Object get(java.lang.Object,int):1450:1456 -> b
    void maybeDrainReferenceQueues() -> c
    1:4:void drainValueReferenceQueue(java.lang.ref.ReferenceQueue):1394:1397 -> c
    5:5:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry(java.lang.Object,int):1418:1418 -> c
    5:5:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getLiveEntry(java.lang.Object,int):1440 -> c
    6:7:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getFirst(int):1411:1412 -> c
    6:7:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry(java.lang.Object,int):1419 -> c
    6:7:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getLiveEntry(java.lang.Object,int):1440 -> c
    8:18:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry(java.lang.Object,int):1420:1430 -> c
    8:18:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getLiveEntry(java.lang.Object,int):1440 -> c
    19:19:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry(java.lang.Object,int):1419:1419 -> c
    19:19:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getLiveEntry(java.lang.Object,int):1440 -> c
    1:1:void postReadCleanup():1996:1996 -> d
    2:2:void runCleanup():2011:2011 -> d
    2:2:void postReadCleanup():1997 -> d
    1:6:void runLockedCleanup():2015:2020 -> e
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment self() -> f
    1:5:void tryDrainReferenceQueues():1367:1371 -> g
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength -> com.android.tools.r8.a.a.a.b.kb:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength STRONG -> a
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength WEAK -> b
    1:8:void <clinit>():257:264 -> <clinit>
    9:9:void <clinit>():256:256 -> <clinit>
    1:1:void <init>(java.lang.String,int):256:256 -> <init>
    1:1:void <init>(java.lang.String,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$1):256 -> <init>
    com.android.tools.r8.com.google.common.base.Equivalence defaultEquivalence() -> a
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength$1 -> com.android.tools.r8.a.a.a.b.ib:
    1:1:void <init>(java.lang.String,int):257:257 -> <init>
    1:1:com.android.tools.r8.com.google.common.base.Equivalence defaultEquivalence():260:260 -> a
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength$2 -> com.android.tools.r8.a.a.a.b.jb:
    1:1:void <init>(java.lang.String,int):264:264 -> <init>
    1:1:com.android.tools.r8.com.google.common.base.Equivalence defaultEquivalence():267:267 -> a
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry -> com.android.tools.r8.a.a.a.b.mb:
    java.lang.Object value -> d
    1:1:void <init>(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry):411:411 -> <init>
    2:2:void <init>(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry):408:408 -> <init>
    1:1:void setValue(java.lang.Object):421:421 -> a
    2:4:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry):425:427 -> a
    1:1:java.lang.Object getValue():417:417 -> getValue
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry$Helper -> com.android.tools.r8.a.a.a.b.lb:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry$Helper INSTANCE -> a
    1:1:void <clinit>():435:435 -> <clinit>
    1:1:void <init>():432:432 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):432:432 -> a
    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry):467:467 -> a
    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):432 -> a
    3:3:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):432:432 -> a
    4:4:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueSegment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry):484:484 -> a
    4:4:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):432 -> a
    5:5:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):432:432 -> a
    6:6:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry,java.lang.Object):475:475 -> a
    6:6:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):432 -> a
    7:7:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength valueStrength():449:449 -> a
    8:8:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueSegment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):459:459 -> a
    8:8:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):432 -> a
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueEntry$Helper instance():439:439 -> b
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyStrongValueSegment -> com.android.tools.r8.a.a.a.b.nb:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):2035:2035 -> <init>
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment self() -> f
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry -> com.android.tools.r8.a.a.a.b.pb:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference valueReference -> d
    1:1:void <init>(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry):497:497 -> <init>
    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.unsetWeakValueReference():401:401 -> <init>
    2:2:void <init>(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry):494 -> <init>
    3:3:void <init>(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry):494:494 -> <init>
    1:5:void setValue(java.lang.Object,java.lang.ref.ReferenceQueue):511:515 -> a
    6:8:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry copy(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry):520:522 -> a
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference getValueReference():528:528 -> c
    1:1:java.lang.Object getValue():502:502 -> getValue
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry$Helper -> com.android.tools.r8.a.a.a.b.ob:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry$Helper INSTANCE -> a
    1:1:void <clinit>():535:535 -> <clinit>
    1:1:void <init>():532:532 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):532:532 -> a
    2:5:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry):566:569 -> a
    2:5:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):532 -> a
    6:6:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):532:532 -> a
    7:7:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueSegment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry):584:584 -> a
    7:7:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):532 -> a
    8:8:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):532:532 -> a
    9:9:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry,java.lang.Object):575:575 -> a
    9:9:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):532 -> a
    10:10:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength valueStrength():549:549 -> a
    11:11:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueSegment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):558:558 -> a
    11:11:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):532 -> a
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueEntry$Helper instance():539:539 -> b
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueSegment -> com.android.tools.r8.a.a.a.b.qb:
    java.lang.ref.ReferenceQueue queueForValues -> h
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):2060:2060 -> <init>
    2:2:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):2053:2053 -> <init>
    1:1:java.lang.ref.ReferenceQueue access$100(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongKeyWeakValueSegment):2051:2051 -> a
    1:1:void maybeClearReferenceQueues():2112:2112 -> b
    1:1:void maybeDrainReferenceQueues():2107:2107 -> c
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment self() -> f
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$StrongValueEntry -> com.android.tools.r8.a.a.a.b.rb:
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$ValueIterator -> com.android.tools.r8.a.a.a.b.db$f:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap):2656:2656 -> <init>
    1:1:java.lang.Object next():2660:2660 -> next
    2:2:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry.getValue():2684:2684 -> next
    2:2:java.lang.Object next():2660 -> next
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Values -> com.android.tools.r8.a.a.a.b.db$g:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap):2754:2754 -> <init>
    1:1:void clear():2778:2778 -> clear
    1:1:boolean contains(java.lang.Object):2773:2773 -> contains
    1:1:boolean isEmpty():2768:2768 -> isEmpty
    1:1:java.util.Iterator iterator():2758:2758 -> iterator
    1:1:int size():2763:2763 -> size
    1:1:java.lang.Object[] toArray():2786:2786 -> toArray
    2:2:java.lang.Object[] toArray(java.lang.Object[]):2791:2791 -> toArray
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry -> com.android.tools.r8.a.a.a.b.tb:
    java.lang.Object value -> b
    1:1:void <init>(java.lang.ref.ReferenceQueue,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):780:780 -> <init>
    2:2:void <init>(java.lang.ref.ReferenceQueue,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):776:776 -> <init>
    1:1:void setValue(java.lang.Object):790:790 -> a
    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry copy(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):795:795 -> a
    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$AbstractWeakKeyEntry.getKey():678:678 -> a
    3:3:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry copy(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):796 -> a
    4:5:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry copy(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):796:797 -> a
    1:1:java.lang.Object getValue():786:786 -> getValue
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry$Helper -> com.android.tools.r8.a.a.a.b.sb:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry$Helper INSTANCE -> a
    1:1:void <clinit>():805:805 -> <clinit>
    1:1:void <init>():802:802 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):802:802 -> a
    2:2:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$AbstractWeakKeyEntry.getKey():678:678 -> a
    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):836 -> a
    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):802 -> a
    3:3:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):840:840 -> a
    3:3:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):802 -> a
    4:4:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):802:802 -> a
    5:5:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueSegment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry):855:855 -> a
    5:5:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):802 -> a
    6:6:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):802:802 -> a
    7:7:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry,java.lang.Object):846:846 -> a
    7:7:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):802 -> a
    8:8:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength valueStrength():819:819 -> a
    9:9:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueSegment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):828:828 -> a
    9:9:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):802 -> a
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueEntry$Helper instance():809:809 -> b
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueSegment -> com.android.tools.r8.a.a.a.b.ub:
    java.lang.ref.ReferenceQueue queueForKeys -> h
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):2149:2149 -> <init>
    2:2:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):2142:2142 -> <init>
    1:1:java.lang.ref.ReferenceQueue access$300(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyStrongValueSegment):2140:2140 -> a
    1:1:void maybeClearReferenceQueues():2175:2175 -> b
    1:1:void maybeDrainReferenceQueues():2170:2170 -> c
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment self() -> f
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry -> com.android.tools.r8.a.a.a.b.wb:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference valueReference -> b
    1:1:void <init>(java.lang.ref.ReferenceQueue,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):869:869 -> <init>
    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference com.android.tools.r8.com.google.common.collect.MapMakerInternalMap.unsetWeakValueReference():401:401 -> <init>
    2:2:void <init>(java.lang.ref.ReferenceQueue,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):865 -> <init>
    3:3:void <init>(java.lang.ref.ReferenceQueue,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):865:865 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry copy(java.lang.ref.ReferenceQueue,java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):881:881 -> a
    2:2:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$AbstractWeakKeyEntry.getKey():678:678 -> a
    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry copy(java.lang.ref.ReferenceQueue,java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):882 -> a
    3:4:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry copy(java.lang.ref.ReferenceQueue,java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):882:883 -> a
    5:9:void setValue(java.lang.Object,java.lang.ref.ReferenceQueue):893:897 -> a
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference getValueReference():902:902 -> c
    1:1:java.lang.Object getValue():874:874 -> getValue
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry$Helper -> com.android.tools.r8.a.a.a.b.vb:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry$Helper INSTANCE -> a
    1:1:void <clinit>():909:909 -> <clinit>
    1:1:void <init>():906:906 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):906:906 -> a
    2:2:java.lang.Object com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$AbstractWeakKeyEntry.getKey():678:678 -> a
    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):939 -> a
    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):906 -> a
    3:6:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):943:946 -> a
    3:6:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry copy(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):906 -> a
    7:7:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):906:906 -> a
    8:8:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry):961:961 -> a
    8:8:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry newEntry(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,java.lang.Object,int,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):906 -> a
    9:9:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):906:906 -> a
    10:10:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry,java.lang.Object):952:952 -> a
    10:10:void setValue(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry,java.lang.Object):906 -> a
    11:11:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Strength valueStrength():923:923 -> a
    12:12:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):931:931 -> a
    12:12:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment newSegment(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):906 -> a
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueEntry$Helper instance():913:913 -> b
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment -> com.android.tools.r8.a.a.a.b.xb:
    java.lang.ref.ReferenceQueue queueForKeys -> h
    java.lang.ref.ReferenceQueue queueForValues -> i
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):2189:2189 -> <init>
    2:3:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,int,int):2182:2183 -> <init>
    1:1:java.lang.ref.ReferenceQueue access$400(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment):2180:2180 -> a
    1:1:java.lang.ref.ReferenceQueue access$500(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakKeyWeakValueSegment):2180:2180 -> b
    2:2:void maybeClearReferenceQueues():2247:2247 -> b
    1:2:void maybeDrainReferenceQueues():2241:2242 -> c
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$Segment self() -> f
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueEntry -> com.android.tools.r8.a.a.a.b.yb:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference getValueReference() -> c
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference -> com.android.tools.r8.a.a.a.b.zb:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference copyFor(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry) -> a
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry() -> a
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReferenceImpl -> com.android.tools.r8.a.a.a.b.Ab:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry entry -> a
    1:2:void <init>(java.lang.ref.ReferenceQueue,java.lang.Object,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1051:1052 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry getEntry():1057:1057 -> a
    2:2:com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WeakValueReference copyFor(java.lang.ref.ReferenceQueue,com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$InternalEntry):1062:1062 -> a
com.android.tools.r8.com.google.common.collect.MapMakerInternalMap$WriteThroughEntry -> com.android.tools.r8.a.a.a.b.db$h:
    com.android.tools.r8.com.google.common.collect.MapMakerInternalMap this$0 -> c
    java.lang.Object value -> b
    java.lang.Object key -> a
    1:3:void <init>(com.android.tools.r8.com.google.common.collect.MapMakerInternalMap,java.lang.Object,java.lang.Object):2672:2674 -> <init>
    1:3:boolean equals(java.lang.Object):2690:2692 -> equals
    1:1:java.lang.Object getKey():2679:2679 -> getKey
    1:1:java.lang.Object getValue():2684:2684 -> getValue
    1:1:int hashCode():2700:2700 -> hashCode
    1:2:java.lang.Object setValue(java.lang.Object):2705:2706 -> setValue
com.android.tools.r8.com.google.common.collect.Maps$1 -> com.android.tools.r8.a.a.a.b.Bb:
    com.android.tools.r8.com.google.common.base.Function val$function -> b
    1:1:void <init>(java.util.Iterator,com.android.tools.r8.com.google.common.base.Function):993:993 -> <init>
    1:1:java.util.Map$Entry transform(java.lang.Object):996:996 -> a
    1:1:java.lang.Object transform(java.lang.Object):993 -> a
com.android.tools.r8.com.google.common.collect.Maps$5 -> com.android.tools.r8.a.a.a.b.Cb:
    java.util.Map$Entry val$entry -> a
    1:1:void <init>(java.util.Map$Entry):1447:1447 -> <init>
    1:1:java.lang.Object getKey():1450:1450 -> getKey
    1:1:java.lang.Object getValue():1455:1455 -> getValue
com.android.tools.r8.com.google.common.collect.Maps$6 -> com.android.tools.r8.a.a.a.b.Db:
    java.util.Iterator val$entryIterator -> a
    1:1:void <init>(java.util.Iterator):1462:1462 -> <init>
    1:1:boolean hasNext():1465:1465 -> hasNext
    1:1:java.util.Map$Entry next():1470:1470 -> next
    1:1:java.lang.Object next():1462 -> next
    2:2:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.unmodifiableEntry(java.util.Map$Entry):1447:1447 -> next
    2:2:java.util.Map$Entry next():1470 -> next
    2:2:java.lang.Object next():1462 -> next
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> next
    3:3:java.util.Map$Entry com.android.tools.r8.com.google.common.collect.Maps.unmodifiableEntry(java.util.Map$Entry):1446 -> next
    3:3:java.util.Map$Entry next():1470 -> next
    3:3:java.lang.Object next():1462 -> next
com.android.tools.r8.com.google.common.collect.Maps$EntryFunction -> com.android.tools.r8.a.a.a.b.Gb:
    com.android.tools.r8.com.google.common.collect.Maps$EntryFunction VALUE -> b
    com.android.tools.r8.com.google.common.collect.Maps$EntryFunction KEY -> a
    1:8:void <clinit>():93:100 -> <clinit>
    9:9:void <clinit>():92:92 -> <clinit>
    1:1:void <init>(java.lang.String,int):92:92 -> <init>
    1:1:void <init>(java.lang.String,int,com.android.tools.r8.com.google.common.collect.Maps$1):92 -> <init>
com.android.tools.r8.com.google.common.collect.Maps$EntryFunction$1 -> com.android.tools.r8.a.a.a.b.Eb:
    1:1:void <init>(java.lang.String,int):93:93 -> <init>
    1:1:java.lang.Object apply(java.lang.Object):93:93 -> apply
    2:2:java.lang.Object apply(java.util.Map$Entry):97:97 -> apply
    2:2:java.lang.Object apply(java.lang.Object):93 -> apply
com.android.tools.r8.com.google.common.collect.Maps$EntryFunction$2 -> com.android.tools.r8.a.a.a.b.Fb:
    1:1:void <init>(java.lang.String,int):100:100 -> <init>
    1:1:java.lang.Object apply(java.lang.Object):100:100 -> apply
    2:2:java.lang.Object apply(java.util.Map$Entry):104:104 -> apply
    2:2:java.lang.Object apply(java.lang.Object):100 -> apply
com.android.tools.r8.com.google.common.collect.Maps$EntrySet -> com.android.tools.r8.a.a.a.b.Hb:
    1:1:void <init>():4112:4112 -> <init>
    java.util.Map map() -> c
    1:1:void clear():4122:4122 -> clear
    1:5:boolean contains(java.lang.Object):4127:4131 -> contains
    1:1:boolean isEmpty():4138:4138 -> isEmpty
    1:3:boolean remove(java.lang.Object):4143:4145 -> remove
    1:1:boolean com.android.tools.r8.com.google.common.collect.Sets$ImprovedAbstractSet.removeAll(java.util.Collection):80:80 -> removeAll
    1:1:boolean removeAll(java.util.Collection):4153 -> removeAll
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> removeAll
    2:2:boolean removeAll(java.util.Collection):4153 -> removeAll
    3:3:boolean removeAll(java.util.Collection):4156:4156 -> removeAll
    4:5:boolean com.android.tools.r8.com.google.common.collect.Sets.removeAllImpl(java.util.Set,java.util.Iterator):1980:1981 -> removeAll
    4:5:boolean removeAll(java.util.Collection):4156 -> removeAll
    1:1:boolean retainAll(java.util.Collection):4163:4163 -> retainAll
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> retainAll
    2:2:boolean retainAll(java.util.Collection):4163 -> retainAll
    3:3:boolean retainAll(java.util.Collection):4166:4166 -> retainAll
    4:4:java.util.HashSet com.android.tools.r8.com.google.common.collect.Sets.newHashSetWithExpectedSize(int):253:253 -> retainAll
    4:4:boolean retainAll(java.util.Collection):4166 -> retainAll
    5:11:boolean retainAll(java.util.Collection):4167:4173 -> retainAll
    1:1:int size():4117:4117 -> size
com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap -> com.android.tools.r8.a.a.a.b.Jb:
    1:1:void <init>():3653:3653 -> <init>
    1:1:java.util.Set entrySet():3666:3666 -> entrySet
    java.util.Iterator entryIterator() -> h
    1:1:java.util.Spliterator entrySpliterator():3661:3661 -> i
    2:2:java.util.Spliterator entrySpliterator():3660:3660 -> i
com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap$1 -> com.android.tools.r8.a.a.a.b.Ib:
    com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap):3666:3666 -> <init>
    1:1:java.util.Map map():3669:3669 -> c
    1:1:void forEach(java.util.function.Consumer):3684:3684 -> forEach
    2:2:void com.android.tools.r8.com.google.common.collect.Maps$IteratorBasedAbstractMap.forEachEntry(java.util.function.Consumer):3690:3690 -> forEach
    2:2:void forEach(java.util.function.Consumer):3684 -> forEach
    1:1:java.util.Iterator iterator():3674:3674 -> iterator
    1:1:java.util.Spliterator spliterator():3679:3679 -> spliterator
com.android.tools.r8.com.google.common.collect.Maps$KeySet -> com.android.tools.r8.a.a.a.b.Kb:
    java.util.Map map -> a
    1:2:void <init>(java.util.Map):3839:3840 -> <init>
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    3:3:void <init>(java.util.Map):3840 -> <init>
    1:1:void lambda$forEach$0(java.util.function.Consumer,java.lang.Object,java.lang.Object):3856:3856 -> a
    1:1:java.util.Map map():3844:3844 -> clear
    1:1:void clear():3885 -> clear
    2:2:void clear():3885:3885 -> clear
    1:1:java.util.Map map():3844:3844 -> contains
    1:1:boolean contains(java.lang.Object):3871 -> contains
    2:2:boolean contains(java.lang.Object):3871:3871 -> contains
    1:1:void forEach(java.util.function.Consumer):3856:3856 -> forEach
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    2:2:void forEach(java.util.function.Consumer):3854 -> forEach
    1:1:java.util.Map map():3844:3844 -> isEmpty
    1:1:boolean isEmpty():3866 -> isEmpty
    2:2:boolean isEmpty():3866:3866 -> isEmpty
    1:1:java.util.Map map():3844:3844 -> iterator
    1:1:java.util.Iterator iterator():3849 -> iterator
    2:2:java.util.Iterator iterator():3849:3849 -> iterator
    1:1:java.util.Map map():3844:3844 -> remove
    1:1:boolean contains(java.lang.Object):3871 -> remove
    1:1:boolean remove(java.lang.Object):3876 -> remove
    2:2:boolean contains(java.lang.Object):3871:3871 -> remove
    2:2:boolean remove(java.lang.Object):3876 -> remove
    3:3:java.util.Map map():3844:3844 -> remove
    3:3:boolean remove(java.lang.Object):3877 -> remove
    4:4:boolean remove(java.lang.Object):3877:3877 -> remove
    1:1:java.util.Map map():3844:3844 -> size
    1:1:int size():3861 -> size
    2:2:int size():3861:3861 -> size
com.android.tools.r8.com.google.common.collect.Maps$Values -> com.android.tools.r8.a.a.a.b.Lb:
    java.util.Map map -> a
    1:2:void <init>(java.util.Map):4026:4027 -> <init>
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    3:3:void <init>(java.util.Map):4027 -> <init>
    1:1:void lambda$forEach$0(java.util.function.Consumer,java.lang.Object,java.lang.Object):4043:4043 -> a
    1:1:java.util.Map map():4031:4031 -> clear
    1:1:void clear():4108 -> clear
    2:2:void clear():4108:4108 -> clear
    1:1:java.util.Map map():4031:4031 -> contains
    1:1:boolean contains(java.lang.Object):4103 -> contains
    2:2:boolean contains(java.lang.Object):4103:4103 -> contains
    1:1:void forEach(java.util.function.Consumer):4043:4043 -> forEach
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    2:2:void forEach(java.util.function.Consumer):4041 -> forEach
    1:1:java.util.Map map():4031:4031 -> isEmpty
    1:1:boolean isEmpty():4098 -> isEmpty
    2:2:boolean isEmpty():4098:4098 -> isEmpty
    1:1:java.util.Map map():4031:4031 -> iterator
    1:1:java.util.Iterator iterator():4036 -> iterator
    2:2:java.util.Iterator iterator():4036:4036 -> iterator
    3:3:com.android.tools.r8.com.google.common.base.Function com.android.tools.r8.com.google.common.collect.Maps.valueFunction():116:116 -> iterator
    3:3:java.util.Iterator com.android.tools.r8.com.google.common.collect.Maps.valueIterator(java.util.Iterator):124 -> iterator
    3:3:java.util.Iterator iterator():4036 -> iterator
    4:4:java.util.Iterator com.android.tools.r8.com.google.common.collect.Maps.valueIterator(java.util.Iterator):124:124 -> iterator
    4:4:java.util.Iterator iterator():4036 -> iterator
    1:1:boolean remove(java.lang.Object):4049:4049 -> remove
    2:2:java.util.Map map():4031:4031 -> remove
    2:2:boolean remove(java.lang.Object):4051 -> remove
    3:4:boolean remove(java.lang.Object):4051:4052 -> remove
    5:5:java.util.Map map():4031:4031 -> remove
    5:5:boolean remove(java.lang.Object):4053 -> remove
    6:6:boolean remove(java.lang.Object):4053:4053 -> remove
    1:1:boolean removeAll(java.util.Collection):4064:4064 -> removeAll
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> removeAll
    2:2:boolean removeAll(java.util.Collection):4064 -> removeAll
    3:3:boolean removeAll(java.util.Collection):4066:4066 -> removeAll
    4:4:java.util.Map map():4031:4031 -> removeAll
    4:4:boolean removeAll(java.util.Collection):4067 -> removeAll
    5:7:boolean removeAll(java.util.Collection):4067:4069 -> removeAll
    8:8:java.util.Map map():4031:4031 -> removeAll
    8:8:boolean removeAll(java.util.Collection):4072 -> removeAll
    9:9:boolean removeAll(java.util.Collection):4072:4072 -> removeAll
    1:1:boolean retainAll(java.util.Collection):4079:4079 -> retainAll
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> retainAll
    2:2:boolean retainAll(java.util.Collection):4079 -> retainAll
    3:3:boolean retainAll(java.util.Collection):4081:4081 -> retainAll
    4:4:java.util.Map map():4031:4031 -> retainAll
    4:4:boolean retainAll(java.util.Collection):4082 -> retainAll
    5:7:boolean retainAll(java.util.Collection):4082:4084 -> retainAll
    8:8:java.util.Map map():4031:4031 -> retainAll
    8:8:boolean retainAll(java.util.Collection):4087 -> retainAll
    9:9:boolean retainAll(java.util.Collection):4087:4087 -> retainAll
    1:1:java.util.Map map():4031:4031 -> size
    1:1:int size():4093 -> size
    2:2:int size():4093:4093 -> size
com.android.tools.r8.com.google.common.collect.Maps$ViewCachingAbstractMap -> com.android.tools.r8.a.a.a.b.Mb:
    java.util.Set entrySet -> a
    1:1:void <init>():3612:3612 -> <init>
    1:2:java.util.Set entrySet():3624:3625 -> entrySet
    java.util.Set createEntrySet() -> h
    1:1:java.util.Set createKeySet():3637:3637 -> i
    1:2:java.util.Set keySet():3632:3633 -> keySet
    1:1:java.util.Collection values():3644:3644 -> values
    2:2:java.util.Collection createValues():3649:3649 -> values
    2:2:java.util.Collection values():3645 -> values
    3:3:java.util.Collection values():3645:3645 -> values
com.android.tools.r8.com.google.common.collect.Multimap -> com.android.tools.r8.a.a.a.b.Nb:
    boolean containsEntry(java.lang.Object,java.lang.Object) -> a
    boolean putAll(java.lang.Object,java.lang.Iterable) -> a
com.android.tools.r8.com.google.common.collect.MultimapBuilder$2 -> com.android.tools.r8.a.a.a.b.Ob:
    int val$expectedKeys -> a
    1:1:void <init>(int):127:127 -> <init>
com.android.tools.r8.com.google.common.collect.MultimapBuilder$ArrayListSupplier -> com.android.tools.r8.a.a.a.b.Pb:
    int expectedValuesPerKey -> a
    1:2:void <init>(int):193:194 -> <init>
    1:1:java.util.List get():199:199 -> get
    1:1:java.lang.Object get():190 -> get
com.android.tools.r8.com.google.common.collect.MultimapBuilder$ListMultimapBuilder -> com.android.tools.r8.a.a.a.b.Qb:
    1:1:void com.android.tools.r8.com.google.common.collect.MultimapBuilder.<init>():77:77 -> <init>
    1:1:void com.android.tools.r8.com.google.common.collect.MultimapBuilder.<init>(com.android.tools.r8.com.google.common.collect.MultimapBuilder$1):71 -> <init>
    1:1:void <init>():438 -> <init>
    com.android.tools.r8.com.google.common.collect.ListMultimap build() -> a
    1:2:com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys com.android.tools.r8.com.google.common.collect.MultimapBuilder.linkedHashKeys(int):126:127 -> b
    1:2:com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys com.android.tools.r8.com.google.common.collect.MultimapBuilder.linkedHashKeys():113 -> b
com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys -> com.android.tools.r8.a.a.a.b.Sb:
    1:1:void <init>():282:282 -> <init>
    1:2:com.android.tools.r8.com.google.common.collect.MultimapBuilder$ListMultimapBuilder arrayListValues(int):300:301 -> a
    1:2:com.android.tools.r8.com.google.common.collect.MultimapBuilder$ListMultimapBuilder arrayListValues():290 -> a
com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys$1 -> com.android.tools.r8.a.a.a.b.Rb:
    com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys this$0 -> b
    int val$expectedValuesPerKey -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.MultimapBuilder$MultimapBuilderWithKeys,int):301:301 -> <init>
    1:2:com.android.tools.r8.com.google.common.collect.ListMultimap build():304:305 -> a
    3:3:java.util.Map com.android.tools.r8.com.google.common.collect.MultimapBuilder$2.createMap():130:130 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ListMultimap build():305 -> a
    4:4:com.android.tools.r8.com.google.common.collect.ListMultimap build():305:305 -> a
    5:5:com.android.tools.r8.com.google.common.collect.ListMultimap com.android.tools.r8.com.google.common.collect.Multimaps.newListMultimap(java.util.Map,com.android.tools.r8.com.google.common.base.Supplier):294:294 -> a
    5:5:com.android.tools.r8.com.google.common.collect.ListMultimap build():304 -> a
com.android.tools.r8.com.google.common.collect.Multimaps$CustomListMultimap -> com.android.tools.r8.a.a.a.b.Tb:
    com.android.tools.r8.com.google.common.base.Supplier factory -> g
    1:2:void <init>(java.util.Map,com.android.tools.r8.com.google.common.base.Supplier):301:302 -> <init>
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    3:3:void <init>(java.util.Map,com.android.tools.r8.com.google.common.base.Supplier):302 -> <init>
    1:1:java.util.List createCollection():307:307 -> g
    1:1:java.util.Collection createCollection():297 -> g
com.android.tools.r8.com.google.common.collect.Multimaps$Entries -> com.android.tools.r8.a.a.a.b.Ub:
    1:1:void <init>():1793:1793 -> <init>
    1:1:void clear():1821:1821 -> clear
    2:2:com.android.tools.r8.com.google.common.collect.Multimap com.android.tools.r8.com.google.common.collect.AbstractMultimap$Entries.multimap():130:130 -> clear
    2:2:void clear():1821 -> clear
    3:3:void clear():1821:1821 -> clear
    1:3:boolean contains(java.lang.Object):1803:1805 -> contains
    4:4:com.android.tools.r8.com.google.common.collect.Multimap com.android.tools.r8.com.google.common.collect.AbstractMultimap$Entries.multimap():130:130 -> contains
    4:4:boolean contains(java.lang.Object):1805 -> contains
    5:5:boolean contains(java.lang.Object):1805:1805 -> contains
    1:3:boolean remove(java.lang.Object):1812:1814 -> remove
    4:4:com.android.tools.r8.com.google.common.collect.Multimap com.android.tools.r8.com.google.common.collect.AbstractMultimap$Entries.multimap():130:130 -> remove
    4:4:boolean remove(java.lang.Object):1814 -> remove
    5:5:boolean remove(java.lang.Object):1814:1814 -> remove
    1:1:int size():1798:1798 -> size
    2:2:com.android.tools.r8.com.google.common.collect.Multimap com.android.tools.r8.com.google.common.collect.AbstractMultimap$Entries.multimap():130:130 -> size
    2:2:int size():1798 -> size
    3:3:int size():1798:1798 -> size
com.android.tools.r8.com.google.common.collect.Multimaps$Keys -> com.android.tools.r8.a.a.a.b.Xb:
    com.android.tools.r8.com.google.common.collect.Multimap multimap -> c
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.Multimap):1645:1646 -> <init>
    1:1:void lambda$forEach$0(java.util.function.Consumer,java.util.Map$Entry):1678:1678 -> a
    1:2:int count(java.lang.Object):1749:1750 -> b
    3:3:int remove(java.lang.Object,int):1755:1755 -> b
    4:5:int count(java.lang.Object):1749:1750 -> b
    4:5:int remove(java.lang.Object,int):1757 -> b
    6:19:int remove(java.lang.Object,int):1760:1773 -> b
    1:1:java.util.Set createEntrySet():1688:1688 -> c
    1:1:void clear():1781:1781 -> clear
    1:1:boolean contains(java.lang.Object):1739:1739 -> contains
    1:1:int distinctElements():1683:1683 -> e
    1:1:java.util.Set elementSet():1786:1786 -> f
    1:1:void forEach(java.util.function.Consumer):1678:1678 -> forEach
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    2:2:void forEach(java.util.function.Consumer):1677 -> forEach
    1:2:java.util.Iterator entryIterator():1651:1652 -> g
    1:1:java.util.Iterator iterator():1744:1744 -> iterator
    1:1:java.util.Spliterator spliterator():1672:1672 -> spliterator
com.android.tools.r8.com.google.common.collect.Multimaps$Keys$1 -> com.android.tools.r8.a.a.a.b.Wb:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Multimaps$Keys,java.util.Iterator):1652:1652 -> <init>
    1:1:java.lang.Object transform(java.lang.Object):1652:1652 -> a
    2:2:com.android.tools.r8.com.google.common.collect.Multiset$Entry transform(java.util.Map$Entry):1655:1655 -> a
    2:2:java.lang.Object transform(java.lang.Object):1652 -> a
com.android.tools.r8.com.google.common.collect.Multimaps$Keys$1$1 -> com.android.tools.r8.a.a.a.b.Vb:
    java.util.Map$Entry val$backingEntry -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Multimaps$Keys$1,java.util.Map$Entry):1655:1655 -> <init>
    1:1:int getCount():1663:1663 -> getCount
    1:1:java.lang.Object getElement():1658:1658 -> getElement
com.android.tools.r8.com.google.common.collect.Multimaps$Keys$KeysEntrySet -> com.android.tools.r8.a.a.a.b.Xb$a:
    com.android.tools.r8.com.google.common.collect.Multimaps$Keys this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Multimaps$Keys):1692:1692 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.Multiset multiset():1695:1695 -> c
    1:4:boolean contains(java.lang.Object):1715:1718 -> contains
    1:1:boolean isEmpty():1710:1710 -> isEmpty
    1:1:java.util.Iterator iterator():1700:1700 -> iterator
    1:5:boolean remove(java.lang.Object):1725:1729 -> remove
    1:1:int size():1705:1705 -> size
    2:2:int com.android.tools.r8.com.google.common.collect.Multimaps$Keys.distinctElements():1683:1683 -> size
    2:2:int size():1705 -> size
com.android.tools.r8.com.google.common.collect.Multiset -> com.android.tools.r8.a.a.a.b.Zb:
    int setCount(java.lang.Object,int) -> a
    boolean setCount(java.lang.Object,int,int) -> a
    1:4:void lambda$forEach$1(java.util.function.Consumer,com.android.tools.r8.com.google.common.collect.Multiset$Entry):494:497 -> a
    int count(java.lang.Object) -> b
    int remove(java.lang.Object,int) -> b
    int add(java.lang.Object,int) -> c
    java.util.Set elementSet() -> f
    1:2:void forEach(java.util.function.Consumer):491:492 -> forEach
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    3:3:void forEach(java.util.function.Consumer):490 -> forEach
    1:1:java.util.Spliterator spliterator():504:504 -> spliterator
com.android.tools.r8.com.google.common.collect.Multiset$Entry -> com.android.tools.r8.a.a.a.b.Yb:
com.android.tools.r8.com.google.common.collect.Multisets$AbstractEntry -> com.android.tools.r8.a.a.a.b._b:
    1:1:void <init>():833:833 -> <init>
    1:4:boolean equals(java.lang.Object):840:843 -> equals
    1:2:int hashCode():854:855 -> hashCode
    1:3:java.lang.String toString():867:869 -> toString
com.android.tools.r8.com.google.common.collect.Multisets$DecreasingCount -> com.android.tools.r8.a.a.a.b.ac:
    com.android.tools.r8.com.google.common.collect.Multisets$DecreasingCount INSTANCE -> a
    1:1:void <clinit>():1165:1165 -> <clinit>
    1:1:void <init>():1164:1164 -> <init>
    1:1:int compare(java.lang.Object,java.lang.Object):1164:1164 -> compare
    2:2:int compare(com.android.tools.r8.com.google.common.collect.Multiset$Entry,com.android.tools.r8.com.google.common.collect.Multiset$Entry):1168:1168 -> compare
    2:2:int compare(java.lang.Object,java.lang.Object):1164 -> compare
com.android.tools.r8.com.google.common.collect.Multisets$ElementSet -> com.android.tools.r8.a.a.a.b.cc:
    1:1:void <init>():977:977 -> <init>
    1:1:void clear():982:982 -> clear
    2:2:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet.multiset():174:174 -> clear
    2:2:void clear():982 -> clear
    3:3:void clear():982:982 -> clear
    1:1:boolean contains(java.lang.Object):987:987 -> contains
    2:2:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet.multiset():174:174 -> contains
    2:2:boolean contains(java.lang.Object):987 -> contains
    3:3:boolean contains(java.lang.Object):987:987 -> contains
    1:1:boolean containsAll(java.util.Collection):992:992 -> containsAll
    2:2:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet.multiset():174:174 -> containsAll
    2:2:boolean containsAll(java.util.Collection):992 -> containsAll
    3:3:boolean containsAll(java.util.Collection):992:992 -> containsAll
    1:1:boolean isEmpty():997:997 -> isEmpty
    2:2:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet.multiset():174:174 -> isEmpty
    2:2:boolean isEmpty():997 -> isEmpty
    3:3:boolean isEmpty():997:997 -> isEmpty
    1:1:java.util.Iterator iterator():1002:1002 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet.multiset():174:174 -> iterator
    2:2:java.util.Iterator iterator():1002 -> iterator
    3:3:java.util.Iterator iterator():1002:1002 -> iterator
    1:1:boolean remove(java.lang.Object):1012:1012 -> remove
    2:2:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet.multiset():174:174 -> remove
    2:2:boolean remove(java.lang.Object):1012 -> remove
    3:3:boolean remove(java.lang.Object):1012:1012 -> remove
    1:1:int size():1017:1017 -> size
    2:2:com.android.tools.r8.com.google.common.collect.Multiset com.android.tools.r8.com.google.common.collect.AbstractMultiset$ElementSet.multiset():174:174 -> size
    2:2:int size():1017 -> size
    3:3:int size():1017:1017 -> size
com.android.tools.r8.com.google.common.collect.Multisets$ElementSet$1 -> com.android.tools.r8.a.a.a.b.bc:
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Multisets$ElementSet,java.util.Iterator):1002:1002 -> <init>
    1:1:java.lang.Object transform(java.lang.Object):1002:1002 -> a
    2:2:java.lang.Object transform(com.android.tools.r8.com.google.common.collect.Multiset$Entry):1005:1005 -> a
    2:2:java.lang.Object transform(java.lang.Object):1002 -> a
com.android.tools.r8.com.google.common.collect.Multisets$EntrySet -> com.android.tools.r8.a.a.a.b.dc:
    1:1:void <init>():1021:1021 -> <init>
    com.android.tools.r8.com.google.common.collect.Multiset multiset() -> c
    1:1:void clear():1061:1061 -> clear
    1:11:boolean contains(java.lang.Object):1026:1036 -> contains
    1:9:boolean remove(java.lang.Object):1045:1053 -> remove
com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry -> com.android.tools.r8.a.a.a.b.ec:
    java.lang.Object element -> a
    int count -> b
    1:4:void <init>(java.lang.Object,int):258:261 -> <init>
    com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry nextInBucket() -> a
    1:1:int getCount():272:272 -> getCount
    1:1:java.lang.Object getElement():267:267 -> getElement
com.android.tools.r8.com.google.common.collect.NaturalOrdering -> com.android.tools.r8.a.a.a.b.fc:
    com.android.tools.r8.com.google.common.collect.NaturalOrdering INSTANCE -> a
    1:1:void <clinit>():28:28 -> <clinit>
    1:1:void <init>():73:73 -> <init>
    1:1:int compare(java.lang.Object,java.lang.Object):25:25 -> compare
    2:2:int compare(java.lang.Comparable,java.lang.Comparable):37:37 -> compare
    2:2:int compare(java.lang.Object,java.lang.Object):25 -> compare
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> compare
    3:3:int compare(java.lang.Comparable,java.lang.Comparable):36 -> compare
    3:3:int compare(java.lang.Object,java.lang.Object):25 -> compare
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> compare
    4:4:int compare(java.lang.Comparable,java.lang.Comparable):35 -> compare
    4:4:int compare(java.lang.Object,java.lang.Object):25 -> compare
com.android.tools.r8.com.google.common.collect.Ordering -> com.android.tools.r8.a.a.a.b.gc:
    1:1:void <init>():390:390 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.Ordering natural():161:161 -> a
    2:2:com.android.tools.r8.com.google.common.collect.Ordering from(java.util.Comparator):181:181 -> a
    3:3:com.android.tools.r8.com.google.common.collect.Ordering onResultOf(com.android.tools.r8.com.google.common.base.Function):448:448 -> a
    1:1:com.android.tools.r8.com.google.common.base.Function com.android.tools.r8.com.google.common.collect.Maps.keyFunction():111:111 -> b
    1:1:com.android.tools.r8.com.google.common.collect.Ordering onKeys():452 -> b
    2:2:com.android.tools.r8.com.google.common.collect.Ordering onKeys():452:452 -> b
com.android.tools.r8.com.google.common.collect.RegularImmutableAsList -> com.android.tools.r8.a.a.a.b.hc:
    com.android.tools.r8.com.google.common.collect.ImmutableCollection delegate -> b
    com.android.tools.r8.com.google.common.collect.ImmutableList delegateList -> c
    1:3:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableCollection,com.android.tools.r8.com.google.common.collect.ImmutableList):35:37 -> <init>
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableList com.android.tools.r8.com.google.common.collect.ImmutableList.asImmutableList(java.lang.Object[]):356:356 -> <init>
    4:4:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableCollection,java.lang.Object[]):41 -> <init>
    5:5:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableCollection,java.lang.Object[]):41:41 -> <init>
    1:1:int copyIntoArray(java.lang.Object[],int):68:68 -> a
    1:1:void forEach(java.util.function.Consumer):62:62 -> forEach
    1:1:java.lang.Object get(int):73:73 -> get
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection():46:46 -> j
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList delegateList():50:50 -> k
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator(int):56:56 -> listIterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator(int):56:56 -> listIterator
    2:2:java.util.ListIterator listIterator(int):29 -> listIterator
com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap -> com.android.tools.r8.a.a.a.b.kc:
    com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse -> j
    com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] keyTable -> e
    com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap EMPTY -> k
    com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] valueTable -> f
    int mask -> h
    java.util.Map$Entry[] entries -> g
    int hashCode -> i
    1:1:void <clinit>():44:44 -> <clinit>
    1:6:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],java.util.Map$Entry[],int,int):119:124 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] access$100(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap):43:43 -> a
    2:5:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):61:64 -> a
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] com.android.tools.r8.com.google.common.collect.ImmutableMapEntry.createEntryArray(int):44:44 -> a
    6:6:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):65 -> a
    7:7:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):67:67 -> a
    8:8:com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] com.android.tools.r8.com.google.common.collect.ImmutableMapEntry.createEntryArray(int):44:44 -> a
    8:8:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):70 -> a
    9:20:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):76:87 -> a
    21:21:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableEntry.getValue():45:45 -> a
    21:21:void checkNoConflictInValueBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):132 -> a
    21:21:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):88 -> a
    22:22:void checkNoConflictInValueBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):132:132 -> a
    22:22:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):88 -> a
    23:23:void checkNoConflictInValueBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):131:131 -> a
    23:23:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):88 -> a
    24:38:com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap fromEntryArray(int,java.util.Map$Entry[]):97:111 -> a
    1:1:int access$200(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap):43:43 -> b
    1:1:int access$300(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap):43:43 -> c
    1:1:java.util.Map$Entry[] access$400(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap):43:43 -> d
    1:2:void forEach(java.util.function.BiConsumer):157:158 -> forEach
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    3:3:void forEach(java.util.function.BiConsumer):156 -> forEach
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():188:188 -> g
    1:1:com.android.tools.r8.com.google.common.collect.BiMap inverse():41 -> g
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableBiMap com.android.tools.r8.com.google.common.collect.ImmutableBiMap.of():66:66 -> g
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():189 -> g
    2:2:com.android.tools.r8.com.google.common.collect.BiMap inverse():41 -> g
    3:4:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():191:192 -> g
    3:4:com.android.tools.r8.com.google.common.collect.BiMap inverse():41 -> g
    5:5:boolean com.android.tools.r8.com.google.common.collect.ImmutableMap.isEmpty():647:647 -> g
    5:5:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():188 -> g
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableBiMap com.android.tools.r8.com.google.common.collect.ImmutableBiMap.of():66:66 -> g
    6:6:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():189 -> g
    7:8:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():191:192 -> g
    1:1:java.lang.Object get(java.lang.Object):139:139 -> get
    1:1:int hashCode():169:169 -> hashCode
    1:1:boolean com.android.tools.r8.com.google.common.collect.ImmutableMap.isEmpty():647:647 -> i
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():144 -> i
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():145:145 -> i
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet():151:151 -> j
    boolean isHashCodeFast() -> l
    boolean isPartialView() -> m
    1:1:int size():179:179 -> size
com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$1 -> com.android.tools.r8.a.a.a.b.ic:
com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse -> com.android.tools.r8.a.a.a.b.kc$a:
    com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap this$0 -> e
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap):195:195 -> <init>
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap,com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$1):195 -> <init>
    1:1:void lambda$forEach$0(java.util.function.BiConsumer,java.lang.Object,java.lang.Object):210:210 -> a
    1:1:void forEach(java.util.function.BiConsumer):210:210 -> forEach
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    2:2:void forEach(java.util.function.BiConsumer):209 -> forEach
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():204:204 -> g
    1:1:com.android.tools.r8.com.google.common.collect.BiMap inverse():195 -> g
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():204:204 -> g
    1:5:java.lang.Object get(java.lang.Object):215:219 -> get
    6:6:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableEntry.getValue():45:45 -> get
    6:6:java.lang.Object get(java.lang.Object):222 -> get
    7:7:java.lang.Object get(java.lang.Object):222:222 -> get
    8:8:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableEntry.getKey():39:39 -> get
    8:8:java.lang.Object get(java.lang.Object):223 -> get
    9:9:java.lang.Object get(java.lang.Object):221:221 -> get
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():236:236 -> i
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet():231:231 -> j
    boolean isPartialView() -> m
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():204:204 -> size
    1:1:int size():199 -> size
    2:2:int size():199:199 -> size
com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse$InverseEntrySet -> com.android.tools.r8.a.a.a.b.kc$a$a:
    com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse this$1 -> c
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse):240:240 -> <init>
    1:1:void forEach(java.util.function.Consumer):263:263 -> forEach
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():268:268 -> h
    1:1:int hashCode():253:253 -> hashCode
    boolean isHashCodeFast() -> i
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():258:258 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():258:258 -> iterator
    2:2:java.util.Iterator iterator():239 -> iterator
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableMap map():243:243 -> l
com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse$InverseEntrySet$1 -> com.android.tools.r8.a.a.a.b.jc:
    com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse$InverseEntrySet this$2 -> b
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableBiMap$Inverse$InverseEntrySet):268:268 -> <init>
    1:2:java.util.Map$Entry get(int):271:272 -> get
    1:2:java.lang.Object get(int):268 -> get
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection delegateCollection():277:277 -> j
com.android.tools.r8.com.google.common.collect.RegularImmutableList -> com.android.tools.r8.a.a.a.b.lc:
    java.lang.Object[] array -> b
    com.android.tools.r8.com.google.common.collect.ImmutableList EMPTY -> c
    1:1:void <clinit>():31:31 -> <clinit>
    1:2:void <init>(java.lang.Object[]):36:37 -> <init>
    1:2:int copyIntoArray(java.lang.Object[],int):52:53 -> a
    boolean isPartialView() -> e
    1:1:java.lang.Object get(int):60:60 -> get
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator(int):68:68 -> listIterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator listIterator(int):68:68 -> listIterator
    2:2:java.util.ListIterator listIterator(int):28 -> listIterator
    1:1:int size():42:42 -> size
    1:1:java.util.Spliterator spliterator():73:73 -> spliterator
com.android.tools.r8.com.google.common.collect.RegularImmutableMap -> com.android.tools.r8.a.a.a.b.oc:
    com.android.tools.r8.com.google.common.collect.ImmutableMap EMPTY -> h
    com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[] table -> f
    java.util.Map$Entry[] entries -> e
    int mask -> g
    1:1:void <clinit>():42:42 -> <clinit>
    1:4:void <init>(java.util.Map$Entry[],com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],int):100:103 -> <init>
    1:1:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableEntry.getKey():39:39 -> a
    1:1:void checkNoConflictInKeyBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):109 -> a
    2:2:void checkNoConflictInKeyBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):109:109 -> a
    3:3:void checkNoConflictInKeyBucket(java.lang.Object,java.util.Map$Entry,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry):108:108 -> a
    4:4:java.util.Map$Entry[] access$000(com.android.tools.r8.com.google.common.collect.RegularImmutableMap):40:40 -> a
    5:5:com.android.tools.r8.com.google.common.collect.RegularImmutableMap fromEntries(java.util.Map$Entry[]):54:54 -> a
    6:40:com.android.tools.r8.com.google.common.collect.RegularImmutableMap fromEntryArray(int,java.util.Map$Entry[]):63:97 -> a
    41:42:java.lang.Object get(java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],int):130:131 -> a
    43:43:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableEntry.getKey():39:39 -> a
    43:43:java.lang.Object get(java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],int):134 -> a
    44:44:java.lang.Object get(java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],int):142:142 -> a
    45:45:java.lang.Object com.android.tools.r8.com.google.common.collect.ImmutableEntry.getValue() -> a
    45:45:java.lang.Object get(java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],int):143 -> a
    46:46:java.lang.Object get(java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableMapEntry[],int):133:133 -> a
    1:2:void forEach(java.util.function.BiConsumer):152:153 -> forEach
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    3:3:void forEach(java.util.function.BiConsumer):151 -> forEach
    1:1:java.lang.Object get(java.lang.Object):122:122 -> get
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():169:169 -> i
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet():174:174 -> j
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableCollection createValues():229:229 -> k
    boolean isPartialView() -> m
    1:1:int size():159:159 -> size
com.android.tools.r8.com.google.common.collect.RegularImmutableMap$KeySet -> com.android.tools.r8.a.a.a.b.mc:
    com.android.tools.r8.com.google.common.collect.RegularImmutableMap map -> c
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableMap):181:182 -> <init>
    1:1:boolean contains(java.lang.Object):192:192 -> contains
    boolean isPartialView() -> e
    1:1:java.lang.Object get(int):187:187 -> get
    1:1:int size():202:202 -> size
com.android.tools.r8.com.google.common.collect.RegularImmutableMap$Values -> com.android.tools.r8.a.a.a.b.nc:
    com.android.tools.r8.com.google.common.collect.RegularImmutableMap map -> b
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableMap):236:237 -> <init>
    boolean isPartialView() -> e
    1:1:java.lang.Object get(int):242:242 -> get
    1:1:int size():247:247 -> size
com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset -> com.android.tools.r8.a.a.a.b.qc:
    com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset EMPTY -> i
    com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry[] hashTable -> e
    int size -> f
    int hashCode -> g
    com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet -> h
    com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry[] entries -> d
    1:2:void <clinit>():37:38 -> <clinit>
    1:45:void <init>(java.util.Collection):48:92 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry[] access$100(com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset):36:36 -> a
    1:11:int count(java.lang.Object):117:127 -> b
    12:12:int count(java.lang.Object):125:125 -> b
    1:1:com.android.tools.r8.com.google.common.collect.Multiset$Entry getEntry(int):170:170 -> d
    boolean isPartialView() -> e
    1:2:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():140:141 -> f
    3:4:com.android.tools.r8.com.google.common.collect.ImmutableSet elementSet():140:141 -> f
    3:4:java.util.Set elementSet():34 -> f
    1:1:int hashCode():175:175 -> hashCode
    1:1:int size():135:135 -> size
com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset$1 -> com.android.tools.r8.a.a.a.b.pc:
com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset$ElementSet -> com.android.tools.r8.a.a.a.b.qc$a:
    com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset this$0 -> c
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset):145:145 -> <init>
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset,com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset$1):145 -> <init>
    1:1:boolean contains(java.lang.Object):154:154 -> contains
    boolean isPartialView() -> e
    1:1:java.lang.Object get(int):149:149 -> get
    1:1:int size():164:164 -> size
com.android.tools.r8.com.google.common.collect.RegularImmutableMultiset$NonTerminalEntry -> com.android.tools.r8.a.a.a.b.rc:
    com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry nextInBucket -> c
    1:2:void <init>(java.lang.Object,int,com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry):100:101 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.Multisets$ImmutableEntry nextInBucket():106:106 -> a
com.android.tools.r8.com.google.common.collect.RegularImmutableSet -> com.android.tools.r8.a.a.a.b.sc:
    java.lang.Object[] table -> d
    com.android.tools.r8.com.google.common.collect.RegularImmutableSet EMPTY -> g
    java.lang.Object[] elements -> c
    int hashCode -> f
    int mask -> e
    1:1:void <clinit>():33:33 -> <clinit>
    1:5:void <init>(java.lang.Object[],int,java.lang.Object[],int):43:47 -> <init>
    1:2:int copyIntoArray(java.lang.Object[],int):84:85 -> a
    1:10:boolean contains(java.lang.Object):52:61 -> contains
    boolean isPartialView() -> e
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():90:90 -> h
    1:1:int hashCode():100:100 -> hashCode
    boolean isHashCodeFast() -> i
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():74:74 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.forArray(java.lang.Object[]):1054:1054 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():74 -> iterator
    3:3:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():74:74 -> iterator
    3:3:java.util.Iterator iterator():30 -> iterator
    1:1:int size():69:69 -> size
    1:1:java.util.Spliterator spliterator():79:79 -> spliterator
com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet -> com.android.tools.r8.a.a.a.b.tc:
    com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet NATURAL_EMPTY_SET -> f
    com.android.tools.r8.com.google.common.collect.ImmutableList elements -> e
    1:2:void <clinit>():44:45 -> <clinit>
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.Comparator):50:51 -> <init>
    1:1:int copyIntoArray(java.lang.Object[],int):154:154 -> a
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet headSetImpl(java.lang.Object,boolean):236:236 -> a
    1:1:int headIndex(java.lang.Object,boolean):240:240 -> b
    2:2:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> b
    2:2:int headIndex(java.lang.Object,boolean):240 -> b
    3:3:int headIndex(java.lang.Object,boolean):240:240 -> b
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
    4:4:int headIndex(java.lang.Object,boolean):240 -> b
    1:1:int tailIndex(java.lang.Object,boolean):260:260 -> c
    2:2:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> c
    2:2:int tailIndex(java.lang.Object,boolean):260 -> c
    3:3:int tailIndex(java.lang.Object,boolean):260:260 -> c
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> c
    4:4:int tailIndex(java.lang.Object,boolean):260 -> c
    5:11:com.android.tools.r8.com.google.common.collect.RegularImmutableSortedSet getSubSet(int,int):277:283 -> c
    1:2:java.lang.Object ceiling(java.lang.Object):224:225 -> ceiling
    1:1:int unsafeBinarySearch(java.lang.Object):144:144 -> contains
    1:1:boolean contains(java.lang.Object):83 -> contains
    1:2:boolean containsAll(java.util.Collection):95:96 -> containsAll
    3:3:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> containsAll
    3:3:boolean containsAll(java.util.Collection):98 -> containsAll
    4:22:boolean containsAll(java.util.Collection):98:116 -> containsAll
    23:23:int com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.unsafeCompare(java.lang.Object,java.lang.Object):550:550 -> containsAll
    23:23:boolean containsAll(java.util.Collection):119 -> containsAll
    24:24:int com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.unsafeCompare(java.util.Comparator,java.lang.Object,java.lang.Object):559:559 -> containsAll
    24:24:int com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.unsafeCompare(java.lang.Object,java.lang.Object):550 -> containsAll
    24:24:boolean containsAll(java.util.Collection):119 -> containsAll
    25:33:boolean containsAll(java.util.Collection):122:130 -> containsAll
    34:34:boolean containsAll(java.util.Collection):99:99 -> containsAll
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet tailSetImpl(java.lang.Object,boolean):256:256 -> d
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator descendingIterator():62:62 -> descendingIterator
    1:1:java.util.Iterator descendingIterator():41 -> descendingIterator
    1:1:boolean isPartialView():149:149 -> e
    1:18:boolean equals(java.lang.Object):162:179 -> equals
    19:19:int com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.unsafeCompare(java.lang.Object,java.lang.Object):550:550 -> equals
    19:19:boolean equals(java.lang.Object):180 -> equals
    20:20:int com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.unsafeCompare(java.util.Comparator,java.lang.Object,java.lang.Object):559:559 -> equals
    20:20:int com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.unsafeCompare(java.lang.Object,java.lang.Object):550 -> equals
    20:20:boolean equals(java.lang.Object):180 -> equals
    21:22:boolean containsAll(java.util.Collection):95:96 -> equals
    21:22:boolean equals(java.lang.Object):191 -> equals
    23:23:java.util.Comparator com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.comparator():577:577 -> equals
    23:23:boolean containsAll(java.util.Collection):98 -> equals
    23:23:boolean equals(java.lang.Object):191 -> equals
    24:42:boolean containsAll(java.util.Collection):98:116 -> equals
    24:42:boolean equals(java.lang.Object):191 -> equals
    43:43:int com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.unsafeCompare(java.lang.Object,java.lang.Object):550:550 -> equals
    43:43:boolean containsAll(java.util.Collection):119 -> equals
    43:43:boolean equals(java.lang.Object):191 -> equals
    44:44:int com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.unsafeCompare(java.util.Comparator,java.lang.Object,java.lang.Object):559:559 -> equals
    44:44:int com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.unsafeCompare(java.lang.Object,java.lang.Object):550 -> equals
    44:44:boolean containsAll(java.util.Collection):119 -> equals
    44:44:boolean equals(java.lang.Object):191 -> equals
    45:53:boolean containsAll(java.util.Collection):122:130 -> equals
    45:53:boolean equals(java.lang.Object):191 -> equals
    54:54:boolean containsAll(java.util.Collection):99:99 -> equals
    54:54:boolean equals(java.lang.Object):191 -> equals
    1:4:java.lang.Object first():196:199 -> first
    5:5:java.lang.Object first():197:197 -> first
    1:2:java.lang.Object floor(java.lang.Object):218:219 -> floor
    1:1:void forEach(java.util.function.Consumer):72:72 -> forEach
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():303:303 -> h
    1:2:java.lang.Object higher(java.lang.Object):230:231 -> higher
    1:1:int indexOf(java.lang.Object):294:294 -> indexOf
    2:2:java.util.Comparator unsafeComparator():273:273 -> indexOf
    2:2:int indexOf(java.lang.Object):294 -> indexOf
    3:3:int indexOf(java.lang.Object):294:294 -> indexOf
    1:1:java.util.Iterator iterator():41:41 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():56:56 -> iterator
    1:4:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet createDescendingSet():308:311 -> l
    1:4:java.lang.Object last():204:207 -> last
    5:5:java.lang.Object last():205:205 -> last
    1:2:java.lang.Object lower(java.lang.Object):212:213 -> lower
    1:1:java.util.Comparator unsafeComparator():273:273 -> m
    1:1:int size():77:77 -> size
    1:1:java.util.Spliterator spliterator():67:67 -> spliterator
com.android.tools.r8.com.google.common.collect.Sets$1 -> com.android.tools.r8.a.a.a.b.vc:
    java.util.Set val$set1 -> a
    java.util.Set val$set2 -> b
    1:1:void <init>(java.util.Set,java.util.Set):744:744 -> <init>
    1:1:boolean lambda$stream$0(java.util.Set,java.lang.Object):785:785 -> a
    1:1:boolean contains(java.lang.Object):795:795 -> contains
    1:1:boolean isEmpty():758:758 -> isEmpty
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():763:763 -> iterator
    1:1:java.util.Iterator iterator():744 -> iterator
    1:1:java.util.stream.Stream parallelStream():790:790 -> parallelStream
    1:3:int size():747:749 -> size
    1:1:java.util.stream.Stream stream():785:785 -> stream
com.android.tools.r8.com.google.common.collect.Sets$1$1 -> com.android.tools.r8.a.a.a.b.uc:
    java.util.Iterator itr2 -> d
    java.util.Iterator itr1 -> c
    com.android.tools.r8.com.google.common.collect.Sets$1 this$0 -> e
    1:3:void <init>(com.android.tools.r8.com.google.common.collect.Sets$1):763:765 -> <init>
    1:10:java.lang.Object computeNext():769:778 -> c
com.android.tools.r8.com.google.common.collect.Sets$2 -> com.android.tools.r8.a.a.a.b.xc:
    java.util.Set val$set1 -> a
    java.util.Set val$set2 -> b
    1:1:void <init>(java.util.Set,java.util.Set):842:842 -> <init>
    1:1:boolean contains(java.lang.Object):889:889 -> contains
    1:1:boolean containsAll(java.util.Collection):894:894 -> containsAll
    1:1:boolean isEmpty():884:884 -> isEmpty
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():845:845 -> iterator
    1:1:java.util.Iterator iterator():842 -> iterator
    1:1:java.util.stream.Stream parallelStream():868:868 -> parallelStream
    1:2:int size():874:875 -> size
    1:1:java.util.stream.Stream stream():863:863 -> stream
com.android.tools.r8.com.google.common.collect.Sets$2$1 -> com.android.tools.r8.a.a.a.b.wc:
    java.util.Iterator itr -> c
    com.android.tools.r8.com.google.common.collect.Sets$2 this$0 -> d
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.Sets$2):845:846 -> <init>
    1:7:java.lang.Object computeNext():850:856 -> c
com.android.tools.r8.com.google.common.collect.Sets$3 -> com.android.tools.r8.a.a.a.b.zc:
    java.util.Set val$set1 -> a
    java.util.Set val$set2 -> b
    1:1:void <init>(java.util.Set,java.util.Set):914:914 -> <init>
    1:1:boolean lambda$parallelStream$1(java.util.Set,java.lang.Object):939:939 -> a
    1:1:boolean lambda$stream$0(java.util.Set,java.lang.Object):934:934 -> b
    1:1:boolean contains(java.lang.Object):960:960 -> contains
    1:1:boolean isEmpty():955:955 -> isEmpty
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():917:917 -> iterator
    1:1:java.util.Iterator iterator():914 -> iterator
    1:1:java.util.stream.Stream parallelStream():939:939 -> parallelStream
    1:2:int size():945:946 -> size
    1:1:java.util.stream.Stream stream():934:934 -> stream
com.android.tools.r8.com.google.common.collect.Sets$3$1 -> com.android.tools.r8.a.a.a.b.yc:
    java.util.Iterator itr -> c
    com.android.tools.r8.com.google.common.collect.Sets$3 this$0 -> d
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.Sets$3):917:918 -> <init>
    1:7:java.lang.Object computeNext():921:927 -> c
com.android.tools.r8.com.google.common.collect.Sets$5 -> com.android.tools.r8.a.a.a.b.Dc:
    com.android.tools.r8.com.google.common.collect.ImmutableMap val$index -> b
    int val$size -> a
    1:1:void <init>(int,com.android.tools.r8.com.google.common.collect.ImmutableMap):1676:1676 -> <init>
    1:3:boolean contains(java.lang.Object):1679:1681 -> contains
    1:1:java.util.Iterator iterator():1688:1688 -> iterator
    1:1:int size():1755:1755 -> size
    1:1:java.lang.String toString():1760:1760 -> toString
com.android.tools.r8.com.google.common.collect.Sets$5$1 -> com.android.tools.r8.a.a.a.b.Cc:
    java.util.BitSet bits -> c
    com.android.tools.r8.com.google.common.collect.Sets$5 this$0 -> d
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.Sets$5):1688:1689 -> <init>
    1:29:java.util.Set computeNext():1693:1721 -> c
    1:29:java.lang.Object computeNext():1688 -> c
com.android.tools.r8.com.google.common.collect.Sets$5$1$1 -> com.android.tools.r8.a.a.a.b.Bc:
    com.android.tools.r8.com.google.common.collect.Sets$5$1 this$1 -> b
    java.util.BitSet val$copy -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Sets$5$1,java.util.BitSet):1721:1721 -> <init>
    1:2:boolean contains(java.lang.Object):1724:1725 -> contains
    1:1:java.util.Iterator iterator():1730:1730 -> iterator
    1:1:int size():1746:1746 -> size
com.android.tools.r8.com.google.common.collect.Sets$5$1$1$1 -> com.android.tools.r8.a.a.a.b.Ac:
    com.android.tools.r8.com.google.common.collect.Sets$5$1$1 this$2 -> d
    int i -> c
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.Sets$5$1$1):1730:1731 -> <init>
    1:5:java.lang.Object computeNext():1735:1739 -> c
com.android.tools.r8.com.google.common.collect.Sets$ImprovedAbstractSet -> com.android.tools.r8.a.a.a.b.Ec:
    1:1:void <init>():77:77 -> <init>
    1:1:boolean removeAll(java.util.Collection):80:80 -> removeAll
    1:1:boolean retainAll(java.util.Collection):85:85 -> retainAll
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> retainAll
    2:2:boolean retainAll(java.util.Collection):85 -> retainAll
com.android.tools.r8.com.google.common.collect.Sets$SetView -> com.android.tools.r8.a.a.a.b.Fc:
    1:1:void <init>():600:600 -> <init>
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.Sets$1):599 -> <init>
    1:1:boolean add(java.lang.Object):640:640 -> add
    1:1:boolean addAll(java.util.Collection):666:666 -> addAll
    1:1:void clear():717:717 -> clear
    1:1:boolean remove(java.lang.Object):653:653 -> remove
    1:1:boolean removeAll(java.util.Collection):679:679 -> removeAll
    1:1:boolean removeIf(java.util.function.Predicate):692:692 -> removeIf
    1:1:boolean retainAll(java.util.Collection):705:705 -> retainAll
com.android.tools.r8.com.google.common.collect.Sets$UnmodifiableNavigableSet -> com.android.tools.r8.a.a.a.b.Gc:
    java.util.SortedSet unmodifiableDelegate -> b
    java.util.NavigableSet delegate -> a
    com.android.tools.r8.com.google.common.collect.Sets$UnmodifiableNavigableSet descendingSet -> c
    1:3:void <init>(java.util.NavigableSet):1828:1830 -> <init>
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    4:4:void <init>(java.util.NavigableSet):1829 -> <init>
    1:1:java.lang.Object ceiling(java.lang.Object):1872:1872 -> ceiling
    1:1:java.util.Iterator descendingIterator():1904:1904 -> descendingIterator
    1:4:java.util.NavigableSet descendingSet():1894:1897 -> descendingSet
    1:1:java.lang.Object floor(java.lang.Object):1867:1867 -> floor
    1:1:void forEach(java.util.function.Consumer):1857:1857 -> forEach
    1:1:java.util.SortedSet delegate():1835:1835 -> g
    1:1:java.lang.Object delegate():1823 -> g
    2:2:java.util.SortedSet delegate():1835:1835 -> g
    2:2:java.util.Collection delegate():1823 -> g
    3:3:java.util.SortedSet delegate():1835:1835 -> g
    3:3:java.util.Set delegate():1823 -> g
    4:4:java.util.SortedSet delegate():1835:1835 -> g
    1:1:java.util.NavigableSet headSet(java.lang.Object,boolean):1916:1916 -> headSet
    1:1:java.lang.Object higher(java.lang.Object):1877:1877 -> higher
    1:1:java.lang.Object lower(java.lang.Object):1862:1862 -> lower
    1:1:java.util.stream.Stream parallelStream():1852:1852 -> parallelStream
    1:1:java.lang.Object pollFirst():1882:1882 -> pollFirst
    1:1:java.lang.Object pollLast():1887:1887 -> pollLast
    1:1:boolean removeIf(java.util.function.Predicate):1842:1842 -> removeIf
    1:1:java.util.stream.Stream stream():1847:1847 -> stream
    1:2:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):1910:1911 -> subSet
    3:3:java.util.NavigableSet subSet(java.lang.Object,boolean,java.lang.Object,boolean):1910:1910 -> subSet
    1:1:java.util.NavigableSet tailSet(java.lang.Object,boolean):1921:1921 -> tailSet
com.android.tools.r8.com.google.common.collect.SingletonImmutableBiMap -> com.android.tools.r8.a.a.a.b.Hc:
    java.lang.Object singleValue -> f
    com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse -> g
    java.lang.Object singleKey -> e
    1:4:void <init>(java.lang.Object,java.lang.Object):41:44 -> <init>
    5:8:void <init>(java.lang.Object,java.lang.Object,com.android.tools.r8.com.google.common.collect.ImmutableBiMap):47:50 -> <init>
    1:1:boolean containsKey(java.lang.Object):70:70 -> containsKey
    1:1:boolean containsValue(java.lang.Object):75:75 -> containsValue
    1:1:void forEach(java.util.function.BiConsumer):65:65 -> forEach
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> forEach
    2:2:void forEach(java.util.function.BiConsumer):65 -> forEach
    1:3:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():100:102 -> g
    1:3:com.android.tools.r8.com.google.common.collect.BiMap inverse():34 -> g
    4:6:com.android.tools.r8.com.google.common.collect.ImmutableBiMap inverse():100:102 -> g
    1:1:java.lang.Object get(java.lang.Object):55:55 -> get
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createEntrySet():85:85 -> i
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableSet createKeySet():90:90 -> j
    boolean isPartialView() -> m
com.android.tools.r8.com.google.common.collect.SingletonImmutableList -> com.android.tools.r8.a.a.a.b.Ic:
    java.lang.Object element -> b
    1:2:void <init>(java.lang.Object):37:38 -> <init>
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    3:3:void <init>(java.lang.Object):38 -> <init>
    boolean isPartialView() -> e
    1:2:java.lang.Object get(int):43:44 -> get
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():49:49 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.singletonIterator(java.lang.Object):1104:1104 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():49 -> iterator
    3:3:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():49:49 -> iterator
    3:3:java.util.Iterator iterator():31 -> iterator
    1:1:java.util.Spliterator spliterator():54:54 -> spliterator
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):64:64 -> subList
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList com.android.tools.r8.com.google.common.collect.ImmutableList.of():81:81 -> subList
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):65 -> subList
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):64:64 -> subList
    3:3:java.util.List subList(int,int):31 -> subList
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableList com.android.tools.r8.com.google.common.collect.ImmutableList.of():81:81 -> subList
    4:4:com.android.tools.r8.com.google.common.collect.ImmutableList subList(int,int):65 -> subList
    4:4:java.util.List subList(int,int):31 -> subList
    1:1:java.lang.String toString():70:70 -> toString
com.android.tools.r8.com.google.common.collect.SingletonImmutableSet -> com.android.tools.r8.a.a.a.b.Jc:
    java.lang.Object element -> c
    int cachedHashCode -> d
    1:2:void <init>(java.lang.Object):44:45 -> <init>
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    3:3:void <init>(java.lang.Object):45 -> <init>
    4:7:void <init>(java.lang.Object,int):48:51 -> <init>
    1:1:int copyIntoArray(java.lang.Object[],int):81:81 -> a
    1:1:boolean contains(java.lang.Object):61:61 -> contains
    boolean isPartialView() -> e
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList createAsList():71:71 -> h
    1:3:int hashCode():88:90 -> hashCode
    1:1:boolean isHashCodeFast():97:97 -> i
    1:1:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():66:66 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator com.android.tools.r8.com.google.common.collect.Iterators.singletonIterator(java.lang.Object):1104:1104 -> iterator
    2:2:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():66 -> iterator
    3:3:com.android.tools.r8.com.google.common.collect.UnmodifiableIterator iterator():66:66 -> iterator
    3:3:java.util.Iterator iterator():29 -> iterator
    1:1:java.lang.String toString():102:102 -> toString
com.android.tools.r8.com.google.common.collect.SortedIterable -> com.android.tools.r8.a.a.a.b.Kc:
com.android.tools.r8.com.google.common.collect.StandardTable -> com.android.tools.r8.a.a.a.b.Mc:
    java.util.Map backingMap -> b
    java.util.Map rowMap -> d
    com.android.tools.r8.com.google.common.base.Supplier factory -> c
    1:3:void <init>(java.util.Map,com.android.tools.r8.com.google.common.base.Supplier):74:76 -> <init>
    boolean containsRow(java.lang.Object) -> a
    java.lang.Object put(java.lang.Object,java.lang.Object,java.lang.Object) -> a
    1:1:java.util.Iterator cellIterator():236:236 -> a
    2:2:java.util.Spliterator lambda$cellSpliterator$1(java.util.Map$Entry):274:274 -> a
    3:3:java.util.Spliterator lambda$cellSpliterator$1(java.util.Map$Entry):273:273 -> a
    4:4:com.android.tools.r8.com.google.common.collect.Table$Cell lambda$null$0(java.util.Map$Entry,java.util.Map$Entry):277:277 -> a
    5:5:com.android.tools.r8.com.google.common.collect.Table$Cell lambda$null$0(java.util.Map$Entry,java.util.Map$Entry):276:276 -> a
    java.util.Map row(java.lang.Object) -> b
    1:1:java.util.Set cellSet():231:231 -> b
    1:10:java.util.Spliterator cellSpliterator():270:279 -> c
    11:11:java.util.Spliterator cellSpliterator():270:270 -> c
    1:1:java.util.Map rowMap():766:766 -> d
    2:2:java.util.Map createRowMap():771:771 -> d
    2:2:java.util.Map rowMap():767 -> d
    3:3:java.util.Map rowMap():767:767 -> d
com.android.tools.r8.com.google.common.collect.StandardTable$1 -> com.android.tools.r8.a.a.a.b.Lc:
com.android.tools.r8.com.google.common.collect.StandardTable$CellIterator -> com.android.tools.r8.a.a.a.b.Mc$a:
    java.util.Map$Entry rowEntry -> b
    java.util.Iterator columnIterator -> c
    java.util.Iterator rowIterator -> a
    com.android.tools.r8.com.google.common.collect.StandardTable this$0 -> d
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.StandardTable):239:240 -> <init>
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.StandardTable,com.android.tools.r8.com.google.common.collect.StandardTable$1):239 -> <init>
    3:3:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.emptyModifiableIterator():125:125 -> <init>
    3:3:void <init>(com.android.tools.r8.com.google.common.collect.StandardTable):242 -> <init>
    3:3:void <init>(com.android.tools.r8.com.google.common.collect.StandardTable,com.android.tools.r8.com.google.common.collect.StandardTable$1):239 -> <init>
    4:4:void <init>(com.android.tools.r8.com.google.common.collect.StandardTable):242:242 -> <init>
    4:4:void <init>(com.android.tools.r8.com.google.common.collect.StandardTable,com.android.tools.r8.com.google.common.collect.StandardTable$1):239 -> <init>
    1:1:boolean hasNext():246:246 -> hasNext
    1:6:com.android.tools.r8.com.google.common.collect.Table$Cell next():251:256 -> next
    1:6:java.lang.Object next():239 -> next
    1:3:void remove():261:263 -> remove
com.android.tools.r8.com.google.common.collect.StandardTable$Row -> com.android.tools.r8.a.a.a.b.Mc$b:
    java.util.Map backingRowMap -> b
    java.lang.Object rowKey -> a
    com.android.tools.r8.com.google.common.collect.StandardTable this$0 -> c
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.StandardTable,java.lang.Object):290:291 -> <init>
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    3:3:void <init>(com.android.tools.r8.com.google.common.collect.StandardTable,java.lang.Object):291 -> <init>
    1:1:java.util.Map$Entry wrapEntry(java.util.Map$Entry):398:398 -> a
    1:5:void clear():349:353 -> clear
    1:2:boolean containsKey(java.lang.Object):316:317 -> containsKey
    1:2:java.lang.Object get(java.lang.Object):322:323 -> get
    1:1:java.util.Iterator entryIterator():364:364 -> h
    2:2:java.util.Iterator com.android.tools.r8.com.google.common.collect.Iterators.emptyModifiableIterator():125:125 -> h
    2:2:java.util.Iterator entryIterator():366 -> h
    3:4:java.util.Iterator entryIterator():368:369 -> h
    1:5:java.util.Spliterator entrySpliterator():390:394 -> i
    1:2:java.util.Map backingRowMap():297:298 -> j
    3:3:java.util.Map computeBackingRowMap():303:303 -> j
    3:3:java.util.Map backingRowMap():298 -> j
    4:4:java.util.Map backingRowMap():298:298 -> j
    1:3:void maintainEmptyInvariant():308:310 -> k
    1:4:java.lang.Object put(java.lang.Object,java.lang.Object):330:333 -> put
    5:5:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> put
    5:5:java.lang.Object put(java.lang.Object,java.lang.Object):329 -> put
    6:6:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> put
    6:6:java.lang.Object put(java.lang.Object,java.lang.Object):328 -> put
    1:6:java.lang.Object remove(java.lang.Object):338:343 -> remove
    1:2:int size():358:359 -> size
com.android.tools.r8.com.google.common.collect.StandardTable$Row$1 -> com.android.tools.r8.a.a.a.b.Nc:
    com.android.tools.r8.com.google.common.collect.StandardTable$Row this$1 -> b
    java.util.Iterator val$iterator -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.StandardTable$Row,java.util.Iterator):369:369 -> <init>
    1:1:boolean hasNext():372:372 -> hasNext
    1:1:java.util.Map$Entry next():377:377 -> next
    1:1:java.lang.Object next():369 -> next
    1:2:void remove():382:383 -> remove
com.android.tools.r8.com.google.common.collect.StandardTable$Row$2 -> com.android.tools.r8.a.a.a.b.Oc:
    java.util.Map$Entry val$entry -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.StandardTable$Row,java.util.Map$Entry):398:398 -> <init>
    1:2:boolean com.android.tools.r8.com.google.common.collect.ForwardingMapEntry.standardEquals(java.lang.Object):96:97 -> equals
    1:2:boolean equals(java.lang.Object):412 -> equals
    3:3:java.util.Map$Entry delegate():401:401 -> equals
    3:3:java.lang.Object com.android.tools.r8.com.google.common.collect.ForwardingMapEntry.getKey():64 -> equals
    3:3:boolean com.android.tools.r8.com.google.common.collect.ForwardingMapEntry.standardEquals(java.lang.Object):98 -> equals
    3:3:boolean equals(java.lang.Object):412 -> equals
    4:4:java.lang.Object com.android.tools.r8.com.google.common.collect.ForwardingMapEntry.getKey():64:64 -> equals
    4:4:boolean com.android.tools.r8.com.google.common.collect.ForwardingMapEntry.standardEquals(java.lang.Object):98 -> equals
    4:4:boolean equals(java.lang.Object):412 -> equals
    5:5:boolean com.android.tools.r8.com.google.common.collect.ForwardingMapEntry.standardEquals(java.lang.Object):98:98 -> equals
    5:5:boolean equals(java.lang.Object):412 -> equals
    6:6:java.util.Map$Entry delegate():401:401 -> equals
    6:6:java.lang.Object com.android.tools.r8.com.google.common.collect.ForwardingMapEntry.getValue():69 -> equals
    6:6:boolean com.android.tools.r8.com.google.common.collect.ForwardingMapEntry.standardEquals(java.lang.Object):99 -> equals
    6:6:boolean equals(java.lang.Object):412 -> equals
    7:7:java.lang.Object com.android.tools.r8.com.google.common.collect.ForwardingMapEntry.getValue():69:69 -> equals
    7:7:boolean com.android.tools.r8.com.google.common.collect.ForwardingMapEntry.standardEquals(java.lang.Object):99 -> equals
    7:7:boolean equals(java.lang.Object):412 -> equals
    8:8:boolean com.android.tools.r8.com.google.common.collect.ForwardingMapEntry.standardEquals(java.lang.Object):99:99 -> equals
    8:8:boolean equals(java.lang.Object):412 -> equals
    1:1:java.util.Map$Entry delegate():401:401 -> g
    1:1:java.lang.Object delegate():398 -> g
    1:1:java.util.Map$Entry delegate():401:401 -> setValue
    1:1:java.lang.Object com.android.tools.r8.com.google.common.collect.ForwardingMapEntry.setValue(java.lang.Object):74 -> setValue
    1:1:java.lang.Object setValue(java.lang.Object):406 -> setValue
    2:2:java.lang.Object com.android.tools.r8.com.google.common.collect.ForwardingMapEntry.setValue(java.lang.Object):74:74 -> setValue
    2:2:java.lang.Object setValue(java.lang.Object):406 -> setValue
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> setValue
    3:3:java.lang.Object setValue(java.lang.Object):406 -> setValue
com.android.tools.r8.com.google.common.collect.StandardTable$RowMap -> com.android.tools.r8.a.a.a.b.Mc$c:
    com.android.tools.r8.com.google.common.collect.StandardTable this$0 -> b
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.StandardTable):775:775 -> <init>
    1:1:boolean containsKey(java.lang.Object):778:778 -> containsKey
    1:1:java.util.Map get(java.lang.Object):785:785 -> get
    1:1:java.lang.Object get(java.lang.Object):774 -> get
    1:1:java.util.Set createEntrySet():795:795 -> h
    1:1:java.util.Map remove(java.lang.Object):790:790 -> remove
    1:1:java.lang.Object remove(java.lang.Object):774 -> remove
com.android.tools.r8.com.google.common.collect.StandardTable$RowMap$EntrySet -> com.android.tools.r8.a.a.a.b.Mc$c$a:
    com.android.tools.r8.com.google.common.collect.StandardTable$RowMap this$1 -> b
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.StandardTable$RowMap):799:799 -> <init>
    1:5:boolean contains(java.lang.Object):819:823 -> contains
    1:2:java.util.Iterator iterator():802:803 -> iterator
    3:3:java.util.Iterator com.android.tools.r8.com.google.common.collect.Maps.asMapEntryIterator(java.util.Set,com.android.tools.r8.com.google.common.base.Function):993:993 -> iterator
    3:3:java.util.Iterator iterator():802 -> iterator
    1:5:boolean remove(java.lang.Object):830:834 -> remove
    1:1:int size():814:814 -> size
com.android.tools.r8.com.google.common.collect.StandardTable$RowMap$EntrySet$1 -> com.android.tools.r8.a.a.a.b.Pc:
    com.android.tools.r8.com.google.common.collect.StandardTable$RowMap$EntrySet this$2 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.StandardTable$RowMap$EntrySet):804:804 -> <init>
    1:1:java.util.Map apply(java.lang.Object):807:807 -> apply
    1:1:java.lang.Object apply(java.lang.Object):804 -> apply
com.android.tools.r8.com.google.common.collect.StandardTable$TableSet -> com.android.tools.r8.a.a.a.b.Mc$d:
    com.android.tools.r8.com.google.common.collect.StandardTable this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.StandardTable):207:207 -> <init>
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.StandardTable,com.android.tools.r8.com.google.common.collect.StandardTable$1):207 -> <init>
    1:1:void clear():215:215 -> clear
    1:1:boolean isEmpty():210:210 -> isEmpty
com.android.tools.r8.com.google.common.collect.Streams$1Splitr -> com.android.tools.r8.a.a.a.b.Qc:
    com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex val$function -> d
    java.lang.Object holder -> c
    1:2:void <init>(java.util.Spliterator,long,com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex):369:370 -> <init>
    1:1:void accept(java.lang.Object):375:375 -> accept
    1:6:boolean tryAdvance(java.util.function.Consumer):380:385 -> tryAdvance
com.android.tools.r8.com.google.common.collect.Streams$2 -> com.android.tools.r8.a.a.a.b.Rc:
    java.util.Iterator val$fromIterator -> b
    long index -> a
    com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex val$function -> c
    1:2:void <init>(long,int,java.util.Iterator,com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex):352:353 -> <init>
    1:2:boolean tryAdvance(java.util.function.Consumer):357:358 -> tryAdvance
com.android.tools.r8.com.google.common.collect.Streams$FunctionWithIndex -> com.android.tools.r8.a.a.a.b.Sc:
    java.lang.Object apply(java.lang.Object,long) -> a
com.android.tools.r8.com.google.common.collect.Streams$MapWithIndexSpliterator -> com.android.tools.r8.a.a.a.b.Tc:
    long index -> b
    java.util.Spliterator fromSpliterator -> a
    1:3:void <init>(java.util.Spliterator,long):419:421 -> <init>
    1:1:int characteristics():445:445 -> characteristics
    1:1:long estimateSize():440:440 -> estimateSize
    1:5:com.android.tools.r8.com.google.common.collect.Streams$MapWithIndexSpliterator trySplit():429:433 -> trySplit
    1:5:java.util.Spliterator trySplit():413 -> trySplit
    6:6:com.android.tools.r8.com.google.common.collect.Streams$1Splitr com.android.tools.r8.com.google.common.collect.Streams$1Splitr.createSplit(java.util.Spliterator,long):393:393 -> trySplit
    6:6:com.android.tools.r8.com.google.common.collect.Streams$MapWithIndexSpliterator com.android.tools.r8.com.google.common.collect.Streams$1Splitr.createSplit(java.util.Spliterator,long):366 -> trySplit
    6:6:com.android.tools.r8.com.google.common.collect.Streams$MapWithIndexSpliterator trySplit():433 -> trySplit
    6:6:java.util.Spliterator trySplit():413 -> trySplit
    7:7:com.android.tools.r8.com.google.common.collect.Streams$MapWithIndexSpliterator trySplit():434:434 -> trySplit
    7:7:java.util.Spliterator trySplit():413 -> trySplit
com.android.tools.r8.com.google.common.collect.Table -> com.android.tools.r8.a.a.a.b.Vc:
com.android.tools.r8.com.google.common.collect.Table$Cell -> com.android.tools.r8.a.a.a.b.Uc:
com.android.tools.r8.com.google.common.collect.Tables -> com.android.tools.r8.a.a.a.b.Zc:
    1:1:void <clinit>():697:697 -> <clinit>
    1:1:com.android.tools.r8.com.google.common.collect.Table$Cell immutableCell(java.lang.Object,java.lang.Object,java.lang.Object):152:152 -> a
    2:4:boolean equalsImpl(com.android.tools.r8.com.google.common.collect.Table,java.lang.Object):741:743 -> a
com.android.tools.r8.com.google.common.collect.Tables$1 -> com.android.tools.r8.a.a.a.b.Wc:
    1:1:void <init>():698:698 -> <init>
    1:1:java.lang.Object apply(java.lang.Object):698:698 -> apply
    2:2:java.util.Map apply(java.util.Map):701:701 -> apply
    2:2:java.lang.Object apply(java.lang.Object):698 -> apply
com.android.tools.r8.com.google.common.collect.Tables$AbstractCell -> com.android.tools.r8.a.a.a.b.Xc:
    1:1:void <init>():186:186 -> <init>
    1:5:boolean equals(java.lang.Object):193:197 -> equals
    1:1:int hashCode():204:204 -> hashCode
    2:2:int com.android.tools.r8.com.google.common.base.Objects.hashCode(java.lang.Object[]):76:76 -> hashCode
    2:2:int hashCode():204 -> hashCode
    1:1:java.lang.String toString():209:209 -> toString
com.android.tools.r8.com.google.common.collect.Tables$ImmutableCell -> com.android.tools.r8.a.a.a.b.Yc:
    java.lang.Object columnKey -> b
    java.lang.Object value -> c
    java.lang.Object rowKey -> a
    1:4:void <init>(java.lang.Object,java.lang.Object,java.lang.Object):160:163 -> <init>
    1:1:java.lang.Object getColumnKey():173:173 -> a
    1:1:java.lang.Object getRowKey():168:168 -> b
    1:1:java.lang.Object getValue():178:178 -> getValue
com.android.tools.r8.com.google.common.collect.TransformedIterator -> com.android.tools.r8.a.a.a.b._c:
    java.util.Iterator backingIterator -> a
    1:2:void <init>(java.util.Iterator):35:36 -> <init>
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    3:3:void <init>(java.util.Iterator):36 -> <init>
    java.lang.Object transform(java.lang.Object) -> a
    1:1:boolean hasNext():43:43 -> hasNext
    1:1:java.lang.Object next():48:48 -> next
    1:1:void remove():53:53 -> remove
com.android.tools.r8.com.google.common.collect.UnmodifiableIterator -> com.android.tools.r8.a.a.a.b.ad:
    1:1:void <init>():35:35 -> <init>
    1:1:void remove():46:46 -> remove
com.android.tools.r8.com.google.common.collect.UnmodifiableListIterator -> com.android.tools.r8.a.a.a.b.bd:
    1:1:void <init>():33:33 -> <init>
    1:1:void add(java.lang.Object):44:44 -> add
    1:1:void set(java.lang.Object):56:56 -> set
com.android.tools.r8.com.google.common.hash.AbstractHashFunction -> com.android.tools.r8.a.a.a.c.a:
    1:1:void <init>():28:28 -> <init>
    1:1:com.android.tools.r8.com.google.common.hash.HashCode hashString(java.lang.CharSequence,java.nio.charset.Charset):42:42 -> a
    2:2:com.android.tools.r8.com.google.common.hash.HashCode hashBytes(byte[],int,int):62:62 -> a
    3:5:com.android.tools.r8.com.google.common.hash.Hasher newHasher(int):73:75 -> a
    3:5:com.android.tools.r8.com.google.common.hash.HashCode hashBytes(byte[],int,int):63 -> a
    6:6:com.android.tools.r8.com.google.common.hash.HashCode hashBytes(byte[],int,int):63:63 -> a
com.android.tools.r8.com.google.common.hash.AbstractHasher -> com.android.tools.r8.a.a.a.c.b:
    1:1:void <init>():29:29 -> <init>
    com.android.tools.r8.com.google.common.hash.Hasher putBytes(byte[],int,int) -> a
    1:1:com.android.tools.r8.com.google.common.hash.Hasher putString(java.lang.CharSequence,java.nio.charset.Charset):55:55 -> a
    2:2:com.android.tools.r8.com.google.common.hash.Hasher putBytes(byte[]):60:60 -> a
com.android.tools.r8.com.google.common.hash.HashCode -> com.android.tools.r8.a.a.a.c.e:
    char[] hexDigits -> a
    1:1:void <clinit>():429:429 -> <clinit>
    1:1:void <init>():38:38 -> <init>
    byte[] asBytes() -> a
    boolean equalsSameBits(com.android.tools.r8.com.google.common.hash.HashCode) -> a
    1:1:com.android.tools.r8.com.google.common.hash.HashCode fromInt(int):119:119 -> a
    2:2:com.android.tools.r8.com.google.common.hash.HashCode fromBytesNoCopy(byte[]):256:256 -> a
    int asInt() -> b
    int bits() -> c
    1:1:byte[] getBytesInternal():103:103 -> d
    1:3:boolean equals(java.lang.Object):380:382 -> equals
    1:8:int hashCode():396:403 -> hashCode
    1:6:java.lang.String toString():421:426 -> toString
com.android.tools.r8.com.google.common.hash.HashCode$BytesHashCode -> com.android.tools.r8.a.a.a.c.c:
    byte[] bytes -> b
    1:2:void <init>(byte[]):262:263 -> <init>
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    3:3:void <init>(byte[]):263 -> <init>
    1:1:byte[] asBytes():273:273 -> a
    2:8:boolean equalsSameBits(com.android.tools.r8.com.google.common.hash.HashCode):320:326 -> a
    1:5:int asInt():278:282 -> b
    1:1:int bits():268:268 -> c
    1:1:byte[] getBytesInternal():313:313 -> d
com.android.tools.r8.com.google.common.hash.HashCode$IntHashCode -> com.android.tools.r8.a.a.a.c.d:
    int hash -> b
    1:2:void <init>(int):125:126 -> <init>
    1:1:byte[] asBytes():136:136 -> a
    2:2:boolean equalsSameBits(com.android.tools.r8.com.google.common.hash.HashCode):168:168 -> a
    1:1:int asInt():146:146 -> b
    int bits() -> c
com.android.tools.r8.com.google.common.hash.HashFunction -> com.android.tools.r8.a.a.a.c.f:
    com.android.tools.r8.com.google.common.hash.HashCode hashString(java.lang.CharSequence,java.nio.charset.Charset) -> a
    com.android.tools.r8.com.google.common.hash.Hasher newHasher() -> a
com.android.tools.r8.com.google.common.hash.Hasher -> com.android.tools.r8.a.a.a.c.g:
    com.android.tools.r8.com.google.common.hash.HashCode hash() -> a
    com.android.tools.r8.com.google.common.hash.Hasher putBytes(byte[],int,int) -> a
    com.android.tools.r8.com.google.common.hash.Hasher putInt(int) -> a
    com.android.tools.r8.com.google.common.hash.Hasher putString(java.lang.CharSequence,java.nio.charset.Charset) -> a
com.android.tools.r8.com.google.common.hash.Hashing -> com.android.tools.r8.a.a.a.c.i:
    int GOOD_FAST_HASH_SEED -> a
    1:1:void <clinit>():90:90 -> <clinit>
    1:1:com.android.tools.r8.com.google.common.hash.HashFunction murmur3_32():111:111 -> a
    1:1:com.android.tools.r8.com.google.common.hash.HashFunction sha256():200:200 -> b
com.android.tools.r8.com.google.common.hash.Hashing$Sha256Holder -> com.android.tools.r8.a.a.a.c.h:
    com.android.tools.r8.com.google.common.hash.HashFunction SHA_256 -> a
    1:1:void <clinit>():204:204 -> <clinit>
com.android.tools.r8.com.google.common.hash.MessageDigestHashFunction -> com.android.tools.r8.a.a.a.c.l:
    java.security.MessageDigest prototype -> a
    int bytes -> b
    boolean supportsClone -> c
    java.lang.String toString -> d
    1:1:void <init>(java.lang.String,java.lang.String):39:39 -> <init>
    2:2:java.security.MessageDigest getMessageDigest(java.lang.String):77:77 -> <init>
    2:2:void <init>(java.lang.String,java.lang.String):40 -> <init>
    3:6:void <init>(java.lang.String,java.lang.String):40:43 -> <init>
    7:7:boolean supportsClone(java.security.MessageDigest):58:58 -> <init>
    7:7:void <init>(java.lang.String,java.lang.String):43 -> <init>
    8:8:void <init>(java.lang.String,java.lang.String):43:43 -> <init>
    9:9:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    9:9:void <init>(java.lang.String,java.lang.String):42 -> <init>
    10:10:java.security.MessageDigest getMessageDigest(java.lang.String):79:79 -> <init>
    10:10:void <init>(java.lang.String,java.lang.String):40 -> <init>
    1:8:com.android.tools.r8.com.google.common.hash.Hasher newHasher():85:92 -> a
    9:9:java.security.MessageDigest getMessageDigest(java.lang.String):77:77 -> a
    9:9:com.android.tools.r8.com.google.common.hash.Hasher newHasher():92 -> a
    10:10:com.android.tools.r8.com.google.common.hash.Hasher newHasher():92:92 -> a
    11:11:java.security.MessageDigest getMessageDigest(java.lang.String):79:79 -> a
    11:11:com.android.tools.r8.com.google.common.hash.Hasher newHasher():92 -> a
    1:1:java.lang.String toString():72:72 -> toString
com.android.tools.r8.com.google.common.hash.MessageDigestHashFunction$1 -> com.android.tools.r8.a.a.a.c.j:
com.android.tools.r8.com.google.common.hash.MessageDigestHashFunction$MessageDigestHasher -> com.android.tools.r8.a.a.a.c.k:
    java.security.MessageDigest digest -> b
    java.nio.ByteBuffer com.android.tools.r8.com.google.common.hash.AbstractByteHasher.scratch -> a
    int bytes -> c
    boolean done -> d
    1:2:void com.android.tools.r8.com.google.common.hash.AbstractByteHasher.<init>():35:36 -> <init>
    1:2:void <init>(java.security.MessageDigest,int):125 -> <init>
    1:2:void <init>(java.security.MessageDigest,int,com.android.tools.r8.com.google.common.hash.MessageDigestHashFunction$1):120 -> <init>
    3:4:void <init>(java.security.MessageDigest,int):126:127 -> <init>
    3:4:void <init>(java.security.MessageDigest,int,com.android.tools.r8.com.google.common.hash.MessageDigestHashFunction$1):120 -> <init>
    1:1:void com.android.tools.r8.com.google.common.hash.AbstractByteHasher.update(byte[]):47:47 -> a
    1:1:void com.android.tools.r8.com.google.common.hash.AbstractByteHasher.update(byte[]):0 -> a
    1:1:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putBytes(byte[]):80 -> a
    1:1:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putBytes(byte[]):0 -> a
    2:3:void update(byte[],int,int):138:139 -> a
    2:3:void com.android.tools.r8.com.google.common.hash.AbstractByteHasher.update(byte[]):47 -> a
    2:3:void com.android.tools.r8.com.google.common.hash.AbstractByteHasher.update(byte[]):0 -> a
    2:3:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putBytes(byte[]):80 -> a
    2:3:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putBytes(byte[]):0 -> a
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    4:4:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putBytes(byte[]):79 -> a
    4:4:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putBytes(byte[]):0 -> a
    5:5:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putBytes(byte[],int,int):86:86 -> a
    5:5:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putBytes(byte[],int,int):0 -> a
    6:7:void update(byte[],int,int):138:139 -> a
    6:7:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putBytes(byte[],int,int):87 -> a
    6:7:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putBytes(byte[],int,int):0 -> a
    8:8:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putInt(int):117:117 -> a
    8:8:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putInt(int):0 -> a
    9:11:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.update(int):102:104 -> a
    9:11:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putInt(int):118 -> a
    9:11:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractByteHasher.putInt(int):0 -> a
    12:16:com.android.tools.r8.com.google.common.hash.HashCode hash():154:158 -> a
    1:2:void update(byte[],int,int):138:139 -> b
    3:3:void checkNotDone():149:149 -> b
    4:4:void com.android.tools.r8.com.google.common.base.Preconditions.checkState(boolean,java.lang.Object):459:459 -> b
    4:4:void checkNotDone():149 -> b
com.android.tools.r8.com.google.common.hash.Murmur3_32HashFunction -> com.android.tools.r8.a.a.a.c.n:
    com.android.tools.r8.com.google.common.hash.HashFunction MURMUR3_32 -> b
    int seed -> a
    1:3:void <clinit>():53:55 -> <clinit>
    1:2:void <init>(int):65:66 -> <init>
    1:1:int access$000(int):52:52 -> a
    2:2:int access$100(int,int):52:52 -> a
    3:3:int access$200(byte[],int):52:52 -> a
    4:4:long access$300(char):52:52 -> a
    5:5:com.android.tools.r8.com.google.common.hash.Hasher newHasher():76:76 -> a
    6:49:com.android.tools.r8.com.google.common.hash.HashCode hashString(java.lang.CharSequence,java.nio.charset.Charset):144:187 -> a
    50:50:com.android.tools.r8.com.google.common.hash.HashCode com.android.tools.r8.com.google.common.hash.AbstractHashFunction.hashBytes(byte[]):57:57 -> a
    50:50:com.android.tools.r8.com.google.common.hash.HashCode hashString(java.lang.CharSequence,java.nio.charset.Charset):187 -> a
    51:51:com.android.tools.r8.com.google.common.hash.HashCode hashString(java.lang.CharSequence,java.nio.charset.Charset):190:190 -> a
    52:78:com.android.tools.r8.com.google.common.hash.HashCode hashString(java.lang.CharSequence,java.nio.charset.Charset):180:206 -> a
    79:79:com.android.tools.r8.com.google.common.hash.HashCode com.android.tools.r8.com.google.common.hash.AbstractHashFunction.hashBytes(byte[]):57:57 -> a
    79:79:com.android.tools.r8.com.google.common.hash.HashCode hashString(java.lang.CharSequence,java.nio.charset.Charset):206 -> a
    80:93:com.android.tools.r8.com.google.common.hash.HashCode hashBytes(byte[],int,int):212:225 -> a
    1:1:long access$400(char):52:52 -> b
    2:2:long access$500(int):52:52 -> b
    3:3:com.android.tools.r8.com.google.common.hash.HashCode access$600(int,int):52:52 -> b
    4:4:int getIntLittleEndian(byte[],int):229:229 -> b
    long charToThreeUtf8Bytes(char) -> c
    long codePointToFourUtf8Bytes(int) -> c
    1:1:com.android.tools.r8.com.google.common.hash.HashCode fmix(int,int):254:254 -> c
    long charToTwoUtf8Bytes(char) -> d
    1:1:int mixK1(int):234:234 -> d
    2:2:int mixH1(int,int):241:241 -> d
    1:3:boolean equals(java.lang.Object):86:88 -> equals
    1:1:int hashCode():95:95 -> hashCode
    1:1:java.lang.String toString():81:81 -> toString
com.android.tools.r8.com.google.common.hash.Murmur3_32HashFunction$Murmur3_32Hasher -> com.android.tools.r8.a.a.a.c.m:
    long buffer -> b
    boolean isDone -> e
    int length -> d
    int shift -> c
    int h1 -> a
    1:4:void <init>(int):265:268 -> <init>
    1:8:void update(int,long):273:280 -> a
    9:15:com.android.tools.r8.com.google.common.hash.Hasher putBytes(byte[],int,int):292:298 -> a
    16:16:com.android.tools.r8.com.google.common.hash.Hasher putByte(byte):286:286 -> a
    16:16:com.android.tools.r8.com.google.common.hash.Hasher putBytes(byte[],int,int):298 -> a
    17:17:com.android.tools.r8.com.google.common.hash.Hasher putInt(int):319:319 -> a
    18:52:com.android.tools.r8.com.google.common.hash.Hasher putString(java.lang.CharSequence,java.nio.charset.Charset):339:373 -> a
    53:53:com.android.tools.r8.com.google.common.hash.Hasher putString(java.lang.CharSequence,java.nio.charset.Charset):364:364 -> a
    54:54:com.android.tools.r8.com.google.common.hash.Hasher com.android.tools.r8.com.google.common.hash.AbstractHasher.putString(java.lang.CharSequence,java.nio.charset.Charset):55:55 -> a
    54:54:com.android.tools.r8.com.google.common.hash.Hasher putString(java.lang.CharSequence,java.nio.charset.Charset):378 -> a
    55:58:com.android.tools.r8.com.google.common.hash.HashCode hash():384:387 -> a
com.android.tools.r8.com.google.common.io.BaseEncoding -> com.android.tools.r8.a.a.a.d.e:
    com.android.tools.r8.com.google.common.io.BaseEncoding BASE64_URL -> a
    1:45:void <clinit>():315:359 -> <clinit>
    46:46:void com.android.tools.r8.com.google.common.io.BaseEncoding$StandardBaseEncoding.<init>(java.lang.String,java.lang.String,java.lang.Character):563:563 -> <clinit>
    46:46:void <clinit>():359 -> <clinit>
    47:48:void <clinit>():377:378 -> <clinit>
    49:49:void com.android.tools.r8.com.google.common.io.BaseEncoding$StandardBaseEncoding.<init>(java.lang.String,java.lang.String,java.lang.Character):563:563 -> <clinit>
    49:49:void <clinit>():378 -> <clinit>
    50:50:void <clinit>():396:396 -> <clinit>
    1:1:void <init>():122:122 -> <init>
    void encodeTo(java.lang.Appendable,byte[],int,int) -> a
    1:1:java.lang.String encode(byte[]):144:144 -> a
    2:3:java.lang.String encode(byte[],int,int):152:153 -> a
    2:3:java.lang.String encode(byte[]):144 -> a
    4:4:int com.android.tools.r8.com.google.common.io.BaseEncoding$StandardBaseEncoding.maxEncodedSize(int):582:582 -> a
    4:4:java.lang.String encode(byte[],int,int):153 -> a
    4:4:java.lang.String encode(byte[]):144 -> a
    5:11:java.lang.String encode(byte[],int,int):153:159 -> a
    5:11:java.lang.String encode(byte[]):144 -> a
    12:12:java.lang.String encode(byte[],int,int):157:157 -> a
    12:12:java.lang.String encode(byte[]):144 -> a
    13:13:com.android.tools.r8.com.google.common.io.BaseEncoding base64Url():355:355 -> a
    com.android.tools.r8.com.google.common.io.BaseEncoding omitPadding() -> b
com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet -> com.android.tools.r8.a.a.a.d.a:
    char[] chars -> b
    int bytesPerChunk -> f
    byte[] decodabet -> g
    java.lang.String name -> a
    int bitsPerChar -> d
    int charsPerChunk -> e
    int mask -> c
    1:36:void <init>(java.lang.String,char[]):426:461 -> <init>
    37:37:void <init>(java.lang.String,char[]):444:444 -> <init>
    38:38:void <init>(java.lang.String,char[]):432:432 -> <init>
    39:39:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    39:39:void <init>(java.lang.String,char[]):428 -> <init>
    40:40:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    40:40:void <init>(java.lang.String,char[]):427 -> <init>
    1:1:char[] access$000(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet):415:415 -> a
    2:2:char encode(int):467:467 -> a
    3:3:boolean matches(char):533:533 -> a
    1:3:boolean equals(java.lang.Object):543:545 -> equals
    1:1:int hashCode():552:552 -> hashCode
    1:1:java.lang.String toString():538:538 -> toString
com.android.tools.r8.com.google.common.io.BaseEncoding$Base16Encoding -> com.android.tools.r8.a.a.a.d.b:
    char[] encoding -> d
    1:1:void <init>(java.lang.String,java.lang.String):847:847 -> <init>
    2:2:void <init>(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet):851:851 -> <init>
    3:14:void <init>(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet):844:855 -> <init>
    1:5:void encodeTo(java.lang.Appendable,byte[],int,int):862:866 -> a
    6:6:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    6:6:void encodeTo(java.lang.Appendable,byte[],int,int):861 -> a
    7:7:com.android.tools.r8.com.google.common.io.BaseEncoding newInstance(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet,java.lang.Character):886:886 -> a
com.android.tools.r8.com.google.common.io.BaseEncoding$Base64Encoding -> com.android.tools.r8.a.a.a.d.c:
    1:1:void <init>(java.lang.String,java.lang.String,java.lang.Character):892:892 -> <init>
    2:3:void <init>(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet,java.lang.Character):896:897 -> <init>
    1:11:void encodeTo(java.lang.Appendable,byte[],int,int):903:913 -> a
    12:12:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    12:12:void encodeTo(java.lang.Appendable,byte[],int,int):902 -> a
    13:13:com.android.tools.r8.com.google.common.io.BaseEncoding newInstance(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet,java.lang.Character):943:943 -> a
com.android.tools.r8.com.google.common.io.BaseEncoding$StandardBaseEncoding -> com.android.tools.r8.a.a.a.d.d:
    java.lang.Character paddingChar -> c
    com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet alphabet -> b
    1:4:void <init>(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet,java.lang.Character):566:569 -> <init>
    5:9:void <init>(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet,java.lang.Character):568:572 -> <init>
    10:10:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    10:10:void <init>(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet,java.lang.Character):567 -> <init>
    1:3:void encodeTo(java.lang.Appendable,byte[],int,int):633:635 -> a
    4:4:void encodeTo(java.lang.Appendable,byte[],int,int):634:634 -> a
    5:5:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    5:5:void encodeTo(java.lang.Appendable,byte[],int,int):632 -> a
    6:6:com.android.tools.r8.com.google.common.io.BaseEncoding newInstance(com.android.tools.r8.com.google.common.io.BaseEncoding$Alphabet,java.lang.Character):810:810 -> a
    1:19:void encodeChunkTo(java.lang.Appendable,byte[],int,int):641:659 -> b
    20:20:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> b
    20:20:void encodeChunkTo(java.lang.Appendable,byte[],int,int):640 -> b
    21:21:com.android.tools.r8.com.google.common.io.BaseEncoding omitPadding():762:762 -> b
    1:4:boolean equals(java.lang.Object):829:832 -> equals
    1:1:int hashCode():839:839 -> hashCode
    2:2:int com.android.tools.r8.com.google.common.base.Objects.hashCode(java.lang.Object[]):76:76 -> hashCode
    2:2:int hashCode():839 -> hashCode
    1:10:java.lang.String toString():815:824 -> toString
com.android.tools.r8.com.google.common.io.ByteSink -> com.android.tools.r8.a.a.a.d.h:
    1:1:void <init>():53:53 -> <init>
    java.io.OutputStream openStream() -> a
com.android.tools.r8.com.google.common.io.ByteSink$1 -> com.android.tools.r8.a.a.a.d.f:
com.android.tools.r8.com.google.common.io.ByteSink$AsCharSink -> com.android.tools.r8.a.a.a.d.g:
    com.android.tools.r8.com.google.common.io.ByteSink this$0 -> b
    java.nio.charset.Charset charset -> a
    1:2:void <init>(com.android.tools.r8.com.google.common.io.ByteSink,java.nio.charset.Charset):144:145 -> <init>
    1:2:void <init>(com.android.tools.r8.com.google.common.io.ByteSink,java.nio.charset.Charset,com.android.tools.r8.com.google.common.io.ByteSink$1):140 -> <init>
    3:3:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    3:3:void <init>(com.android.tools.r8.com.google.common.io.ByteSink,java.nio.charset.Charset):145 -> <init>
    3:3:void <init>(com.android.tools.r8.com.google.common.io.ByteSink,java.nio.charset.Charset,com.android.tools.r8.com.google.common.io.ByteSink$1):140 -> <init>
    1:1:java.io.Writer openStream():150:150 -> a
    1:1:java.lang.String toString():155:155 -> toString
com.android.tools.r8.com.google.common.io.ByteStreams -> com.android.tools.r8.a.a.a.d.j:
    java.io.OutputStream NULL_OUTPUT_STREAM -> a
    1:1:void <clinit>():594:594 -> <clinit>
    1:1:byte[] createBuffer():56:56 -> a
    1:1:long copy(java.io.InputStream,java.io.OutputStream):103 -> a
    2:6:long copy(java.io.InputStream,java.io.OutputStream):106:110 -> a
    7:7:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    7:7:long copy(java.io.InputStream,java.io.OutputStream):102 -> a
    8:8:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    8:8:long copy(java.io.InputStream,java.io.OutputStream):101 -> a
    9:11:byte[] toByteArray(java.io.InputStream):165:167 -> a
    12:12:java.io.OutputStream nullOutputStream():624:624 -> a
com.android.tools.r8.com.google.common.io.ByteStreams$1 -> com.android.tools.r8.a.a.a.d.i:
    1:1:void <init>():595:595 -> <init>
    1:1:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> write
    1:1:void write(byte[]):603 -> write
    2:2:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> write
    2:2:void write(byte[],int,int):609 -> write
com.android.tools.r8.com.google.common.io.CharSink -> com.android.tools.r8.a.a.a.d.k:
    1:1:void <init>():58:58 -> <init>
    java.io.Writer openStream() -> a
com.android.tools.r8.com.google.common.io.Closeables -> com.android.tools.r8.a.a.a.d.l:
    java.util.logging.Logger logger -> a
    1:1:void <clinit>():37:37 -> <clinit>
com.android.tools.r8.com.google.common.io.Closer -> com.android.tools.r8.a.a.a.d.p:
    com.android.tools.r8.com.google.common.io.Closer$Suppressor suppressor -> a
    java.util.Deque stack -> b
    java.lang.Throwable thrown -> c
    com.android.tools.r8.com.google.common.io.Closer$Suppressor SUPPRESSOR -> d
    1:1:boolean com.android.tools.r8.com.google.common.io.Closer$SuppressingSuppressor.isAvailable():271:271 -> <clinit>
    1:1:void <clinit>():96 -> <clinit>
    2:2:void <clinit>():96:96 -> <clinit>
    1:1:void <init>(com.android.tools.r8.com.google.common.io.Closer$Suppressor):114:114 -> <init>
    2:7:void <init>(com.android.tools.r8.com.google.common.io.Closer$Suppressor):110:115 -> <init>
    8:8:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    8:8:void <init>(com.android.tools.r8.com.google.common.io.Closer$Suppressor):115 -> <init>
    1:1:com.android.tools.r8.com.google.common.io.Closer create():104:104 -> a
    2:2:java.io.Closeable register(java.io.Closeable):128:128 -> a
    3:5:java.lang.RuntimeException rethrow(java.lang.Throwable):149:151 -> a
    6:6:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    6:6:java.lang.RuntimeException rethrow(java.lang.Throwable):148 -> a
    1:19:void close():210:228 -> close
com.android.tools.r8.com.google.common.io.Closer$LoggingSuppressor -> com.android.tools.r8.a.a.a.d.m:
    com.android.tools.r8.com.google.common.io.Closer$LoggingSuppressor INSTANCE -> a
    1:1:void <clinit>():251:251 -> <clinit>
    1:1:void <init>():249:249 -> <init>
    1:1:void suppress(java.io.Closeable,java.lang.Throwable,java.lang.Throwable):256:256 -> a
com.android.tools.r8.com.google.common.io.Closer$SuppressingSuppressor -> com.android.tools.r8.a.a.a.d.n:
    com.android.tools.r8.com.google.common.io.Closer$SuppressingSuppressor INSTANCE -> a
    java.lang.reflect.Method addSuppressed -> b
    1:1:void <clinit>():268:268 -> <clinit>
    2:2:java.lang.reflect.Method getAddSuppressed():278:278 -> <clinit>
    2:2:void <clinit>():274 -> <clinit>
    3:3:void <clinit>():274:274 -> <clinit>
    1:1:void <init>():266:266 -> <init>
    1:1:void suppress(java.io.Closeable,java.lang.Throwable,java.lang.Throwable):291:291 -> a
    2:2:void com.android.tools.r8.com.google.common.io.Closer$LoggingSuppressor.suppress(java.io.Closeable,java.lang.Throwable,java.lang.Throwable):256:256 -> a
    2:2:void suppress(java.io.Closeable,java.lang.Throwable,java.lang.Throwable):294 -> a
com.android.tools.r8.com.google.common.io.Closer$Suppressor -> com.android.tools.r8.a.a.a.d.o:
    void suppress(java.io.Closeable,java.lang.Throwable,java.lang.Throwable) -> a
com.android.tools.r8.com.google.common.io.FileWriteMode -> com.android.tools.r8.a.a.a.d.q:
    com.android.tools.r8.com.google.common.io.FileWriteMode APPEND -> a
    1:1:void <clinit>():28:28 -> <clinit>
    2:2:void <clinit>():25:25 -> <clinit>
    1:1:void <init>(java.lang.String,int):26:26 -> <init>
com.android.tools.r8.com.google.common.io.Files -> com.android.tools.r8.a.a.a.d.t:
    1:1:com.android.tools.r8.com.google.common.io.ByteSink asByteSink(java.io.File,com.android.tools.r8.com.google.common.io.FileWriteMode[]):199:199 -> a
    1:1:com.android.tools.r8.com.google.common.io.CharSink asCharSink(java.io.File,java.nio.charset.Charset,com.android.tools.r8.com.google.common.io.FileWriteMode[]):242 -> a
    2:2:com.android.tools.r8.com.google.common.io.CharSink com.android.tools.r8.com.google.common.io.ByteSink.asCharSink(java.nio.charset.Charset):60:60 -> a
    2:2:com.android.tools.r8.com.google.common.io.CharSink asCharSink(java.io.File,java.nio.charset.Charset,com.android.tools.r8.com.google.common.io.FileWriteMode[]):242 -> a
com.android.tools.r8.com.google.common.io.Files$1 -> com.android.tools.r8.a.a.a.d.r:
com.android.tools.r8.com.google.common.io.Files$FileByteSink -> com.android.tools.r8.a.a.a.d.s:
    java.io.File file -> a
    com.android.tools.r8.com.google.common.collect.ImmutableSet modes -> b
    1:3:void <init>(java.io.File,com.android.tools.r8.com.google.common.io.FileWriteMode[]):207:209 -> <init>
    1:3:void <init>(java.io.File,com.android.tools.r8.com.google.common.io.FileWriteMode[],com.android.tools.r8.com.google.common.io.Files$1):202 -> <init>
    4:4:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> <init>
    4:4:void <init>(java.io.File,com.android.tools.r8.com.google.common.io.FileWriteMode[]):208 -> <init>
    4:4:void <init>(java.io.File,com.android.tools.r8.com.google.common.io.FileWriteMode[],com.android.tools.r8.com.google.common.io.Files$1):202 -> <init>
    1:1:java.io.FileOutputStream openStream():214:214 -> a
    1:1:java.io.OutputStream openStream():202 -> a
    1:1:java.lang.String toString():219:219 -> toString
com.android.tools.r8.com.google.common.io.LineProcessor -> com.android.tools.r8.a.a.a.d.u:
com.android.tools.r8.com.google.common.math.IntMath -> com.android.tools.r8.a.a.a.e.b:
    int[] biggestBinomials -> a
    1:474:void <clinit>():202:675 -> <clinit>
    1:24:int log2(int,java.math.RoundingMode):121:144 -> a
    25:25:int log2(int,java.math.RoundingMode):137:137 -> a
    26:26:int log2(int,java.math.RoundingMode):131:131 -> a
    27:27:int log2(int,java.math.RoundingMode):127:127 -> a
    28:28:void com.android.tools.r8.com.google.common.math.MathPreconditions.checkRoundingUnnecessary(boolean):81:81 -> a
    28:28:int log2(int,java.math.RoundingMode):123 -> a
    29:29:int com.android.tools.r8.com.google.common.math.MathPreconditions.checkPositive(java.lang.String,int):32:32 -> a
    29:29:int log2(int,java.math.RoundingMode):120 -> a
    30:76:int divide(int,int,java.math.RoundingMode):322:368 -> a
    77:82:int divide(int,int,java.math.RoundingMode):357:362 -> a
    83:83:void com.android.tools.r8.com.google.common.math.MathPreconditions.checkRoundingUnnecessary(boolean):81:81 -> a
    83:83:int divide(int,int,java.math.RoundingMode):340 -> a
    84:84:int divide(int,int,java.math.RoundingMode):320:320 -> a
    85:85:java.lang.Object com.android.tools.r8.com.google.common.base.Preconditions.checkNotNull(java.lang.Object):787:787 -> a
    85:85:int divide(int,int,java.math.RoundingMode):318 -> a
    86:104:int binomial(int,int):649:667 -> a
com.android.tools.r8.com.google.common.math.IntMath$1 -> com.android.tools.r8.a.a.a.e.a:
    int[] $SwitchMap$java$math$RoundingMode -> a
    1:1:void <clinit>():121:121 -> <clinit>
com.android.tools.r8.com.google.common.math.LongMath -> com.android.tools.r8.a.a.a.e.c:
    1:839:void <clinit>():205:1043 -> <clinit>
    long saturatedAdd(long,long) -> a
com.android.tools.r8.com.google.common.math.MathPreconditions -> com.android.tools.r8.a.a.a.e.d:
    1:1:int checkNonNegative(java.lang.String,int):53:53 -> a
com.android.tools.r8.com.google.gson.JsonArray -> com.android.tools.r8.a.a.b.a:
    java.util.List elements -> a
    1:2:void <init>():39:40 -> <init>
    1:3:void add(com.android.tools.r8.com.google.gson.JsonElement):95:97 -> a
    1:4:long getAsLong():294:297 -> e
    1:1:boolean equals(java.lang.Object):366:366 -> equals
    1:4:java.lang.String getAsString():212:215 -> g
    1:1:int hashCode():371:371 -> hashCode
    1:1:java.util.Iterator iterator():171:171 -> iterator
com.android.tools.r8.com.google.gson.JsonElement -> com.android.tools.r8.a.a.b.b:
    1:1:void <init>():33:33 -> <init>
    1:1:boolean isJsonObject():55:55 -> c
    1:1:com.android.tools.r8.com.google.gson.JsonObject getAsJsonObject():87 -> c
    2:4:com.android.tools.r8.com.google.gson.JsonObject getAsJsonObject():88:90 -> c
    1:1:long getAsLong():230:230 -> e
    1:1:java.lang.String getAsString():191:191 -> g
    1:1:boolean isJsonNull():74:74 -> h
    1:1:boolean isJsonObject():55:55 -> i
    1:3:java.lang.String toString():321:323 -> toString
    4:4:void com.android.tools.r8.com.google.gson.internal.Streams.write(com.android.tools.r8.com.google.gson.JsonElement,com.android.tools.r8.com.google.gson.stream.JsonWriter):72:72 -> toString
    4:4:java.lang.String toString():324 -> toString
    5:7:java.lang.String toString():325:327 -> toString
com.android.tools.r8.com.google.gson.JsonIOException -> com.android.tools.r8.a.a.b.c:
    1:1:void <init>(java.lang.Throwable):43:43 -> <init>
com.android.tools.r8.com.google.gson.JsonNull -> com.android.tools.r8.a.a.b.d:
    com.android.tools.r8.com.google.gson.JsonNull INSTANCE -> a
    1:1:void <clinit>():32:32 -> <clinit>
    1:1:void <init>():39:39 -> <init>
    1:1:boolean equals(java.lang.Object):61:61 -> equals
    1:1:int hashCode():53:53 -> hashCode
com.android.tools.r8.com.google.gson.JsonObject -> com.android.tools.r8.a.a.b.e:
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap members -> a
    1:2:void <init>():32:33 -> <init>
    1:3:void add(java.lang.String,com.android.tools.r8.com.google.gson.JsonElement):55:57 -> a
    4:4:com.android.tools.r8.com.google.gson.JsonElement createJsonElement(java.lang.Object):122:122 -> a
    4:4:void addProperty(java.lang.String,java.lang.Number):90 -> a
    5:5:void addProperty(java.lang.String,java.lang.Number):90:90 -> a
    6:6:com.android.tools.r8.com.google.gson.JsonElement createJsonElement(java.lang.Object):122:122 -> a
    6:6:void addProperty(java.lang.String,java.lang.String):79 -> a
    7:7:void addProperty(java.lang.String,java.lang.String):79:79 -> a
    8:8:boolean has(java.lang.String):151:151 -> a
    1:1:java.util.Set entrySet():132:132 -> entrySet
    1:2:boolean equals(java.lang.Object):196:197 -> equals
    1:1:com.android.tools.r8.com.google.gson.JsonElement get(java.lang.String):161:161 -> get
    1:1:int hashCode():202:202 -> hashCode
com.android.tools.r8.com.google.gson.JsonParseException -> com.android.tools.r8.a.a.b.f:
    1:1:void <init>(java.lang.String):42:42 -> <init>
    2:2:void <init>(java.lang.String,java.lang.Throwable):52:52 -> <init>
    3:3:void <init>(java.lang.Throwable):62:62 -> <init>
com.android.tools.r8.com.google.gson.JsonParser -> com.android.tools.r8.a.a.b.g:
    1:1:void <init>():34:34 -> <init>
    1:1:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45:45 -> a
    2:13:com.android.tools.r8.com.google.gson.JsonElement parse(java.io.Reader):58:69 -> a
    2:13:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45 -> a
    14:14:com.android.tools.r8.com.google.gson.JsonElement parse(java.io.Reader):67:67 -> a
    14:14:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45 -> a
    15:15:com.android.tools.r8.com.google.gson.JsonElement parse(java.io.Reader):65:65 -> a
    15:15:com.android.tools.r8.com.google.gson.JsonElement parse(java.lang.String):45 -> a
    16:25:com.android.tools.r8.com.google.gson.JsonElement parse(com.android.tools.r8.com.google.gson.stream.JsonReader):81:90 -> a
    26:26:com.android.tools.r8.com.google.gson.JsonElement parse(com.android.tools.r8.com.google.gson.stream.JsonReader):88:88 -> a
    27:31:com.android.tools.r8.com.google.gson.JsonElement parse(com.android.tools.r8.com.google.gson.stream.JsonReader):86:90 -> a
com.android.tools.r8.com.google.gson.JsonPrimitive -> com.android.tools.r8.a.a.b.h:
    java.lang.Class[] PRIMITIVE_TYPES -> b
    java.lang.Object value -> a
    1:1:void <clinit>():35:35 -> <clinit>
    1:2:void <init>(java.lang.Boolean):46:47 -> <init>
    3:4:void <init>(java.lang.Number):55:56 -> <init>
    5:6:void <init>(java.lang.String):64:65 -> <init>
    7:8:void <init>(java.lang.Object):84:85 -> <init>
    1:7:void setValue(java.lang.Object):94:100 -> a
    8:14:boolean isPrimitiveOrString(java.lang.Object):274:280 -> a
    8:14:void setValue(java.lang.Object):101 -> a
    15:15:void setValue(java.lang.Object):102:102 -> a
    16:16:void com.android.tools.r8.com.google.gson.internal.$Gson$Preconditions.checkArgument(boolean):46:46 -> a
    16:16:void setValue(java.lang.Object):100 -> a
    17:19:boolean isIntegral(com.android.tools.r8.com.google.gson.JsonPrimitive):334:336 -> a
    1:1:long getAsLong():238:238 -> e
    1:18:boolean equals(java.lang.Object):309:326 -> equals
    1:3:java.lang.String getAsString():176:178 -> g
    4:4:java.lang.Boolean getAsBooleanWrapper():122:122 -> g
    4:4:java.lang.String getAsString():179 -> g
    5:7:java.lang.String getAsString():179:181 -> g
    1:13:int hashCode():289:301 -> hashCode
    1:1:boolean getAsBoolean():132:132 -> j
    2:2:java.lang.Boolean getAsBooleanWrapper():122:122 -> j
    2:2:boolean getAsBoolean():133 -> j
    3:6:boolean getAsBoolean():133:136 -> j
    1:1:java.lang.Number getAsNumber():157:157 -> k
    1:1:boolean isBoolean():112:112 -> l
    1:1:boolean isNumber():146:146 -> m
com.android.tools.r8.com.google.gson.JsonSyntaxException -> com.android.tools.r8.a.a.b.i:
    1:1:void <init>(java.lang.String):30:30 -> <init>
    2:2:void <init>(java.lang.Throwable):45:45 -> <init>
com.android.tools.r8.com.google.gson.TypeAdapter -> com.android.tools.r8.a.a.b.k:
    1:1:void <init>():119:119 -> <init>
    java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader) -> a
    void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object) -> a
    1:1:com.android.tools.r8.com.google.gson.TypeAdapter nullSafe():186:186 -> a
com.android.tools.r8.com.google.gson.TypeAdapter$1 -> com.android.tools.r8.a.a.b.j:
    com.android.tools.r8.com.google.gson.TypeAdapter this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.gson.TypeAdapter):186:186 -> <init>
    1:3:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):189:191 -> a
    4:8:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):195:199 -> a
com.android.tools.r8.com.google.gson.TypeAdapterFactory -> com.android.tools.r8.a.a.b.l:
com.android.tools.r8.com.google.gson.internal.LazilyParsedNumber -> com.android.tools.r8.a.a.b.a.a:
    java.lang.String value -> a
    1:2:void <init>(java.lang.String):30:31 -> <init>
    1:1:double doubleValue():63:63 -> doubleValue
    1:3:boolean equals(java.lang.Object):90:92 -> equals
    1:1:float floatValue():58:58 -> floatValue
    1:1:int hashCode():82:82 -> hashCode
    1:6:int intValue():37:42 -> intValue
    1:3:long longValue():50:52 -> longValue
    1:1:java.lang.String toString():68:68 -> toString
com.android.tools.r8.com.google.gson.internal.LinkedTreeMap -> com.android.tools.r8.a.a.b.a.d:
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node header -> e
    java.util.Comparator NATURAL_ORDER -> g
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node root -> b
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$EntrySet entrySet -> f
    int modCount -> d
    boolean $assertionsDisabled -> h
    int size -> c
    java.util.Comparator comparator -> a
    1:3:void <clinit>():38:40 -> <clinit>
    1:1:void <init>():60:60 -> <init>
    2:2:void <init>(java.util.Comparator):71:71 -> <init>
    3:27:void <init>(java.util.Comparator):48:72 -> <init>
    1:57:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node find(java.lang.Object,boolean):122:178 -> a
    58:58:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node findByObject(java.lang.Object):186:186 -> a
    59:60:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node findByEntry(java.util.Map$Entry):202:203 -> a
    61:61:boolean equal(java.lang.Object,java.lang.Object):208:208 -> a
    61:61:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node findByEntry(java.util.Map$Entry):203 -> a
    62:80:void removeInternal(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):219:237 -> a
    81:84:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node.last():517:520 -> a
    81:84:void removeInternal(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):237 -> a
    85:88:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node.first():504:507 -> a
    85:88:void removeInternal(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):237 -> a
    89:124:void removeInternal(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):238:273 -> a
    125:139:void replaceInParent(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node):285:299 -> a
    140:160:void rotateLeft(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node):374:394 -> a
    1:19:void rebalance(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):312:330 -> b
    20:42:void rebalance(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):326:348 -> b
    43:61:void rebalance(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):344:362 -> b
    62:62:void rebalance(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,boolean):311:311 -> b
    63:83:void rotateRight(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node):402:422 -> b
    1:7:void clear():101:107 -> clear
    1:1:boolean containsKey(java.lang.Object):87:87 -> containsKey
    1:2:java.util.Set entrySet():430:431 -> entrySet
    1:2:java.lang.Object get(java.lang.Object):82:83 -> get
    1:2:java.util.Set keySet():435:436 -> keySet
    1:3:java.lang.Object put(java.lang.Object,java.lang.Object):94:96 -> put
    4:4:java.lang.Object put(java.lang.Object,java.lang.Object):92:92 -> put
    1:3:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node removeInternalByKey(java.lang.Object):277:279 -> remove
    1:3:java.lang.Object remove(java.lang.Object):111 -> remove
    4:4:java.lang.Object remove(java.lang.Object):112:112 -> remove
    1:1:int size():78:78 -> size
com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$1 -> com.android.tools.r8.a.a.b.a.b:
    1:1:void <init>():40:40 -> <init>
    1:1:int compare(java.lang.Object,java.lang.Object):40:40 -> compare
    2:2:int compare(java.lang.Comparable,java.lang.Comparable):42:42 -> compare
    2:2:int compare(java.lang.Object,java.lang.Object):40 -> compare
com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$EntrySet -> com.android.tools.r8.a.a.b.a.d$a:
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap):560:560 -> <init>
    1:1:void clear():591:591 -> clear
    1:1:boolean contains(java.lang.Object):574:574 -> contains
    1:1:java.util.Iterator iterator():566:566 -> iterator
    1:9:boolean remove(java.lang.Object):578:586 -> remove
    1:1:int size():562:562 -> size
com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$EntrySet$1 -> com.android.tools.r8.a.a.b.a.c:
    1:1:void <init>(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$EntrySet):566:566 -> <init>
    1:1:java.util.Map$Entry next():568:568 -> next
    1:1:java.lang.Object next():566 -> next
com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$KeySet -> com.android.tools.r8.a.a.b.a.d$b:
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap):595:595 -> <init>
    1:1:void clear():617:617 -> clear
    1:1:boolean contains(java.lang.Object):609:609 -> contains
    1:1:java.util.Iterator iterator():601:601 -> iterator
    1:1:boolean remove(java.lang.Object):613:613 -> remove
    2:4:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node com.android.tools.r8.com.google.gson.internal.LinkedTreeMap.removeInternalByKey(java.lang.Object):277:279 -> remove
    2:4:boolean remove(java.lang.Object):613 -> remove
    1:1:int size():597:597 -> size
com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$KeySet$1 -> com.android.tools.r8.a.a.b.a.e:
    1:1:void <init>(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$KeySet):601:601 -> <init>
    1:1:java.lang.Object next():603:603 -> next
com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$LinkedTreeMapIterator -> com.android.tools.r8.a.a.b.a.d$c:
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap this$0 -> d
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node lastReturned -> b
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node next -> a
    int expectedModCount -> c
    1:1:void <init>(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap):531:531 -> <init>
    2:4:void <init>(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap):527:529 -> <init>
    1:9:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node nextNode():539:547 -> c
    10:10:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node nextNode():544:544 -> c
    11:11:com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node nextNode():541:541 -> c
    1:1:boolean hasNext():535:535 -> hasNext
    1:6:void remove():551:556 -> remove
    7:7:void remove():552:552 -> remove
com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node -> com.android.tools.r8.a.a.b.a.f:
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node next -> d
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node right -> c
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node prev -> e
    java.lang.Object key -> f
    java.lang.Object value -> g
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node left -> b
    int height -> h
    com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node parent -> a
    1:3:void <init>():450:452 -> <init>
    4:11:void <init>(com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,java.lang.Object,com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node,com.android.tools.r8.com.google.gson.internal.LinkedTreeMap$Node):456:463 -> <init>
    1:4:boolean equals(java.lang.Object):482:485 -> equals
    1:1:java.lang.Object getKey():467:467 -> getKey
    1:1:java.lang.Object getValue():471:471 -> getValue
    1:2:int hashCode():491:492 -> hashCode
    1:2:java.lang.Object setValue(java.lang.Object):475:476 -> setValue
    1:1:java.lang.String toString():496:496 -> toString
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters -> com.android.tools.r8.a.a.b.a.a.y:
    com.android.tools.r8.com.google.gson.TypeAdapter STRING -> l
    com.android.tools.r8.com.google.gson.TypeAdapter STRING_BUILDER -> m
    com.android.tools.r8.com.google.gson.TypeAdapter NUMBER -> j
    com.android.tools.r8.com.google.gson.TypeAdapter CHARACTER -> k
    com.android.tools.r8.com.google.gson.TypeAdapter URI -> p
    com.android.tools.r8.com.google.gson.TypeAdapter INET_ADDRESS -> q
    com.android.tools.r8.com.google.gson.TypeAdapter STRING_BUFFER -> n
    com.android.tools.r8.com.google.gson.TypeAdapter URL -> o
    com.android.tools.r8.com.google.gson.TypeAdapter BYTE -> d
    com.android.tools.r8.com.google.gson.TypeAdapter SHORT -> e
    com.android.tools.r8.com.google.gson.TypeAdapter BIT_SET -> b
    com.android.tools.r8.com.google.gson.TypeAdapter BOOLEAN -> c
    com.android.tools.r8.com.google.gson.TypeAdapter ATOMIC_BOOLEAN -> h
    com.android.tools.r8.com.google.gson.TypeAdapter ATOMIC_INTEGER_ARRAY -> i
    com.android.tools.r8.com.google.gson.TypeAdapter INTEGER -> f
    com.android.tools.r8.com.google.gson.TypeAdapter ATOMIC_INTEGER -> g
    com.android.tools.r8.com.google.gson.TypeAdapter CLASS -> a
    com.android.tools.r8.com.google.gson.TypeAdapter CALENDAR -> t
    com.android.tools.r8.com.google.gson.TypeAdapter LOCALE -> u
    com.android.tools.r8.com.google.gson.TypeAdapter UUID -> r
    com.android.tools.r8.com.google.gson.TypeAdapter CURRENCY -> s
    com.android.tools.r8.com.google.gson.TypeAdapter JSON_ELEMENT -> v
    1:646:void <clinit>():69:714 -> <clinit>
    1:1:com.android.tools.r8.com.google.gson.TypeAdapterFactory newFactory(java.lang.Class,com.android.tools.r8.com.google.gson.TypeAdapter):850:850 -> a
    2:2:com.android.tools.r8.com.google.gson.TypeAdapterFactory newFactory(java.lang.Class,java.lang.Class,com.android.tools.r8.com.google.gson.TypeAdapter):863:863 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$1 -> com.android.tools.r8.a.a.b.a.a.f:
    1:1:void <init>():69:69 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):69:69 -> a
    2:5:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Class):73:76 -> a
    2:5:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):69 -> a
    6:10:java.lang.Class read(com.android.tools.r8.com.google.gson.stream.JsonReader):81:85 -> a
    6:10:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):69 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$10 -> com.android.tools.r8.a.a.b.a.a.a:
    1:1:void <init>():282:282 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):282:282 -> a
    2:6:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.concurrent.atomic.AtomicIntegerArray):303:307 -> a
    2:6:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):282 -> a
    7:21:java.util.concurrent.atomic.AtomicIntegerArray read(com.android.tools.r8.com.google.gson.stream.JsonReader):284:298 -> a
    7:21:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):282 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$14 -> com.android.tools.r8.a.a.b.a.a.b:
    1:1:void <init>():362:362 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):362:362 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Number):378:378 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):362 -> a
    3:11:java.lang.Number read(com.android.tools.r8.com.google.gson.stream.JsonReader):365:373 -> a
    3:11:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):362 -> a
    12:12:java.lang.Number read(com.android.tools.r8.com.google.gson.stream.JsonReader):371:371 -> a
    12:12:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):362 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$15 -> com.android.tools.r8.a.a.b.a.a.c:
    1:1:void <init>():384:384 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):384:384 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Character):399:399 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):384 -> a
    3:11:java.lang.Character read(com.android.tools.r8.com.google.gson.stream.JsonReader):387:395 -> a
    3:11:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):384 -> a
    12:12:java.lang.Character read(com.android.tools.r8.com.google.gson.stream.JsonReader):393:393 -> a
    12:12:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):384 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$16 -> com.android.tools.r8.a.a.b.a.a.d:
    1:1:void <init>():406:406 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):406:406 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.String):422:422 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):406 -> a
    3:12:java.lang.String read(com.android.tools.r8.com.google.gson.stream.JsonReader):409:418 -> a
    3:12:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):406 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$19 -> com.android.tools.r8.a.a.b.a.a.e:
    1:1:void <init>():464:464 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):464:464 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.StringBuilder):475:475 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):464 -> a
    3:7:java.lang.StringBuilder read(com.android.tools.r8.com.google.gson.stream.JsonReader):467:471 -> a
    3:7:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):464 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$2 -> com.android.tools.r8.a.a.b.a.a.p:
    1:1:void <init>():92:92 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):92:92 -> a
    2:11:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.BitSet):136:145 -> a
    2:11:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):92 -> a
    12:40:java.util.BitSet read(com.android.tools.r8.com.google.gson.stream.JsonReader):94:122 -> a
    12:40:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):92 -> a
    41:41:java.util.BitSet read(com.android.tools.r8.com.google.gson.stream.JsonReader):110:110 -> a
    41:41:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):92 -> a
    42:63:java.util.BitSet read(com.android.tools.r8.com.google.gson.stream.JsonReader):107:128 -> a
    42:63:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):92 -> a
    64:77:java.util.BitSet read(com.android.tools.r8.com.google.gson.stream.JsonReader):117:130 -> a
    64:77:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):92 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$20 -> com.android.tools.r8.a.a.b.a.a.g:
    1:1:void <init>():482:482 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):482:482 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.StringBuffer):493:493 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):482 -> a
    3:7:java.lang.StringBuffer read(com.android.tools.r8.com.google.gson.stream.JsonReader):485:489 -> a
    3:7:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):482 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$21 -> com.android.tools.r8.a.a.b.a.a.h:
    1:1:void <init>():500:500 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):500:500 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.net.URL):512:512 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):500 -> a
    3:8:java.net.URL read(com.android.tools.r8.com.google.gson.stream.JsonReader):503:508 -> a
    3:8:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):500 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$22 -> com.android.tools.r8.a.a.b.a.a.i:
    1:1:void <init>():518:518 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):518:518 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.net.URI):534:534 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):518 -> a
    3:11:java.net.URI read(com.android.tools.r8.com.google.gson.stream.JsonReader):521:529 -> a
    3:11:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):518 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$23 -> com.android.tools.r8.a.a.b.a.a.j:
    1:1:void <init>():540:540 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):540:540 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.net.InetAddress):552:552 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):540 -> a
    3:8:java.net.InetAddress read(com.android.tools.r8.com.google.gson.stream.JsonReader):543:548 -> a
    3:8:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):540 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$24 -> com.android.tools.r8.a.a.b.a.a.k:
    1:1:void <init>():559:559 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):559:559 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.UUID):570:570 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):559 -> a
    3:7:java.util.UUID read(com.android.tools.r8.com.google.gson.stream.JsonReader):562:566 -> a
    3:7:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):559 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$25 -> com.android.tools.r8.a.a.b.a.a.l:
    1:1:void <init>():576:576 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):576:576 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.Currency):583:583 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):576 -> a
    3:3:java.util.Currency read(com.android.tools.r8.com.google.gson.stream.JsonReader):579:579 -> a
    3:3:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):576 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$27 -> com.android.tools.r8.a.a.b.a.a.m:
    1:1:void <init>():609:609 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):609:609 -> a
    2:18:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.Calendar):654:670 -> a
    2:18:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):609 -> a
    19:48:java.util.Calendar read(com.android.tools.r8.com.google.gson.stream.JsonReader):619:648 -> a
    19:48:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):609 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$28 -> com.android.tools.r8.a.a.b.a.a.n:
    1:1:void <init>():677:677 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):677:677 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.Locale):708:708 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):677 -> a
    3:26:java.util.Locale read(com.android.tools.r8.com.google.gson.stream.JsonReader):680:703 -> a
    3:26:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):677 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$29 -> com.android.tools.r8.a.a.b.a.a.o:
    1:1:void <init>():714:714 -> <init>
    1:1:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonNull():74:74 -> a
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):753 -> a
    2:2:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonPrimitive():64:64 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):755 -> a
    3:3:com.android.tools.r8.com.google.gson.JsonPrimitive com.android.tools.r8.com.google.gson.JsonElement.getAsJsonPrimitive():120:120 -> a
    3:3:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):756 -> a
    4:9:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):757:762 -> a
    10:10:com.android.tools.r8.com.google.gson.JsonPrimitive com.android.tools.r8.com.google.gson.JsonElement.getAsJsonPrimitive():122:122 -> a
    10:10:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):756 -> a
    11:11:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonArray():46:46 -> a
    11:11:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):765 -> a
    12:12:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):766:766 -> a
    13:13:com.android.tools.r8.com.google.gson.JsonArray com.android.tools.r8.com.google.gson.JsonElement.getAsJsonArray():104:104 -> a
    13:13:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):767 -> a
    14:17:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):767:770 -> a
    18:18:com.android.tools.r8.com.google.gson.JsonArray com.android.tools.r8.com.google.gson.JsonElement.getAsJsonArray():106:106 -> a
    18:18:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):767 -> a
    19:19:boolean com.android.tools.r8.com.google.gson.JsonElement.isJsonObject():55:55 -> a
    19:19:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):772 -> a
    20:28:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):773:781 -> a
    29:29:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,com.android.tools.r8.com.google.gson.JsonElement):754:754 -> a
    30:30:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):714:714 -> a
    31:31:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):714:714 -> a
    32:64:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):716:748 -> a
    65:66:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):725:726 -> a
    67:67:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):723:723 -> a
    68:69:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):720:721 -> a
    70:93:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):718:741 -> a
    94:99:com.android.tools.r8.com.google.gson.JsonElement read(com.android.tools.r8.com.google.gson.stream.JsonReader):728:733 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$3 -> com.android.tools.r8.a.a.b.a.a.s:
    1:1:void <init>():151:151 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):151:151 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Boolean):165:165 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):151 -> a
    3:10:java.lang.Boolean read(com.android.tools.r8.com.google.gson.stream.JsonReader):154:161 -> a
    3:10:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):151 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$32 -> com.android.tools.r8.a.a.b.a.a.q:
    com.android.tools.r8.com.google.gson.TypeAdapter val$typeAdapter -> b
    java.lang.Class val$type -> a
    1:1:void <init>(java.lang.Class,com.android.tools.r8.com.google.gson.TypeAdapter):850:850 -> <init>
    1:1:java.lang.String toString():856:856 -> toString
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$33 -> com.android.tools.r8.a.a.b.a.a.r:
    com.android.tools.r8.com.google.gson.TypeAdapter val$typeAdapter -> c
    java.lang.Class val$boxed -> b
    java.lang.Class val$unboxed -> a
    1:1:void <init>(java.lang.Class,java.lang.Class,com.android.tools.r8.com.google.gson.TypeAdapter):863:863 -> <init>
    1:2:java.lang.String toString():870:871 -> toString
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$5 -> com.android.tools.r8.a.a.b.a.a.t:
    1:1:void <init>():190:190 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):190:190 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Number):206:206 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):190 -> a
    3:11:java.lang.Number read(com.android.tools.r8.com.google.gson.stream.JsonReader):193:201 -> a
    3:11:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):190 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$6 -> com.android.tools.r8.a.a.b.a.a.u:
    1:1:void <init>():213:213 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):213:213 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Number):228:228 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):213 -> a
    3:10:java.lang.Number read(com.android.tools.r8.com.google.gson.stream.JsonReader):216:223 -> a
    3:10:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):213 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$7 -> com.android.tools.r8.a.a.b.a.a.v:
    1:1:void <init>():235:235 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):235:235 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Number):250:250 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):235 -> a
    3:10:java.lang.Number read(com.android.tools.r8.com.google.gson.stream.JsonReader):238:245 -> a
    3:10:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):235 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$8 -> com.android.tools.r8.a.a.b.a.a.w:
    1:1:void <init>():256:256 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):256:256 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.concurrent.atomic.AtomicInteger):265:265 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):256 -> a
    3:5:java.util.concurrent.atomic.AtomicInteger read(com.android.tools.r8.com.google.gson.stream.JsonReader):259:261 -> a
    3:5:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):256 -> a
com.android.tools.r8.com.google.gson.internal.bind.TypeAdapters$9 -> com.android.tools.r8.a.a.b.a.a.x:
    1:1:void <init>():271:271 -> <init>
    1:1:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):271:271 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.util.concurrent.atomic.AtomicBoolean):276:276 -> a
    2:2:void write(com.android.tools.r8.com.google.gson.stream.JsonWriter,java.lang.Object):271 -> a
    3:3:java.util.concurrent.atomic.AtomicBoolean read(com.android.tools.r8.com.google.gson.stream.JsonReader):273:273 -> a
    3:3:java.lang.Object read(com.android.tools.r8.com.google.gson.stream.JsonReader):271 -> a
com.android.tools.r8.com.google.gson.stream.JsonReader -> com.android.tools.r8.a.a.b.b.a:
    long peekedLong -> i
    char[] buffer -> c
    int stackSize -> m
    int peekedNumberLength -> j
    java.lang.String peekedString -> k
    int peeked -> h
    int lineNumber -> f
    int lineStart -> g
    java.io.Reader in -> a
    int pos -> d
    int limit -> e
    java.lang.String[] pathNames -> n
    int[] pathIndices -> o
    boolean lenient -> b
    int[] stack -> l
    char[] NON_EXECUTE_PREFIX -> p
    1:1:void <clinit>():192:192 -> <clinit>
    1:1:void <init>(java.io.Reader):289:289 -> <init>
    2:65:void <init>(java.io.Reader):230:293 -> <init>
    66:66:void <init>(java.io.Reader):291:291 -> <init>
    1:1:void setLenient(boolean):326:326 -> a
    2:11:void beginArray():341:350 -> a
    12:12:boolean isLiteral(char):751:751 -> a
    13:34:boolean fillBuffer(int):1276:1297 -> a
    35:35:java.io.IOException syntaxError(java.lang.String):1559:1559 -> a
    1:9:void beginObject():377:385 -> b
    10:26:java.lang.String nextQuotedValue(char):987:1003 -> b
    27:82:char readEscapeCharacter():1495:1550 -> b
    27:82:java.lang.String nextQuotedValue(char):1004 -> b
    83:121:char readEscapeCharacter():1502:1540 -> b
    83:121:java.lang.String nextQuotedValue(char):1004 -> b
    122:124:java.lang.String nextQuotedValue(char):1004:1006 -> b
    125:125:char readEscapeCharacter():1550:1550 -> b
    125:125:java.lang.String nextQuotedValue(char):1004 -> b
    126:134:java.lang.String nextQuotedValue(char):1009:1017 -> b
    135:146:void push(int):1256:1267 -> b
    147:221:int nextNonWhitespace(boolean):1319:1393 -> b
    222:264:int nextNonWhitespace(boolean):1328:1370 -> b
    265:265:int nextNonWhitespace(boolean):1357:1357 -> b
    266:273:boolean skipTo(java.lang.String):1428:1435 -> b
    266:273:int nextNonWhitespace(boolean):1358 -> b
    274:274:boolean skipTo(java.lang.String):1428:1428 -> b
    274:274:int nextNonWhitespace(boolean):1358 -> b
    275:276:int nextNonWhitespace(boolean):1361:1362 -> b
    277:306:int nextNonWhitespace(boolean):1359:1388 -> b
    1:15:int doPeek():462:476 -> c
    16:77:int doPeek():472:533 -> c
    78:92:void consumeNonExecutePrefix():1567:1581 -> c
    78:92:int doPeek():534 -> c
    93:133:int doPeek():536:576 -> c
    134:173:int peekKeyword():599:638 -> c
    134:173:int doPeek():579 -> c
    174:269:int peekNumber():643:738 -> c
    174:269:int doPeek():584 -> c
    270:275:int doPeek():589:594 -> c
    276:276:int doPeek():590:590 -> c
    277:277:int doPeek():574:574 -> c
    278:297:int doPeek():553:572 -> c
    298:298:int doPeek():564:564 -> c
    299:309:int doPeek():560:570 -> c
    310:310:int doPeek():546:546 -> c
    311:323:int doPeek():479:491 -> c
    324:350:int doPeek():487:513 -> c
    351:353:int doPeek():503:505 -> c
    354:355:int doPeek():499:500 -> c
    356:356:int doPeek():497:497 -> c
    1:4:void close():1208:1211 -> close
    1:10:void endArray():359:368 -> d
    1:11:void endObject():394:404 -> e
    1:3:boolean hasNext():412:414 -> f
    1:1:boolean isLenient():333:333 -> g
    1:14:boolean nextBoolean():840:853 -> h
    1:13:int nextInt():1155:1167 -> i
    14:39:int nextInt():1164:1189 -> i
    40:64:int nextInt():1176:1200 -> i
    65:65:int nextInt():1196:1196 -> i
    1:16:java.lang.String nextName():777:792 -> j
    17:17:java.lang.String nextName():789:789 -> j
    1:9:void nextNull():864:872 -> k
    1:24:java.lang.String nextString():805:828 -> l
    25:25:java.lang.String nextString():825:825 -> l
    1:35:com.android.tools.r8.com.google.gson.stream.JsonToken peek():423:457 -> m
    36:36:com.android.tools.r8.com.google.gson.stream.JsonToken peek():455:455 -> m
    37:37:com.android.tools.r8.com.google.gson.stream.JsonToken peek():453:453 -> m
    38:48:com.android.tools.r8.com.google.gson.stream.JsonToken peek():440:450 -> m
    49:49:com.android.tools.r8.com.google.gson.stream.JsonToken peek():445:445 -> m
    50:50:com.android.tools.r8.com.google.gson.stream.JsonToken peek():443:443 -> m
    51:51:com.android.tools.r8.com.google.gson.stream.JsonToken peek():436:436 -> m
    52:52:com.android.tools.r8.com.google.gson.stream.JsonToken peek():434:434 -> m
    53:53:com.android.tools.r8.com.google.gson.stream.JsonToken peek():432:432 -> m
    54:54:com.android.tools.r8.com.google.gson.stream.JsonToken peek():430:430 -> m
    1:2:void checkLenient():1400:1401 -> n
    1:3:java.lang.String locationString():1449:1451 -> o
    4:17:java.lang.String getPath():1459:1472 -> o
    4:17:java.lang.String locationString():1451 -> o
    18:36:java.lang.String getPath():1464:1482 -> o
    18:36:java.lang.String locationString():1451 -> o
    37:37:java.lang.String locationString():1451:1451 -> o
    1:52:java.lang.String nextUnquotedValue():1032:1083 -> p
    1:5:void skipToEndOfLine():1411:1415 -> q
    1:1:java.lang.String toString():1445:1445 -> toString
com.android.tools.r8.com.google.gson.stream.JsonToken -> com.android.tools.r8.a.a.b.b.b:
    com.android.tools.r8.com.google.gson.stream.JsonToken END_ARRAY -> b
    com.android.tools.r8.com.google.gson.stream.JsonToken BEGIN_OBJECT -> c
    com.android.tools.r8.com.google.gson.stream.JsonToken BEGIN_ARRAY -> a
    com.android.tools.r8.com.google.gson.stream.JsonToken STRING -> f
    com.android.tools.r8.com.google.gson.stream.JsonToken NUMBER -> g
    com.android.tools.r8.com.google.gson.stream.JsonToken END_OBJECT -> d
    com.android.tools.r8.com.google.gson.stream.JsonToken NAME -> e
    com.android.tools.r8.com.google.gson.stream.JsonToken END_DOCUMENT -> j
    com.android.tools.r8.com.google.gson.stream.JsonToken BOOLEAN -> h
    com.android.tools.r8.com.google.gson.stream.JsonToken NULL -> i
    com.android.tools.r8.com.google.gson.stream.JsonToken[] $VALUES -> k
    1:54:void <clinit>():31:84 -> <clinit>
    55:55:void <clinit>():25:25 -> <clinit>
    1:1:void <init>(java.lang.String,int):25:25 -> <init>
com.android.tools.r8.com.google.gson.stream.JsonWriter -> com.android.tools.r8.a.a.b.b.c:
    java.lang.String deferredName -> h
    int[] stack -> b
    boolean serializeNulls -> i
    java.lang.String[] HTML_SAFE_REPLACEMENT_CHARS -> k
    java.lang.String[] REPLACEMENT_CHARS -> j
    java.io.Writer out -> a
    boolean lenient -> f
    boolean htmlSafe -> g
    int stackSize -> c
    java.lang.String separator -> e
    java.lang.String indent -> d
    1:17:void <clinit>():145:161 -> <clinit>
    1:1:void <init>(java.io.Writer):197:197 -> <init>
    2:36:void <init>(java.io.Writer):167:201 -> <init>
    37:37:void <init>(java.io.Writer):199:199 -> <init>
    1:1:void setLenient(boolean):235:235 -> a
    2:2:com.android.tools.r8.com.google.gson.stream.JsonWriter beginArray():287:287 -> a
    3:5:com.android.tools.r8.com.google.gson.stream.JsonWriter open(int,java.lang.String):325:327 -> a
    3:5:com.android.tools.r8.com.google.gson.stream.JsonWriter beginArray():288 -> a
    6:18:com.android.tools.r8.com.google.gson.stream.JsonWriter close(int,int,java.lang.String):337:349 -> a
    19:19:com.android.tools.r8.com.google.gson.stream.JsonWriter close(int,int,java.lang.String):342:342 -> a
    20:25:void push(int):354:359 -> a
    26:32:com.android.tools.r8.com.google.gson.stream.JsonWriter name(java.lang.String):389:395 -> a
    33:33:com.android.tools.r8.com.google.gson.stream.JsonWriter name(java.lang.String):393:393 -> a
    34:34:com.android.tools.r8.com.google.gson.stream.JsonWriter name(java.lang.String):390:390 -> a
    35:35:com.android.tools.r8.com.google.gson.stream.JsonWriter name(java.lang.String):387:387 -> a
    36:40:com.android.tools.r8.com.google.gson.stream.JsonWriter value(java.lang.Boolean):478:482 -> a
    41:43:com.android.tools.r8.com.google.gson.stream.JsonWriter value(long):509:511 -> a
    44:54:com.android.tools.r8.com.google.gson.stream.JsonWriter value(java.lang.Number):524:534 -> a
    1:1:com.android.tools.r8.com.google.gson.stream.JsonWriter beginObject():307:307 -> b
    2:4:com.android.tools.r8.com.google.gson.stream.JsonWriter open(int,java.lang.String):325:327 -> b
    2:4:com.android.tools.r8.com.google.gson.stream.JsonWriter beginObject():308 -> b
    5:5:void replaceTop(int):376:376 -> b
    6:10:com.android.tools.r8.com.google.gson.stream.JsonWriter value(java.lang.String):415:419 -> b
    11:13:com.android.tools.r8.com.google.gson.stream.JsonWriter value(boolean):465:467 -> b
    1:1:com.android.tools.r8.com.google.gson.stream.JsonWriter endArray():297:297 -> c
    2:30:void string(java.lang.String):565:593 -> c
    1:7:void close():555:561 -> close
    8:8:void close():559:559 -> close
    1:1:com.android.tools.r8.com.google.gson.stream.JsonWriter endObject():317:317 -> d
    1:10:com.android.tools.r8.com.google.gson.stream.JsonWriter nullValue():446:455 -> e
    1:28:void beforeValue():629:656 -> f
    29:50:void beforeValue():631:652 -> f
    51:52:void beforeValue():646:647 -> f
    53:54:void beforeValue():641:642 -> f
    1:4:void flush():543:546 -> flush
    5:5:void flush():544:544 -> flush
    1:7:void newline():597:603 -> g
    1:4:int peek():366:369 -> h
    5:5:int peek():367:367 -> h
    1:1:void writeDeferredName():400:400 -> i
    2:9:void beforeName():612:619 -> i
    2:9:void writeDeferredName():401 -> i
    10:11:void writeDeferredName():402:403 -> i
    12:12:void beforeName():616:616 -> i
    12:12:void writeDeferredName():401 -> i
com.android.tools.r8.com.google.gson.stream.MalformedJsonException -> com.android.tools.r8.a.a.b.b.d:
    1:1:void <init>(java.lang.String):29:29 -> <init>
com.android.tools.r8.compatdexbuilder.CompatDexBuilder -> com.android.tools.r8.compatdexbuilder.CompatDexBuilder:
    java.lang.String input -> a
    java.lang.String output -> b
    int numberOfThreads -> c
    boolean noLocals -> d
    1:27:void <init>():36:62 -> <init>
    1:44:void run(java.lang.String[]):70:113 -> a
    45:45:void run(java.lang.String[]):109:109 -> a
    46:46:void run(java.lang.String[]):98:98 -> a
    47:90:void run(java.lang.String[]):95:138 -> a
    91:91:void addEntry(java.lang.String,java.io.InputStream,java.util.zip.ZipOutputStream):183:183 -> a
    91:91:void run(java.lang.String[]):138 -> a
    92:92:void run(java.lang.String[]):139:139 -> a
    93:109:void run(java.lang.String[]):137:153 -> a
    110:110:byte[] com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer.getBytes():55:55 -> a
    110:110:void run(java.lang.String[]):153 -> a
    111:115:void run(java.lang.String[]):153:157 -> a
    116:139:void run(java.lang.String[]):132:155 -> a
    140:169:void run(java.lang.String[]):128:157 -> a
    170:170:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):156:156 -> a
    171:183:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer dexEntry(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):163:175 -> a
    171:183:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer lambda$run$0(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):148 -> a
    184:189:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer dexEntry(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):172:177 -> a
    184:189:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer lambda$run$0(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):148 -> a
    190:195:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer dexEntry(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):171:176 -> a
    190:195:com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer lambda$run$0(java.util.zip.ZipFile,java.util.zip.ZipEntry,java.util.concurrent.ExecutorService):148 -> a
    196:205:void addEntry(java.lang.String,byte[],java.util.zip.ZipOutputStream):187:196 -> a
    1:1:void main(java.lang.String[]):66:66 -> main
com.android.tools.r8.compatdexbuilder.CompatDexBuilder$DexConsumer -> com.android.tools.r8.compatdexbuilder.CompatDexBuilder$a:
    byte[] bytes -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():38:38 -> <clinit>
    1:1:void <init>():43:43 -> <init>
    1:3:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):49:51 -> accept
com.android.tools.r8.compatdx.CompatDx -> com.android.tools.r8.compatdx.CompatDx:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():55:55 -> <clinit>
    1:3:void run(java.lang.String[]):323:325 -> a
    4:4:void printHelpOn(java.io.PrintStream):590:590 -> a
    4:4:void run(java.lang.String[]):325 -> a
    5:83:void com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec.<init>():157:235 -> a
    5:83:void printHelpOn(java.io.PrintStream):591 -> a
    5:83:void run(java.lang.String[]):325 -> a
    84:84:void printHelpOn(java.io.PrintStream):591:591 -> a
    84:84:void run(java.lang.String[]):325 -> a
    85:210:void run(java.lang.String[]):328:453 -> a
    211:219:com.android.tools.r8.ProgramConsumer createConsumer(java.util.List,java.nio.file.Path,boolean,boolean):471:479 -> a
    211:219:void run(java.lang.String[]):455 -> a
    220:229:void run(java.lang.String[]):454:463 -> a
    230:230:void run(java.lang.String[]):445:445 -> a
    231:231:void run(java.lang.String[]):411:411 -> a
    232:232:void run(java.lang.String[]):407:407 -> a
    233:233:void run(java.lang.String[]):391:391 -> a
    234:234:void run(java.lang.String[]):362:362 -> a
    235:235:void run(java.lang.String[]):358:358 -> a
    236:240:com.android.tools.r8.DexIndexedConsumer createDexConsumer(java.nio.file.Path,java.util.List,boolean):486:490 -> a
    241:247:com.android.tools.r8.DexIndexedConsumer createDexConsumer(java.nio.file.Path,java.util.List,boolean):487:493 -> a
    248:248:void com.android.tools.r8.DexIndexedConsumer$ArchiveConsumer.<init>(java.nio.file.Path):129:129 -> a
    248:248:com.android.tools.r8.DexIndexedConsumer createDexConsumer(java.nio.file.Path,java.util.List,boolean):493 -> a
    249:249:com.android.tools.r8.DexIndexedConsumer createDexConsumer(java.nio.file.Path,java.util.List,boolean):494:494 -> a
    250:250:void com.android.tools.r8.DexIndexedConsumer$DirectoryConsumer.<init>(java.nio.file.Path):219:219 -> a
    250:250:com.android.tools.r8.DexIndexedConsumer createDexConsumer(java.nio.file.Path,java.util.List,boolean):494 -> a
    251:254:void processPath(java.io.File,java.util.List):595:598 -> a
    255:257:void processDirectory(java.io.File,java.util.List):613:615 -> a
    255:257:void processPath(java.io.File,java.util.List):599 -> a
    258:259:void processPath(java.io.File,java.util.List):602:603 -> a
    260:261:boolean com.android.tools.r8.utils.FileUtils.isApkFile(java.nio.file.Path):60:61 -> a
    260:261:void processPath(java.io.File,java.util.List):607 -> a
    262:262:void processPath(java.io.File,java.util.List):608:608 -> a
    263:263:void processPath(java.io.File,java.util.List):604:604 -> a
    264:264:void processPath(java.io.File,java.util.List):596:596 -> a
    1:7:void main(java.lang.String[]):311:317 -> main
    8:9:void main(java.lang.String[]):313:314 -> main
    10:10:void com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$DxUsageMessage.printHelpOn(java.io.PrintStream):115:115 -> main
    10:10:void main(java.lang.String[]):314 -> main
    11:11:void main(java.lang.String[]):315:315 -> main
com.android.tools.r8.compatdx.CompatDx$DexKeepClassesConsumer -> com.android.tools.r8.compatdx.CompatDx$a:
    java.util.List inputs -> e
    1:1:void com.android.tools.r8.DexIndexedConsumer$ArchiveConsumer.<init>(java.nio.file.Path):129:129 -> <init>
    1:1:void <init>(java.nio.file.Path,java.util.List):554 -> <init>
    2:2:void <init>(java.nio.file.Path,java.util.List):555:555 -> <init>
    1:11:void writeZipWithClasses(com.android.tools.r8.DiagnosticsHandler):570:580 -> a
    12:18:void writeZipWithClasses(com.android.tools.r8.DiagnosticsHandler):577:583 -> a
    19:30:void writeZipWithClasses(com.android.tools.r8.DiagnosticsHandler):572:583 -> a
    1:1:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):583:583 -> b
    1:5:void finished(com.android.tools.r8.DiagnosticsHandler):561:565 -> finished
com.android.tools.r8.compatdx.CompatDx$DxCompatOptions -> com.android.tools.r8.compatdx.CompatDx$b:
    com.android.tools.r8.com.google.common.collect.ImmutableList inputs -> z
    java.lang.String noOptimizeList -> j
    boolean noStrict -> k
    boolean forceJumbo -> u
    java.lang.String dumpTo -> n
    boolean dump -> q
    int maxIndexNumber -> A
    com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$PositionInfo positions -> e
    int minApiLevel -> y
    boolean noLocals -> f
    boolean statistics -> h
    boolean version -> b
    int numThreads -> s
    boolean verbose -> d
    java.lang.String optimizeList -> i
    boolean verboseDump -> p
    java.lang.String output -> m
    boolean keepClasses -> l
    java.lang.String dumpMethod -> o
    boolean multiDex -> v
    boolean minimalMainDex -> x
    boolean noFiles -> r
    boolean incremental -> t
    java.lang.String mainDexList -> w
    boolean noOptimize -> g
    boolean help -> a
    boolean $assertionsDisabled -> B
    boolean debug -> c
    1:1:void <clinit>():62:62 -> <clinit>
    1:21:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):239:259 -> <init>
    22:22:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):256:256 -> <init>
    23:23:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):253:253 -> <init>
    24:24:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):250:250 -> <init>
    25:58:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):247:280 -> <init>
    59:60:int lastIntOf(java.util.List):304:305 -> <init>
    59:60:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):280 -> <init>
    61:70:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):280:289 -> <init>
    71:71:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getDefault():59:59 -> <init>
    71:71:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):291 -> <init>
    72:76:void <init>(com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec):291:295 -> <init>
    1:2:com.android.tools.r8.compatdx.CompatDx$DxCompatOptions parse(java.lang.String[]):299:300 -> a
com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$DxUsageMessage -> com.android.tools.r8.compatdx.CompatDx$b$a:
    java.lang.String message -> a
    1:2:void <init>(java.lang.String):110:111 -> <init>
com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$PositionInfo -> com.android.tools.r8.compatdx.CompatDx$b$b:
    com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$PositionInfo THROWING -> d
    com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$PositionInfo LINES -> c
    com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$PositionInfo IMPORTANT -> b
    com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$PositionInfo NONE -> a
    1:1:void <clinit>():103:103 -> <clinit>
    2:2:void <clinit>():102:102 -> <clinit>
    1:1:void <init>(java.lang.String,int):102:102 -> <init>
com.android.tools.r8.compatdx.CompatDx$DxCompatOptions$Spec -> com.android.tools.r8.compatdx.CompatDx$b$c:
    com.android.tools.r8.joptsimple.OptionSpec output -> l
    com.android.tools.r8.joptsimple.OptionSpec dumpWidth -> n
    com.android.tools.r8.joptsimple.OptionSpec dump -> p
    com.android.tools.r8.joptsimple.OptionSpec noFiles -> r
    com.android.tools.r8.joptsimple.OptionSpec numThreads -> t
    com.android.tools.r8.joptsimple.OptionSpec forceJumbo -> v
    com.android.tools.r8.joptsimple.OptionSpec multiDex -> x
    com.android.tools.r8.joptsimple.OptionSpec minimalMainDex -> z
    com.android.tools.r8.joptsimple.OptionSpec debug -> b
    com.android.tools.r8.joptsimple.OptionSpec minApiLevel -> A
    com.android.tools.r8.joptsimple.OptionSpec positions -> d
    com.android.tools.r8.joptsimple.OptionSpec inputs -> C
    com.android.tools.r8.joptsimple.OptionSpec noOptimize -> f
    com.android.tools.r8.joptsimple.OptionSpec help -> E
    com.android.tools.r8.joptsimple.OptionSpec optimizeList -> h
    com.android.tools.r8.joptsimple.OptionSpec noStrict -> j
    com.android.tools.r8.joptsimple.OptionSpec keepClasses -> k
    com.android.tools.r8.joptsimple.OptionSpec dumpTo -> m
    com.android.tools.r8.joptsimple.OptionSpec dumpMethod -> o
    com.android.tools.r8.joptsimple.OptionSpec verboseDump -> q
    com.android.tools.r8.joptsimple.OptionSpec coreLibrary -> s
    com.android.tools.r8.joptsimple.OptionSpec incremental -> u
    com.android.tools.r8.joptsimple.OptionSpec noWarning -> w
    com.android.tools.r8.joptsimple.OptionSpec mainDexList -> y
    com.android.tools.r8.joptsimple.OptionSpec inputList -> B
    com.android.tools.r8.joptsimple.OptionSpec version -> D
    com.android.tools.r8.joptsimple.OptionSpec verbose -> c
    com.android.tools.r8.joptsimple.OptionSpec maxIndexNumber -> F
    com.android.tools.r8.joptsimple.OptionSpec noLocals -> e
    com.android.tools.r8.joptsimple.OptionParser parser -> a
    com.android.tools.r8.joptsimple.OptionSpec statistics -> g
    com.android.tools.r8.joptsimple.OptionSpec noOptimizeList -> i
    1:80:void <init>():156:235 -> <init>
com.android.tools.r8.compatdx.CompatDx$NamedDexFileConsumer -> com.android.tools.r8.compatdx.CompatDx$c:
    java.nio.file.Path output -> c
    1:2:void <init>(java.nio.file.Path):531:532 -> <init>
    1:6:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):538:543 -> accept
    7:10:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):541:544 -> accept
com.android.tools.r8.compatdx.CompatDx$SingleDexFileConsumer -> com.android.tools.r8.compatdx.CompatDx$d:
    byte[] bytes -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():497:497 -> <clinit>
    1:1:void <init>(com.android.tools.r8.DexIndexedConsumer):502:502 -> <init>
    2:2:void <init>(com.android.tools.r8.DexIndexedConsumer):499:499 -> <init>
    1:3:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):513:515 -> accept
    4:4:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):509:509 -> accept
    1:4:void finished(com.android.tools.r8.DiagnosticsHandler):520:523 -> finished
com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions -> com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions:
    1:11:void <init>(java.util.List,java.lang.String,com.android.tools.r8.CompilationMode,int,boolean,boolean,boolean,java.lang.String,boolean,boolean):58:68 -> <init>
    1:13:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):87:99 -> parse
    14:21:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):97:104 -> parse
    22:54:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):102:134 -> parse
    55:75:com.android.tools.r8.compatproguard.CompatProguard$CompatProguardOptions parse(java.lang.String[]):128:148 -> parse
com.android.tools.r8.dex.ApplicationReader -> com.android.tools.r8.dex.ApplicationReader:
    com.android.tools.r8.graph.DexItemFactory itemFactory -> b
    com.android.tools.r8.utils.Timing timing -> c
    com.android.tools.r8.utils.InternalOptions options -> a
    boolean $assertionsDisabled -> e
    com.android.tools.r8.utils.AndroidApp inputApp -> d
    1:1:void <clinit>():55:55 -> <clinit>
    1:5:void <init>(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing):66:70 -> <init>
    1:1:com.android.tools.r8.utils.InternalOptions access$000(com.android.tools.r8.dex.ApplicationReader):55:55 -> a
    2:2:int access$100(com.android.tools.r8.dex.ApplicationReader,int,com.android.tools.r8.dex.DexReader):55:55 -> a
    3:3:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):101:101 -> a
    4:13:boolean verifyMainDexOptionsCompatible(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):136:145 -> a
    4:13:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):101 -> a
    14:43:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):102:131 -> a
    44:46:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):127:129 -> a
    47:48:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):150:151 -> a
    49:49:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getDefault():59:59 -> a
    49:49:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):151 -> a
    50:50:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):151:151 -> a
    51:61:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getMinAndroidApiLevel(com.android.tools.r8.utils.DexVersion):67:77 -> a
    51:61:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):153 -> a
    62:62:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getMinAndroidApiLevel(com.android.tools.r8.utils.DexVersion):75:75 -> a
    62:62:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):153 -> a
    63:63:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getMinAndroidApiLevel(com.android.tools.r8.utils.DexVersion):73:73 -> a
    63:63:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):153 -> a
    64:64:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getMinAndroidApiLevel(com.android.tools.r8.utils.DexVersion):71:71 -> a
    64:64:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):153 -> a
    65:65:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getMinAndroidApiLevel(com.android.tools.r8.utils.DexVersion):69:69 -> a
    65:65:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):153 -> a
    66:69:int validateOrComputeMinApiLevel(int,com.android.tools.r8.dex.DexReader):153:156 -> a
    70:71:void readProguardMap(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,java.util.List):171:172 -> a
    72:72:void readProguardMap(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,java.util.List):171:171 -> a
    73:76:void lambda$readProguardMap$0(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexApplication$Builder):175:178 -> a
    77:78:void readMainDexList(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,java.util.List):185:186 -> a
    79:87:void lambda$readMainDexList$2(com.android.tools.r8.graph.DexApplication$Builder):187:195 -> a
    88:88:void lambda$readMainDexList$2(com.android.tools.r8.graph.DexApplication$Builder):191:191 -> a
    89:89:com.android.tools.r8.graph.DexType lambda$readMainDexList$1(java.lang.String):194:194 -> a
    1:1:com.android.tools.r8.graph.DexItemFactory access$200(com.android.tools.r8.dex.ApplicationReader):55:55 -> b
    1:1:com.android.tools.r8.utils.AndroidApp access$300(com.android.tools.r8.dex.ApplicationReader):55:55 -> c
    1:1:com.android.tools.r8.graph.DexApplication read():74:74 -> read
    2:6:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource):78:82 -> read
    7:7:com.android.tools.r8.graph.DexApplication read(java.util.concurrent.ExecutorService):88:88 -> read
    8:8:com.android.tools.r8.graph.DexApplication read(com.android.tools.r8.StringResource,java.util.concurrent.ExecutorService):93:93 -> read
com.android.tools.r8.dex.ApplicationReader$ClassReader -> com.android.tools.r8.dex.ApplicationReader$a:
    java.util.List futures -> b
    com.android.tools.r8.graph.JarApplicationReader application -> f
    java.util.Queue programClasses -> c
    java.util.Queue libraryClasses -> e
    java.util.Queue classpathClasses -> d
    com.android.tools.r8.dex.ApplicationReader this$0 -> g
    boolean $assertionsDisabled -> h
    java.util.concurrent.ExecutorService executorService -> a
    1:1:void <clinit>():200:200 -> <clinit>
    1:1:void <init>(com.android.tools.r8.dex.ApplicationReader,java.util.concurrent.ExecutorService,java.util.List):212:212 -> <init>
    2:10:void <init>(com.android.tools.r8.dex.ApplicationReader,java.util.concurrent.ExecutorService,java.util.List):206:214 -> <init>
    1:2:void lambda$readDexSources$0(com.android.tools.r8.dex.DexParser,com.android.tools.r8.graph.ClassKind,java.util.Queue):238:239 -> a
    3:3:void lambda$readDexSources$0(com.android.tools.r8.dex.DexParser,com.android.tools.r8.graph.ClassKind,java.util.Queue):238:238 -> a
    4:9:void readClassSources(java.util.List,com.android.tools.r8.graph.ClassKind,java.util.Queue):248:253 -> a
    10:10:void readClassSources(java.util.List,com.android.tools.r8.graph.ClassKind,java.util.Queue):252:252 -> a
    11:13:java.lang.Object lambda$readClassSources$1(com.android.tools.r8.ProgramResource,com.android.tools.r8.graph.JarClassFileReader,com.android.tools.r8.graph.ClassKind):255:257 -> a
    14:16:java.lang.Object lambda$readClassSources$1(com.android.tools.r8.ProgramResource,com.android.tools.r8.graph.JarClassFileReader,com.android.tools.r8.graph.ClassKind):255:257 -> a
    17:29:void readSources():267:279 -> a
    30:47:com.android.tools.r8.utils.ClassProvider buildClassProvider(com.android.tools.r8.graph.ClassKind,java.util.Queue,java.util.List,com.android.tools.r8.graph.JarApplicationReader):285:302 -> a
    48:54:void initializeLazyClassCollection(com.android.tools.r8.graph.LazyLoadedDexApplication$Builder):307:313 -> a
    55:63:void initializeLazyClassCollection(com.android.tools.r8.graph.LazyLoadedDexApplication$Builder):312:320 -> a
    64:67:void initializeLazyClassCollection(com.android.tools.r8.graph.LazyLoadedDexApplication$Builder):319:322 -> a
    1:18:void readDexSources(java.util.List,com.android.tools.r8.graph.ClassKind,java.util.Queue):220:237 -> b
com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver -> com.android.tools.r8.dex.ApplicationReader$b:
    com.android.tools.r8.graph.DexProgramClass resolveClassConflict(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass) -> a
com.android.tools.r8.dex.ApplicationWriter -> com.android.tools.r8.dex.ApplicationWriter:
    java.lang.String proguardSeedsData -> f
    com.android.tools.r8.graph.DexApplication application -> a
    com.android.tools.r8.graph.AppView appView -> b
    com.android.tools.r8.graph.GraphLense graphLense -> d
    boolean $assertionsDisabled -> l
    java.util.List markerStrings -> i
    java.util.List markers -> h
    com.android.tools.r8.DexIndexedConsumer programConsumer -> j
    com.android.tools.r8.naming.NamingLens namingLens -> e
    com.android.tools.r8.utils.InternalOptions options -> g
    java.lang.String deadCode -> c
    com.android.tools.r8.naming.ProguardMapSupplier proguardMapSupplier -> k
    1:1:void <clinit>():60:60 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,java.util.List,java.lang.String,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,java.lang.String,com.android.tools.r8.naming.ProguardMapSupplier):141:141 -> <init>
    2:14:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,java.util.List,java.lang.String,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,java.lang.String,com.android.tools.r8.naming.ProguardMapSupplier,com.android.tools.r8.DexIndexedConsumer):164:176 -> <init>
    1:13:java.lang.Iterable distribute(java.util.concurrent.ExecutorService):183:195 -> a
    14:14:void lambda$write$0(com.android.tools.r8.dex.ApplicationWriter$SortAnnotations,com.android.tools.r8.graph.DexProgramClass):226:226 -> a
    15:28:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):240:253 -> a
    29:29:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):252:252 -> a
    30:35:com.android.tools.r8.dex.FileWriter$ByteBufferResult writeDexFile(com.android.tools.r8.graph.ObjectToOffsetMapping,com.android.tools.r8.dex.MethodToCodeObjectMapping,com.android.tools.r8.ByteBufferProvider):508:513 -> a
    30:35:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):255 -> a
    36:44:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):256:264 -> a
    45:55:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):261:271 -> a
    56:65:java.lang.Boolean lambda$write$1(com.android.tools.r8.dex.VirtualFile):268:277 -> a
    66:69:void supplyAdditionalConsumers(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,java.lang.String,java.lang.String,java.lang.String):308:311 -> a
    70:79:void supplyAdditionalConsumers(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,java.lang.String,java.lang.String,java.lang.String):309:318 -> a
    80:82:boolean validateProguardMapParses(java.lang.String):375:377 -> a
    80:82:void supplyAdditionalConsumers(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,java.lang.String,java.lang.String,java.lang.String):318 -> a
    83:94:void supplyAdditionalConsumers(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,java.lang.String,java.lang.String,java.lang.String):318:329 -> a
    95:134:void supplyAdditionalConsumers(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,java.lang.String,java.lang.String,java.lang.String):328:367 -> a
    135:148:void insertAttributeAnnotations():385:398 -> a
    149:149:void insertAttributeAnnotations():397:397 -> a
    150:158:void insertAttributeAnnotations():396:404 -> a
    159:159:void insertAttributeAnnotations():403:403 -> a
    160:176:void insertAttributeAnnotations():402:418 -> a
    177:183:void insertAttributeAnnotations():417:423 -> a
    184:193:com.android.tools.r8.graph.DexAnnotation com.android.tools.r8.graph.DexAnnotation.createInnerClassAnnotation(com.android.tools.r8.graph.DexString,int,com.android.tools.r8.graph.DexItemFactory):118:127 -> a
    184:193:void insertAttributeAnnotations():421 -> a
    194:202:void insertAttributeAnnotations():420:428 -> a
    203:203:void insertAttributeAnnotations():427:427 -> a
    204:215:void insertAttributeAnnotations():426:437 -> a
    216:226:void insertAttributeAnnotations():436:446 -> a
    227:227:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.concat(java.lang.Object[],java.lang.Object[],java.lang.Class):72:72 -> a
    227:227:void insertAttributeAnnotations():444 -> a
    228:228:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.newArray(java.lang.Class,int):49:49 -> a
    228:228:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.concat(java.lang.Object[],java.lang.Object[],java.lang.Class):72 -> a
    228:228:void insertAttributeAnnotations():444 -> a
    229:230:java.lang.Object[] com.android.tools.r8.com.google.common.collect.ObjectArrays.concat(java.lang.Object[],java.lang.Object[],java.lang.Class):73:74 -> a
    229:230:void insertAttributeAnnotations():444 -> a
    231:240:void insertAttributeAnnotations():444:453 -> a
    241:243:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):469:471 -> a
    244:244:com.android.tools.r8.dex.MethodToCodeObjectMapping com.android.tools.r8.dex.MethodToCodeObjectMapping.fromMethodBacking():21:21 -> a
    244:244:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):472 -> a
    245:246:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):475:476 -> a
    247:247:com.android.tools.r8.dex.MethodToCodeObjectMapping com.android.tools.r8.dex.MethodToCodeObjectMapping.fromMethodBacking():21:21 -> a
    247:247:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):477 -> a
    248:251:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):482:485 -> a
    252:252:com.android.tools.r8.dex.MethodToCodeObjectMapping com.android.tools.r8.dex.MethodToCodeObjectMapping.fromMapBacking(java.util.Map):25:25 -> a
    252:252:com.android.tools.r8.dex.MethodToCodeObjectMapping rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,java.util.Collection,com.android.tools.r8.graph.DexApplication):501 -> a
    253:263:void lambda$rewriteCodeWithJumboStrings$2(com.android.tools.r8.graph.ObjectToOffsetMapping,com.android.tools.r8.graph.DexApplication,java.util.Map,boolean,com.android.tools.r8.graph.DexEncodedMethod):487:497 -> a
    264:265:java.lang.String mapMainDexListName(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.NamingLens):517:518 -> a
    264:265:void lambda$writeMainDexList$3(java.lang.StringBuilder,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexType):526 -> a
    266:266:void lambda$writeMainDexList$3(java.lang.StringBuilder,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexType):526:526 -> a
    267:272:java.lang.String writeMainDexList(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):522:527 -> a
    1:25:void write(java.util.concurrent.ExecutorService):199:223 -> write
    26:41:void write(java.util.concurrent.ExecutorService):221:236 -> write
    42:99:void write(java.util.concurrent.ExecutorService):235:292 -> write
    100:110:void write(java.util.concurrent.ExecutorService):285:295 -> write
com.android.tools.r8.dex.ApplicationWriter$1 -> com.android.tools.r8.dex.a:
    com.android.tools.r8.dex.ResourceAdapter val$resourceAdapter -> a
    com.android.tools.r8.DataResourceConsumer val$dataResourceConsumer -> b
    java.util.Set val$generatedResourceNames -> d
    com.android.tools.r8.utils.InternalOptions val$options -> c
    1:1:void <init>(com.android.tools.r8.dex.ResourceAdapter,com.android.tools.r8.DataResourceConsumer,com.android.tools.r8.utils.InternalOptions,java.util.Set):340:340 -> <init>
    1:4:void visit(com.android.tools.r8.DataDirectoryResource):343:346 -> visit
    5:14:void visit(com.android.tools.r8.DataEntryResource):352:361 -> visit
    15:18:void visit(com.android.tools.r8.DataEntryResource):360:363 -> visit
com.android.tools.r8.dex.ApplicationWriter$SortAnnotations -> com.android.tools.r8.dex.ApplicationWriter$a:
    1:1:void <init>():74:74 -> <init>
    1:1:void <init>(com.android.tools.r8.dex.ApplicationWriter$1):74 -> <init>
    boolean add(com.android.tools.r8.graph.DexCode) -> a
    boolean add(com.android.tools.r8.graph.DexDebugInfo) -> a
    boolean add(com.android.tools.r8.graph.DexProgramClass) -> a
    boolean add(com.android.tools.r8.graph.DexTypeList) -> a
    boolean add(com.android.tools.r8.graph.ParameterAnnotationsList) -> a
    boolean setAnnotationsDirectoryForClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexAnnotationDirectory) -> a
    1:1:boolean add(com.android.tools.r8.graph.DexAnnotationSet):79:79 -> a
    2:2:boolean add(com.android.tools.r8.graph.DexAnnotation):86:86 -> a
    3:4:boolean add(com.android.tools.r8.graph.DexEncodedArray):93:94 -> a
com.android.tools.r8.dex.BinaryReader -> com.android.tools.r8.dex.BinaryReader:
    com.android.tools.r8.origin.Origin origin -> a
    com.android.tools.r8.dex.CompatByteBuffer buffer -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():17:17 -> <clinit>
    1:3:void <init>(com.android.tools.r8.origin.Origin,byte[]):25:27 -> <init>
    4:4:com.android.tools.r8.dex.CompatByteBuffer com.android.tools.r8.dex.CompatByteBuffer.wrap(byte[]):26:26 -> <init>
    4:4:void <init>(com.android.tools.r8.origin.Origin,byte[]):28 -> <init>
    5:5:void <init>(com.android.tools.r8.origin.Origin,byte[]):28:28 -> <init>
    1:4:void align(int):90:93 -> a
    5:5:int end():107:107 -> a
    1:2:byte[] getByteArray(int):38:39 -> b
    3:3:byte get():97:97 -> b
    1:2:int getUint(int):72:73 -> c
    3:3:int getInt():78:78 -> c
    1:1:com.android.tools.r8.origin.Origin getOrigin():32:32 -> d
    1:1:short getShort():68:68 -> e
    1:1:int getSleb128():48:48 -> f
    1:2:int getUbyte():101:102 -> g
    1:2:int getUint():56:57 -> h
    1:1:int getUleb128():44:44 -> i
    1:1:int getUleb128p1():52:52 -> j
    1:2:int getUshort():62:63 -> k
    1:1:int position():82:82 -> l
    1:1:void position(int):86:86 -> position
com.android.tools.r8.dex.CompatByteBuffer -> com.android.tools.r8.dex.b:
    java.nio.ByteBuffer buffer -> a
    1:2:void <init>(java.nio.ByteBuffer):21:22 -> <init>
    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> a
    1:1:byte[] array():57 -> a
    2:2:byte[] array():57:57 -> a
    3:3:java.nio.ByteBuffer asByteBuffer():34:34 -> a
    3:3:byte get(int):101 -> a
    4:4:byte get(int):101:101 -> a
    5:5:java.nio.ByteBuffer asByteBuffer():34:34 -> a
    5:5:void get(byte[]):105 -> a
    6:6:void get(byte[]):105:105 -> a
    7:7:java.nio.ByteBuffer asByteBuffer():34:34 -> a
    7:7:void order(java.nio.ByteOrder):93 -> a
    8:8:void order(java.nio.ByteOrder):93:93 -> a
    9:9:java.nio.ByteBuffer asByteBuffer():34:34 -> a
    9:9:void put(byte):121 -> a
    10:10:void put(byte):121:121 -> a
    11:11:java.nio.ByteBuffer asByteBuffer():34:34 -> a
    11:11:void putShort(short):125 -> a
    12:12:void putShort(short):125:125 -> a
    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> b
    1:1:int arrayOffset():61 -> b
    2:2:int arrayOffset():61:61 -> b
    3:3:java.nio.ByteBuffer asByteBuffer():34:34 -> b
    3:3:int getInt(int):113 -> b
    4:4:int getInt(int):113:113 -> b
    5:5:java.nio.ByteBuffer asByteBuffer():34:34 -> b
    5:5:void put(byte[]):133 -> b
    6:6:void put(byte[]):133:133 -> b
    1:1:java.nio.Buffer asBuffer():30:30 -> c
    1:1:void position(int):43 -> c
    2:2:void position(int):43:43 -> c
    3:3:java.nio.ByteBuffer asByteBuffer():34:34 -> c
    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> d
    1:1:java.nio.ShortBuffer asShortBuffer():89 -> d
    2:2:java.nio.ShortBuffer asShortBuffer():89:89 -> d
    3:3:java.nio.ByteBuffer asByteBuffer():34:34 -> d
    3:3:void putInt(int):129 -> d
    4:4:void putInt(int):129:129 -> d
    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> e
    1:1:int capacity():65 -> e
    2:2:int capacity():65:65 -> e
    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> f
    1:1:byte get():97 -> f
    2:2:byte get():97:97 -> f
    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> g
    1:1:int getInt():109 -> g
    2:2:int getInt():109:109 -> g
    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> h
    1:1:short getShort():117 -> h
    2:2:short getShort():117:117 -> h
    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> i
    1:1:boolean hasArray():69 -> i
    2:2:boolean hasArray():69:69 -> i
    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> j
    1:1:boolean hasRemaining():73 -> j
    2:2:boolean hasRemaining():73:73 -> j
    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> k
    1:1:int position():77 -> k
    2:2:int position():77:77 -> k
    1:1:java.nio.ByteBuffer asByteBuffer():34:34 -> l
    1:1:int remaining():81 -> l
    2:2:int remaining():81:81 -> l
    1:1:java.nio.Buffer asBuffer():30:30 -> m
    1:1:void rewind():48 -> m
    2:2:void rewind():48:48 -> m
com.android.tools.r8.dex.Constants -> com.android.tools.r8.dex.Constants:
    byte[] VDEX_FILE_MAGIC_PREFIX -> a
    1:4:void <clinit>():8:11 -> <clinit>
com.android.tools.r8.dex.DebugBytecodeWriter -> com.android.tools.r8.dex.DebugBytecodeWriter:
    com.android.tools.r8.graph.ObjectToOffsetMapping mapping -> a
    com.android.tools.r8.graph.DexDebugInfo info -> b
    java.nio.ByteBuffer buffer -> c
    1:6:void <init>(com.android.tools.r8.graph.DexDebugInfo,com.android.tools.r8.graph.ObjectToOffsetMapping):21:26 -> <init>
    1:2:void putByte(int):54:55 -> a
    3:3:void putNoIndex():75:75 -> a
    3:3:void putString(com.android.tools.r8.graph.DexString):89 -> a
    4:4:void putString(com.android.tools.r8.graph.DexString):91:91 -> a
    5:5:void putUleb128p1(int):71:71 -> a
    5:5:void putString(com.android.tools.r8.graph.DexString):92 -> a
    6:6:void putNoIndex():75:75 -> a
    6:6:void putType(com.android.tools.r8.graph.DexType):80 -> a
    7:7:void putType(com.android.tools.r8.graph.DexType):82:82 -> a
    8:8:void putUleb128p1(int):71:71 -> a
    8:8:void putType(com.android.tools.r8.graph.DexType):83 -> a
    1:3:void putSleb128(int):59:61 -> b
    1:3:void putUleb128(int):65:67 -> c
    1:4:void maybeGrow(int):46:49 -> d
    1:12:byte[] generate():31:42 -> generate
com.android.tools.r8.dex.DexOutputBuffer -> com.android.tools.r8.dex.DexOutputBuffer:
    com.android.tools.r8.dex.CompatByteBuffer byteBuffer -> b
    com.android.tools.r8.ByteBufferProvider byteBufferProvider -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():21:21 -> <clinit>
    1:1:void <init>():29:29 -> <init>
    2:4:void <init>(com.android.tools.r8.ByteBufferProvider):32:34 -> <init>
    1:1:int putSignedEncodedValue(long,int):86:86 -> a
    2:11:void putInstructions(com.android.tools.r8.code.Instruction[],com.android.tools.r8.graph.ObjectToOffsetMapping):95:104 -> a
    12:13:void putShort(short):118:119 -> a
    14:18:int align(int):134:138 -> a
    19:20:com.android.tools.r8.dex.CompatByteBuffer stealByteBuffer():169:170 -> a
    1:1:byte[] asArray():165:165 -> asArray
    1:1:int putUnsignedEncodedValue(long,int):90:90 -> b
    2:3:void forward(int):147:148 -> b
    1:1:boolean isAligned(int):161:161 -> c
    1:2:void moveTo(int):156:157 -> d
    1:2:void putInt(int):123:124 -> e
    1:1:void putSleb128(int):82:82 -> f
    1:1:void putUleb128(int):78:78 -> g
    1:1:void rewind(int):152:152 -> h
    1:20:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):49:68 -> i
    21:23:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):63:65 -> i
    24:29:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):55:60 -> i
    30:30:com.android.tools.r8.dex.CompatByteBuffer allocateByteBuffer(int):51:51 -> i
    1:6:void ensureSpaceFor(int):38:43 -> j
    7:8:void freeByteBuffer(com.android.tools.r8.dex.CompatByteBuffer):73:74 -> j
    7:8:void ensureSpaceFor(int):43 -> j
    9:9:void ensureSpaceFor(int):44:44 -> j
    1:1:int position():143:143 -> position
    1:2:void putByte(byte):108:109 -> putByte
    1:2:void putBytes(byte[]):113:114 -> putBytes
com.android.tools.r8.dex.DexOutputBuffer$1 -> com.android.tools.r8.dex.c:
    1:1:void <init>():29:29 -> <init>
com.android.tools.r8.dex.DexParser -> com.android.tools.r8.dex.DexParser:
    com.android.tools.r8.graph.ClassKind classKind -> e
    com.android.tools.r8.origin.Origin origin -> a
    com.android.tools.r8.graph.OffsetToObjectMapping indexedItems -> f
    boolean $assertionsDisabled -> j
    com.android.tools.r8.dex.DexReader dexReader -> b
    com.android.tools.r8.dex.DexSection[] dexSections -> c
    int[] stringIDs -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap codes -> g
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap offsetMap -> h
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> i
    1:1:void <clinit>():80:80 -> <clinit>
    1:1:void <init>(com.android.tools.r8.dex.DexReader,com.android.tools.r8.graph.ClassKind,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.DiagnosticsHandler):127:127 -> <init>
    2:19:void <init>(com.android.tools.r8.dex.DexReader,com.android.tools.r8.graph.ClassKind,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.DiagnosticsHandler):115:132 -> <init>
    20:42:com.android.tools.r8.dex.DexSection[] parseMap():736:758 -> <init>
    20:42:void <init>(com.android.tools.r8.dex.DexReader,com.android.tools.r8.graph.ClassKind,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.DiagnosticsHandler):133 -> <init>
    43:43:void <init>(com.android.tools.r8.dex.DexReader,com.android.tools.r8.graph.ClassKind,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.DiagnosticsHandler):133:133 -> <init>
    44:51:void parseStringIDs():713:720 -> <init>
    44:51:void <init>(com.android.tools.r8.dex.DexReader,com.android.tools.r8.graph.ClassKind,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.DiagnosticsHandler):134 -> <init>
    52:52:void <init>(com.android.tools.r8.dex.DexReader,com.android.tools.r8.graph.ClassKind,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.DiagnosticsHandler):135:135 -> <init>
    1:16:void ensureCodesInited():140:155 -> a
    1:16:void addClassDefsTo(java.util.function.Consumer):612 -> a
    17:82:com.android.tools.r8.graph.DexCode parseCodeItem():763:828 -> a
    17:82:void ensureCodesInited():156 -> a
    17:82:void addClassDefsTo(java.util.function.Consumer):612 -> a
    83:83:void ensureCodesInited():157:157 -> a
    83:83:void addClassDefsTo(java.util.function.Consumer):612 -> a
    84:143:void addClassDefsTo(java.util.function.Consumer):613:672 -> a
    144:180:void addClassDefsTo(java.util.function.Consumer):671:707 -> a
    181:197:void addClassDefsTo(java.util.function.Consumer):692:708 -> a
    198:198:void addClassDefsTo(java.util.function.Consumer):654:654 -> a
    199:208:java.lang.Object cacheAt(int,java.util.function.Supplier):394:403 -> a
    209:209:com.android.tools.r8.graph.DexAnnotation annotationAt(int):416:416 -> a
    210:225:com.android.tools.r8.graph.DexEncodedField[] readFields(int,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexValue[]):567:582 -> a
    226:243:com.android.tools.r8.graph.DexEncodedMethod[] readMethods(int,com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[],boolean):589:606 -> a
    244:246:void populateStrings():843:845 -> a
    244:246:void populateIndexTables():833 -> a
    247:256:com.android.tools.r8.graph.DexString stringAt(int):960:969 -> a
    247:256:void populateStrings():845 -> a
    247:256:void populateIndexTables():833 -> a
    257:257:void populateStrings():845:845 -> a
    257:257:void populateIndexTables():833 -> a
    258:261:void populateTypes():866:869 -> a
    258:261:void populateIndexTables():834 -> a
    262:268:com.android.tools.r8.graph.DexType typeAt(int):973:979 -> a
    262:268:void populateTypes():869 -> a
    262:268:void populateIndexTables():834 -> a
    269:269:void populateTypes():869:869 -> a
    269:269:void populateIndexTables():834 -> a
    270:271:void populateFields():874:875 -> a
    270:271:void populateIndexTables():835 -> a
    272:307:boolean verifyOrderOfFieldIds(com.android.tools.r8.dex.DexSection):890:925 -> a
    272:307:void populateFields():875 -> a
    272:307:void populateIndexTables():835 -> a
    308:318:boolean verifyOrderOfFieldIds(com.android.tools.r8.dex.DexSection):922:932 -> a
    308:318:void populateFields():875 -> a
    308:318:void populateIndexTables():835 -> a
    319:323:boolean verifyOrderOfFieldIds(com.android.tools.r8.dex.DexSection):929:933 -> a
    319:323:void populateFields():875 -> a
    319:323:void populateIndexTables():835 -> a
    324:324:boolean verifyOrderOfFieldIds(com.android.tools.r8.dex.DexSection):918:918 -> a
    324:324:void populateFields():875 -> a
    324:324:void populateIndexTables():835 -> a
    325:327:void populateFields():876:878 -> a
    325:327:void populateIndexTables():835 -> a
    328:340:com.android.tools.r8.graph.DexField fieldAt(int):983:995 -> a
    328:340:void populateFields():878 -> a
    328:340:void populateIndexTables():835 -> a
    341:341:void populateFields():878:878 -> a
    341:341:void populateIndexTables():835 -> a
    342:345:void populateProtos():944:947 -> a
    342:345:void populateIndexTables():836 -> a
    346:358:com.android.tools.r8.graph.DexProto protoAt(int):1055:1067 -> a
    346:358:void populateProtos():947 -> a
    346:358:void populateIndexTables():836 -> a
    359:359:void populateProtos():947:947 -> a
    359:359:void populateIndexTables():836 -> a
    360:363:void populateMethods():952:955 -> a
    360:363:void populateIndexTables():837 -> a
    364:376:com.android.tools.r8.graph.DexMethod methodAt(int):1071:1083 -> a
    364:376:void populateMethods():955 -> a
    364:376:void populateIndexTables():837 -> a
    377:377:com.android.tools.r8.graph.DexMethod methodAt(int):1080:1080 -> a
    377:377:void populateMethods():955 -> a
    377:377:void populateIndexTables():837 -> a
    378:378:void populateMethods():955:955 -> a
    378:378:void populateIndexTables():837 -> a
    379:382:void populateMethodHandles():850:853 -> a
    379:382:void populateIndexTables():838 -> a
    383:410:com.android.tools.r8.graph.DexMethodHandle methodHandleAt(int):999:1026 -> a
    383:410:void populateMethodHandles():853 -> a
    383:410:void populateIndexTables():838 -> a
    411:411:com.android.tools.r8.graph.DexMethodHandle methodHandleAt(int):1022:1022 -> a
    411:411:void populateMethodHandles():853 -> a
    411:411:void populateIndexTables():838 -> a
    412:428:com.android.tools.r8.graph.DexMethodHandle methodHandleAt(int):1014:1030 -> a
    412:428:void populateMethodHandles():853 -> a
    412:428:void populateIndexTables():838 -> a
    429:429:void populateMethodHandles():853:853 -> a
    429:429:void populateIndexTables():838 -> a
    430:433:void populateCallSites():858:861 -> a
    430:433:void populateIndexTables():839 -> a
    434:451:com.android.tools.r8.graph.DexCallSite callSiteAt(int):1034:1051 -> a
    434:451:void populateCallSites():861 -> a
    434:451:void populateIndexTables():839 -> a
    452:452:com.android.tools.r8.graph.DexCallSite callSiteAt(int):1046:1046 -> a
    452:452:void populateCallSites():861 -> a
    452:452:void populateIndexTables():839 -> a
    453:453:void populateCallSites():861:861 -> a
    453:453:void populateIndexTables():839 -> a
    1:2:com.android.tools.r8.graph.DexAnnotation parseAnnotation():411:412 -> b
    3:3:com.android.tools.r8.graph.DexAnnotationSet annotationSetAt(int):436:436 -> b
    4:6:java.lang.Object cacheAt(int,java.util.function.Supplier,java.util.function.Supplier):385:387 -> b
    4:6:com.android.tools.r8.graph.DexAnnotationSet annotationSetAt(int):436 -> b
    7:7:com.android.tools.r8.graph.DexAnnotationSet annotationSetAt(int):436:436 -> b
    1:1:com.android.tools.r8.graph.ParameterAnnotationsList annotationSetRefListAt(int):344:344 -> c
    2:11:com.android.tools.r8.graph.DexAnnotationSet parseAnnotationSet():423:432 -> c
    1:10:com.android.tools.r8.graph.ParameterAnnotationsList parseAnnotationSetRefList():348:357 -> d
    11:11:void com.android.tools.r8.graph.ParameterAnnotationsList.<init>(com.android.tools.r8.graph.DexAnnotationSet[]):54:54 -> d
    11:11:com.android.tools.r8.graph.ParameterAnnotationsList parseAnnotationSetRefList():357 -> d
    12:12:com.android.tools.r8.dex.DexParser$AnnotationsDirectory annotationsDirectoryAt(int):440:440 -> d
    13:15:java.lang.Object cacheAt(int,java.util.function.Supplier,java.util.function.Supplier):385:387 -> d
    13:15:com.android.tools.r8.dex.DexParser$AnnotationsDirectory annotationsDirectoryAt(int):440 -> d
    16:16:com.android.tools.r8.dex.DexParser$AnnotationsDirectory annotationsDirectoryAt(int):440:440 -> d
    1:4:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():445:448 -> e
    5:18:com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[] parseFieldAnnotations(int):305:318 -> e
    5:18:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():449 -> e
    19:32:com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[] parseMethodAnnotations(int):326:339 -> e
    19:32:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():450 -> e
    33:48:com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[] parseParameterAnnotations(int):364:379 -> e
    33:48:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():451 -> e
    49:50:com.android.tools.r8.dex.DexParser$AnnotationsDirectory parseAnnotationsDirectory():452:453 -> e
    51:51:com.android.tools.r8.graph.DexDebugInfo debugInfoAt(int):460:460 -> e
    1:1:com.android.tools.r8.graph.DexEncodedArray encodedArrayAt(int):298:298 -> f
    2:66:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():464:528 -> f
    67:69:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():522:524 -> f
    70:70:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():518:518 -> f
    71:71:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():514:514 -> f
    72:72:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():510:510 -> f
    73:73:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():506:506 -> f
    74:82:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():494:502 -> f
    83:83:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():498:498 -> f
    84:90:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():483:489 -> f
    91:91:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():486:486 -> f
    92:92:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():480:480 -> f
    93:145:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():477:529 -> f
    146:205:com.android.tools.r8.graph.DexDebugInfo parseDebugInfo():474:533 -> f
    1:9:com.android.tools.r8.graph.DexEncodedAnnotation parseEncodedAnnotation():272:280 -> g
    10:16:com.android.tools.r8.dex.DexSection lookupSection(int):725:731 -> g
    1:3:com.android.tools.r8.graph.DexTypeList typeListAt(int):171:173 -> h
    4:4:com.android.tools.r8.graph.DexEncodedArray parseEncodedArray():294:294 -> h
    1:4:com.android.tools.r8.graph.DexValue[] parseEncodedArrayValues():284:287 -> i
    1:91:com.android.tools.r8.graph.DexValue parseEncodedValue():177:267 -> j
    92:92:com.android.tools.r8.graph.DexValue parseEncodedValue():254:254 -> j
    93:94:com.android.tools.r8.graph.DexValue parseEncodedValue():249:250 -> j
    95:96:com.android.tools.r8.graph.DexValue parseEncodedValue():245:246 -> j
    97:98:com.android.tools.r8.graph.DexValue parseEncodedValue():241:242 -> j
    99:100:com.android.tools.r8.graph.DexValue parseEncodedValue():237:238 -> j
    101:102:com.android.tools.r8.graph.DexValue parseEncodedValue():232:233 -> j
    103:104:com.android.tools.r8.graph.DexValue parseEncodedValue():227:228 -> j
    105:106:com.android.tools.r8.graph.DexValue parseEncodedValue():222:223 -> j
    107:155:com.android.tools.r8.graph.DexValue parseEncodedValue():216:264 -> j
    156:157:com.android.tools.r8.graph.DexValue parseEncodedValue():258:259 -> j
    158:158:com.android.tools.r8.graph.DexValue parseEncodedValue():212:212 -> j
    159:159:com.android.tools.r8.graph.DexValue parseEncodedValue():208:208 -> j
    160:161:com.android.tools.r8.graph.DexValue parseEncodedValue():198:199 -> j
    162:163:com.android.tools.r8.graph.DexValue parseEncodedValue():193:194 -> j
    164:180:com.android.tools.r8.graph.DexValue parseEncodedValue():188:204 -> j
    181:183:com.android.tools.r8.graph.DexValue parseEncodedValue():182:184 -> j
    1:5:com.android.tools.r8.graph.DexTypeList parseTypeList():162:166 -> k
    1:1:com.android.tools.r8.dex.DexSection[] parseMapFrom(java.nio.file.Path):91:91 -> parseMapFrom
    2:2:com.android.tools.r8.dex.DexSection[] parseMapFrom(java.io.InputStream,com.android.tools.r8.origin.Origin):95:95 -> parseMapFrom
    2:2:com.android.tools.r8.dex.DexSection[] parseMapFrom(java.nio.file.Path):91 -> parseMapFrom
    3:6:com.android.tools.r8.dex.DexSection[] parseMapFrom(com.android.tools.r8.dex.DexReader):99:102 -> parseMapFrom
    3:6:com.android.tools.r8.dex.DexSection[] parseMapFrom(java.io.InputStream,com.android.tools.r8.origin.Origin):95 -> parseMapFrom
    3:6:com.android.tools.r8.dex.DexSection[] parseMapFrom(java.nio.file.Path):91 -> parseMapFrom
com.android.tools.r8.dex.DexParser$1 -> com.android.tools.r8.dex.d:
    1:1:void <init>():101:101 -> <init>
com.android.tools.r8.dex.DexParser$AnnotationsDirectory -> com.android.tools.r8.dex.DexParser$a:
    com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[] NO_METHOD_ANNOTATIONS -> g
    com.android.tools.r8.dex.DexParser$AnnotationsDirectory THE_EMPTY_ANNOTATIONS_DIRECTORY -> h
    com.android.tools.r8.graph.DexAnnotationSet clazz -> a
    com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[] fields -> b
    com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[] NO_PARAMETER_ANNOTATIONS -> e
    com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[] NO_FIELD_ANNOTATIONS -> f
    com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[] methods -> c
    com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[] parameters -> d
    1:11:void <clinit>():1088:1098 -> <clinit>
    1:5:void <init>(com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation[],com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation[]):1110:1114 -> <init>
    1:1:com.android.tools.r8.dex.DexParser$AnnotationsDirectory empty():1118:1118 -> a
com.android.tools.r8.dex.DexParser$AttributesAndAnnotations -> com.android.tools.r8.dex.DexParser$b:
    com.android.tools.r8.graph.EnclosingMethodAttribute enclosingMethodAttribute -> b
    java.util.List lazyAnnotations -> d
    com.android.tools.r8.graph.DexAnnotationSet originalAnnotations -> a
    java.util.List innerClasses -> c
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():1122:1122 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexItemFactory):1148:1148 -> <init>
    2:32:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexItemFactory):1125:1155 -> <init>
    33:33:boolean com.android.tools.r8.graph.DexAnnotation.isEnclosingClassAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):99:99 -> <init>
    33:33:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexItemFactory):1156 -> <init>
    34:35:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexItemFactory):1157:1158 -> <init>
    36:36:boolean com.android.tools.r8.graph.DexAnnotation.isEnclosingMethodAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):104:104 -> <init>
    36:36:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexItemFactory):1159 -> <init>
    37:47:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexItemFactory):1160:1170 -> <init>
    48:48:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexItemFactory):1169:1169 -> <init>
    49:49:boolean com.android.tools.r8.graph.DexAnnotation.isMemberClassesAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):113:113 -> <init>
    49:49:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexItemFactory):1171 -> <init>
    50:55:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexItemFactory):1172:1177 -> <init>
    56:57:void copyAnnotation(com.android.tools.r8.graph.DexAnnotation):1237:1238 -> <init>
    56:57:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexItemFactory):1180 -> <init>
    58:87:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexItemFactory):1185:1214 -> <init>
    88:103:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexItemFactory):1209:1224 -> <init>
    104:104:com.android.tools.r8.graph.InnerClassAttribute com.android.tools.r8.graph.InnerClassAttribute.createUnknownNamedInnerClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):29:29 -> <init>
    104:104:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexItemFactory):1224 -> <init>
    105:105:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexItemFactory):1224:1224 -> <init>
    1:7:com.android.tools.r8.graph.DexAnnotationSet getAnnotations():1130:1136 -> a
    8:10:void ensureAnnotations(int):1230:1232 -> a
    1:1:com.android.tools.r8.graph.EnclosingMethodAttribute getEnclosingMethodAttribute():1144:1144 -> b
    1:1:java.util.List getInnerClasses():1140:1140 -> c
com.android.tools.r8.dex.DexParser$MemberAnnotationIterator -> com.android.tools.r8.dex.DexParser$c:
    java.util.function.Supplier emptyValue -> c
    com.android.tools.r8.graph.DexMemberAnnotation[] annotations -> b
    int index -> a
    1:1:void <init>(com.android.tools.r8.graph.DexMemberAnnotation[],java.util.function.Supplier):543:543 -> <init>
    1:1:void <init>(com.android.tools.r8.graph.DexMemberAnnotation[],java.util.function.Supplier,com.android.tools.r8.dex.DexParser$1):536 -> <init>
    2:9:void <init>(com.android.tools.r8.graph.DexMemberAnnotation[],java.util.function.Supplier):538:545 -> <init>
    2:9:void <init>(com.android.tools.r8.graph.DexMemberAnnotation[],java.util.function.Supplier,com.android.tools.r8.dex.DexParser$1):536 -> <init>
    1:7:com.android.tools.r8.graph.DexItem getNextFor(com.android.tools.r8.graph.Descriptor):555:561 -> a
    8:8:com.android.tools.r8.graph.DexItem getNextFor(com.android.tools.r8.graph.Descriptor):559:559 -> a
com.android.tools.r8.dex.DexReader -> com.android.tools.r8.dex.DexReader:
    int version -> d
    1:1:void com.android.tools.r8.dex.BinaryReader.<init>(com.android.tools.r8.ProgramResource):22:22 -> <init>
    1:1:void <init>(com.android.tools.r8.ProgramResource):25 -> <init>
    2:3:byte[] com.android.tools.r8.utils.StreamUtils.StreamToByteArrayClose(java.io.InputStream):16:17 -> <init>
    2:3:void com.android.tools.r8.dex.BinaryReader.<init>(com.android.tools.r8.ProgramResource):22 -> <init>
    2:3:void <init>(com.android.tools.r8.ProgramResource):25 -> <init>
    4:4:void com.android.tools.r8.dex.BinaryReader.<init>(com.android.tools.r8.ProgramResource):22:22 -> <init>
    4:4:void <init>(com.android.tools.r8.ProgramResource):25 -> <init>
    5:5:void <init>(com.android.tools.r8.ProgramResource):26:26 -> <init>
    6:7:void <init>(com.android.tools.r8.origin.Origin,byte[]):35:36 -> <init>
    1:9:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):42:50 -> a
    10:10:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):29:29 -> a
    10:10:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):50 -> a
    11:33:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):50:72 -> a
    34:49:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):60:75 -> a
    50:50:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):29:29 -> a
    50:50:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):75 -> a
    51:51:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):75:75 -> a
    52:52:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):29:29 -> a
    52:52:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):72 -> a
    53:53:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):72:72 -> a
    54:54:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer) -> a
    55:55:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):29:29 -> a
    55:55:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):54 -> a
    56:56:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):54:54 -> a
    57:57:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):45:45 -> a
    58:58:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):29:29 -> a
    58:58:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):45 -> a
    59:59:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):45:45 -> a
    1:1:int getDexVersion():95:95 -> m
    1:7:void setByteOrder():83:89 -> n
com.android.tools.r8.dex.DexSection -> com.android.tools.r8.dex.DexSection:
    boolean $assertionsDisabled -> b
    int offset -> a
    1:1:void <clinit>():9:9 -> <clinit>
    1:5:void <init>(int,int,int,int):15:19 -> <init>
    void setEnd(int) -> a
    1:1:java.lang.String typeName():33:33 -> a
    1:1:java.lang.String toString():83:83 -> toString
com.android.tools.r8.dex.FileWriter -> com.android.tools.r8.dex.j:
    com.android.tools.r8.graph.ObjectToOffsetMapping mapping -> a
    com.android.tools.r8.utils.InternalOptions options -> d
    com.android.tools.r8.dex.MethodToCodeObjectMapping codeMapping -> b
    com.android.tools.r8.dex.DexOutputBuffer dest -> f
    boolean $assertionsDisabled -> h
    com.android.tools.r8.naming.NamingLens namingLens -> e
    com.android.tools.r8.dex.FileWriter$MixedSectionOffsets mixedSectionOffsets -> g
    com.android.tools.r8.graph.DexApplication application -> c
    1:1:void <clinit>():74:74 -> <clinit>
    1:8:void <init>(com.android.tools.r8.ByteBufferProvider,com.android.tools.r8.graph.ObjectToOffsetMapping,com.android.tools.r8.dex.MethodToCodeObjectMapping,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.naming.NamingLens):102:109 -> <init>
    int alignSize(int,int) -> a
    1:1:com.android.tools.r8.dex.FileWriter$MixedSectionOffsets access$300(com.android.tools.r8.dex.FileWriter):74:74 -> a
    2:7:void writeEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation,com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):117:122 -> a
    8:8:com.android.tools.r8.graph.DexString lambda$writeEncodedAnnotation$0(com.android.tools.r8.graph.DexAnnotationElement):119:119 -> a
    9:29:com.android.tools.r8.dex.FileWriter collect():128:148 -> a
    30:67:void checkInterfaceMethod(com.android.tools.r8.graph.DexEncodedMethod):244:281 -> a
    68:69:void checkInterfaceMethod(com.android.tools.r8.graph.DexEncodedMethod):257:258 -> a
    70:75:void lambda$sortDexCodesByClassName$1(java.util.List,java.util.Map,com.android.tools.r8.graph.DexEncodedMethod):291:296 -> a
    76:82:void addSignaturesFromMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexCode,java.util.Map,com.android.tools.r8.naming.ClassNameMapper):312:318 -> a
    76:82:void lambda$sortDexCodesByClassName$1(java.util.List,java.util.Map,com.android.tools.r8.graph.DexEncodedMethod):295 -> a
    83:85:void writeFixedSectionItems(java.util.Collection,int,java.util.function.Consumer):323:325 -> a
    86:86:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer):339:339 -> a
    87:91:void writeItems(java.util.Collection,java.util.function.Consumer,java.util.function.Consumer,int):344:348 -> a
    92:93:void writeTypeItem(com.android.tools.r8.graph.DexType):397:398 -> a
    94:96:void writeProtoItem(com.android.tools.r8.graph.DexProto):402:404 -> a
    97:104:void writeFieldItem(com.android.tools.r8.graph.DexField):408:415 -> a
    105:112:void writeMethodItem(com.android.tools.r8.graph.DexMethod):419:426 -> a
    113:114:void writeDebugItem(com.android.tools.r8.graph.DexDebugInfo):443:444 -> a
    115:162:void writeCodeItem(com.android.tools.r8.graph.DexCode):448:495 -> a
    163:168:void writeTypeList(com.android.tools.r8.graph.DexTypeList):500:505 -> a
    169:171:void writeStringData(com.android.tools.r8.graph.DexString):510:512 -> a
    172:172:com.android.tools.r8.graph.DexType lambda$writeAnnotationSet$2(com.android.tools.r8.graph.DexAnnotation):525:525 -> a
    173:180:void writeAnnotationSet(com.android.tools.r8.graph.DexAnnotationSet):525:532 -> a
    181:190:void writeAnnotationSetRefList(com.android.tools.r8.graph.ParameterAnnotationsList):537:546 -> a
    191:193:void writeMemberAnnotations(java.util.List,java.util.function.ToIntFunction):552:554 -> a
    194:206:void writeAnnotationDirectory(com.android.tools.r8.graph.DexAnnotationDirectory):559:571 -> a
    207:207:int lambda$writeAnnotationDirectory$3(com.android.tools.r8.graph.DexEncodedField):568:568 -> a
    208:215:void writeEncodedFields(java.util.List):576:583 -> a
    216:232:void writeEncodedMethods(java.util.List,boolean):588:604 -> a
    233:239:void addStaticFieldValues(com.android.tools.r8.graph.DexProgramClass):624:630 -> a
    240:247:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):635:642 -> a
    248:266:void writeMethodHandle(com.android.tools.r8.graph.DexMethodHandle):639:657 -> a
    267:269:void writeCallSite(com.android.tools.r8.graph.DexCallSite):661:663 -> a
    270:276:void writeEncodedArray(com.android.tools.r8.graph.DexEncodedArray):667:673 -> a
    277:280:int writeMapItem(int,int,int):684:687 -> a
    1:7:void checkInterfaceMethods():225:231 -> b
    1:7:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():155 -> b
    8:18:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():157:167 -> b
    19:20:int sizeOfCodeItems(java.lang.Iterable):354:355 -> b
    19:20:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():167 -> b
    21:39:int sizeOfCodeItem(com.android.tools.r8.graph.DexCode):364:382 -> b
    21:39:int sizeOfCodeItems(java.lang.Iterable):356 -> b
    21:39:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():167 -> b
    40:72:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():167:199 -> b
    73:78:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):692:697 -> b
    73:78:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():200 -> b
    79:82:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):696:699 -> b
    79:82:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():200 -> b
    83:86:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):698:701 -> b
    83:86:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():200 -> b
    87:90:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):700:703 -> b
    87:90:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():200 -> b
    91:94:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):702:705 -> b
    91:94:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():200 -> b
    95:98:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):704:707 -> b
    95:98:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():200 -> b
    99:102:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):706:709 -> b
    99:102:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():200 -> b
    103:106:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):708:711 -> b
    103:106:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():200 -> b
    107:110:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):710:713 -> b
    107:110:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():200 -> b
    111:114:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):712:715 -> b
    111:114:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():200 -> b
    115:118:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):714:717 -> b
    115:118:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():200 -> b
    119:122:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):716:719 -> b
    119:122:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():200 -> b
    123:126:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):718:721 -> b
    123:126:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():200 -> b
    127:130:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):720:723 -> b
    127:130:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():200 -> b
    131:134:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):722:725 -> b
    131:134:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():200 -> b
    135:138:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):724:727 -> b
    135:138:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():200 -> b
    139:143:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):726:730 -> b
    139:143:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():200 -> b
    144:149:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):728:733 -> b
    144:149:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():200 -> b
    150:156:void writeMap(com.android.tools.r8.dex.FileWriter$Layout):731:737 -> b
    150:156:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():200 -> b
    157:166:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():201:210 -> b
    167:169:void writeFixedSectionItems(com.android.tools.r8.graph.DexProgramClass[],int,java.util.function.Consumer):331:333 -> b
    167:169:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():210 -> b
    170:172:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():211:213 -> b
    173:173:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():212:212 -> b
    174:179:void writeHeader(com.android.tools.r8.dex.FileWriter$Layout):741:746 -> b
    174:179:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():216 -> b
    180:213:void writeHeader(com.android.tools.r8.dex.FileWriter$Layout):743:776 -> b
    180:213:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():216 -> b
    214:216:void writeSignature(com.android.tools.r8.dex.FileWriter$Layout):781:783 -> b
    214:216:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():217 -> b
    217:219:void writeSignature(com.android.tools.r8.dex.FileWriter$Layout):782:784 -> b
    217:219:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():217 -> b
    220:222:void writeChecksum(com.android.tools.r8.dex.FileWriter$Layout):791:793 -> b
    220:222:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():218 -> b
    223:226:void writeChecksum(com.android.tools.r8.dex.FileWriter$Layout):792:795 -> b
    223:226:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():218 -> b
    227:227:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():221:221 -> b
    228:228:void writeSignature(com.android.tools.r8.dex.FileWriter$Layout):786:786 -> b
    228:228:com.android.tools.r8.dex.FileWriter$ByteBufferResult generate():217 -> b
    229:229:void writeStringItem(com.android.tools.r8.graph.DexString):393:393 -> b
    230:235:void writeAnnotation(com.android.tools.r8.graph.DexAnnotation):516:521 -> b
    236:236:int lambda$writeAnnotationDirectory$4(com.android.tools.r8.graph.DexEncodedMethod):570:570 -> b
    237:247:void writeClassData(com.android.tools.r8.graph.DexProgramClass):610:620 -> b
    1:4:void writeClassDefItem(com.android.tools.r8.graph.DexProgramClass):430:433 -> c
    5:9:void writeClassDefItem(com.android.tools.r8.graph.DexProgramClass):432:436 -> c
    10:14:void writeClassDefItem(com.android.tools.r8.graph.DexProgramClass):435:439 -> c
    15:15:int lambda$writeAnnotationDirectory$5(com.android.tools.r8.graph.DexEncodedMethod):572:572 -> c
    16:17:void checkThatInvokeCustomIsAllowed():1329:1330 -> c
    1:15:java.util.List sortDexCodesByClassName():286:300 -> d
com.android.tools.r8.dex.FileWriter$1 -> com.android.tools.r8.dex.e:
    int[] $SwitchMap$com$android$tools$r8$graph$DexMethodHandle$MethodHandleType -> a
    1:1:void <clinit>():637:637 -> <clinit>
com.android.tools.r8.dex.FileWriter$ByteBufferResult -> com.android.tools.r8.dex.f:
    com.android.tools.r8.dex.CompatByteBuffer buffer -> a
    int length -> b
    1:3:void <init>(com.android.tools.r8.dex.CompatByteBuffer,int):82:84 -> <init>
    1:3:void <init>(com.android.tools.r8.dex.CompatByteBuffer,int,com.android.tools.r8.dex.FileWriter$1):77 -> <init>
com.android.tools.r8.dex.FileWriter$Layout -> com.android.tools.r8.dex.g:
    int annotationsOffset -> n
    int annotationSetsOffset -> o
    int typeListsOffset -> l
    int stringDataOffsets -> m
    int codesOffset -> j
    int debugInfosOffset -> k
    int methodHandleIdsOffset -> h
    int dataSectionOffset -> i
    int classDefsOffset -> f
    boolean $assertionsDisabled -> v
    int callSiteIdsOffset -> g
    int fieldIdsOffset -> d
    int methodIdsOffset -> e
    int typeIdsOffset -> b
    int protoIdsOffset -> c
    int stringIdsOffset -> a
    int mapOffset -> t
    int endOfFile -> u
    int classDataOffset -> r
    int encodedArrarysOffset -> s
    int annotationSetRefListsOffset -> p
    int annotationDirectoriesOffset -> q
    1:1:void <clinit>():803:803 -> <clinit>
    1:1:void <init>(int,int,int,int,int,int,int,int,int):835:835 -> <init>
    2:35:void <init>(int,int,int,int,int,int,int,int,int):819:852 -> <init>
    void alreadySetOffset(int) -> a
    1:10:com.android.tools.r8.dex.FileWriter$Layout from(com.android.tools.r8.graph.ObjectToOffsetMapping):857:866 -> a
    11:11:boolean isValidOffset(int,boolean):876:876 -> a
    12:13:int getAnnotationDirectoriesOffset():954:955 -> a
    1:2:int getAnnotationSetRefListsOffset():944:945 -> b
    3:4:void setAnnotationDirectoriesOffset(int):959:960 -> b
    1:2:int getAnnotationSetsOffset():930:931 -> c
    3:4:void setAnnotationSetRefListsOffset(int):949:950 -> c
    1:2:int getAnnotationsOffset():920:921 -> d
    3:4:void setAnnotationSetsOffset(int):939:940 -> d
    1:2:void setAnnotationsOffset(int):925:926 -> e
    3:4:int getClassDataOffset():964:965 -> e
    1:2:int getCodesOffset():880:881 -> f
    3:4:void setClassDataOffset(int):969:970 -> f
    1:2:void setCodesOffset(int):885:886 -> g
    3:3:int getEndOfFile():992:992 -> g
    3:3:int getDataSectionSize():870 -> g
    4:5:int getDataSectionSize():870:871 -> g
    1:2:int getDebugInfosOffset():890:891 -> h
    3:4:void setDebugInfosOffset(int):895:896 -> h
    1:2:int getEncodedArrarysOffset():974:975 -> i
    3:4:void setEncodedArrarysOffset(int):979:980 -> i
    1:1:int getEndOfFile():992:992 -> j
    2:2:void setEndOfFile(int):996:996 -> j
    1:1:int getMapOffset():984:984 -> k
    2:2:void setMapOffset(int):988:988 -> k
    1:2:int getStringDataOffsets():910:911 -> l
    3:4:void setStringDataOffsets(int):915:916 -> l
    1:2:int getTypeListsOffset():900:901 -> m
    3:4:void setTypeListsOffset(int):905:906 -> m
com.android.tools.r8.dex.FileWriter$MixedSectionOffsets -> com.android.tools.r8.dex.h:
    boolean $assertionsDisabled -> n
    int minApiLevel -> m
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap debugInfos -> c
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap typeLists -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap annotations -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap stringData -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap codes -> b
    com.android.tools.r8.dex.MethodToCodeObjectMapping codeMapping -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap annotationSets -> g
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap annotationSetRefLists -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap annotationDirectories -> i
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap classesWithData -> j
    java.util.Map clazzToAnnotationDirectory -> l
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap encodedArrays -> k
    1:1:void <clinit>():1008:1008 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.dex.MethodToCodeObjectMapping):1044:1044 -> <init>
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.dex.MethodToCodeObjectMapping,com.android.tools.r8.dex.FileWriter$1):1008 -> <init>
    2:33:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.dex.MethodToCodeObjectMapping):1015:1046 -> <init>
    2:33:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.dex.MethodToCodeObjectMapping,com.android.tools.r8.dex.FileWriter$1):1008 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap access$100(com.android.tools.r8.dex.FileWriter$MixedSectionOffsets):1008:1008 -> a
    2:3:boolean add(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap,java.lang.Object):1050:1051 -> a
    4:4:boolean add(com.android.tools.r8.graph.DexProgramClass):1067:1067 -> a
    5:5:boolean add(com.android.tools.r8.graph.DexEncodedArray):1072:1072 -> a
    6:9:boolean add(com.android.tools.r8.graph.DexAnnotationSet):1079:1082 -> a
    10:10:void visit(com.android.tools.r8.graph.DexEncodedMethod):1087:1087 -> a
    11:11:boolean add(com.android.tools.r8.graph.DexCode):1092:1092 -> a
    12:13:boolean add(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,java.lang.Object):1058:1059 -> a
    12:13:boolean add(com.android.tools.r8.graph.DexCode):1092 -> a
    14:14:boolean add(com.android.tools.r8.graph.DexDebugInfo):1097:1097 -> a
    15:18:boolean add(com.android.tools.r8.graph.DexTypeList):1102:1105 -> a
    19:22:boolean add(com.android.tools.r8.graph.ParameterAnnotationsList):1110:1113 -> a
    23:23:boolean add(com.android.tools.r8.graph.DexAnnotation):1118:1118 -> a
    24:26:boolean setAnnotationsDirectoryForClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexAnnotationDirectory):1124:1126 -> a
    27:27:boolean add(com.android.tools.r8.graph.DexString):1130:1130 -> a
    28:29:boolean add(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,java.lang.Object):1058:1059 -> a
    28:29:boolean add(com.android.tools.r8.graph.DexString):1130 -> a
    30:30:java.util.Collection getAnnotationDirectories():1166:1166 -> a
    31:31:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.keySet():87:87 -> a
    31:31:java.util.Collection getAnnotationDirectories():1166 -> a
    32:33:int lookup(java.lang.Object,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap):1177:1178 -> a
    34:35:int lookup(java.lang.Object,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1186:1187 -> a
    36:37:void setOffsetFor(java.lang.Object,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap):1249:1250 -> a
    38:39:void setOffsetFor(java.lang.Object,int,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1254:1255 -> a
    40:40:void setOffsetFor(com.android.tools.r8.graph.DexDebugInfo,int):1259:1259 -> a
    41:41:void setOffsetFor(com.android.tools.r8.graph.DexCode,int):1263:1263 -> a
    42:43:void setOffsetFor(com.android.tools.r8.graph.DexTypeList,int):1267:1268 -> a
    44:44:void setOffsetFor(com.android.tools.r8.graph.DexString,int):1272:1272 -> a
    45:45:void setOffsetFor(com.android.tools.r8.graph.DexAnnotation,int):1276:1276 -> a
    46:47:void setOffsetFor(com.android.tools.r8.graph.DexAnnotationSet,int):1282:1283 -> a
    48:48:void setOffsetForAnnotationsDirectory(com.android.tools.r8.graph.DexAnnotationDirectory,int):1287:1287 -> a
    49:49:void setOffsetFor(com.android.tools.r8.graph.DexProgramClass,int):1291:1291 -> a
    50:50:void setOffsetFor(com.android.tools.r8.graph.DexEncodedArray,int):1295:1295 -> a
    51:52:void setOffsetFor(com.android.tools.r8.graph.ParameterAnnotationsList,int):1299:1300 -> a
    1:1:java.util.Collection getAnnotationSetRefLists():1158:1158 -> b
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.keySet():87:87 -> b
    2:2:java.util.Collection getAnnotationSetRefLists():1158 -> b
    3:3:int getOffsetFor(com.android.tools.r8.graph.DexString):1192:1192 -> b
    4:7:int getOffsetFor(com.android.tools.r8.graph.DexTypeList):1196:1199 -> b
    8:8:int getOffsetFor(com.android.tools.r8.graph.DexProgramClass):1203:1203 -> b
    9:9:int getOffsetFor(com.android.tools.r8.graph.DexEncodedArray):1207:1207 -> b
    10:10:int getOffsetFor(com.android.tools.r8.graph.DexDebugInfo):1211:1211 -> b
    11:11:int getOffsetFor(com.android.tools.r8.graph.DexAnnotation):1225:1225 -> b
    12:15:int getOffsetFor(com.android.tools.r8.graph.DexAnnotationSet):1231:1234 -> b
    16:19:int getOffsetFor(com.android.tools.r8.graph.ParameterAnnotationsList):1238:1241 -> b
    20:20:int getOffsetFor(com.android.tools.r8.graph.DexCode):1245:1245 -> b
    1:1:java.util.Collection getAnnotationSets():1154:1154 -> c
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.keySet():87:87 -> c
    2:2:java.util.Collection getAnnotationSets():1154 -> c
    3:7:int getOffsetForAnnotationsDirectory(com.android.tools.r8.graph.DexProgramClass):1216:1220 -> c
    1:1:java.util.Collection getAnnotations():1150:1150 -> d
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.keySet():87:87 -> d
    2:2:java.util.Collection getAnnotations():1150 -> d
    1:1:java.util.Collection getClassesWithData():1162:1162 -> e
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.keySet():87:87 -> e
    2:2:java.util.Collection getClassesWithData():1162 -> e
    1:1:java.util.Collection getCodes():1134:1134 -> f
    1:1:java.util.Collection getDebugInfos():1138:1138 -> g
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.keySet():87:87 -> g
    2:2:java.util.Collection getDebugInfos():1138 -> g
    1:1:java.util.Collection getEncodedArrays():1170:1170 -> h
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.keySet():87:87 -> h
    2:2:java.util.Collection getEncodedArrays():1170 -> h
    1:1:java.util.Collection getStringData():1146:1146 -> i
    1:1:java.util.Collection getTypeLists():1142:1142 -> j
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.keySet():87:87 -> j
    2:2:java.util.Collection getTypeLists():1142 -> j
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap createObject2IntMap():1033:1034 -> k
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap createReference2IntMap():1039:1039 -> l
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap.<init>():176:176 -> l
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap createReference2IntMap():1039 -> l
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap createReference2IntMap():1040:1040 -> l
com.android.tools.r8.dex.FileWriter$ProgramClassDependencyCollector -> com.android.tools.r8.dex.i:
    java.util.Set includedClasses -> c
    com.android.tools.r8.dex.FileWriter this$0 -> d
    1:2:void <init>(com.android.tools.r8.dex.FileWriter,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexProgramClass[]):1308:1309 -> <init>
    3:7:void <init>(com.android.tools.r8.dex.FileWriter,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexProgramClass[]):1306:1310 -> <init>
    void visit(com.android.tools.r8.graph.DexType) -> a
    1:4:void visit(com.android.tools.r8.graph.DexClass):1321:1324 -> a
com.android.tools.r8.dex.IndexedItemCollection -> com.android.tools.r8.dex.k:
    boolean addCallSite(com.android.tools.r8.graph.DexCallSite) -> a
    boolean addClass(com.android.tools.r8.graph.DexProgramClass) -> a
    boolean addField(com.android.tools.r8.graph.DexField) -> a
    boolean addMethod(com.android.tools.r8.graph.DexMethod) -> a
    boolean addMethodHandle(com.android.tools.r8.graph.DexMethodHandle) -> a
    boolean addProto(com.android.tools.r8.graph.DexProto) -> a
    boolean addString(com.android.tools.r8.graph.DexString) -> a
    boolean addType(com.android.tools.r8.graph.DexType) -> a
    1:1:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexMethod):103:103 -> b
    2:2:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexField):107:107 -> b
    3:3:com.android.tools.r8.graph.DexString getRenamedDescriptor(com.android.tools.r8.graph.DexType):111:111 -> b
com.android.tools.r8.dex.InheritanceClassInDexDistributor -> com.android.tools.r8.dex.o:
    com.android.tools.r8.dex.VirtualFile mainDex -> b
    com.android.tools.r8.dex.InheritanceClassInDexDistributor$DirectSubClassesInfo directSubClasses -> i
    java.util.Comparator DEX_PROGRAM_CLASS_COMPARATOR -> j
    boolean $assertionsDisabled -> k
    java.util.Set classes -> e
    java.util.List dexes -> c
    int dexIndexOffset -> g
    com.android.tools.r8.naming.NamingLens namingLens -> h
    java.util.concurrent.ExecutorService executorService -> a
    java.util.BitSet fullDex -> d
    com.android.tools.r8.graph.DexApplication app -> f
    1:4:void <clinit>():43:46 -> <clinit>
    1:1:void <init>(com.android.tools.r8.dex.VirtualFile,java.util.List,java.util.Set,java.util.Map,int,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):297:297 -> <init>
    2:26:void <init>(com.android.tools.r8.dex.VirtualFile,java.util.List,java.util.Set,java.util.Map,int,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):282:306 -> <init>
    1:1:com.android.tools.r8.naming.NamingLens access$000(com.android.tools.r8.dex.InheritanceClassInDexDistributor):43:43 -> a
    2:2:java.util.List access$100(java.util.Collection):43:43 -> a
    3:3:java.util.Comparator access$200():43:43 -> a
    4:4:com.android.tools.r8.graph.DexString lambda$static$0(com.android.tools.r8.graph.DexProgramClass):46:46 -> a
    5:6:int getTotalClassNumber(java.util.List):366:367 -> a
    7:37:java.util.Collection assignGroup(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup,java.util.List):373:403 -> a
    38:38:boolean lambda$assignGroup$1(java.util.List,com.android.tools.r8.dex.VirtualFile):379:379 -> a
    39:39:boolean isDexFull(com.android.tools.r8.dex.VirtualFile):720:720 -> a
    39:39:boolean lambda$assignGroup$1(java.util.List,com.android.tools.r8.dex.VirtualFile):379 -> a
    40:40:boolean lambda$assignClassesWithLinkingError$3(java.util.HashSet,com.android.tools.r8.dex.VirtualFile):432:432 -> a
    41:41:boolean isDexFull(com.android.tools.r8.dex.VirtualFile):720:720 -> a
    41:41:boolean lambda$assignClassesWithLinkingError$3(java.util.HashSet,com.android.tools.r8.dex.VirtualFile):432 -> a
    42:42:java.util.List collectNoDirectInheritanceGroups(java.util.Set):478:478 -> a
    42:42:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):416 -> a
    43:47:java.util.List getTopologicalOrder(java.util.Set):691:695 -> a
    43:47:java.util.List collectNoDirectInheritanceGroups(java.util.Set):479 -> a
    43:47:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):416 -> a
    48:72:java.util.List collectNoDirectInheritanceGroups(java.util.Set):480:504 -> a
    48:72:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):416 -> a
    73:101:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):418:446 -> a
    102:102:void markDexFull(com.android.tools.r8.dex.VirtualFile):716:716 -> a
    102:102:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):447 -> a
    103:106:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):450:453 -> a
    107:120:java.util.Collection assignClassesWithLinkingError(java.util.Set,java.util.Collection):442:455 -> a
    121:121:void lambda$updateGroupsNumberOfIds$5(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):540:540 -> a
    122:142:void collectGroup(java.util.Collection,com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup,com.android.tools.r8.graph.DexProgramClass):562:582 -> a
    143:151:boolean assignAll(com.android.tools.r8.dex.VirtualFile,java.util.Collection):591:599 -> a
    152:152:void markDexFull(com.android.tools.r8.dex.VirtualFile):716:716 -> a
    152:152:boolean assignAll(com.android.tools.r8.dex.VirtualFile,java.util.Collection):600 -> a
    153:159:boolean assignAll(com.android.tools.r8.dex.VirtualFile,java.util.Collection):602:608 -> a
    160:160:boolean assignAll(com.android.tools.r8.dex.VirtualFile,java.util.Collection):607:607 -> a
    161:168:com.android.tools.r8.graph.DexProgramClass findOneRootInSetFrom(com.android.tools.r8.graph.DexProgramClass,java.util.Set):702:709 -> a
    169:169:boolean isDexFull(com.android.tools.r8.dex.VirtualFile):720:720 -> a
    1:1:com.android.tools.r8.dex.VirtualFile access$300(com.android.tools.r8.dex.InheritanceClassInDexDistributor):43:43 -> b
    2:2:boolean lambda$assignGroup$2(java.util.List,com.android.tools.r8.dex.VirtualFile):393:393 -> b
    3:3:boolean isDexFull(com.android.tools.r8.dex.VirtualFile):720:720 -> b
    3:3:boolean lambda$assignGroup$2(java.util.List,com.android.tools.r8.dex.VirtualFile):393 -> b
    4:4:boolean lambda$assignClassesWithLinkingError$4(java.util.HashSet,com.android.tools.r8.dex.VirtualFile):451:451 -> b
    5:5:boolean isDexFull(com.android.tools.r8.dex.VirtualFile):720:720 -> b
    5:5:boolean lambda$assignClassesWithLinkingError$4(java.util.HashSet,com.android.tools.r8.dex.VirtualFile):451 -> b
    6:17:java.util.List collectInheritanceGroups():522:533 -> b
    6:17:void distribute():310 -> b
    18:65:void distribute():312:359 -> b
    66:80:void updateGroupsNumberOfIds(java.util.List):538:552 -> b
    81:81:void updateGroupsNumberOfIds(java.util.List):547:547 -> b
    82:91:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):619:628 -> b
    92:96:boolean hasDirectInheritanceInCollection(com.android.tools.r8.graph.DexProgramClass,java.util.Set):660:664 -> b
    92:96:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):629 -> b
    97:107:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):632:642 -> b
    108:108:void markDexFull(com.android.tools.r8.dex.VirtualFile):716:716 -> b
    108:108:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):643 -> b
    109:120:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):637:648 -> b
    121:145:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):630:654 -> b
    146:146:java.util.Set assignFromRoot(com.android.tools.r8.dex.VirtualFile,java.util.Collection):653:653 -> b
    147:148:java.util.List getSortedCopy(java.util.Collection):682:683 -> b
    1:1:com.android.tools.r8.graph.DexApplication access$400(com.android.tools.r8.dex.InheritanceClassInDexDistributor):43:43 -> c
com.android.tools.r8.dex.InheritanceClassInDexDistributor$CategorizedInheritanceGroupWithMainDexDependency -> com.android.tools.r8.dex.l:
    com.android.tools.r8.dex.InheritanceClassInDexDistributor this$0 -> d
    java.util.Set dependentsOfMainDexIndependents -> c
    boolean $assertionsDisabled -> e
    java.util.Set mainDexIndependents -> a
    java.util.Set independentsFromMainDexIndependents -> b
    1:1:void <clinit>():124:124 -> <clinit>
    1:1:void <init>(com.android.tools.r8.dex.InheritanceClassInDexDistributor,com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):133:133 -> <init>
    2:30:void <init>(com.android.tools.r8.dex.InheritanceClassInDexDistributor,com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):127:155 -> <init>
    31:31:void <init>(com.android.tools.r8.dex.InheritanceClassInDexDistributor,com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):152:152 -> <init>
    1:12:boolean isDependingOnMainDexClass(java.util.Set,com.android.tools.r8.graph.DexProgramClass):166:177 -> a
    13:28:boolean isDependingOnMainDexClass(java.util.Set,com.android.tools.r8.graph.DexProgramClass):176:191 -> a
    29:56:boolean isDependingOnMainDexIndependents(com.android.tools.r8.graph.DexProgramClass):203:230 -> a
com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup -> com.android.tools.r8.dex.m:
    com.android.tools.r8.dex.InheritanceClassInDexDistributor this$0 -> e
    boolean $assertionsDisabled -> f
    java.util.Set members -> a
    int numberOfFieldIds -> b
    int numberOfMethodIds -> c
    boolean dependsOnMainDexClasses -> d
    1:1:void <clinit>():54:54 -> <clinit>
    1:1:void <init>(com.android.tools.r8.dex.InheritanceClassInDexDistributor):61:61 -> <init>
    2:7:void <init>(com.android.tools.r8.dex.InheritanceClassInDexDistributor):57:62 -> <init>
    8:8:void <init>(com.android.tools.r8.dex.InheritanceClassInDexDistributor,java.util.Set):65:65 -> <init>
    9:19:void <init>(com.android.tools.r8.dex.InheritanceClassInDexDistributor,java.util.Set):57:67 -> <init>
    1:1:boolean canFitInOneDex():82:82 -> a
    1:7:void updateNumbersOfIds():72:78 -> b
    1:1:int compareTo(java.lang.Object):54:54 -> compareTo
    2:4:int compareTo(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):89:91 -> compareTo
    2:4:int compareTo(java.lang.Object):54 -> compareTo
    5:25:int compareTo(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):89:109 -> compareTo
    5:25:int compareTo(java.lang.Object):54 -> compareTo
    26:29:int compareTo(com.android.tools.r8.dex.InheritanceClassInDexDistributor$ClassGroup):107:110 -> compareTo
    26:29:int compareTo(java.lang.Object):54 -> compareTo
com.android.tools.r8.dex.InheritanceClassInDexDistributor$DirectSubClassesInfo -> com.android.tools.r8.dex.n:
    java.util.Map directSubClasses -> a
    java.util.Set classes -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():241:241 -> <clinit>
    1:11:void <init>(com.android.tools.r8.graph.DexApplication,java.util.Set):246:256 -> <init>
    1:2:java.util.Collection getDirectSubClasses(com.android.tools.r8.graph.DexProgramClass):260:261 -> a
    3:8:void addDirectSubClass(com.android.tools.r8.graph.DexApplication,java.util.Set,java.util.Map,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProgramClass):269:274 -> a
    1:1:java.util.Collection lambda$addDirectSubClass$0(com.android.tools.r8.graph.DexProgramClass):273:273 -> b
com.android.tools.r8.dex.JumboStringRewriter -> com.android.tools.r8.dex.JumboStringRewriter:
    com.android.tools.r8.graph.DexItemFactory factory -> c
    com.android.tools.r8.graph.DexString firstJumboString -> b
    java.util.Map instructionTargets -> d
    com.android.tools.r8.graph.DexEncodedMethod method -> a
    boolean $assertionsDisabled -> j
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap tryRangeStartAndEndTargets -> h
    java.util.Map handlerTargets -> i
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap debugEventTargets -> e
    java.util.Map payloadToSwitch -> f
    java.util.Map tryTargets -> g
    1:1:void <clinit>():55:55 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexItemFactory):104:104 -> <init>
    2:15:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexItemFactory):94:107 -> <init>
    com.android.tools.r8.code.Instruction lambda$replaceTarget$0(com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction) -> a
    1:12:int rewriteIfToIfAndGoto(int,java.util.ListIterator,com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction):423:434 -> a
    13:25:void replaceTarget(com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction):439:451 -> a
    com.android.tools.r8.code.Instruction lambda$replaceTarget$1(com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction) -> b
    1:16:void recordTargets():567:582 -> rewrite
    1:16:com.android.tools.r8.graph.DexCode rewrite():113 -> rewrite
    17:47:void recordInstructionTargets(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):456:486 -> rewrite
    17:47:void recordTargets():586 -> rewrite
    17:47:com.android.tools.r8.graph.DexCode rewrite():113 -> rewrite
    48:62:void recordInstructionTargets(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):485:499 -> rewrite
    48:62:void recordTargets():586 -> rewrite
    48:62:com.android.tools.r8.graph.DexCode rewrite():113 -> rewrite
    63:78:void recordDebugEventTargets(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):505:520 -> rewrite
    63:78:void recordTargets():587 -> rewrite
    63:78:com.android.tools.r8.graph.DexCode rewrite():113 -> rewrite
    79:79:void recordTargets():588:588 -> rewrite
    79:79:com.android.tools.r8.graph.DexCode rewrite():113 -> rewrite
    80:112:void recordTryAndHandlerTargets(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.code.Instruction):529:561 -> rewrite
    80:112:void recordTargets():589 -> rewrite
    80:112:com.android.tools.r8.graph.DexCode rewrite():113 -> rewrite
    113:155:java.util.List expandCode():275:317 -> rewrite
    113:155:com.android.tools.r8.graph.DexCode rewrite():115 -> rewrite
    156:156:java.util.List expandCode():314:314 -> rewrite
    156:156:com.android.tools.r8.graph.DexCode rewrite():115 -> rewrite
    157:157:java.util.List expandCode():311:311 -> rewrite
    157:157:com.android.tools.r8.graph.DexCode rewrite():115 -> rewrite
    158:158:java.util.List expandCode():308:308 -> rewrite
    158:158:com.android.tools.r8.graph.DexCode rewrite():115 -> rewrite
    159:159:java.util.List expandCode():305:305 -> rewrite
    159:159:com.android.tools.r8.graph.DexCode rewrite():115 -> rewrite
    160:203:java.util.List expandCode():302:345 -> rewrite
    160:203:com.android.tools.r8.graph.DexCode rewrite():115 -> rewrite
    204:204:java.util.List expandCode():342:342 -> rewrite
    204:204:com.android.tools.r8.graph.DexCode rewrite():115 -> rewrite
    205:205:java.util.List expandCode():339:339 -> rewrite
    205:205:com.android.tools.r8.graph.DexCode rewrite():115 -> rewrite
    206:206:java.util.List expandCode():336:336 -> rewrite
    206:206:com.android.tools.r8.graph.DexCode rewrite():115 -> rewrite
    207:207:java.util.List expandCode():333:333 -> rewrite
    207:207:com.android.tools.r8.graph.DexCode rewrite():115 -> rewrite
    208:237:java.util.List expandCode():330:359 -> rewrite
    208:237:com.android.tools.r8.graph.DexCode rewrite():115 -> rewrite
    238:290:java.util.List expandCode():357:409 -> rewrite
    238:290:com.android.tools.r8.graph.DexCode rewrite():115 -> rewrite
    291:328:void rewriteInstructionOffsets(java.util.List):140:177 -> rewrite
    291:328:com.android.tools.r8.graph.DexCode rewrite():118 -> rewrite
    329:335:com.android.tools.r8.graph.DexCode$Try[] rewriteTryOffsets():184:190 -> rewrite
    329:335:com.android.tools.r8.graph.DexCode rewrite():119 -> rewrite
    336:354:com.android.tools.r8.graph.DexCode$TryHandler[] rewriteHandlerOffsets():196:214 -> rewrite
    336:354:com.android.tools.r8.graph.DexCode rewrite():120 -> rewrite
    355:373:com.android.tools.r8.graph.DexDebugInfo rewriteDebugInfoOffsets():220:238 -> rewrite
    355:373:com.android.tools.r8.graph.DexCode rewrite():121 -> rewrite
    374:385:void addDefaultEvent(int,int,java.util.List):260:271 -> rewrite
    374:385:com.android.tools.r8.graph.DexDebugInfo rewriteDebugInfoOffsets():239 -> rewrite
    374:385:com.android.tools.r8.graph.DexCode rewrite():121 -> rewrite
    386:396:com.android.tools.r8.graph.DexDebugInfo rewriteDebugInfoOffsets():240:250 -> rewrite
    386:396:com.android.tools.r8.graph.DexCode rewrite():121 -> rewrite
    397:409:com.android.tools.r8.graph.DexCode rewrite():123:135 -> rewrite
com.android.tools.r8.dex.JumboStringRewriter$TryTargets -> com.android.tools.r8.dex.JumboStringRewriter$a:
    com.android.tools.r8.code.Instruction start -> a
    com.android.tools.r8.code.Instruction end -> b
    boolean endsAfterLastInstruction -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():57:57 -> <clinit>
    1:6:void <init>(com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction,boolean):62:67 -> <init>
    1:5:void replaceTarget(com.android.tools.r8.code.Instruction,com.android.tools.r8.code.Instruction):71:75 -> a
    6:6:int getStartOffset():80:80 -> a
    1:4:int getStartToEndDelta():84:87 -> b
com.android.tools.r8.dex.Marker -> com.android.tools.r8.dex.Marker:
    com.android.tools.r8.dex.Marker$Tool tool -> b
    boolean $assertionsDisabled -> e
    java.lang.String D8_PREFIX -> c
    com.android.tools.r8.com.google.gson.JsonObject jsonObject -> a
    java.lang.String R8_PREFIX -> d
    1:14:void <clinit>():18:31 -> <clinit>
    1:1:void <init>(com.android.tools.r8.dex.Marker$Tool):37:37 -> <init>
    2:4:void <init>(com.android.tools.r8.dex.Marker$Tool,com.android.tools.r8.com.google.gson.JsonObject):40:42 -> <init>
    2:4:void <init>(com.android.tools.r8.dex.Marker$Tool):37 -> <init>
    5:7:void <init>(com.android.tools.r8.dex.Marker$Tool,com.android.tools.r8.com.google.gson.JsonObject):40:42 -> <init>
    1:1:boolean isD8():50:50 -> a
    2:3:com.android.tools.r8.dex.Marker setCompilationMode(com.android.tools.r8.CompilationMode):92:93 -> a
    4:5:com.android.tools.r8.dex.Marker setPgMapId(java.lang.String):102:103 -> a
    6:6:void lambda$toString$0(com.android.tools.r8.com.google.gson.JsonObject,java.util.Map$Entry):114:114 -> a
    7:9:com.android.tools.r8.dex.Marker internalParse(com.android.tools.r8.dex.Marker$Tool,java.lang.String):151:153 -> a
    1:2:com.android.tools.r8.dex.Marker setSha1(java.lang.String):82:83 -> b
    1:3:boolean equals(java.lang.Object):120:122 -> equals
    1:1:java.lang.String getCompilationMode():88:88 -> getCompilationMode
    1:1:java.lang.Long getMinApi():68:68 -> getMinApi
    1:1:java.lang.String getPgMapId():98:98 -> getPgMapId
    1:1:com.android.tools.r8.dex.Marker$Tool getTool():46:46 -> getTool
    1:1:java.lang.String getVersion():58:58 -> getVersion
    1:1:int hashCode():129:129 -> hashCode
    1:9:com.android.tools.r8.dex.Marker parse(com.android.tools.r8.graph.DexString):135:143 -> parse
    1:2:com.android.tools.r8.dex.Marker setMinApi(long):72:73 -> setMinApi
    1:2:com.android.tools.r8.dex.Marker setVersion(java.lang.String):62:63 -> setVersion
    1:6:java.lang.String toString():110:115 -> toString
com.android.tools.r8.dex.Marker$Tool -> com.android.tools.r8.dex.Marker$Tool:
    com.android.tools.r8.dex.Marker$Tool[] $VALUES -> a
    1:1:void <clinit>():26:26 -> <clinit>
    1:1:void <init>(java.lang.String,int):26:26 -> <init>
    1:1:com.android.tools.r8.dex.Marker$Tool[] values():26:26 -> values
com.android.tools.r8.dex.MethodToCodeObjectMapping -> com.android.tools.r8.dex.r:
    1:1:void <init>():12:12 -> <init>
    void clearCode(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> a
    com.android.tools.r8.graph.DexCode getCode(com.android.tools.r8.graph.DexEncodedMethod) -> a
    boolean verifyCodeObjects(java.util.Collection) -> a
com.android.tools.r8.dex.MethodToCodeObjectMapping$MapBacking -> com.android.tools.r8.dex.p:
    java.util.Map codes -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():53:53 -> <clinit>
    1:2:void <init>(java.util.Map):57:58 -> <init>
    1:1:com.android.tools.r8.graph.DexCode getCode(com.android.tools.r8.graph.DexEncodedMethod):63:63 -> a
    2:2:void clearCode(com.android.tools.r8.graph.DexEncodedMethod,boolean):69:69 -> a
    3:3:boolean verifyCodeObjects(java.util.Collection):74:74 -> a
com.android.tools.r8.dex.MethodToCodeObjectMapping$MethodBacking -> com.android.tools.r8.dex.q:
    com.android.tools.r8.dex.MethodToCodeObjectMapping$MethodBacking INSTANCE -> a
    boolean $assertionsDisabled -> b
    1:3:void <clinit>():28:30 -> <clinit>
    1:1:void <init>():28:28 -> <init>
    boolean verifyCodeObjects(java.util.Collection) -> a
    1:1:com.android.tools.r8.dex.MethodToCodeObjectMapping$MethodBacking access$000():28:28 -> a
    2:4:com.android.tools.r8.graph.DexCode getCode(com.android.tools.r8.graph.DexEncodedMethod):34:36 -> a
    5:5:void clearCode(com.android.tools.r8.graph.DexEncodedMethod,boolean):43:43 -> a
com.android.tools.r8.dex.MixedSectionCollection -> com.android.tools.r8.dex.s:
    1:1:void <init>():27:27 -> <init>
    boolean add(com.android.tools.r8.graph.DexAnnotation) -> a
    boolean add(com.android.tools.r8.graph.DexAnnotationSet) -> a
    boolean add(com.android.tools.r8.graph.DexCode) -> a
    boolean add(com.android.tools.r8.graph.DexDebugInfo) -> a
    boolean add(com.android.tools.r8.graph.DexEncodedArray) -> a
    boolean add(com.android.tools.r8.graph.DexProgramClass) -> a
    boolean add(com.android.tools.r8.graph.DexTypeList) -> a
    boolean add(com.android.tools.r8.graph.ParameterAnnotationsList) -> a
    boolean setAnnotationsDirectoryForClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexAnnotationDirectory) -> a
    1:1:com.android.tools.r8.dex.MethodToCodeObjectMapping com.android.tools.r8.dex.MethodToCodeObjectMapping.fromMethodBacking():21:21 -> a
    1:1:void visit(com.android.tools.r8.graph.DexEncodedMethod):63 -> a
    2:2:void visit(com.android.tools.r8.graph.DexEncodedMethod):62:62 -> a
com.android.tools.r8.dex.ResourceAdapter -> com.android.tools.r8.dex.z:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> b
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.graph.GraphLense graphLense -> c
    boolean $assertionsDisabled -> f
    com.android.tools.r8.utils.InternalOptions options -> e
    com.android.tools.r8.naming.NamingLens namingLense -> d
    1:1:void <clinit>():32:32 -> <clinit>
    1:6:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions):45:50 -> <init>
    1:1:com.android.tools.r8.graph.DexItemFactory access$000(com.android.tools.r8.dex.ResourceAdapter):32:32 -> a
    2:7:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):55:60 -> a
    8:14:java.lang.String adaptFileName(com.android.tools.r8.DataEntryResource):129:135 -> a
    8:14:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):61 -> a
    15:23:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):62:70 -> a
    24:32:byte[] adaptFileContents(com.android.tools.r8.DataEntryResource):149:157 -> a
    24:32:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):71 -> a
    33:45:byte[] adaptFileContents(com.android.tools.r8.DataEntryResource):149:161 -> a
    33:45:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):71 -> a
    46:47:byte[] adaptFileContents(com.android.tools.r8.DataEntryResource):158:159 -> a
    46:47:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):71 -> a
    48:48:byte[] adaptFileContents(com.android.tools.r8.DataEntryResource):158:158 -> a
    48:48:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):71 -> a
    49:53:com.android.tools.r8.DataEntryResource adaptIfNeeded(com.android.tools.r8.DataEntryResource):78:82 -> a
    54:56:com.android.tools.r8.DataDirectoryResource adaptIfNeeded(com.android.tools.r8.DataDirectoryResource):90:92 -> a
    57:61:java.lang.String adaptDirectoryName(com.android.tools.r8.DataDirectoryResource):139:143 -> a
    57:61:com.android.tools.r8.DataDirectoryResource adaptIfNeeded(com.android.tools.r8.DataDirectoryResource):95 -> a
    62:62:com.android.tools.r8.DataDirectoryResource adaptIfNeeded(com.android.tools.r8.DataDirectoryResource):95:95 -> a
    1:1:com.android.tools.r8.graph.GraphLense access$100(com.android.tools.r8.dex.ResourceAdapter):32:32 -> b
    2:23:boolean shouldBeDeleted(com.android.tools.r8.DataEntryResource):100:121 -> b
    1:1:com.android.tools.r8.naming.NamingLens access$200(com.android.tools.r8.dex.ResourceAdapter):32:32 -> c
com.android.tools.r8.dex.ResourceAdapter$DefaultFileNameAdapter -> com.android.tools.r8.dex.t:
    1:1:void <init>(com.android.tools.r8.dex.ResourceAdapter,java.lang.String):435:435 -> <init>
    1:1:boolean isRenamingCandidate(int,int):440:440 -> b
com.android.tools.r8.dex.ResourceAdapter$DirectoryNameAdapter -> com.android.tools.r8.dex.u:
    1:1:void <init>(com.android.tools.r8.dex.ResourceAdapter,java.lang.String):467:467 -> <init>
    boolean isRenamingCandidate(int,int) -> b
com.android.tools.r8.dex.ResourceAdapter$FileContentsAdapter -> com.android.tools.r8.dex.v:
    1:1:void <init>(com.android.tools.r8.dex.ResourceAdapter,java.lang.String):369:369 -> <init>
    boolean allowRenamingOfPrefixes() -> a
    1:1:boolean shouldRecordPrefix(char):384:384 -> a
    2:2:boolean handlePrefix(int,int):389:389 -> a
    1:2:boolean isRenamingCandidate(int,int):395:396 -> b
    char getClassNameSeparator() -> c
com.android.tools.r8.dex.ResourceAdapter$FileNameAdapter -> com.android.tools.r8.dex.w:
    1:1:void <init>(com.android.tools.r8.dex.ResourceAdapter,java.lang.String):406:406 -> <init>
    boolean allowRenamingOfPrefixes() -> a
    1:1:boolean shouldRecordPrefix(char):421:421 -> a
    2:5:boolean handlePrefix(int,int):426:429 -> a
    6:6:boolean handlePrefix(int,int):427:427 -> a
    char getClassNameSeparator() -> c
com.android.tools.r8.dex.ResourceAdapter$ServiceFileNameAdapter -> com.android.tools.r8.dex.x:
    1:1:void <init>(com.android.tools.r8.dex.ResourceAdapter,java.lang.String):446:446 -> <init>
    boolean allowRenamingOfPrefixes() -> a
    1:1:boolean isRenamingCandidate(int,int):461:461 -> b
    char getClassNameSeparator() -> c
com.android.tools.r8.dex.ResourceAdapter$StringAdapter -> com.android.tools.r8.dex.y:
    java.lang.StringBuilder result -> b
    java.lang.String contents -> a
    int outputFrom -> d
    com.android.tools.r8.dex.ResourceAdapter this$0 -> g
    boolean $assertionsDisabled -> h
    int position -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntStack prefixEndPositionsExclusive -> f
    boolean changed -> c
    1:1:void <clinit>():168:168 -> <clinit>
    1:1:void <init>(com.android.tools.r8.dex.ResourceAdapter,java.lang.String):191:191 -> <init>
    2:24:void <init>(com.android.tools.r8.dex.ResourceAdapter,java.lang.String):171:193 -> <init>
    boolean allowRenamingOfPrefixes() -> a
    boolean handlePrefix(int,int) -> a
    boolean shouldRecordPrefix(char) -> a
    1:1:boolean eof(int):362:362 -> a
    boolean isRenamingCandidate(int,int) -> b
    1:1:boolean eof():358:358 -> b
    char getClassNameSeparator() -> c
    1:10:boolean renameJavaPackageInRange(int,int):319:328 -> c
    11:11:void outputJavaType(java.lang.String):354:354 -> c
    11:11:boolean renameJavaPackageInRange(int,int):326 -> c
    12:13:boolean renameJavaPackageInRange(int,int):330:331 -> c
    1:2:java.lang.String getResult():215:216 -> d
    3:9:boolean renameJavaTypeInRange(int,int):289:295 -> d
    10:23:boolean renameJavaTypeInRange(int,int):294:307 -> d
    24:24:void outputJavaType(java.lang.String):354:354 -> d
    24:24:boolean renameJavaTypeInRange(int,int):305 -> d
    25:26:boolean renameJavaTypeInRange(int,int):309:310 -> d
    1:2:void handleMisc():221:222 -> e
    1:2:boolean run():198 -> e
    3:17:void handleJavaType():229:243 -> e
    3:17:boolean run():199 -> e
    18:18:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.push(int):487:487 -> e
    18:18:void handleJavaType():243 -> e
    18:18:boolean run():199 -> e
    19:29:void handleJavaType():245:255 -> e
    19:29:boolean run():199 -> e
    30:30:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.push(int):487:487 -> e
    30:30:void handleJavaType():255 -> e
    30:30:boolean run():199 -> e
    31:40:void handleJavaType():258:267 -> e
    31:40:boolean run():199 -> e
    41:41:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.push(int):487:487 -> e
    41:41:void handleJavaType():267 -> e
    41:41:boolean run():199 -> e
    42:54:void handleJavaType():270:282 -> e
    42:54:boolean run():199 -> e
    55:66:boolean run():200:211 -> e
    67:67:void outputRangeFromInput(int,int):349:349 -> e
com.android.tools.r8.dex.VDexParser -> com.android.tools.r8.dex.A:
    java.util.List dexFiles -> b
    com.android.tools.r8.dex.VDexReader vDexReader -> a
    1:1:void <init>(com.android.tools.r8.dex.VDexReader):26:26 -> <init>
    2:10:void <init>(com.android.tools.r8.dex.VDexReader):19:27 -> <init>
    11:21:void com.android.tools.r8.dex.VDexReader.setByteOrder():75:85 -> <init>
    11:21:void <init>(com.android.tools.r8.dex.VDexReader):28 -> <init>
    22:38:void parseDexFiles():37:53 -> <init>
    22:38:void <init>(com.android.tools.r8.dex.VDexReader):29 -> <init>
    39:39:void com.android.tools.r8.dex.VDexReader.setByteOrder():87:87 -> <init>
    39:39:void <init>(com.android.tools.r8.dex.VDexReader):28 -> <init>
    1:1:java.util.List getDexFiles():33:33 -> a
com.android.tools.r8.dex.VDexReader -> com.android.tools.r8.dex.B:
    boolean $assertionsDisabled -> e
    int version -> d
    1:1:void <clinit>():22:22 -> <clinit>
    1:2:void <init>(com.android.tools.r8.origin.Origin,java.io.InputStream):27:28 -> <init>
    3:5:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):41:43 -> <init>
    3:5:void <init>(com.android.tools.r8.origin.Origin,java.io.InputStream):28 -> <init>
    6:6:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):29:29 -> <init>
    6:6:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):43 -> <init>
    6:6:void <init>(com.android.tools.r8.origin.Origin,java.io.InputStream):28 -> <init>
    7:15:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):43:51 -> <init>
    7:15:void <init>(com.android.tools.r8.origin.Origin,java.io.InputStream):28 -> <init>
    16:16:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):49:49 -> <init>
    16:16:void <init>(com.android.tools.r8.origin.Origin,java.io.InputStream):28 -> <init>
    17:17:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):29:29 -> <init>
    17:17:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):49 -> <init>
    17:17:void <init>(com.android.tools.r8.origin.Origin,java.io.InputStream):28 -> <init>
    18:30:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):49:61 -> <init>
    18:30:void <init>(com.android.tools.r8.origin.Origin,java.io.InputStream):28 -> <init>
    31:31:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):29:29 -> <init>
    31:31:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):61 -> <init>
    31:31:void <init>(com.android.tools.r8.origin.Origin,java.io.InputStream):28 -> <init>
    32:32:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):61:61 -> <init>
    32:32:void <init>(com.android.tools.r8.origin.Origin,java.io.InputStream):28 -> <init>
    33:35:void <init>(com.android.tools.r8.origin.Origin,java.io.InputStream):28:30 -> <init>
    36:36:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):54:54 -> <init>
    36:36:void <init>(com.android.tools.r8.origin.Origin,java.io.InputStream):28 -> <init>
    37:37:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):29:29 -> <init>
    37:37:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):54 -> <init>
    37:37:void <init>(com.android.tools.r8.origin.Origin,java.io.InputStream):28 -> <init>
    38:38:int parseMagic(com.android.tools.r8.dex.CompatByteBuffer):54:54 -> <init>
    38:38:void <init>(com.android.tools.r8.origin.Origin,java.io.InputStream):28 -> <init>
    int firstDexOffset(int) -> d
com.android.tools.r8.dex.VirtualFile -> com.android.tools.r8.dex.VirtualFile:
    com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection indexedItems -> b
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.DexProgramClass primaryClass -> d
    com.android.tools.r8.dex.VirtualFile$IndexedItemTransaction transaction -> c
    int id -> a
    1:1:void <clinit>():49:49 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.dex.VirtualFile$1):49:49 -> <init>
    2:2:void <init>(int,com.android.tools.r8.naming.NamingLens):76:76 -> <init>
    3:7:void <init>(int,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass):79:83 -> <init>
    1:1:com.android.tools.r8.dex.VirtualFile$IndexedItemTransaction access$1000(com.android.tools.r8.dex.VirtualFile):49:49 -> a
    2:2:java.util.Map access$1100(java.util.Collection,com.android.tools.r8.naming.ClassNameMapper):49:49 -> a
    3:3:boolean access$1500(com.android.tools.r8.dex.VirtualFile,com.android.tools.r8.dex.VirtualFile$FillStrategy):49:49 -> a
    4:5:void lambda$computeOriginalNameMapping$0(java.util.Map,com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.graph.DexProgramClass):133:134 -> a
    6:6:void lambda$computeOriginalNameMapping$0(java.util.Map,com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.graph.DexProgramClass):133:133 -> a
    7:12:java.lang.String extractPrefixToken(int,java.lang.String,boolean):144:149 -> a
    7:12:java.lang.String access$1300(int,java.lang.String,boolean):49 -> a
    13:23:com.android.tools.r8.graph.ObjectToOffsetMapping computeMapping(com.android.tools.r8.graph.DexApplication):155:165 -> a
    24:24:void addClass(com.android.tools.r8.graph.DexProgramClass):169:169 -> a
    25:26:boolean isFull(int):173:174 -> a
    27:32:void throwIfFull(boolean,com.android.tools.r8.utils.Reporter):190:195 -> a
    33:33:void throwIfFull(boolean,com.android.tools.r8.utils.Reporter):193:193 -> a
    34:34:boolean isFilledEnough(com.android.tools.r8.dex.VirtualFile$FillStrategy):199:199 -> a
    35:35:void abortTransaction():203:203 -> a
    1:1:int access$1200(com.android.tools.r8.dex.VirtualFile):49:49 -> b
    2:3:java.util.Map computeOriginalNameMapping(java.util.Collection,com.android.tools.r8.naming.ClassNameMapper):131:132 -> b
    4:4:java.util.Collection classes():215:215 -> b
    1:1:void commitTransaction():207:207 -> c
    1:4:java.util.Set getClassDescriptors():91:94 -> d
    1:19:java.lang.String deriveCommonPrefixAndSanityCheck(java.util.List):104:122 -> deriveCommonPrefixAndSanityCheck
    20:20:java.lang.String deriveCommonPrefixAndSanityCheck(java.util.List):117:117 -> deriveCommonPrefixAndSanityCheck
    21:21:java.lang.String deriveCommonPrefixAndSanityCheck(java.util.List):114:114 -> deriveCommonPrefixAndSanityCheck
    22:22:java.lang.String deriveCommonPrefixAndSanityCheck(java.util.List):107:107 -> deriveCommonPrefixAndSanityCheck
    1:1:int getId():87:87 -> e
    1:1:int getNumberOfFields():186:186 -> f
    1:1:int getNumberOfMethods():182:182 -> g
    1:1:java.lang.String getPrimaryClassDescriptor():100:100 -> h
    1:1:boolean isEmpty():211:211 -> i
    1:1:boolean isFull():178:178 -> j
com.android.tools.r8.dex.VirtualFile$1 -> com.android.tools.r8.dex.C:
com.android.tools.r8.dex.VirtualFile$Distributor -> com.android.tools.r8.dex.VirtualFile$a:
    com.android.tools.r8.graph.DexApplication application -> a
    java.util.List virtualFiles -> c
    com.android.tools.r8.dex.ApplicationWriter writer -> b
    1:1:void <init>(com.android.tools.r8.dex.ApplicationWriter):223:223 -> <init>
    2:6:void <init>(com.android.tools.r8.dex.ApplicationWriter):221:225 -> <init>
    java.util.Collection run() -> a
com.android.tools.r8.dex.VirtualFile$DistributorBase -> com.android.tools.r8.dex.VirtualFile$b:
    com.android.tools.r8.dex.VirtualFile mainDexFile -> f
    java.util.Set classes -> d
    boolean $assertionsDisabled -> h
    com.android.tools.r8.utils.InternalOptions options -> g
    java.util.Map originalNames -> e
    1:1:void <clinit>():275:275 -> <clinit>
    1:16:void <init>(com.android.tools.r8.dex.ApplicationWriter,com.android.tools.r8.utils.InternalOptions):282:297 -> <init>
    1:27:java.util.TreeSet sortClassesByPackage(java.util.Set,java.util.Map):336:362 -> a
    28:50:int lambda$sortClassesByPackage$0(java.util.Map,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):338:360 -> a
com.android.tools.r8.dex.VirtualFile$FilePerInputClassDistributor -> com.android.tools.r8.dex.VirtualFile$c:
    boolean combineSyntheticClassesWithPrimaryClass -> d
    1:2:void <init>(com.android.tools.r8.dex.ApplicationWriter,boolean):242:243 -> <init>
    1:14:java.util.Collection run():248:261 -> a
    15:33:java.util.Collection run():253:271 -> a
com.android.tools.r8.dex.VirtualFile$FillFilesDistributor -> com.android.tools.r8.dex.VirtualFile$d:
    com.android.tools.r8.dex.VirtualFile$FillStrategy fillStrategy -> i
    java.util.concurrent.ExecutorService executorService -> j
    boolean $assertionsDisabled -> k
    1:1:void <clinit>():367:367 -> <clinit>
    1:3:void <init>(com.android.tools.r8.dex.ApplicationWriter,com.android.tools.r8.utils.InternalOptions,java.util.concurrent.ExecutorService):373:375 -> <init>
    1:3:java.util.Collection run():380:382 -> a
    4:17:void com.android.tools.r8.dex.VirtualFile$DistributorBase.fillForMainDexList(java.util.Set):301:314 -> a
    4:17:java.util.Collection run():382 -> a
    18:37:void com.android.tools.r8.dex.VirtualFile$DistributorBase.fillForMainDexList(java.util.Set):311:330 -> a
    18:37:java.util.Collection run():382 -> a
    38:69:java.util.Collection run():383:414 -> a
    70:70:int lambda$run$0(com.android.tools.r8.dex.VirtualFile):413:413 -> a
com.android.tools.r8.dex.VirtualFile$FillStrategy -> com.android.tools.r8.dex.VirtualFile$e:
    com.android.tools.r8.dex.VirtualFile$FillStrategy FILL_MAX -> a
    com.android.tools.r8.dex.VirtualFile$FillStrategy LEAVE_SPACE_FOR_GROWTH -> b
    1:4:void <clinit>():54:57 -> <clinit>
    5:5:void <clinit>():52:52 -> <clinit>
    1:1:void <init>(java.lang.String,int):52:52 -> <init>
com.android.tools.r8.dex.VirtualFile$IndexedItemTransaction -> com.android.tools.r8.dex.VirtualFile$f:
    java.util.Set protos -> g
    java.util.Set strings -> h
    java.util.Set callSites -> i
    java.util.Set methodHandles -> j
    com.android.tools.r8.naming.NamingLens namingLens -> b
    java.util.Set classes -> c
    com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection base -> a
    java.util.Set fields -> d
    boolean $assertionsDisabled -> k
    java.util.Set methods -> e
    java.util.Set types -> f
    1:1:void <clinit>():523:523 -> <clinit>
    1:1:void <init>(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection,com.android.tools.r8.naming.NamingLens):538:538 -> <init>
    1:1:void <init>(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.dex.VirtualFile$1):523 -> <init>
    2:14:void <init>(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection,com.android.tools.r8.naming.NamingLens):528:540 -> <init>
    2:14:void <init>(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.dex.VirtualFile$1):523 -> <init>
    1:1:java.util.Set access$1400(com.android.tools.r8.dex.VirtualFile$IndexedItemTransaction):523:523 -> a
    2:5:boolean maybeInsert(com.android.tools.r8.graph.DexItem,java.util.Set,java.util.Set):544:547 -> a
    6:6:boolean addClass(com.android.tools.r8.graph.DexProgramClass):557:557 -> a
    7:7:boolean addField(com.android.tools.r8.graph.DexField):562:562 -> a
    8:8:boolean addMethod(com.android.tools.r8.graph.DexMethod):567:567 -> a
    9:9:boolean addString(com.android.tools.r8.graph.DexString):572:572 -> a
    10:10:boolean addProto(com.android.tools.r8.graph.DexProto):577:577 -> a
    11:11:boolean addType(com.android.tools.r8.graph.DexType):582:582 -> a
    12:12:boolean addCallSite(com.android.tools.r8.graph.DexCallSite):587:587 -> a
    13:13:boolean addMethodHandle(com.android.tools.r8.graph.DexMethodHandle):592:592 -> a
    14:18:void commitItemsIn(java.util.Set,java.util.function.Function):620:624 -> a
    19:20:void lambda$commitItemsIn$0(java.util.function.Function,com.android.tools.r8.graph.DexItem):621:622 -> a
    21:26:void abort():639:644 -> a
    1:1:void addClassAndDependencies(com.android.tools.r8.graph.DexProgramClass):552:552 -> b
    2:2:com.android.tools.r8.graph.DexString getRenamedDescriptor(com.android.tools.r8.graph.DexType):597:597 -> b
    3:4:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexMethod):602:603 -> b
    5:5:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexField):608:608 -> b
    6:13:void commit():628:635 -> b
    1:1:int getNumberOfClasses():653:653 -> c
    1:1:int getNumberOfFields():616:616 -> d
    1:1:int getNumberOfMethods():612:612 -> e
    1:2:boolean isEmpty():648:649 -> f
com.android.tools.r8.dex.VirtualFile$MonoDexDistributor -> com.android.tools.r8.dex.VirtualFile$g:
    1:1:void <init>(com.android.tools.r8.dex.ApplicationWriter,com.android.tools.r8.utils.InternalOptions):420:420 -> <init>
    1:6:java.util.Collection run():426:431 -> a
com.android.tools.r8.dex.VirtualFile$PackageSplitPopulator -> com.android.tools.r8.dex.VirtualFile$h:
    java.util.List classes -> a
    java.util.Map originalNames -> b
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> c
    com.android.tools.r8.dex.VirtualFile$FillStrategy fillStrategy -> d
    boolean $assertionsDisabled -> f
    com.android.tools.r8.dex.VirtualFile$VirtualFileCycler cycler -> e
    1:1:void <clinit>():755:755 -> <clinit>
    1:6:void <init>(java.util.List,java.util.Set,java.util.Map,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.dex.VirtualFile$FillStrategy,int,com.android.tools.r8.naming.NamingLens):782:787 -> <init>
    1:4:com.android.tools.r8.dex.VirtualFile getVirtualFile(com.android.tools.r8.dex.VirtualFile$VirtualFileCycler):929:932 -> a
    1:1:java.lang.Object call():755:755 -> call
    2:6:java.util.Map call():812:816 -> call
    7:7:java.lang.String getOriginalName(com.android.tools.r8.graph.DexProgramClass):803:803 -> call
    7:7:java.util.Map call():817 -> call
    8:12:boolean coveredByPrefix(java.lang.String,java.lang.String):794:798 -> call
    8:12:java.util.Map call():818 -> call
    13:81:java.util.Map call():820:888 -> call
    82:127:java.util.Map call():852:897 -> call
    128:147:void addNonPackageClasses(com.android.tools.r8.dex.VirtualFile$VirtualFileCycler,java.util.List):904:923 -> call
    128:147:java.util.Map call():897 -> call
com.android.tools.r8.dex.VirtualFile$VirtualFileCycler -> com.android.tools.r8.dex.VirtualFile$i:
    java.util.Iterator allFilesCyclic -> d
    java.util.List files -> a
    java.util.Iterator activeFiles -> e
    com.android.tools.r8.naming.NamingLens namingLens -> b
    boolean $assertionsDisabled -> f
    int nextFileId -> c
    1:1:void <clinit>():668:668 -> <clinit>
    1:7:void <init>(java.util.List,com.android.tools.r8.naming.NamingLens,int):677:683 -> <init>
    1:6:com.android.tools.r8.dex.VirtualFile nextOrCreate():703:708 -> a
    1:6:com.android.tools.r8.dex.VirtualFile nextOrCreate(java.util.function.Predicate):721 -> a
    7:10:com.android.tools.r8.dex.VirtualFile nextOrCreate(java.util.function.Predicate):722:725 -> a
    11:14:com.android.tools.r8.dex.VirtualFile addFile():737:740 -> a
    1:1:boolean hasNext():692:692 -> b
    1:1:com.android.tools.r8.dex.VirtualFile next():696:696 -> c
    1:2:void reset():687:688 -> d
    1:1:void restart():733:733 -> e
com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection -> com.android.tools.r8.dex.VirtualFile$j:
    java.util.Set strings -> g
    java.util.Set callSites -> h
    java.util.Set methodHandles -> i
    java.util.Set protos -> c
    boolean $assertionsDisabled -> j
    java.util.Set types -> d
    java.util.Set methods -> e
    com.android.tools.r8.naming.NamingLens namingLens -> a
    java.util.Set fields -> f
    java.util.Set classes -> b
    1:1:void <clinit>():435:435 -> <clinit>
    1:1:void <init>(com.android.tools.r8.naming.NamingLens):449:449 -> <init>
    2:13:void <init>(com.android.tools.r8.naming.NamingLens):439:450 -> <init>
    1:1:java.util.Set access$100(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):435:435 -> a
    2:2:boolean addClass(com.android.tools.r8.graph.DexProgramClass):456:456 -> a
    3:3:boolean addField(com.android.tools.r8.graph.DexField):461:461 -> a
    4:4:boolean addMethod(com.android.tools.r8.graph.DexMethod):466:466 -> a
    5:5:boolean addString(com.android.tools.r8.graph.DexString):471:471 -> a
    6:6:boolean addProto(com.android.tools.r8.graph.DexProto):476:476 -> a
    7:7:boolean addType(com.android.tools.r8.graph.DexType):481:481 -> a
    8:8:boolean addCallSite(com.android.tools.r8.graph.DexCallSite):486:486 -> a
    9:9:boolean addMethodHandle(com.android.tools.r8.graph.DexMethodHandle):491:491 -> a
    10:10:int getNumberOfFields():499:499 -> a
    1:1:java.util.Set access$200(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):435:435 -> b
    2:2:int getNumberOfMethods():495:495 -> b
    3:3:com.android.tools.r8.graph.DexString getRenamedDescriptor(com.android.tools.r8.graph.DexType):508:508 -> b
    4:5:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexMethod):513:514 -> b
    6:6:com.android.tools.r8.graph.DexString getRenamedName(com.android.tools.r8.graph.DexField):519:519 -> b
    1:1:java.util.Set access$300(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):435:435 -> c
    1:1:java.util.Set access$400(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):435:435 -> d
    1:1:java.util.Set access$500(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):435:435 -> e
    1:1:java.util.Set access$600(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):435:435 -> f
    1:1:java.util.Set access$700(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):435:435 -> g
    1:1:java.util.Set access$800(com.android.tools.r8.dex.VirtualFile$VirtualFileIndexedItemCollection):435:435 -> h
com.android.tools.r8.dexfilemerger.DexFileMerger -> com.android.tools.r8.dexfilemerger.DexFileMerger:
    1:4:void main(java.lang.String[]):389:392 -> main
    1:18:com.android.tools.r8.dexfilemerger.DexFileMerger$Options parseArguments(java.lang.String[]):107:124 -> run
    1:18:void run(java.lang.String[]):312 -> run
    19:21:void com.android.tools.r8.dexfilemerger.DexFileMerger$Options.<init>():95:97 -> run
    19:21:void com.android.tools.r8.dexfilemerger.DexFileMerger$Options.<init>(com.android.tools.r8.dexfilemerger.DexFileMerger$1):94 -> run
    19:21:com.android.tools.r8.dexfilemerger.DexFileMerger$Options parseArguments(java.lang.String[]):127 -> run
    19:21:void run(java.lang.String[]):312 -> run
    22:82:com.android.tools.r8.dexfilemerger.DexFileMerger$Options parseArguments(java.lang.String[]):128:188 -> run
    22:82:void run(java.lang.String[]):312 -> run
    83:83:com.android.tools.r8.dexfilemerger.DexFileMerger$Options parseArguments(java.lang.String[]):134:134 -> run
    83:83:void run(java.lang.String[]):312 -> run
    84:89:void run(java.lang.String[]):314:319 -> run
    90:98:boolean com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy.isMultidexAllowed():66:74 -> run
    90:98:void run(java.lang.String[]):323 -> run
    99:101:void run(java.lang.String[]):330:332 -> run
    102:139:void run(java.lang.String[]):325:362 -> run
    140:143:void run(java.lang.String[]):352:355 -> run
    144:152:int parseFileIndexFromShardFilename(java.lang.String):295:303 -> run
    144:152:void run(java.lang.String[]):355 -> run
    153:153:void run(java.lang.String[]):355:355 -> run
    154:155:int parseFileIndexFromShardFilename(java.lang.String):305:306 -> run
    154:155:void run(java.lang.String[]):355 -> run
    156:157:int parseFileIndexFromShardFilename(java.lang.String):299:300 -> run
    156:157:void run(java.lang.String[]):355 -> run
    158:158:void run(java.lang.String[]):353:353 -> run
    159:190:void run(java.lang.String[]):349:380 -> run
    191:191:void run(java.lang.String[]):315:315 -> run
com.android.tools.r8.dexfilemerger.DexFileMerger$1 -> com.android.tools.r8.dexfilemerger.a:
    int[] $SwitchMap$com$android$tools$r8$dexfilemerger$DexFileMerger$MultidexStrategy -> a
    1:1:void <clinit>():66:66 -> <clinit>
com.android.tools.r8.dexfilemerger.DexFileMerger$ArchiveConsumer -> com.android.tools.r8.dexfilemerger.DexFileMerger$a:
    java.lang.Integer singleFixedFileIndex -> c
    java.util.zip.ZipOutputStream stream -> e
    com.android.tools.r8.origin.Origin origin -> d
    int highestIndexWritten -> f
    boolean hasWrittenSomething -> h
    java.nio.file.Path path -> a
    java.lang.String prefix -> b
    java.util.Map writers -> g
    1:1:void <init>(java.nio.file.Path,java.lang.String,java.lang.Integer):210:210 -> <init>
    1:1:void <init>(java.nio.file.Path,java.lang.String,java.lang.Integer,com.android.tools.r8.dexfilemerger.DexFileMerger$1):198 -> <init>
    2:13:void <init>(java.nio.file.Path,java.lang.String,java.lang.Integer):203:214 -> <init>
    2:13:void <init>(java.nio.file.Path,java.lang.String,java.lang.Integer,com.android.tools.r8.dexfilemerger.DexFileMerger$1):198 -> <init>
    1:1:boolean hasWrittenSomething():218:218 -> a
    1:1:boolean access$200(com.android.tools.r8.dexfilemerger.DexFileMerger$ArchiveConsumer):198 -> a
    2:12:java.util.zip.ZipOutputStream getStream(com.android.tools.r8.DiagnosticsHandler):248:258 -> a
    13:13:void writeEntry(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):265:265 -> a
    13:13:void lambda$accept$0(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):237 -> a
    14:17:java.lang.String getDexFileName(int):222:225 -> a
    14:17:void writeEntry(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):266 -> a
    14:17:void lambda$accept$0(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):237 -> a
    18:18:void writeEntry(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):267:267 -> a
    18:18:void lambda$accept$0(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):237 -> a
    19:26:void writeEntry(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):264:271 -> a
    19:26:void lambda$accept$0(int,byte[],java.util.Set,com.android.tools.r8.DiagnosticsHandler):237 -> a
    1:12:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):231:242 -> accept
    1:13:void finished(com.android.tools.r8.DiagnosticsHandler):277:289 -> finished
com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy -> com.android.tools.r8.dexfilemerger.DexFileMerger$b:
    com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy MINIMAL -> c
    com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy BEST_EFFORT -> d
    com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy[] $VALUES -> e
    com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy OFF -> a
    com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy GIVEN_SHARD -> b
    1:13:void <clinit>():51:63 -> <clinit>
    14:14:void <clinit>():49:49 -> <clinit>
    1:1:void <init>(java.lang.String,int):49:49 -> <init>
    1:1:com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy[] values():49:49 -> a
    2:12:com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy parse(java.lang.String):78:88 -> a
    13:13:com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy parse(java.lang.String):86:86 -> a
    14:14:com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy parse(java.lang.String):84:84 -> a
    15:15:com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy parse(java.lang.String):82:82 -> a
    16:16:com.android.tools.r8.dexfilemerger.DexFileMerger$MultidexStrategy parse(java.lang.String):80:80 -> a
com.android.tools.r8.dexsplitter.DexSplitter -> com.android.tools.r8.dexsplitter.DexSplitter:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():36:36 -> <clinit>
    1:1:void <init>():37:37 -> <init>
    1:6:com.android.tools.r8.dexsplitter.DexSplitter$FeatureJar parseFeatureJarArgument(java.lang.String):202:207 -> a
    1:6:void lambda$parseArguments$0(com.android.tools.r8.dexsplitter.DexSplitter$Options,java.lang.String):223 -> a
    7:11:com.android.tools.r8.dexsplitter.DexSplitter$FeatureJar parseFeatureJarArgument(java.lang.String):205:209 -> a
    7:11:void lambda$parseArguments$0(com.android.tools.r8.dexsplitter.DexSplitter$Options,java.lang.String):223 -> a
    12:12:void lambda$parseArguments$0(com.android.tools.r8.dexsplitter.DexSplitter$Options,java.lang.String):223:223 -> a
    13:14:void run(java.lang.String[]):281:282 -> a
    13:14:void lambda$main$1(java.lang.String[]):363 -> a
    15:16:void lambda$main$1(java.lang.String[]):366:367 -> a
    17:17:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):348:348 -> a
    1:51:com.android.tools.r8.dexsplitter.DexSplitter$Options parseArguments(java.lang.String[]):213:263 -> b
    1:1:void main(java.lang.String[]):360:360 -> main
    1:27:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):288:314 -> run
    28:30:com.android.tools.r8.utils.FeatureClassMapping createFeatureClassMapping(com.android.tools.r8.dexsplitter.DexSplitter$Options):270:272 -> run
    28:30:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):317 -> run
    31:36:com.android.tools.r8.utils.FeatureClassMapping createFeatureClassMapping(com.android.tools.r8.dexsplitter.DexSplitter$Options):271:276 -> run
    31:36:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):317 -> run
    37:37:com.android.tools.r8.utils.FeatureClassMapping createFeatureClassMapping(com.android.tools.r8.dexsplitter.DexSplitter$Options):275:275 -> run
    37:37:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):317 -> run
    38:38:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):320:320 -> run
    39:42:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):319:322 -> run
    43:59:void splitNonClassResources(com.android.tools.r8.dexsplitter.DexSplitter$Options,com.android.tools.r8.utils.FeatureClassMapping):329:345 -> run
    43:59:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):323 -> run
    60:70:void splitNonClassResources(com.android.tools.r8.dexsplitter.DexSplitter$Options,com.android.tools.r8.utils.FeatureClassMapping):338:348 -> run
    60:70:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):323 -> run
    71:91:void splitNonClassResources(com.android.tools.r8.dexsplitter.DexSplitter$Options,com.android.tools.r8.utils.FeatureClassMapping):330:350 -> run
    71:91:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):323 -> run
    92:94:void splitNonClassResources(com.android.tools.r8.dexsplitter.DexSplitter$Options,com.android.tools.r8.utils.FeatureClassMapping):349:351 -> run
    92:94:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):323 -> run
    95:95:void run(com.android.tools.r8.dexsplitter.DexSplitter$Options):301:301 -> run
com.android.tools.r8.dexsplitter.DexSplitter$FeatureJar -> com.android.tools.r8.dexsplitter.DexSplitter$a:
    java.lang.String jar -> a
    java.lang.String outputName -> b
    1:3:void <init>(java.lang.String,java.lang.String):48:50 -> <init>
    4:7:java.lang.String featureNameFromJar(java.lang.String):66:69 -> <init>
    4:7:void <init>(java.lang.String):54 -> <init>
    8:10:void <init>(java.lang.String,java.lang.String):48:50 -> <init>
    8:10:void <init>(java.lang.String):54 -> <init>
    1:1:java.lang.String getJar():58:58 -> a
    1:1:java.lang.String getOutputName():62:62 -> b
com.android.tools.r8.dexsplitter.DexSplitter$Options -> com.android.tools.r8.dexsplitter.DexSplitter$Options:
    java.util.List inputArchives -> b
    java.lang.String featureSplitMapping -> g
    com.android.tools.r8.DiagnosticsHandler diagnosticsHandler -> a
    java.lang.String output -> f
    java.lang.String mainDexList -> i
    java.lang.String proguardMap -> h
    boolean splitNonClassResources -> j
    java.util.List baseJars -> d
    java.util.List featureJars -> c
    java.lang.String baseOutputName -> e
    1:1:void <init>():101:101 -> <init>
    2:2:void <init>(com.android.tools.r8.DiagnosticsHandler):104:104 -> <init>
    3:18:void <init>(com.android.tools.r8.DiagnosticsHandler):90:105 -> <init>
    1:1:com.android.tools.r8.DiagnosticsHandler access$000(com.android.tools.r8.dexsplitter.DexSplitter$Options):88:88 -> a
    2:2:void addFeatureJar(com.android.tools.r8.dexsplitter.DexSplitter$FeatureJar):161:161 -> a
    2:2:void access$300(com.android.tools.r8.dexsplitter.DexSplitter$Options,com.android.tools.r8.dexsplitter.DexSplitter$FeatureJar):88 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableList getBaseJars():185:185 -> a
    1:1:void addBaseJar(java.lang.String):157:157 -> addBaseJar
    1:1:void addFeatureJar(java.lang.String):165:165 -> addFeatureJar
    2:2:void addFeatureJar(java.lang.String,java.lang.String):169:169 -> addFeatureJar
    1:1:void addInputArchive(java.lang.String):153:153 -> addInputArchive
    1:1:java.util.List access$100(com.android.tools.r8.dexsplitter.DexSplitter$Options):88:88 -> b
    2:2:com.android.tools.r8.com.google.common.collect.ImmutableList getFeatureJars():181:181 -> b
    1:1:boolean access$200(com.android.tools.r8.dexsplitter.DexSplitter$Options):88:88 -> c
    1:1:void error(java.lang.String):190:190 -> error
    1:1:java.lang.String getBaseOutputName():145:145 -> getBaseOutputName
    1:1:com.android.tools.r8.DiagnosticsHandler getDiagnosticsHandler():109:109 -> getDiagnosticsHandler
    1:1:java.lang.String getFeatureSplitMapping():129:129 -> getFeatureSplitMapping
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList getInputArchives():177:177 -> getInputArchives
    1:1:java.lang.String getMainDexList():113:113 -> getMainDexList
    1:1:java.lang.String getOutput():121:121 -> getOutput
    1:1:java.lang.String getProguardMap():137:137 -> getProguardMap
    1:1:void setBaseOutputName(java.lang.String):149:149 -> setBaseOutputName
    1:1:void setFeatureSplitMapping(java.lang.String):133:133 -> setFeatureSplitMapping
    1:1:void setMainDexList(java.lang.String):117:117 -> setMainDexList
    1:1:void setOutput(java.lang.String):125:125 -> setOutput
    1:1:void setProguardMap(java.lang.String):141:141 -> setProguardMap
    1:1:void setSplitNonClassResources(boolean):173:173 -> setSplitNonClassResources
com.android.tools.r8.dexsplitter.DexSplitter$Options$1 -> com.android.tools.r8.dexsplitter.a:
    1:1:void <init>():101:101 -> <init>
com.android.tools.r8.dexsplitter.DexSplitter$ZipFileOrigin -> com.android.tools.r8.dexsplitter.DexSplitter$b:
    1:1:void <init>(java.nio.file.Path):78:78 -> <init>
    1:1:java.lang.String part():83:83 -> part
com.android.tools.r8.errors.CompilationError -> com.android.tools.r8.errors.CompilationError:
    com.android.tools.r8.origin.Origin origin -> a
    com.android.tools.r8.position.Position position -> b
    1:1:void <init>(java.lang.String):21:21 -> <init>
    2:2:void <init>(java.lang.String,com.android.tools.r8.origin.Origin):29:29 -> <init>
    2:2:void <init>(java.lang.String):21 -> <init>
    3:3:void <init>(java.lang.String,java.lang.Throwable):25:25 -> <init>
    4:4:void <init>(java.lang.String,com.android.tools.r8.origin.Origin):29:29 -> <init>
    5:5:void <init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):33:33 -> <init>
    6:8:void <init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):37:39 -> <init>
    6:8:void <init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin):33 -> <init>
    9:11:void <init>(java.lang.String,java.lang.Throwable,com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):37:39 -> <init>
    1:1:java.lang.String getDiagnosticMessage():54:54 -> getDiagnosticMessage
    1:1:com.android.tools.r8.origin.Origin getOrigin():44:44 -> getOrigin
    1:1:com.android.tools.r8.position.Position getPosition():49:49 -> getPosition
com.android.tools.r8.errors.DexFileOverflowDiagnostic -> com.android.tools.r8.errors.DexFileOverflowDiagnostic:
    long numOfMethods -> b
    long numOfFields -> c
    boolean hasMainDexSpecification -> a
    1:4:void <init>(boolean,long,long):26:29 -> <init>
    1:26:java.lang.String getDiagnosticMessage():71:96 -> getDiagnosticMessage
    1:1:long getNumberOfFields():34:34 -> getNumberOfFields
    1:1:long getNumberOfMethods():39:39 -> getNumberOfMethods
    1:1:com.android.tools.r8.origin.Origin getOrigin():60:60 -> getOrigin
    1:1:boolean hasMainDexSpecification():54:54 -> hasMainDexSpecification
com.android.tools.r8.errors.InternalCompilerError -> com.android.tools.r8.errors.InternalCompilerError:
    1:1:void <init>():14:14 -> <init>
    2:2:void <init>(java.lang.String):18:18 -> <init>
    3:3:void <init>(java.lang.String,java.lang.Throwable):22:22 -> <init>
    4:4:void <init>(java.lang.Throwable):26:26 -> <init>
com.android.tools.r8.errors.InvalidDebugInfoException -> com.android.tools.r8.errors.a:
    1:1:void <init>(java.lang.String):8:8 -> <init>
com.android.tools.r8.errors.Unimplemented -> com.android.tools.r8.errors.Unimplemented:
    1:1:void <init>():11:11 -> <init>
    2:2:void <init>(java.lang.String):15:15 -> <init>
com.android.tools.r8.errors.Unreachable -> com.android.tools.r8.errors.Unreachable:
    1:1:void <init>():11:11 -> <init>
    2:2:void <init>(java.lang.String):15:15 -> <init>
    3:3:void <init>(java.lang.Throwable):19:19 -> <init>
com.android.tools.r8.experimental.graphinfo.AnnotationGraphNode -> com.android.tools.r8.experimental.graphinfo.AnnotationGraphNode:
    com.android.tools.r8.experimental.graphinfo.GraphNode annotatedNode -> c
    1:2:void <init>(com.android.tools.r8.experimental.graphinfo.GraphNode):14:15 -> <init>
    1:3:boolean equals(java.lang.Object):24:26 -> equals
    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getAnnotatedNode():19:19 -> getAnnotatedNode
    1:1:int hashCode():31:31 -> hashCode
    1:1:java.lang.String toString():36:36 -> toString
com.android.tools.r8.experimental.graphinfo.ClassGraphNode -> com.android.tools.r8.experimental.graphinfo.ClassGraphNode:
    com.android.tools.r8.references.ClassReference reference -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():9:9 -> <clinit>
    1:3:void <init>(boolean,com.android.tools.r8.references.ClassReference):15:17 -> <init>
    1:1:boolean equals(java.lang.Object):26:26 -> equals
    1:1:com.android.tools.r8.references.ClassReference getReference():21:21 -> getReference
    1:1:int hashCode():32:32 -> hashCode
    1:1:java.lang.String toString():37:37 -> toString
com.android.tools.r8.experimental.graphinfo.FieldGraphNode -> com.android.tools.r8.experimental.graphinfo.FieldGraphNode:
    com.android.tools.r8.references.FieldReference reference -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():9:9 -> <clinit>
    1:3:void <init>(boolean,com.android.tools.r8.references.FieldReference):15:17 -> <init>
    1:1:boolean equals(java.lang.Object):26:26 -> equals
    1:1:com.android.tools.r8.references.FieldReference getReference():21:21 -> getReference
    1:1:int hashCode():32:32 -> hashCode
    1:1:java.lang.String toString():37:37 -> toString
com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo -> com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo:
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo UNKNOWN -> b
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind kind -> a
    boolean $assertionsDisabled -> c
    1:3:void <clinit>():6:8 -> <clinit>
    1:2:void <init>(com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind):36:37 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo unknown():11:11 -> a
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():41:41 -> edgeKind
    1:1:boolean equals(java.lang.Object):88:88 -> equals
    1:30:java.lang.String getInfoPrefix():45:74 -> getInfoPrefix
    1:1:int hashCode():93:93 -> hashCode
    1:1:java.lang.String toString():83:83 -> toString
com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind -> com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind:
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind Unknown -> l
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind InvokedFromLambdaCreatedIn -> e
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind TargetedBySuper -> d
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind ReferencedFrom -> g
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind AnnotatedOn -> f
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind ReferencedInAnnotation -> i
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind ReachableFromLiveType -> h
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind MethodHandleUseFrom -> k
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind IsLibraryMethod -> j
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind[] $VALUES -> m
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind CompatibilityRule -> a
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind InvokedViaSuper -> c
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind InstantiatedIn -> b
    1:15:void <clinit>():17:31 -> <clinit>
    16:16:void <clinit>():15:15 -> <clinit>
    1:1:void <init>(java.lang.String,int):15:15 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind[] values():15:15 -> values
com.android.tools.r8.experimental.graphinfo.GraphNode -> com.android.tools.r8.experimental.graphinfo.GraphNode:
    boolean isLibraryNode -> a
    com.android.tools.r8.experimental.graphinfo.GraphNode CYCLE -> b
    1:1:void <clinit>():11:11 -> <clinit>
    1:2:void <init>(boolean):31:32 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode cycle():36:36 -> cycle
    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode cycle():36:36 -> isCycle
    1:1:boolean isCycle():40 -> isCycle
    1:1:boolean isLibraryNode():44:44 -> isLibraryNode
com.android.tools.r8.experimental.graphinfo.GraphNode$1 -> com.android.tools.r8.experimental.graphinfo.a:
    1:1:void <init>(boolean):12:12 -> <init>
com.android.tools.r8.experimental.graphinfo.KeepRuleGraphNode -> com.android.tools.r8.experimental.graphinfo.KeepRuleGraphNode:
    com.android.tools.r8.shaking.ProguardKeepRule rule -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():13:13 -> <clinit>
    1:3:void <init>(com.android.tools.r8.shaking.ProguardKeepRule):19:21 -> <init>
    1:1:boolean equals(java.lang.Object):26:26 -> equals
    1:1:java.lang.String getContent():43:43 -> getContent
    1:1:com.android.tools.r8.origin.Origin getOrigin():35:35 -> getOrigin
    1:1:com.android.tools.r8.position.Position getPosition():39:39 -> getPosition
    1:1:int hashCode():31:31 -> hashCode
    1:3:java.lang.String toString():54:56 -> toString
    4:12:java.lang.String shortPositionInfo(com.android.tools.r8.position.Position):60:68 -> toString
    4:12:java.lang.String toString():56 -> toString
    13:13:java.lang.String toString():56:56 -> toString
com.android.tools.r8.experimental.graphinfo.MethodGraphNode -> com.android.tools.r8.experimental.graphinfo.MethodGraphNode:
    com.android.tools.r8.references.MethodReference reference -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():9:9 -> <clinit>
    1:3:void <init>(boolean,com.android.tools.r8.references.MethodReference):15:17 -> <init>
    1:1:boolean equals(java.lang.Object):26:26 -> equals
    1:1:com.android.tools.r8.references.MethodReference getReference():21:21 -> getReference
    1:1:int hashCode():32:32 -> hashCode
    1:1:java.lang.String toString():37:37 -> toString
com.android.tools.r8.graph.AccessFlags -> com.android.tools.r8.graph.AccessFlags:
    java.util.List NAMES -> c
    int modifiedFlags -> b
    boolean $assertionsDisabled -> d
    int originalFlags -> a
    1:12:void <clinit>():12:23 -> <clinit>
    1:3:void <init>(int,int):51:53 -> <init>
    1:1:boolean isAtLeastAsVisibleAs(com.android.tools.r8.graph.AccessFlags):91:91 -> a
    2:2:void demoteFromFinal():185:185 -> a
    3:3:void demote(int):228:228 -> a
    4:17:java.lang.String toStringInternal(boolean):241:254 -> a
    1:1:java.util.List getNames():45:45 -> b
    2:2:boolean isMoreVisibleThan(com.android.tools.r8.graph.AccessFlags):87:87 -> b
    3:3:boolean wasSet(int):202:202 -> b
    3:3:boolean isPromoted(int):220 -> b
    4:4:boolean isPromoted(int):220:220 -> b
    1:1:int getOriginalAccessFlags():69:69 -> c
    2:2:boolean isSet(int):206:206 -> c
    1:1:java.util.List getPredicates():34:34 -> d
    2:2:void promote(int):224:224 -> d
    1:1:boolean isPromotedToPublic():189:189 -> e
    2:3:void set(int):210:211 -> e
    1:3:boolean equals(java.lang.Object):74:76 -> equals
    1:1:int materialize():61:61 -> f
    2:3:void unset(int):215:216 -> f
    1:1:void promoteToFinal():181:181 -> g
    1:2:void promoteToPublic():193:194 -> h
    1:1:int hashCode():83:83 -> hashCode
    1:1:void promoteToStatic():198:198 -> i
    1:1:boolean isFinal():157:157 -> isFinal
    1:1:boolean isPrivate():123:123 -> isPrivate
    1:1:boolean isProtected():136:136 -> isProtected
    1:1:boolean isPublic():110:110 -> isPublic
    1:1:boolean isStatic():149:149 -> isStatic
    1:1:boolean isSynthetic():169:169 -> isSynthetic
    1:2:void setPrivate():127:128 -> j
    1:1:void setSynthetic():173:173 -> k
    1:1:java.lang.String toSmaliString():232:232 -> l
    1:1:void unsetPrivate():132:132 -> m
    1:1:void unsetProtected():145:145 -> n
    1:1:void unsetPublic():119:119 -> o
    1:1:void unsetSynthetic():177:177 -> p
    1:7:int visibilityOrdinal():96:102 -> q
    1:1:void setFinal():161:161 -> setFinal
    1:2:void setProtected():140:141 -> setProtected
    1:2:void setPublic():114:115 -> setPublic
    1:1:void setStatic():153:153 -> setStatic
    1:1:java.lang.String toString():237:237 -> toString
com.android.tools.r8.graph.AppInfo -> com.android.tools.r8.graph.AppInfo:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> b
    com.android.tools.r8.graph.DexApplication app -> a
    java.util.concurrent.ConcurrentHashMap synthesizedClasses -> d
    java.util.concurrent.ConcurrentHashMap definitions -> c
    boolean obsolete -> e
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():19:19 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexApplication):34:34 -> <init>
    2:15:void <init>(com.android.tools.r8.graph.DexApplication):23:36 -> <init>
    16:16:void <init>(com.android.tools.r8.graph.AppInfo):39:39 -> <init>
    17:38:void <init>(com.android.tools.r8.graph.AppInfo):23:44 -> <init>
    1:1:boolean checkIfObsolete():60:60 -> a
    2:5:void addSynthesizedClass(com.android.tools.r8.graph.DexProgramClass):76:79 -> a
    6:6:void lambda$computeDefinitions$0(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder,com.android.tools.r8.graph.DexEncodedMethod):91:91 -> a
    7:7:void lambda$computeDefinitions$1(com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder,com.android.tools.r8.graph.DexEncodedField):92:92 -> a
    8:16:com.android.tools.r8.graph.DexDefinition definitionFor(com.android.tools.r8.graph.DexReference):109:117 -> a
    17:23:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):122:128 -> a
    24:29:com.android.tools.r8.graph.DexEncodedMethod definitionFor(com.android.tools.r8.graph.DexMethod):139:144 -> a
    30:31:com.android.tools.r8.graph.DexEncodedField definitionFor(com.android.tools.r8.graph.DexField):151:152 -> a
    32:37:com.android.tools.r8.graph.AppInfo$ResolutionResult resolveMethodOnArray(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):276:281 -> a
    38:40:com.android.tools.r8.graph.DexEncodedMethod resolveMethodOnClassStep2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):323:325 -> a
    41:61:com.android.tools.r8.graph.DexEncodedMethod resolveMethodOnClassStep2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):324:344 -> a
    62:85:com.android.tools.r8.graph.DexEncodedMethod resolveMethodStep3Helper(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.AppInfo$MultiResultBuilder):381:404 -> a
    86:89:com.android.tools.r8.graph.DexEncodedField lookupInstanceTarget(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):457:460 -> a
    90:92:com.android.tools.r8.graph.DexEncodedMethod dispatchDirectInvoke(com.android.tools.r8.graph.AppInfo$ResolutionResult):539:541 -> a
    93:97:com.android.tools.r8.graph.DexEncodedMethod selectCandidate(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):553:557 -> a
    98:98:void registerNewType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):585:585 -> a
    1:2:com.android.tools.r8.graph.DexApplication app():65:66 -> app
    1:2:java.lang.Iterable classes():98:99 -> b
    3:15:com.android.tools.r8.graph.AppInfo$ResolutionResult resolveMethodOnClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):297:309 -> b
    16:16:com.android.tools.r8.graph.AppInfo$ResolutionResult resolveMethodOnClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):301:301 -> b
    17:25:com.android.tools.r8.graph.AppInfo$ResolutionResult resolveMethodStep3(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):360:368 -> b
    26:27:com.android.tools.r8.graph.DexEncodedField resolveField(com.android.tools.r8.graph.DexField):481:482 -> b
    28:47:com.android.tools.r8.graph.DexEncodedField resolveFieldOn(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):492:511 -> b
    48:50:com.android.tools.r8.graph.DexEncodedMethod dispatchStaticInvoke(com.android.tools.r8.graph.AppInfo$ResolutionResult):525:527 -> b
    51:52:boolean isInMainDexList(com.android.tools.r8.graph.DexType):589:590 -> b
    1:2:java.lang.Iterable classesWithDeterministicOrder():103:104 -> c
    3:5:com.android.tools.r8.origin.Origin originFor(com.android.tools.r8.graph.DexType):132:134 -> c
    6:31:com.android.tools.r8.graph.AppInfo$ResolutionResult resolveMethodOnInterface(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):422:447 -> c
    32:32:com.android.tools.r8.graph.AppInfo$ResolutionResult resolveMethodOnInterface(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):428:428 -> c
    1:2:java.util.Collection getSynthesizedClassesForSanityCheck():83:84 -> d
    3:9:java.util.Map computeDefinitions(com.android.tools.r8.graph.DexType):88:94 -> d
    1:2:com.android.tools.r8.graph.DexItemFactory dexItemFactory():71:72 -> dexItemFactory
    1:7:java.util.Map getDefinitions(com.android.tools.r8.graph.DexType):156:162 -> e
    8:8:boolean hasLiveness():574:574 -> e
    1:1:boolean hasSubtyping():564:564 -> f
    1:1:boolean isObsolete():48:48 -> g
    1:1:void markObsolete():52:52 -> h
    1:1:void unsetObsolete():56:56 -> i
    1:1:com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness withLiveness():579:579 -> j
    1:1:com.android.tools.r8.graph.AppInfoWithSubtyping withSubtyping():569:569 -> k
    1:4:com.android.tools.r8.graph.DexEncodedMethod lookupDirectTarget(com.android.tools.r8.graph.DexMethod):224:227 -> lookupDirectTarget
    1:4:com.android.tools.r8.graph.DexEncodedMethod lookupStaticTarget(com.android.tools.r8.graph.DexMethod):176:179 -> lookupStaticTarget
    5:8:com.android.tools.r8.graph.DexEncodedField lookupStaticTarget(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):470:473 -> lookupStaticTarget
    1:20:com.android.tools.r8.graph.DexEncodedMethod lookupSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):193:212 -> lookupSuperTarget
    1:5:com.android.tools.r8.graph.DexEncodedMethod lookupVirtualTarget(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):237:241 -> lookupVirtualTarget
    1:11:com.android.tools.r8.graph.AppInfo$ResolutionResult resolveMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):255:265 -> resolveMethod
com.android.tools.r8.graph.AppInfo$1 -> com.android.tools.r8.graph.a:
com.android.tools.r8.graph.AppInfo$EmptyResult -> com.android.tools.r8.graph.AppInfo$a:
    com.android.tools.r8.graph.AppInfo$EmptyResult SINGLETON -> a
    1:1:void <clinit>():671:671 -> <clinit>
    1:1:void <init>():673:673 -> <init>
    com.android.tools.r8.graph.DexEncodedMethod asSingleTarget() -> a
    void forEachTarget(java.util.function.Consumer) -> a
    1:1:java.util.List asListOfTargets():698:698 -> b
    boolean hasSingleTarget() -> c
    1:1:com.android.tools.r8.graph.AppInfo$EmptyResult get():678:678 -> d
    1:1:com.android.tools.r8.graph.AppInfo$EmptyResult access$000():669 -> d
com.android.tools.r8.graph.AppInfo$MultiResult -> com.android.tools.r8.graph.AppInfo$b:
    boolean $assertionsDisabled -> b
    com.android.tools.r8.com.google.common.collect.ImmutableList methods -> a
    1:1:void <clinit>():632:632 -> <clinit>
    1:3:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList):636:638 -> <init>
    1:3:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.graph.AppInfo$1):632 -> <init>
    com.android.tools.r8.graph.DexEncodedMethod asSingleTarget() -> a
    1:1:void forEachTarget(java.util.function.Consumer):665:665 -> a
    1:1:com.android.tools.r8.graph.DexEncodedMethod asResultOfResolve():644:644 -> asResultOfResolve
    1:1:java.util.List asListOfTargets():660:660 -> b
    boolean hasSingleTarget() -> c
com.android.tools.r8.graph.AppInfo$MultiResultBuilder -> com.android.tools.r8.graph.AppInfo$c:
    com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder builder -> a
    com.android.tools.r8.graph.DexEncodedMethod singleResult -> b
    1:1:void <init>():606:606 -> <init>
    1:1:void <init>(com.android.tools.r8.graph.AppInfo$1):606 -> <init>
    1:8:void add(com.android.tools.r8.graph.DexEncodedMethod):612:619 -> a
    9:12:com.android.tools.r8.graph.AppInfo$ResolutionResult build():624:627 -> a
com.android.tools.r8.graph.AppInfo$ResolutionResult -> com.android.tools.r8.graph.AppInfo$ResolutionResult:
    com.android.tools.r8.graph.DexEncodedMethod asSingleTarget() -> a
    void forEachTarget(java.util.function.Consumer) -> a
    java.util.List asListOfTargets() -> b
    boolean hasSingleTarget() -> c
com.android.tools.r8.graph.AppInfoWithSubtyping -> com.android.tools.r8.graph.AppInfoWithSubtyping:
    java.util.Set missingClasses -> g
    boolean $assertionsDisabled -> i
    java.util.Map subtypeMap -> h
    1:1:void <clinit>():21:21 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexApplication):29:29 -> <init>
    2:9:void <init>(com.android.tools.r8.graph.DexApplication):24:31 -> <init>
    10:10:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping):35:35 -> <init>
    11:25:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping):24:38 -> <init>
    1:24:void populateAllSuperTypes(java.util.Map,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,java.util.function.Function):76:99 -> a
    25:34:void populateSubtypeMap(com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.DexItemFactory):105:114 -> a
    35:36:void lambda$lookupVirtualTargets$1(java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):145:146 -> a
    37:71:java.util.Set lookupLambdaImplementedMethods(com.android.tools.r8.graph.DexCallSite):254:288 -> a
    72:72:java.util.Set lookupLambdaImplementedMethods(com.android.tools.r8.graph.DexCallSite):257:257 -> a
    73:76:boolean isStringConcat(com.android.tools.r8.graph.DexMethodHandle):295:298 -> a
    77:79:void registerNewType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):303:305 -> a
    1:4:void populateSuperType(java.util.Map,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,java.util.function.Function):66:69 -> b
    1:1:boolean hasAnyInstantiatedLambdas(com.android.tools.r8.graph.DexType):181:181 -> d
    1:1:java.util.Set lambda$populateSuperType$0(com.android.tools.r8.graph.DexType):66:66 -> e
    1:1:boolean hasSubtyping():310:310 -> f
    1:1:com.android.tools.r8.graph.AppInfoWithSubtyping withSubtyping():316:316 -> k
    1:2:java.util.Set getMissingClasses():52:53 -> l
    1:47:java.util.Set lookupInterfaceTargets(com.android.tools.r8.graph.DexMethod):187:233 -> lookupInterfaceTargets
    1:8:com.android.tools.r8.graph.DexEncodedMethod lookupSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):170:177 -> lookupSuperTarget
    1:25:java.util.Set lookupVirtualTargets(com.android.tools.r8.graph.DexMethod):119:143 -> lookupVirtualTargets
    1:1:java.lang.Iterable libraryClasses():47:47 -> m
    2:2:com.android.tools.r8.graph.DirectMappedDexApplication getDirectApplication():43:43 -> m
    2:2:java.lang.Iterable libraryClasses():48 -> m
    3:3:java.lang.Iterable libraryClasses():48:48 -> m
    1:4:java.util.Set subtypes(com.android.tools.r8.graph.DexType):57:60 -> subtypes
com.android.tools.r8.graph.AppServices -> com.android.tools.r8.graph.AppServices:
    java.util.Map services -> b
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():29:29 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.AppView,java.util.Map):38:40 -> <init>
    4:6:void <init>(com.android.tools.r8.graph.AppView,java.util.Map):38:40 -> <init>
    4:6:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,com.android.tools.r8.graph.AppServices$1):29 -> <init>
    1:2:java.util.Set allServiceTypes():44:45 -> a
    3:11:java.util.Set serviceImplementationsFor(com.android.tools.r8.graph.DexType):49:57 -> a
    12:14:java.util.Set serviceImplementationsFor(com.android.tools.r8.graph.DexType):53:55 -> a
    15:24:com.android.tools.r8.graph.AppServices rewrittenWithLens(com.android.tools.r8.graph.GraphLense):63:72 -> a
    1:4:boolean verifyRewrittenWithLens():76:79 -> b
    1:1:com.android.tools.r8.graph.AppServices$Builder builder(com.android.tools.r8.graph.AppView):86:86 -> builder
com.android.tools.r8.graph.AppServices$1 -> com.android.tools.r8.graph.b:
com.android.tools.r8.graph.AppServices$Builder -> com.android.tools.r8.graph.AppServices$Builder:
    java.util.Map services -> b
    com.android.tools.r8.graph.AppView appView -> a
    1:1:void <init>(com.android.tools.r8.graph.AppView):94:94 -> <init>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.AppServices$1):89 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.AppView):92:95 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.AppServices$1):89 -> <init>
    1:1:com.android.tools.r8.graph.AppView access$300(com.android.tools.r8.graph.AppServices$Builder):89:89 -> a
    1:1:java.util.Map access$400(com.android.tools.r8.graph.AppServices$Builder):89:89 -> b
    1:1:com.android.tools.r8.graph.AppServices build():99:99 -> build
    2:4:void readServices(com.android.tools.r8.DataResourceProvider):107:109 -> build
    2:4:com.android.tools.r8.graph.AppServices build():100 -> build
    5:5:com.android.tools.r8.graph.AppServices build():102:102 -> build
com.android.tools.r8.graph.AppServices$Builder$DataResourceProviderVisitor -> com.android.tools.r8.graph.AppServices$Builder$a:
    com.android.tools.r8.graph.AppServices$Builder this$0 -> a
    1:1:void <init>(com.android.tools.r8.graph.AppServices$Builder):113:113 -> <init>
    1:1:void <init>(com.android.tools.r8.graph.AppServices$Builder,com.android.tools.r8.graph.AppServices$1):113 -> <init>
    1:26:java.util.Set readServiceImplementationsForService(java.lang.String,com.android.tools.r8.origin.Origin):142:167 -> a
    27:27:boolean lambda$readServiceImplementationsForService$0(java.lang.String):144:144 -> a
    28:36:boolean lambda$readServiceImplementationsForService$1(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.DexType):150:158 -> a
    37:37:boolean lambda$readServiceImplementationsForService$1(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.DexType):155:155 -> a
    1:10:void visit(com.android.tools.r8.DataEntryResource):123:132 -> visit
    11:16:void visit(com.android.tools.r8.DataEntryResource):131:136 -> visit
com.android.tools.r8.graph.AppView -> com.android.tools.r8.graph.AppView:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> c
    com.android.tools.r8.graph.AppServices appServices -> b
    com.android.tools.r8.graph.GraphLense graphLense -> e
    com.android.tools.r8.graph.AppView$WholeProgramOptimizations wholeProgramOptimizations -> d
    com.android.tools.r8.shaking.VerticalClassMerger$VerticallyMergedClasses verticallyMergedClasses -> g
    com.android.tools.r8.utils.InternalOptions options -> f
    boolean $assertionsDisabled -> h
    com.android.tools.r8.graph.AppInfo appInfo -> a
    1:1:void <clinit>():11:11 -> <clinit>
    1:6:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.AppView$WholeProgramOptimizations,com.android.tools.r8.utils.InternalOptions):27:32 -> <init>
    1:1:com.android.tools.r8.graph.AppServices appServices():57:57 -> a
    2:2:com.android.tools.r8.graph.DexDefinition definitionFor(com.android.tools.r8.graph.DexReference):66:66 -> a
    3:3:com.android.tools.r8.graph.DexEncodedField definitionFor(com.android.tools.r8.graph.DexField):71:71 -> a
    4:4:com.android.tools.r8.graph.DexEncodedMethod definitionFor(com.android.tools.r8.graph.DexMethod):76:76 -> a
    5:5:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):81:81 -> a
    6:6:void setGraphLense(com.android.tools.r8.graph.GraphLense):98:98 -> a
    7:7:void setVerticallyMergedClasses(com.android.tools.r8.shaking.VerticalClassMerger$VerticallyMergedClasses):112:112 -> a
    1:1:com.android.tools.r8.graph.AppInfo appInfo():44:44 -> appInfo
    1:1:boolean enableWholeProgramOptimizations():90:90 -> b
    1:1:com.android.tools.r8.graph.GraphLense graphLense():94:94 -> c
    1:1:com.android.tools.r8.graph.AppView createForD8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):36:36 -> createForD8
    1:1:com.android.tools.r8.graph.AppView createForR8(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions):40:40 -> createForR8
    1:1:com.android.tools.r8.shaking.VerticalClassMerger$VerticallyMergedClasses verticallyMergedClasses():108:108 -> d
    1:1:com.android.tools.r8.graph.DexItemFactory dexItemFactory():86:86 -> dexItemFactory
    1:1:com.android.tools.r8.utils.InternalOptions options():102:102 -> options
    1:5:void setAppInfo(com.android.tools.r8.graph.AppInfo):48:52 -> setAppInfo
    1:1:void setAppServices(com.android.tools.r8.graph.AppServices):61:61 -> setAppServices
com.android.tools.r8.graph.AppView$WholeProgramOptimizations -> com.android.tools.r8.graph.AppView$a:
    com.android.tools.r8.graph.AppView$WholeProgramOptimizations ON -> a
    com.android.tools.r8.graph.AppView$WholeProgramOptimizations OFF -> b
    1:2:void <clinit>():14:15 -> <clinit>
    3:3:void <clinit>():13:13 -> <clinit>
    1:1:void <init>(java.lang.String,int):13:13 -> <init>
com.android.tools.r8.graph.AppliedGraphLens -> com.android.tools.r8.graph.c:
    com.android.tools.r8.graph.AppView appView -> b
    com.android.tools.r8.com.google.common.collect.BiMap originalTypeNames -> c
    com.android.tools.r8.com.google.common.collect.BiMap originalFieldSignatures -> d
    com.android.tools.r8.com.google.common.collect.BiMap originalMethodSignatures -> e
    boolean $assertionsDisabled -> g
    java.util.Map originalMethodSignaturesForBridges -> f
    1:1:void <clinit>():21:21 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,java.util.List):32:32 -> <init>
    2:43:void <init>(com.android.tools.r8.graph.AppView,java.util.List):25:66 -> <init>
    44:44:com.android.tools.r8.graph.DexMethod getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):106:106 -> <init>
    44:44:void <init>(com.android.tools.r8.graph.AppView,java.util.List):68 -> <init>
    45:48:void <init>(com.android.tools.r8.graph.AppView,java.util.List):70:73 -> <init>
    1:1:com.android.tools.r8.graph.DexType getOriginalType(com.android.tools.r8.graph.DexType):83:83 -> a
    2:2:com.android.tools.r8.graph.DexField getOriginalFieldSignature(com.android.tools.r8.graph.DexField):88:88 -> a
    3:6:com.android.tools.r8.graph.DexMethod getOriginalMethodSignature(com.android.tools.r8.graph.DexMethod):93:96 -> a
    7:7:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):121:121 -> a
    boolean isContextFreeForMethods() -> b
    1:1:com.android.tools.r8.graph.DexField getRenamedFieldSignature(com.android.tools.r8.graph.DexField):101:101 -> b
    2:2:com.android.tools.r8.graph.DexMethod getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):106:106 -> b
    3:7:com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexType):111:115 -> b
    com.android.tools.r8.graph.DexField lookupField(com.android.tools.r8.graph.DexField) -> c
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):126:126 -> f
com.android.tools.r8.graph.ArgumentUse -> com.android.tools.r8.graph.d:
    1:1:void <init>():7:7 -> <init>
    boolean register(int) -> a
com.android.tools.r8.graph.AssemblyWriter -> com.android.tools.r8.graph.AssemblyWriter:
    com.android.tools.r8.utils.Timing timing -> h
    boolean writeAnnotations -> e
    boolean writeIR -> f
    com.android.tools.r8.graph.AppInfoWithSubtyping appInfo -> g
    boolean writeAllClassInfo -> c
    boolean writeFields -> d
    com.android.tools.r8.ir.conversion.OptimizationFeedback ignoreOptimizationFeedback -> i
    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.InternalOptions,boolean,boolean):29:29 -> <init>
    2:21:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.InternalOptions,boolean,boolean):24:43 -> <init>
    java.lang.String getFileEnding() -> a
    void writeClassFooter(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> a
    1:7:void writeField(com.android.tools.r8.graph.DexEncodedField,java.io.PrintStream):86:92 -> a
    8:19:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):103:114 -> a
    20:23:void writeIR(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):123:126 -> a
    20:23:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):115 -> a
    24:24:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):117:117 -> a
    25:30:void writeAnnotations(com.android.tools.r8.graph.DexAnnotationSet,java.io.PrintStream):130:135 -> a
    1:18:void writeClassHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):55:72 -> b
    1:1:void writeFieldsFooter(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):98:98 -> c
    1:4:void writeFieldsHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):77:80 -> d
com.android.tools.r8.graph.CachedHashValueDexItem -> com.android.tools.r8.graph.CachedHashValueDexItem:
    int hash -> a
    1:5:void <init>():9:13 -> <init>
    boolean computeEquals(java.lang.Object) -> b
    int computeHashCode() -> d
    1:1:boolean equals(java.lang.Object):40:40 -> equals
    1:1:void flushCachedValues():35:35 -> flushCachedValues
    1:7:int hashCode():21:27 -> hashCode
com.android.tools.r8.graph.CfCode -> com.android.tools.r8.graph.CfCode:
    java.util.List localVariables -> e
    java.util.List tryCatchRanges -> d
    boolean $assertionsDisabled -> f
    int maxStack -> b
    int maxLocals -> c
    com.android.tools.r8.graph.DexMethod method -> a
    1:1:void <clinit>():28:28 -> <clinit>
    1:7:void <init>(com.android.tools.r8.graph.DexMethod,int,int,java.util.List,java.util.List,java.util.List):88:94 -> <init>
    1:24:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,int):156:179 -> a
    25:42:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,int):173:190 -> a
    43:43:void write(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions,int):184:184 -> a
    44:56:com.android.tools.r8.ir.code.IRCode internalBuild(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):246:258 -> a
    1:1:boolean computeEquals(java.lang.Object):201:201 -> b
    1:2:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):219:220 -> buildIR
    1:4:com.android.tools.r8.ir.code.IRCode buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):231:234 -> buildInliningIR
    1:2:int countNonStackOperations(int):133:134 -> c
    1:1:int computeHashCode():196:196 -> d
    1:1:int getMaxLocals():106:106 -> e
    1:1:int estimatedSizeForInlining():123:123 -> estimatedSizeForInlining
    1:1:boolean estimatedSizeForInliningAtMost(int):128:128 -> estimatedSizeForInliningAtMost
    1:1:int getMaxStack():102:102 -> f
    1:1:com.android.tools.r8.graph.DexMethod getMethod():98:98 -> g
    1:1:java.util.List getInstructions():114:114 -> getInstructions
    1:1:java.util.List getLocalVariables():118:118 -> getLocalVariables
    1:1:java.util.List getTryCatchRanges():110:110 -> getTryCatchRanges
    1:2:boolean isEmptyVoidMethod():206:207 -> isEmptyVoidMethod
    1:6:void registerCodeReferences(com.android.tools.r8.graph.UseRegistry):263:268 -> registerCodeReferences
    1:1:java.lang.String toString():275:275 -> toString
    2:2:java.lang.String toString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.ClassNameMapper):280:280 -> toString
com.android.tools.r8.graph.CfCode$LocalVariableInfo -> com.android.tools.r8.graph.CfCode$a:
    com.android.tools.r8.graph.DebugLocalInfo local -> b
    boolean $assertionsDisabled -> e
    com.android.tools.r8.cf.code.CfLabel start -> c
    com.android.tools.r8.cf.code.CfLabel end -> d
    int index -> a
    1:1:void <clinit>():30:30 -> <clinit>
    1:4:void <init>(int,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.cf.code.CfLabel):36:39 -> <init>
    1:1:com.android.tools.r8.graph.DebugLocalInfo access$000(com.android.tools.r8.graph.CfCode$LocalVariableInfo):30:30 -> a
    2:4:void setEnd(com.android.tools.r8.cf.code.CfLabel):48:50 -> a
    5:5:com.android.tools.r8.cf.code.CfLabel getEnd():66:66 -> a
    1:1:com.android.tools.r8.cf.code.CfLabel access$100(com.android.tools.r8.graph.CfCode$LocalVariableInfo):30:30 -> b
    2:2:int getIndex():54:54 -> b
    1:1:com.android.tools.r8.cf.code.CfLabel access$200(com.android.tools.r8.graph.CfCode$LocalVariableInfo):30:30 -> c
    2:2:com.android.tools.r8.graph.DebugLocalInfo getLocal():58:58 -> c
    1:1:int access$300(com.android.tools.r8.graph.CfCode$LocalVariableInfo):30:30 -> d
    2:2:com.android.tools.r8.cf.code.CfLabel getStart():62:62 -> d
    1:1:java.lang.String toString():71:71 -> toString
com.android.tools.r8.graph.ClassAccessFlags -> com.android.tools.r8.graph.ClassAccessFlags:
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():11:11 -> <clinit>
    1:1:void <init>(int,int):57:57 -> <init>
    1:1:void <init>(int):53 -> <init>
    2:2:void <init>(int,int):57:57 -> <init>
    1:15:boolean areValid(int,boolean):106:120 -> a
    1:8:java.util.List getNames():30:37 -> b
    1:8:java.util.List getPredicates():42:49 -> d
    1:3:com.android.tools.r8.graph.ClassAccessFlags fromSharedAccessFlags(int):61:63 -> fromSharedAccessFlags
    1:1:com.android.tools.r8.graph.ClassAccessFlags fromCfAccessFlags(int):72:72 -> g
    1:1:com.android.tools.r8.graph.ClassAccessFlags fromDexAccessFlags(int):68:68 -> h
    1:1:boolean isAbstract():137:137 -> isAbstract
    1:1:boolean isAnnotation():149:149 -> isAnnotation
    1:1:com.android.tools.r8.graph.ClassAccessFlags copy():77:77 -> q
    1:1:int getAsCfAccessFlags():98:98 -> r
    1:2:int getAsDexAccessFlags():89:90 -> s
    1:1:void setAbstract():141:141 -> setAbstract
    1:1:boolean isEnum():161:161 -> t
    1:1:boolean isInterface():125:125 -> u
    1:1:boolean isSuper():169:169 -> v
    1:1:void unsetAbstract():145:145 -> w
    1:1:void unsetAnnotation():157:157 -> x
    1:1:void unsetInterface():133:133 -> y
com.android.tools.r8.graph.ClassKind -> com.android.tools.r8.graph.e:
    com.android.tools.r8.graph.ClassKind CLASSPATH -> d
    com.android.tools.r8.graph.ClassKind LIBRARY -> e
    java.util.function.Predicate check -> b
    boolean $assertionsDisabled -> f
    com.android.tools.r8.graph.ClassKind$Factory factory -> a
    com.android.tools.r8.graph.ClassKind PROGRAM -> c
    1:4:void <clinit>():14:17 -> <clinit>
    5:5:void <clinit>():14:14 -> <clinit>
    1:3:void <init>(java.lang.String,int,com.android.tools.r8.graph.ClassKind$Factory,java.util.function.Predicate):41:43 -> <init>
    1:1:com.android.tools.r8.graph.DexClass create(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean):62:62 -> a
    2:2:boolean isOfKind(com.android.tools.r8.graph.DexClass):81:81 -> a
    3:3:java.util.function.Consumer bridgeConsumer(java.util.function.Consumer):85:85 -> a
    4:6:void lambda$bridgeConsumer$0(java.util.function.Consumer,com.android.tools.r8.graph.DexClass):86:88 -> a
com.android.tools.r8.graph.ClassKind$Factory -> com.android.tools.r8.graph.e$a:
    com.android.tools.r8.graph.DexClass create(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean) -> a
com.android.tools.r8.graph.Code -> com.android.tools.r8.graph.Code:
    com.android.tools.r8.graph.DexEncodedMethod owner -> a
    1:1:void <init>():16:16 -> <init>
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):104:104 -> a
    2:2:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):109:109 -> a
    1:1:com.android.tools.r8.graph.CfCode asCfCode():82:82 -> asCfCode
    1:1:com.android.tools.r8.graph.DexCode asDexCode():90:90 -> asDexCode
    1:1:com.android.tools.r8.graph.JarCode asJarCode():94:94 -> asJarCode
    1:1:com.android.tools.r8.graph.LazyCfCode asLazyCfCode():86:86 -> asLazyCfCode
    1:1:com.android.tools.r8.ir.optimize.Outliner$OutlineCode asOutlineCode():98:98 -> asOutlineCode
    1:2:com.android.tools.r8.ir.code.IRCode buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):40:41 -> buildInliningIR
    1:1:boolean estimatedSizeForInliningAtMost(int):78:78 -> estimatedSizeForInliningAtMost
    1:1:com.android.tools.r8.graph.DexEncodedMethod getOwner():27:27 -> getOwner
    1:1:void registerArgumentReferences(com.android.tools.r8.graph.ArgumentUse):47:47 -> registerArgumentReferences
    1:1:void setOwner(com.android.tools.r8.graph.DexEncodedMethod):22:22 -> setOwner
com.android.tools.r8.graph.DebugLocalInfo -> com.android.tools.r8.graph.DebugLocalInfo:
    com.android.tools.r8.graph.DebugLocalInfo$PrintLevel PRINT_LEVEL -> a
    1:1:void <clinit>():21:21 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):27:30 -> <init>
    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap endingLocals(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):55:60 -> a
    1:5:boolean localsInfoMapsEqual(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):41:45 -> b
    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap startingLocals(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):69:74 -> c
    1:5:boolean equals(java.lang.Object):85:89 -> equals
    1:3:int hashCode():94:96 -> hashCode
    1:11:java.lang.String toString():103:113 -> toString
    12:12:java.lang.String toString():107:107 -> toString
com.android.tools.r8.graph.DebugLocalInfo$PrintLevel -> com.android.tools.r8.graph.DebugLocalInfo$a:
    com.android.tools.r8.graph.DebugLocalInfo$PrintLevel[] $VALUES -> d
    com.android.tools.r8.graph.DebugLocalInfo$PrintLevel NAME -> b
    com.android.tools.r8.graph.DebugLocalInfo$PrintLevel NONE -> a
    com.android.tools.r8.graph.DebugLocalInfo$PrintLevel FULL -> c
    1:3:void <clinit>():16:18 -> <clinit>
    4:4:void <clinit>():15:15 -> <clinit>
    1:1:void <init>(java.lang.String,int):15:15 -> <init>
com.android.tools.r8.graph.Descriptor -> com.android.tools.r8.graph.f:
    1:1:void <init>():6:6 -> <init>
    boolean match(com.android.tools.r8.graph.DexItem) -> a
com.android.tools.r8.graph.DexAnnotation -> com.android.tools.r8.graph.DexAnnotation:
    boolean $assertionsDisabled -> c
    com.android.tools.r8.graph.DexAnnotation[] EMPTY_ARRAY -> b
    int visibility -> a
    1:2:void <clinit>():24:25 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.graph.DexEncodedAnnotation):32:34 -> <init>
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):62:62 -> a
    2:2:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):67:67 -> a
    3:3:com.android.tools.r8.graph.DexAnnotation createEnclosingClassAnnotation(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):72:72 -> a
    4:6:com.android.tools.r8.graph.DexType getEnclosingClassFromAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):78:80 -> a
    7:7:com.android.tools.r8.graph.DexAnnotation createEnclosingMethodAnnotation(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):85:85 -> a
    8:12:com.android.tools.r8.graph.DexAnnotation createMemberClassesAnnotation(java.util.List,com.android.tools.r8.graph.DexItemFactory):151:155 -> a
    13:16:com.android.tools.r8.graph.DexAnnotation createAnnotationDefaultAnnotation(com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexItemFactory):199:202 -> a
    17:17:com.android.tools.r8.graph.DexAnnotation createAnnotationDefaultAnnotation(com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexItemFactory):199:199 -> a
    18:18:com.android.tools.r8.graph.DexAnnotation createSignatureAnnotation(java.lang.String,com.android.tools.r8.graph.DexItemFactory):207:207 -> a
    19:46:com.android.tools.r8.graph.DexValue compressSignature(java.lang.String,com.android.tools.r8.graph.DexItemFactory):279:306 -> a
    19:46:com.android.tools.r8.graph.DexAnnotation createSignatureAnnotation(java.lang.String,com.android.tools.r8.graph.DexItemFactory):208 -> a
    47:47:com.android.tools.r8.graph.DexValue toDexValue(java.lang.String,com.android.tools.r8.graph.DexItemFactory):314:314 -> a
    47:47:com.android.tools.r8.graph.DexValue compressSignature(java.lang.String,com.android.tools.r8.graph.DexItemFactory):306 -> a
    47:47:com.android.tools.r8.graph.DexAnnotation createSignatureAnnotation(java.lang.String,com.android.tools.r8.graph.DexItemFactory):208 -> a
    48:52:com.android.tools.r8.graph.DexValue compressSignature(java.lang.String,com.android.tools.r8.graph.DexItemFactory):306:310 -> a
    48:52:com.android.tools.r8.graph.DexAnnotation createSignatureAnnotation(java.lang.String,com.android.tools.r8.graph.DexItemFactory):208 -> a
    53:53:com.android.tools.r8.graph.DexAnnotation createSignatureAnnotation(java.lang.String,com.android.tools.r8.graph.DexItemFactory):207:207 -> a
    54:59:java.lang.String getSignature(com.android.tools.r8.graph.DexAnnotation):212:217 -> a
    60:60:com.android.tools.r8.graph.DexAnnotation createThrowsAnnotation(com.android.tools.r8.graph.DexValue[],com.android.tools.r8.graph.DexItemFactory):222:222 -> a
    61:63:com.android.tools.r8.graph.DexAnnotation createSystemValueAnnotation(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexValue):228:230 -> a
    64:68:com.android.tools.r8.graph.DexValue getSystemValueAnnotationValue(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotation):235:239 -> a
    69:92:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):320:343 -> a
    93:94:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):340:341 -> a
    95:96:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):333:334 -> a
    97:98:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):329:330 -> a
    99:122:java.util.Collection readAnnotationSynthesizedClassMap(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):324:347 -> a
    123:126:java.lang.String getInvalidSynthesizedClassMapMessage(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexAnnotation):353:356 -> a
    127:133:com.android.tools.r8.graph.DexAnnotation createAnnotationSynthesizedClassMap(java.util.TreeSet,com.android.tools.r8.graph.DexItemFactory):362:368 -> a
    134:141:com.android.tools.r8.graph.DexAnnotation rewrite(java.util.function.Function):380:387 -> a
    1:4:com.android.tools.r8.graph.DexMethod getEnclosingMethodFromAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):91:94 -> b
    1:3:com.android.tools.r8.utils.Pair getInnerClassFromAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):133:135 -> c
    4:4:void com.android.tools.r8.utils.Pair.<init>():20:20 -> c
    4:4:com.android.tools.r8.utils.Pair getInnerClassFromAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):135 -> c
    5:12:com.android.tools.r8.utils.Pair getInnerClassFromAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):136:143 -> c
    13:13:com.android.tools.r8.graph.DexValue$DexValueType[] lambda$createAnnotationSynthesizedClassMap$0(int):364:364 -> c
    1:8:java.util.List getMemberClassesFromAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):161:168 -> d
    1:1:boolean isInnerClassAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):108:108 -> e
    1:3:boolean equals(java.lang.Object):47:49 -> equals
    1:1:boolean isSignatureAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):249:249 -> f
    1:1:int hashCode():39:39 -> hashCode
    1:1:java.lang.String toString():56:56 -> toString
com.android.tools.r8.graph.DexAnnotationDirectory -> com.android.tools.r8.graph.g:
    java.util.List methodAnnotations -> b
    java.util.List fieldAnnotations -> d
    com.android.tools.r8.graph.DexProgramClass clazz -> a
    java.util.List parameterAnnotations -> c
    boolean classHasOnlyInternalizableAnnotations -> e
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():14:14 -> <clinit>
    1:27:void <init>(com.android.tools.r8.graph.DexProgramClass):22:48 -> <init>
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):102:102 -> a
    2:2:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):107:107 -> a
    3:3:boolean isSorted(java.util.List):112:112 -> a
    4:6:boolean isSorted(java.util.List,java.util.function.Function):118:120 -> a
    4:6:boolean isSorted(java.util.List):112 -> a
    1:1:com.android.tools.r8.graph.DexAnnotationSet getClazzAnnotations():54:54 -> d
    1:1:java.util.List getFieldAnnotations():66:66 -> e
    1:11:boolean equals(java.lang.Object):78:88 -> equals
    1:1:java.util.List getMethodAnnotations():58:58 -> f
    1:1:java.util.List getParameterAnnotations():62:62 -> g
    1:4:int hashCode():93:96 -> hashCode
com.android.tools.r8.graph.DexAnnotationElement -> com.android.tools.r8.graph.DexAnnotationElement:
    boolean $assertionsDisabled -> b
    com.android.tools.r8.graph.DexAnnotationElement[] EMPTY_ARRAY -> a
    1:2:void <clinit>():9:10 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexValue):15:17 -> <init>
    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):45:46 -> a
    3:3:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):52:52 -> a
    1:3:boolean equals(java.lang.Object):30:32 -> equals
    1:1:int hashCode():22:22 -> hashCode
    1:1:java.lang.String toString():39:39 -> toString
com.android.tools.r8.graph.DexAnnotationSet -> com.android.tools.r8.graph.DexAnnotationSet:
    com.android.tools.r8.graph.DexAnnotationSet THE_EMPTY_ANNOTATIONS_SET -> b
    boolean $assertionsDisabled -> c
    int sorted -> a
    1:4:void <clinit>():13:16 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexAnnotation[]):22:22 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.DexAnnotation[]):20:23 -> <init>
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):47:47 -> a
    2:3:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):52:53 -> a
    4:4:int lambda$sort$0(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexAnnotation):65:65 -> a
    5:6:com.android.tools.r8.graph.DexAnnotation getFirstMatching(com.android.tools.r8.graph.DexType):73:74 -> a
    7:20:com.android.tools.r8.graph.DexAnnotationSet getWithAddedOrReplaced(com.android.tools.r8.graph.DexAnnotation):106:119 -> a
    21:21:com.android.tools.r8.graph.DexAnnotationSet keepIf(java.util.function.Predicate):123:123 -> a
    22:22:com.android.tools.r8.graph.DexAnnotation lambda$keepIf$1(java.util.function.Predicate,com.android.tools.r8.graph.DexAnnotation):123:123 -> a
    23:30:com.android.tools.r8.graph.DexAnnotationSet rewrite(java.util.function.Function):127:134 -> a
    31:31:com.android.tools.r8.graph.DexAnnotationSet empty():27:27 -> a
    31:31:com.android.tools.r8.graph.DexAnnotationSet rewrite(java.util.function.Function):135 -> a
    32:32:com.android.tools.r8.graph.DexAnnotationSet rewrite(java.util.function.Function):137:137 -> a
    1:3:boolean computeEquals(java.lang.Object):37:39 -> b
    4:11:com.android.tools.r8.graph.DexAnnotationSet getWithout(com.android.tools.r8.graph.DexType):83:90 -> b
    1:1:int computeHashCode():32:32 -> d
    1:2:void sort():61:62 -> e
    3:3:int sortedHashCode():98:98 -> e
    3:3:void sort():62 -> e
    4:11:void sort():62:69 -> e
    1:1:com.android.tools.r8.graph.DexAnnotationSet empty():27:27 -> empty
    1:1:boolean isEmpty():57:57 -> isEmpty
com.android.tools.r8.graph.DexApplication -> com.android.tools.r8.graph.DexApplication:
    com.android.tools.r8.utils.Timing timing -> e
    com.android.tools.r8.naming.ClassNameMapper proguardMap -> d
    com.android.tools.r8.graph.DexString highestSortingString -> f
    boolean $assertionsDisabled -> g
    com.android.tools.r8.com.google.common.collect.ImmutableSet mainDexList -> b
    java.lang.String deadCode -> c
    com.android.tools.r8.com.google.common.collect.ImmutableList dataResourceProviders -> a
    1:1:void <clinit>():25:25 -> <clinit>
    1:8:void <init>(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableSet,java.lang.String,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexString,com.android.tools.r8.utils.Timing):49:56 -> <init>
    com.android.tools.r8.graph.DexProgramClass programDefinitionFor(com.android.tools.r8.graph.DexType) -> a
    1:1:int lambda$classesWithDeterministicOrder$0(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):100:100 -> a
    2:2:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder builder(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Timing,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):235:235 -> a
    3:3:com.android.tools.r8.graph.DirectMappedDexApplication asDirect():239:239 -> a
    com.android.tools.r8.graph.DexApplication$Builder builder() -> b
    1:1:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder builder(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Timing):230:230 -> builder
    1:3:java.lang.Iterable classesWithDeterministicOrder():98:100 -> c
    1:3:java.util.List classes():92:94 -> classes
    java.util.List programClasses() -> d
    1:1:com.android.tools.r8.naming.ClassNameMapper getProguardMap():112:112 -> getProguardMap
com.android.tools.r8.graph.DexApplication$Builder -> com.android.tools.r8.graph.DexApplication$Builder:
    java.util.List dataResourceProviders -> b
    java.lang.String deadCode -> g
    java.util.List programClasses -> a
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> c
    java.util.Set mainDexList -> h
    com.android.tools.r8.utils.Timing timing -> e
    boolean $assertionsDisabled -> j
    com.android.tools.r8.naming.ClassNameMapper proguardMap -> d
    com.android.tools.r8.graph.DexString highestSortingString -> f
    java.util.Collection synthesizedClasses -> i
    1:1:void <clinit>():115:115 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Timing):136:136 -> <init>
    2:19:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Timing):123:140 -> <init>
    20:20:void <init>(com.android.tools.r8.graph.DexApplication):145:145 -> <init>
    21:52:void <init>(com.android.tools.r8.graph.DexApplication):123:154 -> <init>
    1:3:com.android.tools.r8.graph.DexApplication$Builder setProguardMap(com.android.tools.r8.naming.ClassNameMapper):158:160 -> a
    4:7:com.android.tools.r8.graph.DexApplication$Builder replaceProgramClasses(java.util.List):164:167 -> a
    8:9:com.android.tools.r8.graph.DexApplication$Builder addDataResourceProvider(com.android.tools.r8.DataResourceProvider):171:172 -> a
    10:18:com.android.tools.r8.graph.DexApplication$Builder appendDeadCode(java.lang.String):177:185 -> a
    19:20:com.android.tools.r8.graph.DexApplication$Builder setHighestSortingString(com.android.tools.r8.graph.DexString):189:190 -> a
    21:21:java.util.Set getMainDexList():218:218 -> a
    22:22:com.android.tools.r8.graph.DexApplication$Builder addToMainDexList(java.util.Collection):222:222 -> a
    1:2:com.android.tools.r8.graph.DexApplication$Builder addProgramClass(com.android.tools.r8.graph.DexProgramClass):194:195 -> addProgramClass
    1:7:com.android.tools.r8.graph.DexApplication$Builder addSynthesizedClass(com.android.tools.r8.graph.DexProgramClass,boolean):200:206 -> addSynthesizedClass
    1:1:java.util.Collection getProgramClasses():210:210 -> b
    1:1:java.util.Collection getSynthesizedClasses():214:214 -> c
    com.android.tools.r8.graph.DexApplication$Builder self() -> d
com.android.tools.r8.graph.DexApplication$ReorderBox -> com.android.tools.r8.graph.DexApplication$a:
    java.util.List classes -> a
    1:2:void <init>(java.util.List):71:72 -> <init>
    1:1:java.util.List getClasses():85:85 -> a
    1:3:boolean reorderClasses():77:79 -> b
com.android.tools.r8.graph.DexByteCodeWriter -> com.android.tools.r8.graph.DexByteCodeWriter:
    com.android.tools.r8.graph.DexApplication application -> a
    com.android.tools.r8.utils.InternalOptions options -> b
    1:3:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.InternalOptions):22:24 -> <init>
    java.lang.String getFileEnding() -> a
    java.io.PrintStream lambda$write$1(java.io.PrintStream,com.android.tools.r8.graph.DexClass) -> a
    void lambda$write$2(java.io.PrintStream) -> a
    void writeClassFooter(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> a
    void writeField(com.android.tools.r8.graph.DexEncodedField,java.io.PrintStream) -> a
    void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream) -> a
    1:2:java.io.PrintStream lambda$oneFilePerClass$0(java.nio.file.Path,com.android.tools.r8.graph.DexClass):36:37 -> a
    3:6:java.io.PrintStream lambda$oneFilePerClass$0(java.nio.file.Path,com.android.tools.r8.graph.DexClass):36:39 -> a
    7:7:java.io.PrintStream lambda$oneFilePerClass$0(java.nio.file.Path,com.android.tools.r8.graph.DexClass):38:38 -> a
    8:10:void ensureParentExists(java.nio.file.Path):28:30 -> a
    8:10:java.io.PrintStream lambda$oneFilePerClass$0(java.nio.file.Path,com.android.tools.r8.graph.DexClass):40 -> a
    11:11:java.io.PrintStream lambda$oneFilePerClass$0(java.nio.file.Path,com.android.tools.r8.graph.DexClass):41:41 -> a
    12:13:void write(java.nio.file.Path):46:47 -> a
    14:16:void ensureParentExists(java.nio.file.Path):28:30 -> a
    14:16:void write(java.nio.file.Path):49 -> a
    17:19:void write(java.nio.file.Path):50:52 -> a
    20:22:void write(java.nio.file.Path):50:52 -> a
    23:30:void write(com.android.tools.r8.utils.ThrowingFunction,java.util.function.Consumer):64:71 -> a
    31:33:boolean anyMethodMatches(com.android.tools.r8.graph.DexClass):78:80 -> a
    34:34:void lambda$writeClass$3(java.io.PrintStream,com.android.tools.r8.graph.DexEncodedField):86:86 -> a
    35:35:void lambda$writeClass$4(java.io.PrintStream,com.android.tools.r8.graph.DexEncodedMethod):89:89 -> a
    void writeClassHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> b
    1:1:com.android.tools.r8.utils.ThrowingFunction oneFilePerClass(java.nio.file.Path):35:35 -> b
    void writeFieldsFooter(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> c
    void writeFieldsHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> d
    void writeMethodsFooter(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> e
    void writeMethodsHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream) -> f
    1:8:void writeClass(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):84:91 -> g
    1:1:void write(java.io.PrintStream):57:57 -> write
com.android.tools.r8.graph.DexCallSite -> com.android.tools.r8.graph.i:
    com.android.tools.r8.graph.DexString methodName -> c
    java.util.List bootstrapArgs -> f
    boolean $assertionsDisabled -> j
    com.android.tools.r8.graph.DexProto methodProto -> d
    com.android.tools.r8.graph.DexEncodedArray encodedArray -> g
    com.android.tools.r8.graph.DexMethod method -> h
    int instructionOffset -> i
    com.android.tools.r8.graph.DexMethodHandle bootstrapMethod -> e
    1:1:void <clinit>():24:24 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexMethodHandle,java.util.List):43:43 -> <init>
    2:22:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexMethodHandle,java.util.List):32:52 -> <init>
    1:1:com.android.tools.r8.graph.DexCallSite fromAsmInvokeDynamic(com.android.tools.r8.org.objectweb.asm.tree.InvokeDynamicInsnNode,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):57:57 -> a
    2:13:com.android.tools.r8.graph.DexCallSite fromAsmInvokeDynamic(com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):68:79 -> a
    14:15:com.android.tools.r8.graph.DexCallSite com.android.tools.r8.graph.JarApplicationReader.getCallSite(java.lang.String,java.lang.String,com.android.tools.r8.graph.DexMethodHandle,java.util.List):101:102 -> a
    14:15:com.android.tools.r8.graph.DexCallSite fromAsmInvokeDynamic(com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):83 -> a
    16:16:com.android.tools.r8.graph.DexCallSite com.android.tools.r8.graph.JarApplicationReader.getCallSite(java.lang.String,java.lang.String,com.android.tools.r8.graph.DexMethodHandle,java.util.List):101:101 -> a
    16:16:com.android.tools.r8.graph.DexCallSite fromAsmInvokeDynamic(com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):83 -> a
    17:30:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):120:133 -> a
    31:31:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):140:140 -> a
    32:32:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):145:145 -> a
    boolean computeEquals(java.lang.Object) -> b
    1:1:int compareTo(java.lang.Object):24:24 -> compareTo
    2:8:int compareTo(com.android.tools.r8.graph.DexCallSite):160:166 -> compareTo
    2:8:int compareTo(java.lang.Object):24 -> compareTo
    1:1:int computeHashCode():91:91 -> d
    1:14:com.android.tools.r8.graph.DexEncodedArray getEncodedArray():289:302 -> g
    1:1:java.lang.String getHash():155:155 -> h
    1:1:java.lang.String toSmaliString():151:151 -> toSmaliString
    1:11:java.lang.String toString():104:114 -> toString
com.android.tools.r8.graph.DexCallSite$1 -> com.android.tools.r8.graph.h:
com.android.tools.r8.graph.DexCallSite$HashBuilder -> com.android.tools.r8.graph.i$a:
    java.io.ByteArrayOutputStream bytes -> a
    com.android.tools.r8.graph.DexCallSite this$0 -> c
    java.io.ObjectOutputStream out -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():169:169 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexCallSite):169:169 -> <init>
    1:1:void <init>(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexCallSite$1):169 -> <init>
    1:2:void write(com.android.tools.r8.graph.DexString):174:175 -> a
    3:3:void write(com.android.tools.r8.graph.DexType):179:179 -> a
    4:6:void write(com.android.tools.r8.graph.DexMethodHandle):183:185 -> a
    7:9:void write(com.android.tools.r8.graph.DexField):208:210 -> a
    7:9:void write(com.android.tools.r8.graph.DexMethodHandle):185 -> a
    10:10:void write(com.android.tools.r8.graph.DexMethodHandle):187:187 -> a
    11:13:void write(com.android.tools.r8.graph.DexMethod):202:204 -> a
    11:13:void write(com.android.tools.r8.graph.DexMethodHandle):187 -> a
    14:19:void write(com.android.tools.r8.graph.DexProto):192:197 -> a
    20:67:void write(java.util.List):214:261 -> a
    68:84:java.lang.String build():267:283 -> a
com.android.tools.r8.graph.DexClass -> com.android.tools.r8.graph.DexClass:
    com.android.tools.r8.graph.EnclosingMethodAttribute enclosingMethod -> g
    com.android.tools.r8.graph.DexClass[] EMPTY_ARRAY -> i
    boolean $assertionsDisabled -> j
    com.android.tools.r8.origin.Origin origin -> b
    com.android.tools.r8.graph.DexEncodedMethod[] virtualMethods -> f
    java.util.Optional cachedClassInitializer -> a
    com.android.tools.r8.graph.DexEncodedMethod[] directMethods -> e
    com.android.tools.r8.graph.DexEncodedField[] instanceFields -> d
    java.util.List innerClasses -> h
    com.android.tools.r8.graph.DexEncodedField[] staticFields -> c
    1:2:void <clinit>():25:26 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.origin.Origin,boolean):79:79 -> <init>
    2:71:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.origin.Origin,boolean):36:105 -> <init>
    72:72:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.origin.Origin,boolean):95:95 -> <init>
    1:1:boolean hasKotlinInfo():791:791 -> A
    1:9:boolean hasNonTrivialClassInitializer():645:653 -> B
    boolean isClasspathClass() -> C
    1:1:boolean isEnum():556:556 -> D
    boolean isLibraryClass() -> E
    boolean isProgramClass() -> F
    1:2:boolean isValid():795:796 -> G
    3:8:boolean isValid():795:800 -> G
    1:4:boolean verifyNoDuplicateFields():478:481 -> H
    1:4:boolean verifyNoDuplicateMethods():257:260 -> I
    1:3:java.lang.Iterable fields(java.util.function.Predicate):115:117 -> a
    4:4:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
    4:4:java.lang.Iterable fields(java.util.function.Predicate):115 -> a
    5:5:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):132:132 -> a
    6:12:void appendDirectMethod(com.android.tools.r8.graph.DexEncodedMethod):144:150 -> a
    13:23:void appendDirectMethods(java.util.Collection):154:164 -> a
    24:27:void setDirectMethod(int,com.android.tools.r8.graph.DexEncodedMethod):176:179 -> a
    28:31:void setDirectMethods(com.android.tools.r8.graph.DexEncodedMethod[]):183:186 -> a
    32:32:int lambda$allMethodsSorted$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):281:281 -> a
    33:55:void virtualizeMethods(java.util.Set):286:308 -> a
    56:57:boolean definesStaticField(com.android.tools.r8.graph.DexField):402:403 -> a
    58:60:void setInstanceField(int,com.android.tools.r8.graph.DexEncodedField):449:451 -> a
    61:63:void setInstanceFields(com.android.tools.r8.graph.DexEncodedField[]):455:457 -> a
    64:65:boolean verifyCorrectnessOfFieldHolders(java.lang.Iterable):471:472 -> a
    66:66:com.android.tools.r8.graph.DexEncodedMethod lookupDirectMethod(com.android.tools.r8.graph.DexMethod):523:523 -> a
    67:68:com.android.tools.r8.graph.DexItem lookupTarget(com.android.tools.r8.graph.DexItem[],com.android.tools.r8.graph.Descriptor):542:543 -> a
    69:69:boolean classInitializationMayHaveSideEffects(com.android.tools.r8.graph.DexDefinitionSupplier):690:690 -> a
    70:80:boolean classInitializationMayHaveSideEffects(com.android.tools.r8.graph.DexDefinitionSupplier,java.util.function.Predicate):695:705 -> a
    81:81:boolean lambda$defaultValuesForStaticFieldsMayTriggerAllocation$2(com.android.tools.r8.graph.DexEncodedField):727:727 -> a
    void addDependencies(com.android.tools.r8.dex.MixedSectionCollection) -> b
    1:3:java.lang.Iterable methods(java.util.function.Predicate):125:127 -> b
    4:4:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> b
    4:4:java.lang.Iterable methods(java.util.function.Predicate):125 -> b
    5:10:void appendVirtualMethod(com.android.tools.r8.graph.DexEncodedMethod):198:203 -> b
    11:20:void appendVirtualMethods(java.util.Collection):207:216 -> b
    21:23:void setVirtualMethod(int,com.android.tools.r8.graph.DexEncodedMethod):228:230 -> b
    24:26:void setVirtualMethods(com.android.tools.r8.graph.DexEncodedMethod[]):234:236 -> b
    27:28:boolean verifyCorrectnessOfMethodHolders(java.lang.Iterable):250:251 -> b
    29:51:void forEachAnnotation(java.util.function.Consumer):316:338 -> b
    52:54:void setStaticField(int,com.android.tools.r8.graph.DexEncodedField):390:392 -> b
    55:57:void setStaticFields(com.android.tools.r8.graph.DexEncodedField[]):396:398 -> b
    58:62:boolean verifyCorrectnessOfFieldHolder(com.android.tools.r8.graph.DexEncodedField):461:465 -> b
    63:64:com.android.tools.r8.graph.DexEncodedField lookupField(com.android.tools.r8.graph.DexField):515:516 -> b
    65:66:com.android.tools.r8.graph.DexEncodedMethod lookupMethod(com.android.tools.r8.graph.DexMethod):537:538 -> b
    67:71:boolean hasMissingSuperType(com.android.tools.r8.graph.DexDefinitionSupplier):670:674 -> b
    72:77:boolean initializationOfParentTypesMayHaveSideEffects(com.android.tools.r8.graph.DexDefinitionSupplier,java.util.function.Predicate):714:719 -> b
    1:5:void removeDirectMethod(int):168:172 -> c
    6:10:void forEachField(java.util.function.Consumer):344:348 -> c
    11:11:com.android.tools.r8.graph.DexEncodedField lookupInstanceField(com.android.tools.r8.graph.DexField):508:508 -> c
    12:12:com.android.tools.r8.graph.DexEncodedMethod lookupVirtualMethod(com.android.tools.r8.graph.DexMethod):530:530 -> c
    13:13:boolean initializationOfParentTypesMayHaveSideEffects(com.android.tools.r8.graph.DexDefinitionSupplier):709:709 -> c
    14:15:void removeEnclosingMethod(java.util.function.Predicate):743:744 -> c
    16:16:boolean lambda$isValid$3(com.android.tools.r8.graph.DexEncodedMethod):796:796 -> c
    com.android.tools.r8.graph.DexClass asDexClass() -> d
    1:5:boolean verifyCorrectnessOfMethodHolder(com.android.tools.r8.graph.DexEncodedMethod):240:244 -> d
    6:6:com.android.tools.r8.graph.DexEncodedField lookupStaticField(com.android.tools.r8.graph.DexField):501:501 -> d
    7:7:boolean isExternalizable(com.android.tools.r8.graph.DexDefinitionSupplier):686:686 -> d
    8:8:void removeInnerClasses(java.util.function.Predicate):753:753 -> d
    1:5:java.util.List directMethods():136:140 -> directMethods
    1:1:boolean isSerializable(com.android.tools.r8.graph.DexDefinitionSupplier):682:682 -> e
    1:5:void forEachMethod(java.util.function.Consumer):266:270 -> forEachMethod
    boolean isDexClass() -> g
    1:1:com.android.tools.r8.graph.EnclosingMethodAttribute getEnclosingMethod():735:735 -> getEnclosingMethod
    1:1:java.util.List getInnerClasses():731:731 -> getInnerClasses
    1:5:java.util.List instanceFields():411:415 -> instanceFields
    1:4:boolean isAnonymousClass():781:784 -> isAnonymousClass
    1:1:boolean isInterface():552:552 -> isInterface
    1:4:boolean isLocalClass():766:769 -> isLocalClass
    1:5:boolean isMemberClass():773:777 -> isMemberClass
    boolean isStaticMember() -> j
    1:1:com.android.tools.r8.graph.DexReference toReference():563:563 -> k
    1:6:com.android.tools.r8.graph.DexEncodedMethod[] allMethodsSorted():275:280 -> l
    com.android.tools.r8.graph.DexLibraryClass asLibraryClass() -> m
    1:1:java.lang.Iterable methods():121:121 -> methods
    com.android.tools.r8.graph.DexProgramClass asProgramClass() -> n
    1:1:void clearEnclosingMethod():739:739 -> o
    1:1:void clearInnerClasses():749:749 -> p
    1:2:boolean defaultValuesForStaticFieldsMayTriggerAllocation():726:727 -> q
    1:1:java.lang.Iterable fields():111:111 -> r
    1:10:com.android.tools.r8.graph.DexEncodedMethod getClassInitializer():611:620 -> s
    1:5:java.util.List staticFields():353:357 -> staticFields
    1:2:com.android.tools.r8.graph.DexEncodedMethod getDefaultInitializer():661:662 -> t
    1:2:com.android.tools.r8.graph.InnerClassAttribute getInnerClassAttributeForThisClass():757:758 -> u
    com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo() -> v
    1:5:java.util.List virtualMethods():190:194 -> virtualMethods
    1:1:com.android.tools.r8.origin.Origin getOrigin():624:624 -> w
    1:1:com.android.tools.r8.graph.DexType getType():628:628 -> x
    1:1:boolean hasClassInitializer():632:632 -> y
    1:1:boolean hasDefaultInitializer():657:657 -> z
com.android.tools.r8.graph.DexClass$FieldSetter -> com.android.tools.r8.graph.DexClass$a:
    void setField(int,com.android.tools.r8.graph.DexEncodedField) -> a
com.android.tools.r8.graph.DexClass$MethodSetter -> com.android.tools.r8.graph.DexClass$b:
    void setMethod(int,com.android.tools.r8.graph.DexEncodedMethod) -> a
com.android.tools.r8.graph.DexClasspathClass -> com.android.tools.r8.graph.j:
    boolean $assertionsDisabled -> k
    1:1:void <clinit>():16:16 -> <clinit>
    1:16:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean):34:49 -> <init>
    boolean isClasspathClass() -> C
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):55:55 -> a
    1:1:void addDependencies(com.android.tools.r8.dex.MixedSectionCollection):66:66 -> b
    1:1:java.lang.String toString():60:60 -> toString
    1:1:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo():81:81 -> v
com.android.tools.r8.graph.DexCode -> com.android.tools.r8.graph.DexCode:
    com.android.tools.r8.graph.DexString highestSortingString -> b
    com.android.tools.r8.graph.DexDebugInfo debugInfo -> c
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.DexDebugInfoForWriting debugInfoForWriting -> d
    int outgoingRegisterSize -> a
    1:1:void <clinit>():33:33 -> <clinit>
    1:9:void <init>(int,int,int,com.android.tools.r8.code.Instruction[],com.android.tools.r8.graph.DexCode$Try[],com.android.tools.r8.graph.DexCode$TryHandler[],com.android.tools.r8.graph.DexDebugInfo):56:64 -> <init>
    1:3:void setDebugInfo(com.android.tools.r8.graph.DexDebugInfo):104:106 -> a
    4:25:com.android.tools.r8.graph.DexDebugInfo debugInfoWithFakeThisParameter(com.android.tools.r8.graph.DexItemFactory):111:132 -> a
    26:29:int getLargestPrefix(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexString):136:139 -> a
    30:87:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):335:392 -> a
    88:104:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):398:414 -> a
    105:107:void updateHighestSortingString(com.android.tools.r8.graph.DexString):431:433 -> a
    108:110:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):443:445 -> a
    1:28:boolean computeEquals(java.lang.Object):178:205 -> b
    1:10:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):218:227 -> buildIR
    1:9:com.android.tools.r8.ir.code.IRCode buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):238:246 -> buildInliningIR
    1:7:int computeHashCode():167:173 -> d
    1:10:com.android.tools.r8.graph.DexDebugInfo debugInfoWithoutFirstParameter():148:157 -> e
    1:1:int estimatedSizeForInlining():91:91 -> estimatedSizeForInlining
    1:8:com.android.tools.r8.graph.DexDebugInfoForWriting getDebugInfoForWriting():420:427 -> f
    1:8:com.android.tools.r8.graph.DexCode withoutThisParameter():74:81 -> g
    1:1:com.android.tools.r8.graph.DexDebugInfo getDebugInfo():100:100 -> getDebugInfo
    1:1:boolean isEmptyVoidMethod():212:212 -> isEmptyVoidMethod
    1:7:void registerCodeReferences(com.android.tools.r8.graph.UseRegistry):251:257 -> registerCodeReferences
    1:1:java.lang.String toString():265:265 -> toString
    2:63:java.lang.String toString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.ClassNameMapper):270:331 -> toString
    64:64:java.lang.String toString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.ClassNameMapper):312:312 -> toString
    1:1:boolean usesExceptionHandling():438:438 -> usesExceptionHandling
com.android.tools.r8.graph.DexCode$Try -> com.android.tools.r8.graph.DexCode$Try:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():450:450 -> <clinit>
    1:5:void <init>(int,int,int):459:463 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:void setHandlerIndex(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap):467:467 -> a
    2:2:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):512:512 -> a
    1:9:boolean equals(java.lang.Object):480:488 -> equals
    1:1:int hashCode():472:472 -> hashCode
    1:4:java.lang.String toString():495:498 -> toString
com.android.tools.r8.graph.DexCode$TryHandler -> com.android.tools.r8.graph.DexCode$TryHandler:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():517:517 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexCode$TryHandler$TypeAddrPair[],int):524:526 -> <init>
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):552:552 -> a
    2:2:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):558:558 -> a
    1:6:boolean equals(java.lang.Object):539:544 -> equals
    1:1:int hashCode():531:531 -> hashCode
    1:16:java.lang.String toString():563:578 -> toString
com.android.tools.r8.graph.DexCode$TryHandler$TypeAddrPair -> com.android.tools.r8.graph.DexCode$TryHandler$TypeAddrPair:
    boolean $assertionsDisabled -> b
    int addr -> a
    1:1:void <clinit>():581:581 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexType,int):586:588 -> <init>
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):594:594 -> a
    2:2:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):600:600 -> a
    1:3:boolean equals(java.lang.Object):613:615 -> equals
    1:1:int hashCode():605:605 -> hashCode
com.android.tools.r8.graph.DexDebugEntry -> com.android.tools.r8.graph.DexDebugEntry:
    com.android.tools.r8.graph.DexString sourceFile -> a
    boolean $assertionsDisabled -> f
    com.android.tools.r8.graph.DexMethod method -> d
    boolean prologueEnd -> b
    boolean epilogueBegin -> c
    com.android.tools.r8.ir.code.Position callerPosition -> e
    1:1:void <clinit>():13:13 -> <clinit>
    1:11:void <init>(boolean,int,int,com.android.tools.r8.graph.DexString,boolean,boolean,com.android.tools.r8.com.google.common.collect.ImmutableMap,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):34:44 -> <init>
    1:38:java.lang.String toString(boolean):53:90 -> a
    1:1:java.lang.String toString():49:49 -> toString
com.android.tools.r8.graph.DexDebugEntryBuilder -> com.android.tools.r8.graph.DexDebugEntryBuilder:
    com.android.tools.r8.graph.DexDebugPositionState positionState -> h
    java.util.Map locals -> c
    boolean $assertionsDisabled -> i
    com.android.tools.r8.graph.DexDebugEntry pending -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap arguments -> d
    java.util.List entries -> g
    boolean prologueEnd -> a
    boolean epilogueBegin -> b
    java.util.Map canonicalizedLocals -> f
    1:1:void <clinit>():22:22 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.graph.DexMethod):59:59 -> <init>
    2:21:void <init>(int,com.android.tools.r8.graph.DexMethod):43:62 -> <init>
    22:22:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexItemFactory):65:65 -> <init>
    23:71:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexItemFactory):43:91 -> <init>
    1:2:void visit(com.android.tools.r8.graph.DexDebugEvent$AdvancePC):101:102 -> a
    3:3:void visit(com.android.tools.r8.graph.DexDebugEvent$AdvanceLine):107:107 -> a
    4:4:void visit(com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame):112:112 -> a
    5:6:void visit(com.android.tools.r8.graph.DexDebugEvent$Default):117:118 -> a
    7:7:void visit(com.android.tools.r8.graph.DexDebugEvent$SetFile):123:123 -> a
    8:8:void visit(com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd):128:128 -> a
    9:9:void visit(com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin):133:133 -> a
    10:10:void visit(com.android.tools.r8.graph.DexDebugEvent$StartLocal):144:144 -> a
    11:12:com.android.tools.r8.graph.DebugLocalInfo canonicalize(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):200:201 -> a
    11:12:void visit(com.android.tools.r8.graph.DexDebugEvent$StartLocal):145 -> a
    13:14:void com.android.tools.r8.graph.DexDebugEntryBuilder$LocalEntry.set(com.android.tools.r8.graph.DebugLocalInfo):29:30 -> a
    13:14:void visit(com.android.tools.r8.graph.DexDebugEvent$StartLocal):145 -> a
    15:15:void visit(com.android.tools.r8.graph.DexDebugEvent$EndLocal):150:150 -> a
    16:16:void com.android.tools.r8.graph.DexDebugEntryBuilder$LocalEntry.unset():34:34 -> a
    16:16:void visit(com.android.tools.r8.graph.DexDebugEvent$EndLocal):150 -> a
    17:17:void visit(com.android.tools.r8.graph.DexDebugEvent$RestartLocal):155:155 -> a
    18:18:void com.android.tools.r8.graph.DexDebugEntryBuilder$LocalEntry.reset():38:38 -> a
    18:18:void visit(com.android.tools.r8.graph.DexDebugEvent$RestartLocal):155 -> a
    19:21:void entryEventReceived(boolean):159:161 -> a
    22:30:com.android.tools.r8.com.google.common.collect.ImmutableMap getLocals():215:223 -> a
    22:30:void entryEventReceived(boolean):169 -> a
    31:31:void entryEventReceived(boolean):169:169 -> a
    32:56:void entryEventReceived(boolean):161:185 -> a
    57:58:com.android.tools.r8.graph.DebugLocalInfo canonicalize(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):200:201 -> a
    57:58:void startArgument(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):137 -> a
    59:60:void startArgument(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):138:139 -> a
    61:62:void com.android.tools.r8.graph.DexDebugEntryBuilder$LocalEntry.set(com.android.tools.r8.graph.DebugLocalInfo):29:30 -> a
    61:62:void startArgument(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):139 -> a
    63:66:com.android.tools.r8.graph.DexDebugEntryBuilder$LocalEntry getEntry(int):206:209 -> a
    1:6:java.util.List build():190:195 -> build
com.android.tools.r8.graph.DexDebugEntryBuilder$1 -> com.android.tools.r8.graph.k:
com.android.tools.r8.graph.DexDebugEntryBuilder$LocalEntry -> com.android.tools.r8.graph.DexDebugEntryBuilder$a:
    com.android.tools.r8.graph.DebugLocalInfo current -> a
    com.android.tools.r8.graph.DebugLocalInfo last -> b
    1:1:void <init>():24:24 -> <init>
    1:1:void <init>(com.android.tools.r8.graph.DexDebugEntryBuilder$1):24 -> <init>
com.android.tools.r8.graph.DexDebugEvent -> com.android.tools.r8.graph.DexDebugEvent:
    com.android.tools.r8.graph.DexDebugEvent[] EMPTY_ARRAY -> a
    1:1:void <clinit>():14:14 -> <clinit>
    1:1:void <init>():13:13 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection) -> a
    void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping) -> a
com.android.tools.r8.graph.DexDebugEvent$AdvanceLine -> com.android.tools.r8.graph.DexDebugEvent$a:
    int delta -> b
    1:2:void <init>(int):148:149 -> <init>
    1:2:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):154:155 -> a
    1:1:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):160:160 -> accept
    1:1:boolean equals(java.lang.Object):176:176 -> equals
    1:1:int hashCode():170:170 -> hashCode
    1:1:java.lang.String toString():165:165 -> toString
com.android.tools.r8.graph.DexDebugEvent$AdvancePC -> com.android.tools.r8.graph.DexDebugEvent$AdvancePC:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():41:41 -> <clinit>
    1:2:void <init>(int):51:52 -> <init>
    1:2:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):47:48 -> a
    1:2:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):57:58 -> accept
    1:1:boolean equals(java.lang.Object):75:75 -> equals
    1:1:int hashCode():69:69 -> hashCode
    1:1:java.lang.String toString():64:64 -> toString
com.android.tools.r8.graph.DexDebugEvent$Default -> com.android.tools.r8.graph.DexDebugEvent$Default:
    int value -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():426:426 -> <clinit>
    1:3:void <init>(int):430:432 -> <init>
    1:1:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):437:437 -> a
    1:1:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):442:442 -> accept
    1:1:boolean equals(java.lang.Object):468:468 -> equals
    1:2:int getLineDelta():451:452 -> getLineDelta
    1:2:int getPCDelta():446:447 -> getPCDelta
    1:1:int hashCode():462:462 -> hashCode
    1:1:java.lang.String toString():457:457 -> toString
com.android.tools.r8.graph.DexDebugEvent$EndLocal -> com.android.tools.r8.graph.DexDebugEvent$b:
    int registerNum -> b
    1:2:void <init>(int):272:273 -> <init>
    1:2:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):278:279 -> a
    1:1:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):284:284 -> accept
    1:1:boolean equals(java.lang.Object):300:300 -> equals
    1:1:int hashCode():294:294 -> hashCode
    1:1:java.lang.String toString():289:289 -> toString
com.android.tools.r8.graph.DexDebugEvent$RestartLocal -> com.android.tools.r8.graph.DexDebugEvent$c:
    int registerNum -> b
    1:2:void <init>(int):309:310 -> <init>
    1:2:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):315:316 -> a
    1:1:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):321:321 -> accept
    1:1:boolean equals(java.lang.Object):337:337 -> equals
    1:1:int hashCode():331:331 -> hashCode
    1:1:java.lang.String toString():326:326 -> toString
com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin -> com.android.tools.r8.graph.DexDebugEvent$d:
    1:1:void <init>():115:115 -> <init>
    1:1:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):120:120 -> a
    1:1:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):125:125 -> accept
    1:1:boolean equals(java.lang.Object):140:140 -> equals
com.android.tools.r8.graph.DexDebugEvent$SetFile -> com.android.tools.r8.graph.DexDebugEvent$SetFile:
    com.android.tools.r8.graph.DexString fileName -> b
    1:2:void <init>(com.android.tools.r8.graph.DexString):346:347 -> <init>
    1:2:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):352:353 -> a
    3:3:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):359:359 -> a
    1:1:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):364:364 -> accept
    1:2:boolean equals(java.lang.Object):380:381 -> equals
    1:2:int hashCode():374:375 -> hashCode
    1:1:java.lang.String toString():369:369 -> toString
com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame -> com.android.tools.r8.graph.DexDebugEvent$e:
    com.android.tools.r8.graph.DexMethod callee -> b
    com.android.tools.r8.ir.code.Position caller -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():385:385 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):390:393 -> <init>
    void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping) -> a
    1:1:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):403:403 -> accept
    1:5:boolean equals(java.lang.Object):418:422 -> equals
    1:1:int hashCode():413:413 -> hashCode
    1:1:java.lang.String toString():408:408 -> toString
com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd -> com.android.tools.r8.graph.DexDebugEvent$f:
    1:1:void <init>():82:82 -> <init>
    1:1:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):87:87 -> a
    1:1:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):92:92 -> accept
    1:1:boolean equals(java.lang.Object):108:108 -> equals
com.android.tools.r8.graph.DexDebugEvent$StartLocal -> com.android.tools.r8.graph.DexDebugEvent$StartLocal:
    com.android.tools.r8.graph.DexString name -> c
    com.android.tools.r8.graph.DexString signature -> e
    com.android.tools.r8.graph.DexType type -> d
    int registerNum -> b
    1:5:void <init>(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):192:196 -> <init>
    1:8:void writeOn(com.android.tools.r8.dex.DebugBytecodeWriter,com.android.tools.r8.graph.ObjectToOffsetMapping):205:212 -> a
    9:16:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):219:226 -> a
    1:1:void accept(com.android.tools.r8.graph.DexDebugEventVisitor):232:232 -> accept
    1:14:boolean equals(java.lang.Object):251:264 -> equals
    1:5:int hashCode():242:246 -> hashCode
    1:1:java.lang.String toString():237:237 -> toString
com.android.tools.r8.graph.DexDebugEventBuilder -> com.android.tools.r8.graph.DexDebugEventBuilder:
    boolean $assertionsDisabled -> m
    com.android.tools.r8.graph.DexItemFactory factory -> b
    int startLine -> l
    com.android.tools.r8.ir.code.Position emittedPosition -> i
    com.android.tools.r8.graph.DexEncodedMethod method -> a
    int emittedPc -> h
    com.android.tools.r8.utils.InternalOptions options -> c
    java.util.ArrayList arguments -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap emittedLocals -> j
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap pendingLocals -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap lastKnownLocals -> e
    boolean pendingLocalChanges -> g
    java.util.List events -> k
    1:1:void <clinit>():28:28 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):61:61 -> <init>
    2:22:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):44:64 -> <init>
    1:2:void add(int,int,com.android.tools.r8.ir.code.Instruction):69:70 -> a
    3:5:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):125:127 -> a
    3:5:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMaps.emptyMap():136:136 -> a
    6:6:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):129 -> a
    6:6:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
    7:12:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):129:134 -> a
    7:12:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
    13:16:void initialize(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):140:143 -> a
    13:16:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):135 -> a
    13:16:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
    17:17:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMaps.emptyMap():136:136 -> a
    17:17:void initialize(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):145 -> a
    17:17:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):135 -> a
    17:17:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
    18:29:void initialize(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):145:156 -> a
    18:29:void updateBlockEntry(com.android.tools.r8.ir.code.Instruction):135 -> a
    18:29:void add(int,int,com.android.tools.r8.ir.code.Instruction):74 -> a
    30:39:void add(int,int,com.android.tools.r8.ir.code.Instruction):76:85 -> a
    40:44:void startArgument(com.android.tools.r8.ir.code.Argument):160:164 -> a
    40:44:void add(int,int,com.android.tools.r8.ir.code.Instruction):85 -> a
    45:46:void add(int,int,com.android.tools.r8.ir.code.Instruction):86:87 -> a
    47:48:void updateLocals(com.android.tools.r8.ir.code.DebugLocalsChange):169:170 -> a
    47:48:void add(int,int,com.android.tools.r8.ir.code.Instruction):87 -> a
    49:50:void add(int,int,com.android.tools.r8.ir.code.Instruction):89:90 -> a
    51:72:void emitDebugPosition(int,com.android.tools.r8.ir.code.Position):182:203 -> a
    51:72:void add(int,int,com.android.tools.r8.ir.code.Instruction):91 -> a
    73:73:void add(int,int,com.android.tools.r8.ir.code.Instruction):94:94 -> a
    74:84:void emitLocalChanges(int):208:218 -> a
    74:84:void add(int,int,com.android.tools.r8.ir.code.Instruction):95 -> a
    85:86:void add(int,int,com.android.tools.r8.ir.code.Instruction):101:102 -> a
    87:100:com.android.tools.r8.graph.DexDebugInfo build():108:121 -> a
    101:119:void emitLocalChangeEvents(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.List,com.android.tools.r8.graph.DexItemFactory):272:290 -> a
    120:120:void com.android.tools.r8.graph.DexDebugEvent$StartLocal.<init>(int,com.android.tools.r8.graph.DebugLocalInfo):200:200 -> a
    120:120:void emitLocalChangeEvents(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.List,com.android.tools.r8.graph.DexItemFactory):290 -> a
    121:122:void emitLocalChangeEvents(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,java.util.List,com.android.tools.r8.graph.DexItemFactory):290:291 -> a
    1:5:boolean localsChanged():174:178 -> b
    1:28:void emitAdvancementEvents(int,com.android.tools.r8.ir.code.Position,int,com.android.tools.r8.ir.code.Position,java.util.List,com.android.tools.r8.graph.DexItemFactory):229:256 -> emitAdvancementEvents
com.android.tools.r8.graph.DexDebugEventVisitor -> com.android.tools.r8.graph.DexDebugEventVisitor:
    void visit(com.android.tools.r8.graph.DexDebugEvent$AdvanceLine) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$AdvancePC) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$Default) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$EndLocal) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$RestartLocal) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$SetFile) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$StartLocal) -> a
com.android.tools.r8.graph.DexDebugInfo -> com.android.tools.r8.graph.DexDebugInfo:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():11:11 -> <clinit>
    1:8:void <init>(int,com.android.tools.r8.graph.DexString[],com.android.tools.r8.graph.DexDebugEvent[]):17:24 -> <init>
    1:5:java.util.List computeEntries(com.android.tools.r8.graph.DexMethod):28:32 -> a
    6:7:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):60:61 -> a
    8:8:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):66:66 -> a
    1:9:boolean computeEquals(java.lang.Object):44:52 -> b
    1:3:int computeHashCode():37:39 -> d
    1:8:java.lang.String toString():71:78 -> toString
com.android.tools.r8.graph.DexDebugInfoForWriting -> com.android.tools.r8.graph.l:
    1:4:void <init>(com.android.tools.r8.graph.DexDebugInfo):17:20 -> <init>
    5:5:void <init>(com.android.tools.r8.graph.DexDebugInfo):17:17 -> <init>
    1:1:boolean lambda$new$0(com.android.tools.r8.graph.DexDebugEvent):19:19 -> a
    1:1:com.android.tools.r8.graph.DexDebugEvent[] lambda$new$1(int):20:20 -> c
com.android.tools.r8.graph.DexDebugPositionState -> com.android.tools.r8.graph.DexDebugPositionState:
    com.android.tools.r8.graph.DexString currentFile -> c
    boolean $assertionsDisabled -> f
    com.android.tools.r8.graph.DexMethod currentMethod -> d
    int currentLine -> b
    int currentPc -> a
    com.android.tools.r8.ir.code.Position currentCallerPosition -> e
    1:1:void <clinit>():23:23 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.graph.DexMethod):30:30 -> <init>
    2:10:void <init>(int,com.android.tools.r8.graph.DexMethod):24:32 -> <init>
    void visit(com.android.tools.r8.graph.DexDebugEvent$EndLocal) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$RestartLocal) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd) -> a
    void visit(com.android.tools.r8.graph.DexDebugEvent$StartLocal) -> a
    1:2:void visit(com.android.tools.r8.graph.DexDebugEvent$AdvancePC):37:38 -> a
    3:3:void visit(com.android.tools.r8.graph.DexDebugEvent$AdvanceLine):43:43 -> a
    4:5:void visit(com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame):48:49 -> a
    6:8:void visit(com.android.tools.r8.graph.DexDebugEvent$Default):54:56 -> a
    9:9:void visit(com.android.tools.r8.graph.DexDebugEvent$SetFile):61:61 -> a
    10:10:com.android.tools.r8.ir.code.Position getCurrentCallerPosition():106:106 -> a
    1:1:com.android.tools.r8.graph.DexString getCurrentFile():98:98 -> b
    1:1:com.android.tools.r8.graph.DexMethod getCurrentMethod():102:102 -> c
    1:1:int getCurrentLine():94:94 -> getCurrentLine
    1:1:int getCurrentPc():90:90 -> getCurrentPc
com.android.tools.r8.graph.DexDefinition -> com.android.tools.r8.graph.m:
    1:1:void <init>():13:13 -> <init>
    1:1:java.util.stream.Stream filterDexEncodedField(java.util.stream.Stream):71:71 -> a
    2:2:java.util.stream.Stream filter(java.util.stream.Stream,java.util.function.Predicate,java.util.function.Function):63:63 -> a
    2:2:java.util.stream.Stream filterDexEncodedField(java.util.stream.Stream):71 -> a
    1:1:java.util.stream.Stream filterDexEncodedMethod(java.util.stream.Stream):75:75 -> b
    2:2:java.util.stream.Stream filter(java.util.stream.Stream,java.util.function.Predicate,java.util.function.Function):63:63 -> b
    2:2:java.util.stream.Stream filterDexEncodedMethod(java.util.stream.Stream):75 -> b
    com.android.tools.r8.graph.DexClass asDexClass() -> d
    com.android.tools.r8.graph.DexEncodedField asDexEncodedField() -> e
    com.android.tools.r8.graph.DexEncodedMethod asDexEncodedMethod() -> f
    boolean isDexClass() -> g
    boolean isDexEncodedField() -> h
    boolean isDexEncodedMethod() -> i
    boolean isStaticMember() -> j
    com.android.tools.r8.graph.DexReference toReference() -> k
com.android.tools.r8.graph.DexDefinitionSupplier -> com.android.tools.r8.graph.DexDefinitionSupplier:
    com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType) -> a
com.android.tools.r8.graph.DexEncodedAnnotation -> com.android.tools.r8.graph.DexEncodedAnnotation:
    boolean $assertionsDisabled -> b
    int sorted -> a
    1:1:void <clinit>():12:12 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationElement[]):21:21 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationElement[]):19:23 -> <init>
    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):29:30 -> a
    3:3:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):36:36 -> a
    4:4:int lambda$sort$0(com.android.tools.r8.graph.DexAnnotationElement,com.android.tools.r8.graph.DexAnnotationElement):66:66 -> a
    5:14:com.android.tools.r8.graph.DexEncodedAnnotation rewrite(java.util.function.Function,java.util.function.Function):81:90 -> a
    1:2:void sort():62:63 -> d
    3:3:int sortedHashCode():74:74 -> d
    3:3:void sort():63 -> d
    4:9:void sort():63:68 -> d
    10:10:int sortedHashCode():74:74 -> d
    10:10:void sort():70 -> d
    11:11:void sort():70:70 -> d
    1:3:boolean equals(java.lang.Object):54:56 -> equals
    1:1:int hashCode():46:46 -> hashCode
    1:1:java.lang.String toString():41:41 -> toString
com.android.tools.r8.graph.DexEncodedArray -> com.android.tools.r8.graph.n:
    com.android.tools.r8.graph.DexValue[] values -> a
    1:2:void <init>(com.android.tools.r8.graph.DexValue[]):14:15 -> <init>
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):21:21 -> a
    2:2:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):26:26 -> a
    1:1:boolean equals(java.lang.Object):39:39 -> equals
    1:1:int hashCode():31:31 -> hashCode
    1:1:java.lang.String toString():44:44 -> toString
com.android.tools.r8.graph.DexEncodedField -> com.android.tools.r8.graph.DexEncodedField:
    com.android.tools.r8.graph.DexValue staticValue -> a
    boolean $assertionsDisabled -> b
    1:2:void <clinit>():13:14 -> <clinit>
    1:5:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.FieldAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexValue):25:29 -> <init>
    1:3:boolean isProgramField(com.android.tools.r8.graph.DexDefinitionSupplier):33:35 -> a
    4:7:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):43:46 -> a
    8:8:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):52:52 -> a
    9:11:void setStaticValue(com.android.tools.r8.graph.DexValue):110:112 -> a
    12:21:com.android.tools.r8.ir.code.Instruction valueAsConstInstruction(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.ir.code.Value,com.android.tools.r8.utils.InternalOptions):125:134 -> a
    22:25:com.android.tools.r8.graph.DexEncodedField toTypeSubstitutedField(com.android.tools.r8.graph.DexField):140:143 -> a
    com.android.tools.r8.graph.DexEncodedField asDexEncodedField() -> e
    1:2:com.android.tools.r8.graph.DexValue getStaticValue():116:117 -> getStaticValue
    boolean isDexEncodedField() -> h
    1:2:boolean hasExplicitStaticValue():105:106 -> hasExplicitStaticValue
    1:1:boolean isStatic():92:92 -> isStatic
    1:1:boolean isStaticMember():97:97 -> j
    1:1:com.android.tools.r8.graph.DexReference toReference():77:77 -> k
    1:1:com.android.tools.r8.graph.PresortedComparable getKey():13:13 -> l
    2:2:com.android.tools.r8.graph.DexField getKey():72:72 -> l
    1:1:boolean hasAnnotation():101:101 -> m
    1:1:java.lang.String toSmaliString():62:62 -> toSmaliString
    1:1:java.lang.String toSourceString():67:67 -> toSourceString
    1:1:java.lang.String toString():57:57 -> toString
com.android.tools.r8.graph.DexEncodedMethod -> com.android.tools.r8.graph.DexEncodedMethod:
    com.android.tools.r8.graph.OptimizationInfo optimizationInfo -> d
    com.android.tools.r8.graph.Code code -> b
    com.android.tools.r8.graph.DexEncodedMethod$CompilationState compilationState -> c
    boolean obsolete -> f
    com.android.tools.r8.graph.ParameterAnnotationsList parameterAnnotationsList -> a
    boolean $assertionsDisabled -> h
    int classFileVersion -> e
    com.android.tools.r8.graph.DexEncodedMethod SENTINEL -> g
    1:40:void <clinit>():56:95 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code):149:149 -> <init>
    2:52:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code):105:155 -> <init>
    53:54:void setCodeOwnership():403:404 -> <init>
    53:54:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code):156 -> <init>
    55:56:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.MethodAccessFlags,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.ParameterAnnotationsList,com.android.tools.r8.graph.Code,int):166:167 -> <init>
    1:2:boolean isVirtualMethod():200:201 -> A
    1:2:void markNotProcessed():317:318 -> B
    1:3:void removeCode():397:399 -> C
    1:1:void setObsolete():128:128 -> D
    1:7:com.android.tools.r8.graph.DexEncodedMethod toAbstractMethod():481:487 -> E
    1:7:com.android.tools.r8.graph.DexEncodedMethod toEmptyThrowingMethodCf():550:556 -> F
    1:10:com.android.tools.r8.graph.DexEncodedMethod toEmptyThrowingMethodDex():526:535 -> G
    1:7:com.android.tools.r8.graph.DexEncodedMethod toStaticMethodWithoutThis():678:684 -> H
    1:1:void unsetObsolete():141:141 -> I
    1:2:void voidCodeOwnership():409:410 -> J
    1:1:void checkIfObsolete():116:116 -> K
    1:1:com.android.tools.r8.graph.Code access$400(com.android.tools.r8.graph.DexEncodedMethod):56:56 -> a
    2:2:com.android.tools.r8.graph.DexEncodedMethod$CompilationState access$502(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$CompilationState):56:56 -> a
    3:3:com.android.tools.r8.graph.OptimizationInfo access$602(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.OptimizationInfo):56:56 -> a
    4:5:boolean isInliningCandidate(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.graph.AppInfoWithSubtyping):258:259 -> a
    6:29:boolean isInliningCandidate(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.graph.AppInfoWithSubtyping):264:287 -> a
    30:30:boolean isInliningCandidate(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.graph.AppInfoWithSubtyping):285:285 -> a
    31:31:boolean isInliningCandidate(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.optimize.Inliner$Reason,com.android.tools.r8.graph.AppInfoWithSubtyping):283:283 -> a
    32:48:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):294:310 -> a
    49:49:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):307:307 -> a
    50:50:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):304:304 -> a
    51:51:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):301:301 -> a
    52:67:boolean markProcessed(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):298:313 -> a
    68:69:com.android.tools.r8.ir.code.IRCode buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):332:333 -> a
    70:72:void setCode(com.android.tools.r8.graph.Code):338:340 -> a
    73:74:void setCodeOwnership():403:404 -> a
    73:74:void setCode(com.android.tools.r8.graph.Code):341 -> a
    75:81:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):359:365 -> a
    82:82:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):370:370 -> a
    83:88:void collectMixedSectionItemsWithCodeMapping(com.android.tools.r8.dex.MixedSectionCollection,com.android.tools.r8.dex.MethodToCodeObjectMapping):375:380 -> a
    89:97:java.lang.String descriptor(com.android.tools.r8.naming.NamingLens):443:451 -> a
    98:114:java.lang.String toSmaliString(com.android.tools.r8.naming.ClassNameMapper):455:471 -> a
    115:125:com.android.tools.r8.graph.DexCode generateCodeFromTemplate(int,int,com.android.tools.r8.code.Instruction[]):501:511 -> a
    126:130:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.DexItemFactory):560:564 -> a
    131:139:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.DexItemFactory):563:571 -> a
    140:173:com.android.tools.r8.graph.DexEncodedMethod toMethodThatLogsError(com.android.tools.r8.graph.DexItemFactory):570:603 -> a
    174:183:com.android.tools.r8.graph.DexEncodedMethod toTypeSubstitutedMethod(com.android.tools.r8.graph.DexMethod):607:616 -> a
    184:226:com.android.tools.r8.graph.DexEncodedMethod toForwardingMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexDefinitionSupplier):632:674 -> a
    227:235:com.android.tools.r8.ir.conversion.SourceCode lambda$toForwardingMethod$0(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Position):653:661 -> a
    236:239:void lambda$toForwardingMethod$1(com.android.tools.r8.graph.UseRegistry):663:666 -> a
    240:251:com.android.tools.r8.graph.DexCode rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,com.android.tools.r8.graph.DexItemFactory,boolean):691:702 -> a
    252:262:com.android.tools.r8.graph.DexCode rewriteCodeWithJumboStrings(com.android.tools.r8.graph.ObjectToOffsetMapping,com.android.tools.r8.graph.DexItemFactory,boolean):701:711 -> a
    263:264:void setOptimizationInfo(com.android.tools.r8.graph.UpdatableOptimizationInfo):1254:1255 -> a
    265:265:com.android.tools.r8.graph.DexEncodedMethod asSingleTarget():1346:1346 -> a
    266:267:void forEachTarget(java.util.function.Consumer):1364:1365 -> a
    1:1:com.android.tools.r8.graph.DexEncodedMethod asResultOfResolve():1340:1340 -> asResultOfResolve
    1:1:com.android.tools.r8.graph.DexEncodedMethod$CompilationState access$500(com.android.tools.r8.graph.DexEncodedMethod):56:56 -> b
    2:3:java.util.List asListOfTargets():1358:1359 -> b
    1:2:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):322:323 -> buildIR
    1:1:com.android.tools.r8.graph.OptimizationInfo access$600(com.android.tools.r8.graph.DexEncodedMethod):56:56 -> c
    2:5:void upgradeClassFileVersion(int):426:429 -> c
    6:6:boolean hasSingleTarget():1352:1352 -> c
    1:2:java.lang.String codeToString():717:718 -> codeToString
    1:1:int access$700(com.android.tools.r8.graph.DexEncodedMethod):56:56 -> d
    1:2:java.lang.String descriptor():438:439 -> descriptor
    1:7:void copyMetadata(com.android.tools.r8.graph.DexEncodedMethod):1259:1265 -> e
    1:1:com.android.tools.r8.graph.DexEncodedMethod asDexEncodedMethod():742:742 -> f
    2:2:com.android.tools.r8.graph.DexEncodedMethod$Builder builder(com.android.tools.r8.graph.DexEncodedMethod):1270:1270 -> f
    1:2:com.android.tools.r8.graph.Code getCode():392:393 -> getCode
    1:5:com.android.tools.r8.graph.UpdatableOptimizationInfo getMutableOptimizationInfo():1246:1250 -> getMutableOptimizationInfo
    1:1:boolean hasCode():388:388 -> hasCode
    1:1:boolean isDexEncodedMethod():736:736 -> i
    1:2:boolean isClassInitializer():191:192 -> isClassInitializer
    1:2:boolean isInstanceInitializer():181:182 -> isInstanceInitializer
    1:2:boolean isPublicMethod():219:220 -> isPublicMethod
    1:2:boolean isStatic():238:239 -> isStatic
    1:2:boolean isSyntheticMethod():252:253 -> isSyntheticMethod
    1:2:boolean isStaticMember():244:245 -> j
    1:2:com.android.tools.r8.graph.DexReference toReference():730:731 -> k
    1:1:com.android.tools.r8.graph.PresortedComparable getKey():56:56 -> l
    2:2:com.android.tools.r8.graph.DexMethod getKey():725:725 -> l
    1:8:com.android.tools.r8.graph.CfCode buildEmptyThrowingCfCode():539:546 -> m
    1:2:com.android.tools.r8.graph.DexCode buildEmptyThrowingDexCode():521:522 -> n
    1:3:int getClassFileVersion():415:417 -> o
    1:2:com.android.tools.r8.graph.OptimizationInfo getOptimizationInfo():1241:1242 -> p
    1:2:boolean hasAnnotation():747:748 -> q
    1:2:java.lang.String qualifiedName():433:434 -> qualifiedName
    1:2:boolean hasClassFileVersion():421:422 -> r
    1:6:void registerCodeReferences(com.android.tools.r8.graph.UseRegistry):752:757 -> registerCodeReferences
    1:2:boolean isDefaultInitializer():186:187 -> s
    1:3:void setCode(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,com.android.tools.r8.utils.InternalOptions):345:347 -> setCode
    1:1:boolean shouldNotHaveCode():384:384 -> shouldNotHaveCode
    1:2:boolean isDirectMethod():232:233 -> t
    1:2:java.lang.String toSourceString():476:477 -> toSourceString
    1:2:java.lang.String toString():352:353 -> toString
    1:2:boolean isInitializer():176:177 -> u
    1:2:boolean isNonAbstractVirtualMethod():209:210 -> v
    1:1:boolean isObsolete():122:122 -> w
    1:2:boolean isPrivateMethod():224:225 -> x
    1:2:boolean isProcessed():171:172 -> y
    1:2:boolean isPublicized():214:215 -> z
com.android.tools.r8.graph.DexEncodedMethod$1 -> com.android.tools.r8.graph.o:
    int[] $SwitchMap$com$android$tools$r8$ir$optimize$Inliner$Constraint -> b
    int[] $SwitchMap$com$android$tools$r8$graph$DexEncodedMethod$CompilationState -> a
    1:1:void <clinit>():296:296 -> <clinit>
    2:2:void <clinit>():279:279 -> <clinit>
com.android.tools.r8.graph.DexEncodedMethod$Builder -> com.android.tools.r8.graph.DexEncodedMethod$a:
    com.android.tools.r8.graph.DexEncodedMethod$CompilationState compilationState -> f
    com.android.tools.r8.graph.DexAnnotationSet annotations -> c
    com.android.tools.r8.graph.Code code -> e
    boolean $assertionsDisabled -> i
    com.android.tools.r8.graph.ParameterAnnotationsList parameterAnnotations -> d
    int classFileVersion -> h
    com.android.tools.r8.graph.MethodAccessFlags accessFlags -> b
    com.android.tools.r8.graph.OptimizationInfo optimizationInfo -> g
    com.android.tools.r8.graph.DexMethod method -> a
    1:1:void <clinit>():1273:1273 -> <clinit>
    1:10:void <init>(com.android.tools.r8.graph.DexEncodedMethod):1284:1293 -> <init>
    1:10:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$1):1273 -> <init>
    1:1:com.android.tools.r8.graph.MethodAccessFlags access$000(com.android.tools.r8.graph.DexEncodedMethod$Builder):1273:1273 -> a
    2:2:void setMethod(com.android.tools.r8.graph.DexMethod):1297:1297 -> a
    3:3:void setCode(com.android.tools.r8.graph.Code):1321:1321 -> a
    4:12:com.android.tools.r8.graph.DexEncodedMethod build():1325:1333 -> a
    1:1:com.android.tools.r8.graph.DexEncodedMethod$Builder promoteToStatic():1301:1301 -> b
    1:1:com.android.tools.r8.graph.DexEncodedMethod$Builder unsetOptimizationInfo():1306:1306 -> c
    1:5:com.android.tools.r8.graph.DexEncodedMethod$Builder withoutThisParameter():1311:1315 -> d
com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility -> com.android.tools.r8.graph.DexEncodedMethod$b:
    boolean returnsReceiver -> a
    1:2:void <init>(boolean):768:769 -> <init>
com.android.tools.r8.graph.DexEncodedMethod$CompilationState -> com.android.tools.r8.graph.DexEncodedMethod$c:
    com.android.tools.r8.graph.DexEncodedMethod$CompilationState PROCESSED_INLINING_CANDIDATE_SAME_CLASS -> f
    com.android.tools.r8.graph.DexEncodedMethod$CompilationState PROCESSED_NOT_INLINING_CANDIDATE -> b
    com.android.tools.r8.graph.DexEncodedMethod$CompilationState PROCESSED_INLINING_CANDIDATE_ANY -> c
    com.android.tools.r8.graph.DexEncodedMethod$CompilationState PROCESSED_INLINING_CANDIDATE_SUBCLASS -> d
    com.android.tools.r8.graph.DexEncodedMethod$CompilationState PROCESSED_INLINING_CANDIDATE_SAME_PACKAGE -> e
    com.android.tools.r8.graph.DexEncodedMethod$CompilationState[] $VALUES -> g
    com.android.tools.r8.graph.DexEncodedMethod$CompilationState NOT_PROCESSED -> a
    1:24:void <clinit>():68:91 -> <clinit>
    25:25:void <clinit>():64:64 -> <clinit>
    1:1:void <init>(java.lang.String,int):64:64 -> <init>
    1:1:com.android.tools.r8.graph.DexEncodedMethod$CompilationState[] values():64:64 -> a
com.android.tools.r8.graph.DexEncodedMethod$DefaultOptimizationInfoImpl -> com.android.tools.r8.graph.DexEncodedMethod$d:
    boolean UNKNOWN_INITIALIZER_ENABLING_JAVA_ASSERTIONS -> m
    boolean UNKNOWN_MAY_HAVE_SIDE_EFFECTS -> o
    long UNKNOWN_RETURNED_CONSTANT_NUMBER -> f
    boolean UNKNOWN_CHECKS_NULL_RECEIVER_BEFORE_ANY_SIDE_EFFECT -> i
    boolean UNKNOWN_TRIGGERS_CLASS_INIT_BEFORE_ANY_SIDE_EFFECT -> j
    java.util.BitSet NO_NULL_PARAMETER_ON_NORMAL_EXITS_FACTS -> q
    java.util.BitSet NO_NULL_PARAMETER_OR_THROW_FACTS -> p
    int UNKNOWN_RETURNED_ARGUMENT -> b
    com.android.tools.r8.graph.ParameterUsagesInfo UNKNOWN_PARAMETER_USAGE_INFO -> n
    boolean $assertionsDisabled -> r
    com.android.tools.r8.graph.OptimizationInfo DEFAULT_INSTANCE -> a
    com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer UNKNOWN_TRIVIAL_INITIALIZER -> l
    com.android.tools.r8.graph.DexString UNKNOWN_RETURNED_CONSTANT_STRING -> g
    boolean UNKNOWN_RETURNS_CONSTANT -> e
    boolean DOES_NOT_USE_IDNETIFIER_NAME_STRING -> h
    com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility UNKNOWN_CLASS_INLINER_ELIGIBILITY -> k
    boolean UNKNOWN_NEVER_RETURNS_NULL -> c
    boolean UNKNOWN_NEVER_RETURNS_NORMALLY -> d
    1:19:void <clinit>():795:813 -> <clinit>
    1:1:void <init>():815:815 -> <init>
    1:1:boolean returnsConstantNumber():871:871 -> A
    1:1:long getReturnedConstantNumber():886:886 -> B
    2:2:boolean returnsConstantNumber():871:871 -> B
    2:2:long getReturnedConstantNumber():886 -> B
    3:4:long getReturnedConstantNumber():886:887 -> B
    1:1:com.android.tools.r8.graph.UpdatableOptimizationInfo mutableCopy():933:933 -> a
    1:1:com.android.tools.r8.graph.ParameterUsagesInfo$ParameterUsage getParameterUsages(int):824:824 -> b
    1:1:com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer getTrivialInitializerInfo():819:819 -> d
    1:1:boolean returnsConstantString():876:876 -> e
    1:1:boolean triggersClassInitBeforeAnySideEffect():923:923 -> g
    1:1:java.util.BitSet getNonNullParamOrThrow():830:830 -> h
    boolean returnsArgument() -> j
    1:1:boolean isInitializerEnablingJavaAssertions():898:898 -> k
    1:1:boolean checksNullReceiverBeforeAnySideEffect():918:918 -> l
    boolean forceInline() -> n
    1:1:boolean mayHaveSideEffects():928:928 -> o
    boolean neverInline() -> p
    1:1:com.android.tools.r8.graph.DexString getReturnedConstantString():892:892 -> r
    2:2:boolean returnsConstantString():876:876 -> r
    2:2:com.android.tools.r8.graph.DexString getReturnedConstantString():892 -> r
    3:4:com.android.tools.r8.graph.DexString getReturnedConstantString():892:893 -> r
    1:1:boolean useIdentifierNameString():903:903 -> s
    boolean isReachabilitySensitive() -> t
    1:1:boolean neverReturnsNull():856:856 -> u
    1:1:com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility getClassInlinerEligibility():881:881 -> v
    1:2:int getReturnedArgument():850:851 -> w
    1:1:boolean returnsConstant():866:866 -> x
    1:1:java.util.BitSet getNonNullParamOnNormalExits():835:835 -> y
    1:1:boolean neverReturnsNormally():861:861 -> z
com.android.tools.r8.graph.DexEncodedMethod$OptimizationInfoImpl -> com.android.tools.r8.graph.DexEncodedMethod$e:
    boolean initializerEnablingJavaAssertions -> o
    long returnedConstantNumber -> f
    boolean useIdentifierNameString -> j
    boolean checksNullReceiverBeforeAnySideEffect -> k
    boolean triggersClassInitBeforeAnySideEffect -> l
    java.util.BitSet nonNullParamOrThrow -> q
    com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer trivialInitializerInfo -> n
    com.android.tools.r8.graph.OptimizationInfo$InlinePreference inlining -> i
    java.util.BitSet nonNullParamOnNormalExits -> r
    boolean reachabilitySensitive -> s
    boolean $assertionsDisabled -> t
    int returnedArgument -> a
    com.android.tools.r8.graph.ParameterUsagesInfo parametersUsages -> p
    boolean returnsConstantNumber -> e
    com.android.tools.r8.graph.DexString returnedConstantString -> h
    boolean returnsConstantString -> g
    boolean mayHaveSideEffects -> b
    boolean neverReturnsNull -> c
    com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility classInlinerEligibility -> m
    boolean neverReturnsNormally -> d
    1:1:void <clinit>():937:937 -> <clinit>
    1:1:void <init>():985:985 -> <init>
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod$1):937 -> <init>
    2:46:void <init>():939:983 -> <init>
    2:46:void <init>(com.android.tools.r8.graph.DexEncodedMethod$1):937 -> <init>
    47:47:void <init>(com.android.tools.r8.graph.DexEncodedMethod$OptimizationInfoImpl):989:989 -> <init>
    48:116:void <init>(com.android.tools.r8.graph.DexEncodedMethod$OptimizationInfoImpl):939:1007 -> <init>
    1:1:boolean returnsConstantNumber():1064:1064 -> A
    1:2:long getReturnedConstantNumber():1079:1080 -> B
    1:1:void setParameterUsages(com.android.tools.r8.graph.ParameterUsagesInfo):1126:1126 -> a
    2:2:void setNonNullParamOrThrow(java.util.BitSet):1131:1131 -> a
    3:3:void setClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility):1146:1146 -> a
    4:4:void setTrivialInitializer(com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer):1151:1151 -> a
    5:7:void markReturnsArgument(int):1161:1163 -> a
    8:11:void markReturnsConstantNumber(long):1183:1186 -> a
    12:15:void markReturnsConstantString(com.android.tools.r8.graph.DexString):1191:1194 -> a
    16:16:void markTriggerClassInitBeforeAnySideEffect(boolean):1230:1230 -> a
    17:18:com.android.tools.r8.graph.UpdatableOptimizationInfo mutableCopy():1235:1236 -> a
    1:1:com.android.tools.r8.graph.ParameterUsagesInfo$ParameterUsage getParameterUsages(int):1017:1017 -> b
    2:2:void setNonNullParamOnNormalExits(java.util.BitSet):1136:1136 -> b
    3:3:void setReachabilitySensitive(boolean):1141:1141 -> b
    4:4:void markNeverReturnsNull():1173:1173 -> b
    1:2:void markNeverInline():1214:1215 -> c
    3:3:void markCheckNullReceiverBeforeAnySideEffect(boolean):1225:1225 -> c
    1:1:com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer getTrivialInitializerInfo():1012:1012 -> d
    1:1:boolean returnsConstantString():1069:1069 -> e
    1:1:void markUseIdentifierNameString():1220:1220 -> f
    1:1:boolean triggersClassInitBeforeAnySideEffect():1116:1116 -> g
    1:1:java.util.BitSet getNonNullParamOrThrow():1022:1022 -> h
    1:1:void setInitializerEnablingJavaAssertions():1156:1156 -> i
    1:1:boolean returnsArgument():1037:1037 -> j
    1:1:boolean isInitializerEnablingJavaAssertions():1091:1091 -> k
    1:1:boolean checksNullReceiverBeforeAnySideEffect():1111:1111 -> l
    1:1:void markNeverReturnsNormally():1178:1178 -> m
    1:2:void markForceInline():1200:1201 -> markForceInline
    1:1:boolean forceInline():1101:1101 -> n
    1:1:boolean mayHaveSideEffects():1121:1121 -> o
    1:1:boolean neverInline():1106:1106 -> p
    1:1:void markMayNotHaveSideEffects():1168:1168 -> q
    1:2:com.android.tools.r8.graph.DexString getReturnedConstantString():1085:1086 -> r
    1:1:boolean useIdentifierNameString():1096:1096 -> s
    1:1:boolean isReachabilitySensitive():1032:1032 -> t
    1:1:boolean neverReturnsNull():1048:1048 -> u
    1:2:void unsetForceInline():1207:1208 -> unsetForceInline
    1:1:com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility getClassInlinerEligibility():1074:1074 -> v
    1:1:int getReturnedArgument():1042:1042 -> w
    2:2:boolean returnsArgument():1037:1037 -> w
    2:2:int getReturnedArgument():1042 -> w
    3:4:int getReturnedArgument():1042:1043 -> w
    1:2:boolean returnsConstant():1058:1059 -> x
    1:1:java.util.BitSet getNonNullParamOnNormalExits():1027:1027 -> y
    1:1:boolean neverReturnsNormally():1053:1053 -> z
com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer -> com.android.tools.r8.graph.DexEncodedMethod$f:
    1:1:void <init>():774:774 -> <init>
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod$1):773 -> <init>
com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer$TrivialClassInitializer -> com.android.tools.r8.graph.DexEncodedMethod$f$a:
    com.android.tools.r8.graph.DexField field -> a
    1:2:void <init>(com.android.tools.r8.graph.DexField):789:790 -> <init>
com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer$TrivialInstanceInitializer -> com.android.tools.r8.graph.DexEncodedMethod$f$b:
    com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer$TrivialInstanceInitializer INSTANCE -> a
    1:1:void <clinit>():780:780 -> <clinit>
    1:1:void <init>():779:779 -> <init>
com.android.tools.r8.graph.DexField -> com.android.tools.r8.graph.DexField:
    1:7:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,boolean):17:23 -> <init>
    1:1:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):10:10 -> a
    2:2:boolean match(com.android.tools.r8.graph.DexItem):10:10 -> a
    3:3:int slowCompareTo(java.lang.Object):10:10 -> a
    4:7:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):53:56 -> a
    8:8:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):63:63 -> a
    9:9:int compareTo(com.android.tools.r8.graph.DexField):78:78 -> a
    10:18:int layeredCompareTo(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingLens):109:117 -> a
    19:19:boolean match(com.android.tools.r8.graph.DexEncodedField):122:122 -> a
    1:5:boolean computeEquals(java.lang.Object):36:40 -> b
    6:14:int slowCompareTo(com.android.tools.r8.graph.DexField):83:91 -> b
    1:1:int compareTo(java.lang.Object):10:10 -> compareTo
    1:3:int computeHashCode():29:31 -> d
    com.android.tools.r8.graph.DexField asDexField() -> g
    boolean isDexField() -> j
    1:1:java.lang.String qualifiedName():126:126 -> qualifiedName
    1:1:java.lang.String toSmaliString():131:131 -> toSmaliString
    1:1:java.lang.String toSourceString():136:136 -> toSourceString
    1:1:java.lang.String toString():47:47 -> toString
com.android.tools.r8.graph.DexItem -> com.android.tools.r8.graph.DexItem:
    1:1:void <init>():12:12 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection) -> a
    1:1:void collectAll(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexItem[]):15:15 -> a
    2:2:void lambda$collectAll$0(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexItem):15:15 -> a
    3:3:void collectAll(com.android.tools.r8.dex.MixedSectionCollection,com.android.tools.r8.graph.DexItem[]):19:19 -> a
    4:4:void lambda$collectAll$1(com.android.tools.r8.dex.MixedSectionCollection,com.android.tools.r8.graph.DexItem):19:19 -> a
    5:5:void collectAll(com.android.tools.r8.dex.MixedSectionCollection,java.util.Collection):24:24 -> a
    6:8:void consumeArray(com.android.tools.r8.graph.DexItem[],java.util.function.Consumer):35:37 -> a
    9:9:java.util.stream.Stream filter(java.util.stream.Stream,java.lang.Class):84:84 -> a
    1:1:void lambda$collectAll$2(com.android.tools.r8.dex.MixedSectionCollection,com.android.tools.r8.graph.DexItem):24:24 -> b
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection):46:46 -> collectIndexedItems
    2:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod):50:50 -> collectIndexedItems
    1:1:java.lang.String toSmaliString():60:60 -> toSmaliString
    1:1:java.lang.String toSourceString():64:64 -> toSourceString
com.android.tools.r8.graph.DexItemFactory -> com.android.tools.r8.graph.DexItemFactory:
    com.android.tools.r8.graph.DexString equalsIgnoreCaseMethodName -> Q
    com.android.tools.r8.utils.LRUCacheTable leastUpperBoundOfInterfacesTable -> q
    com.android.tools.r8.graph.DexString throwableArrayDescriptor -> Ua
    com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd setPrologueEnd -> m
    com.android.tools.r8.graph.DexString valueOfMethodName -> Y
    com.android.tools.r8.graph.DexString boxedShortDescriptor -> z
    com.android.tools.r8.graph.DexType serviceLoaderType -> nb
    boolean $assertionsDisabled -> kc
    com.android.tools.r8.graph.DexString getClassMethodName -> aa
    com.android.tools.r8.graph.DexType varHandleType -> jb
    com.android.tools.r8.graph.DexString boxedNumberDescriptor -> A
    com.android.tools.r8.graph.DexType annotationType -> fb
    com.android.tools.r8.graph.DexString stringBuilderDescriptor -> Ea
    com.android.tools.r8.graph.DexType boxedShortType -> bb
    java.util.concurrent.ConcurrentHashMap strings -> a
    com.android.tools.r8.graph.DexString methodTypeDescriptor -> Ia
    com.android.tools.r8.graph.DexString unboxFloatMethodName -> I
    com.android.tools.r8.graph.DexString longFieldUpdaterDescriptor -> Ma
    com.android.tools.r8.graph.DexString classConstructorMethodName -> Qa
    com.android.tools.r8.graph.DexType comparableType -> Zb
    com.android.tools.r8.graph.DexString contentEqualsMethodName -> R
    com.android.tools.r8.graph.DexString classLoaderDescriptor -> ua
    com.android.tools.r8.graph.DexType callSiteType -> Vb
    com.android.tools.r8.graph.DexString boxedBooleanDescriptor -> s
    com.android.tools.r8.graph.DexString methodDescriptor -> ya
    com.android.tools.r8.graph.DexItemFactory$ClassMethods classMethods -> vb
    com.android.tools.r8.graph.DexType annotationCovariantReturnType -> Rb
    com.android.tools.r8.graph.DexString toStringMethodName -> Z
    com.android.tools.r8.graph.DexType annotationSignature -> Nb
    com.android.tools.r8.graph.DexMethod metafactoryAltMethod -> ac
    boolean sorted -> r
    com.android.tools.r8.graph.DexType annotationEnclosingMethod -> Jb
    com.android.tools.r8.graph.DexString initMethodName -> B
    com.android.tools.r8.graph.DexString forNameMethodName -> ea
    com.android.tools.r8.graph.DexString getTypeNameName -> ia
    java.util.concurrent.ConcurrentHashMap referenceTypeLatticeElements -> p
    com.android.tools.r8.graph.DexItemFactory$ServiceLoaderMethods serviceLoaderMethods -> Cb
    com.android.tools.r8.graph.DexString unboxDoubleMethodName -> J
    com.android.tools.r8.graph.DexString getDeclaredMethodName -> ma
    com.android.tools.r8.graph.DexString charSequenceDescriptor -> qa
    com.android.tools.r8.graph.DexType boxedFloatType -> Za
    com.android.tools.r8.graph.DexType boxedCharType -> Xa
    java.util.IdentityHashMap internalSentinels -> jc
    com.android.tools.r8.graph.DexString indexOfMethodName -> S
    com.android.tools.r8.graph.DexString boxedByteDescriptor -> t
    com.android.tools.r8.graph.DexType charArrayType -> Ta
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap advanceLines -> g
    java.util.Set libraryTypesWithoutStaticInitialization -> ec
    com.android.tools.r8.graph.DexType npeType -> mb
    com.android.tools.r8.graph.DexType autoCloseableType -> ib
    com.android.tools.r8.graph.DexString objectsDescriptor -> Da
    com.android.tools.r8.graph.DexString unboxBooleanMethodName -> C
    com.android.tools.r8.graph.DexType enumType -> eb
    com.android.tools.r8.graph.DexString methodHandleDescriptor -> Ha
    com.android.tools.r8.graph.DexItemFactory$ThrowableMethods throwableMethods -> ub
    com.android.tools.r8.graph.DexItemFactory$PolymorphicMethods polymorphicMethods -> Bb
    com.android.tools.r8.graph.DexType boxedLongType -> ab
    com.android.tools.r8.graph.DexString isEmptyMethodName -> K
    com.android.tools.r8.graph.DexString intFieldUpdaterDescriptor -> La
    com.android.tools.r8.graph.DexItemFactory$StringBuildingMethods stringBuilderMethods -> ob
    com.android.tools.r8.graph.DexString constructorMethodName -> Pa
    com.android.tools.r8.graph.DexItemFactory$AtomicFieldUpdaterMethods atomicFieldUpdaterMethods -> zb
    com.android.tools.r8.graph.DexType externalizableType -> Yb
    com.android.tools.r8.graph.DexItemFactory$EnumMethods enumMethods -> wb
    com.android.tools.r8.graph.DexString classDescriptor -> ta
    com.android.tools.r8.graph.DexString lastIndexOfMethodName -> T
    java.util.Map setFiles -> n
    com.android.tools.r8.graph.DexString boxedCharDescriptor -> u
    com.android.tools.r8.graph.DexType metafactoryType -> Ub
    com.android.tools.r8.graph.DexString fieldDescriptor -> xa
    com.android.tools.r8.graph.DexType annotationSynthesizedClassMap -> Qb
    com.android.tools.r8.graph.DexType annotationMethodParameters -> Mb
    com.android.tools.r8.graph.DexString twrCloseResourceMethodName -> Db
    com.android.tools.r8.graph.DexMethod stringConcatMethod -> dc
    java.util.concurrent.ConcurrentHashMap methodHandles -> f
    com.android.tools.r8.graph.DexType annotationEnclosingClass -> Ib
    com.android.tools.r8.graph.DexString desiredAssertionStatusMethodName -> da
    com.android.tools.r8.graph.DexString unknownTypeName -> ic
    com.android.tools.r8.graph.DexString unboxByteMethodName -> D
    com.android.tools.r8.graph.DexString getSimpleNameName -> ha
    com.android.tools.r8.graph.DexProto twrCloseResourceMethodProto -> Eb
    com.android.tools.r8.graph.DexType stringConcatFactoryType -> bc
    com.android.tools.r8.graph.DexString getMethodName -> la
    com.android.tools.r8.graph.DexString lengthMethodName -> L
    com.android.tools.r8.graph.DexType boxedDoubleType -> Ya
    com.android.tools.r8.graph.DexString invokeExactMethodName -> pa
    com.android.tools.r8.graph.DexString charArrayDescriptor -> Sa
    com.android.tools.r8.graph.DexType boxedByteType -> Wa
    com.android.tools.r8.graph.DexString compareToMethodName -> U
    java.util.Map setInlineFrames -> o
    com.android.tools.r8.graph.DexString boxedDoubleDescriptor -> v
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap defaults -> i
    com.android.tools.r8.graph.DexType methodTypeType -> lb
    com.android.tools.r8.graph.DexMethod metafactoryMethod -> _b
    com.android.tools.r8.graph.DexType classLoaderType -> hb
    com.android.tools.r8.graph.DexString exceptionInInitializerErrorDescriptor -> Ca
    com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin setEpilogueBegin -> l
    java.util.concurrent.ConcurrentHashMap methods -> e
    com.android.tools.r8.graph.DexType classArrayType -> db
    com.android.tools.r8.graph.DexString unboxCharMethodName -> E
    com.android.tools.r8.graph.DexString varHandleDescriptor -> Ga
    com.android.tools.r8.graph.DexString serviceLoaderDescriptor -> Ka
    com.android.tools.r8.graph.DexString newUpdaterName -> Oa
    com.android.tools.r8.graph.DexString containsMethodName -> M
    com.android.tools.r8.graph.DexString objectArrayDescriptor -> sa
    com.android.tools.r8.graph.DexItemFactory$LongMethods longMethods -> tb
    com.android.tools.r8.graph.DexType iteratorType -> Xb
    com.android.tools.r8.graph.DexItemFactory$StringBuildingMethods stringBufferMethods -> pb
    com.android.tools.r8.graph.DexItemFactory$StringMethods stringMethods -> sb
    com.android.tools.r8.graph.DexString classArrayDescriptor -> wa
    com.android.tools.r8.graph.DexType annotationReachabilitySensitive -> Tb
    com.android.tools.r8.graph.DexString compareToIgnoreCaseMethodName -> V
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap advancePCs -> h
    com.android.tools.r8.graph.DexString boxedFloatDescriptor -> w
    com.android.tools.r8.graph.DexType annotationThrows -> Pb
    com.android.tools.r8.graph.DexItemFactory$PrimitiveTypesBoxedTypeFields primitiveTypesBoxedTypeFields -> yb
    com.android.tools.r8.graph.DexType annotationMemberClasses -> Lb
    com.android.tools.r8.graph.DexMethod stringConcatWithConstantsMethod -> cc
    com.android.tools.r8.graph.DexString ordinalMethodName -> ca
    com.android.tools.r8.graph.DexType annotationDefault -> Hb
    java.util.concurrent.ConcurrentHashMap protos -> d
    com.android.tools.r8.graph.DexString getCanonicalNameName -> ga
    com.android.tools.r8.graph.DexItemFactory$ObjectMethods objectMethods -> rb
    com.android.tools.r8.graph.DexString unboxShortMethodName -> F
    com.android.tools.r8.graph.DexString getDeclaredFieldName -> ka
    com.android.tools.r8.graph.DexString invokeMethodName -> oa
    com.android.tools.r8.graph.DexString startsWithMethodName -> N
    com.android.tools.r8.com.google.common.collect.BiMap primitiveToBoxed -> gc
    com.android.tools.r8.graph.DexString thisName -> Ra
    com.android.tools.r8.graph.DexType boxedBooleanType -> Va
    com.android.tools.r8.graph.DexItemFactory$ObjectsMethods objectsMethods -> qb
    com.android.tools.r8.kotlin.Kotlin kotlin -> Ab
    com.android.tools.r8.graph.DexString cloneMethodName -> W
    com.android.tools.r8.graph.DexString boxedIntDescriptor -> x
    com.android.tools.r8.graph.DexItemFactory$NullPointerExceptionMethods npeMethods -> xb
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap restartLocals -> k
    com.android.tools.r8.graph.DexType methodHandleType -> kb
    com.android.tools.r8.graph.DexString throwableDescriptor -> Ba
    com.android.tools.r8.graph.DexType exceptionInInitializerErrorType -> gb
    com.android.tools.r8.graph.DexString stringBufferDescriptor -> Fa
    java.util.concurrent.ConcurrentHashMap fields -> c
    com.android.tools.r8.graph.DexString unboxIntMethodName -> G
    com.android.tools.r8.graph.DexType boxedNumberType -> cb
    boolean skipNameValidationForTesting -> fc
    com.android.tools.r8.graph.DexString npeDescriptor -> Ja
    com.android.tools.r8.graph.DexString referenceFieldUpdaterDescriptor -> Na
    com.android.tools.r8.graph.DexString endsWithMethodName -> O
    com.android.tools.r8.graph.DexString equalsMethodName -> P
    com.android.tools.r8.graph.DexString stringArrayDescriptor -> ra
    com.android.tools.r8.graph.DexType lookupType -> Wb
    com.android.tools.r8.graph.DexString autoCloseableDescriptor -> va
    com.android.tools.r8.graph.DexType annotationCovariantReturnTypes -> Sb
    com.android.tools.r8.graph.DexString substringName -> X
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap endLocals -> j
    com.android.tools.r8.graph.DexString boxedLongDescriptor -> y
    com.android.tools.r8.graph.DexString enumDescriptor -> za
    com.android.tools.r8.graph.DexType annotationSourceDebugExtension -> Ob
    com.android.tools.r8.graph.DexString annotationDescriptor -> Aa
    com.android.tools.r8.graph.DexType annotationInnerClass -> Kb
    com.android.tools.r8.graph.DexString finalizeMethodName -> ba
    com.android.tools.r8.graph.DexType nullValueType -> hc
    com.android.tools.r8.graph.DexString deserializeLambdaMethodName -> Fb
    com.android.tools.r8.graph.DexString getNameName -> fa
    java.util.concurrent.ConcurrentHashMap types -> b
    com.android.tools.r8.graph.DexString unboxLongMethodName -> H
    com.android.tools.r8.graph.DexType boxedIntType -> _a
    com.android.tools.r8.graph.DexString getFieldName -> ja
    com.android.tools.r8.graph.DexProto deserializeLambdaMethodProto -> Gb
    com.android.tools.r8.graph.DexString assertionsDisabled -> na
    1:39:void <clinit>():51:89 -> <clinit>
    1:1:void <init>():93:93 -> <init>
    2:276:void <init>():55:329 -> <init>
    277:293:void <init>():319:335 -> <init>
    294:312:void <init>():332:350 -> <init>
    313:333:void <init>():341:361 -> <init>
    334:375:void <init>():354:395 -> <init>
    376:376:void <init>():385:385 -> <init>
    377:377:void <init>():94:94 -> <init>
    com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame lambda$createSetInlineFrame$0(com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame) -> a
    1:1:com.android.tools.r8.graph.DexType access$1200(com.android.tools.r8.graph.DexItemFactory):51:51 -> a
    2:2:boolean isInternalSentinel(com.android.tools.r8.graph.DexItem):98:98 -> a
    3:3:void clearSubtypeInformation():382:382 -> a
    4:5:com.android.tools.r8.graph.DexType getBoxedForPrimitiveType(com.android.tools.r8.graph.DexType):398:399 -> a
    6:8:com.android.tools.r8.graph.DexItem canonicalize(java.util.concurrent.ConcurrentHashMap,com.android.tools.r8.graph.DexItem):833:835 -> a
    9:10:com.android.tools.r8.graph.DexString createString(int,byte[]):840:841 -> a
    11:11:com.android.tools.r8.graph.DexString lookupString(java.lang.String):850:850 -> a
    12:14:com.android.tools.r8.graph.DexProto createProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexTypeList):918:920 -> a
    15:19:com.android.tools.r8.graph.DexProto applyClassMappingToProto(com.android.tools.r8.graph.DexProto,java.util.function.Function,java.util.Map):931:935 -> a
    20:29:com.android.tools.r8.graph.DexType[] applyClassMappingToDexTypes(com.android.tools.r8.graph.DexType[],java.util.function.Function):952:961 -> a
    20:29:com.android.tools.r8.graph.DexProto applyClassMappingToProto(com.android.tools.r8.graph.DexProto,java.util.function.Function,java.util.Map):935 -> a
    30:36:com.android.tools.r8.graph.DexProto applyClassMappingToProto(com.android.tools.r8.graph.DexProto,java.util.function.Function,java.util.Map):936:942 -> a
    37:41:com.android.tools.r8.graph.DexProto applyClassMappingToProto(com.android.tools.r8.graph.DexProto,java.util.function.Function,java.util.Map):941:945 -> a
    42:44:com.android.tools.r8.graph.DexMethodHandle createMethodHandle(com.android.tools.r8.graph.DexMethodHandle$MethodHandleType,com.android.tools.r8.graph.Descriptor):986:988 -> a
    45:46:com.android.tools.r8.graph.DexCallSite createCallSite(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexMethodHandle,java.util.List):997:998 -> a
    47:49:com.android.tools.r8.graph.DexDebugEvent$AdvanceLine createAdvanceLine(int):1017:1019 -> a
    50:52:com.android.tools.r8.graph.DexDebugEvent$SetFile createSetFile(com.android.tools.r8.graph.DexString):1055:1057 -> a
    53:55:com.android.tools.r8.graph.DexDebugEvent$SetInlineFrame createSetInlineFrame(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):1062:1064 -> a
    56:56:boolean isClassConstructor(com.android.tools.r8.graph.DexMethod):1072:1072 -> a
    57:92:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement createReferenceTypeLatticeElement(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.DexDefinitionSupplier):1077:1112 -> a
    93:93:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement createReferenceTypeLatticeElement(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.DexDefinitionSupplier):1107:1107 -> a
    94:98:void assignSortedIndices(java.util.Collection,com.android.tools.r8.naming.NamingLens):1117:1121 -> a
    99:99:int lambda$assignSortedIndices$1(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.PresortedComparable,com.android.tools.r8.graph.PresortedComparable):1118:1118 -> a
    100:100:void forAllTypes(java.util.function.Consumer):1149:1149 -> a
    1:1:com.android.tools.r8.graph.DexType getPrimitiveFromBoxed(com.android.tools.r8.graph.DexType):403:403 -> b
    2:2:com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexString):899:899 -> b
    3:5:com.android.tools.r8.graph.DexDebugEvent$AdvancePC createAdvancePC(int):1023:1025 -> b
    6:6:com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin createSetEpilogueBegin():1047:1047 -> b
    7:7:boolean isConstructor(com.android.tools.r8.graph.DexMethod):1068:1068 -> b
    1:1:boolean isLambdaMetafactoryMethod(com.android.tools.r8.graph.DexMethod):378:378 -> c
    2:4:com.android.tools.r8.graph.DexDebugEvent$Default createDefault(int):1029:1031 -> c
    5:5:com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd createSetPrologueEnd():1051:1051 -> c
    1:2:com.android.tools.r8.graph.DexType createArrayType(int,com.android.tools.r8.graph.DexType):903:904 -> createArrayType
    1:3:com.android.tools.r8.graph.DexField createField(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):908:910 -> createField
    4:4:com.android.tools.r8.graph.DexField createField(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,java.lang.String):914:914 -> createField
    1:3:com.android.tools.r8.graph.DexMethod createMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexString):974:976 -> createMethod
    4:4:com.android.tools.r8.graph.DexMethod createMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProto,java.lang.String):980:980 -> createMethod
    5:14:com.android.tools.r8.graph.DexMethod createMethod(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString[]):1004:1013 -> createMethod
    1:1:com.android.tools.r8.graph.DexProto createProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType[]):924:924 -> createProto
    2:7:com.android.tools.r8.graph.DexString createShorty(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType[]):965:970 -> createProto
    2:7:com.android.tools.r8.graph.DexProto createProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType[]):925 -> createProto
    8:8:com.android.tools.r8.graph.DexProto createProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType[]):926:926 -> createProto
    9:9:com.android.tools.r8.graph.DexProto createProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType[]):925:925 -> createProto
    1:2:com.android.tools.r8.graph.DexString createString(java.lang.String):845:846 -> createString
    1:7:com.android.tools.r8.graph.DexType createType(com.android.tools.r8.graph.DexString):881:887 -> createType
    8:11:com.android.tools.r8.graph.DexType createType(com.android.tools.r8.graph.DexString):886:889 -> createType
    12:12:com.android.tools.r8.graph.DexType createType(java.lang.String):895:895 -> createType
    1:5:java.util.List extractMarkers():870:874 -> d
    6:8:com.android.tools.r8.graph.DexDebugEvent$EndLocal createEndLocal(int):1035:1037 -> d
    1:1:boolean getSkipNameValidationForTesting():374:374 -> e
    2:4:com.android.tools.r8.graph.DexDebugEvent$RestartLocal createRestartLocal(int):1041:1043 -> e
    1:5:java.util.Collection extractMarker():856:860 -> extractMarker
    1:10:void resetSortedIndices():1136:1145 -> resetSortedIndices
    1:1:void setSkipNameValidationForTesting(boolean):370:370 -> setSkipNameValidationForTesting
    1:7:void sort(com.android.tools.r8.naming.NamingLens):1126:1132 -> sort
com.android.tools.r8.graph.DexItemFactory$1 -> com.android.tools.r8.graph.p:
com.android.tools.r8.graph.DexItemFactory$AtomicFieldUpdaterMethods -> com.android.tools.r8.graph.DexItemFactory$a:
    java.util.Set updaters -> d
    com.android.tools.r8.graph.DexMethod referenceUpdater -> c
    com.android.tools.r8.graph.DexMethod longUpdater -> b
    com.android.tools.r8.graph.DexMethod intUpdater -> a
    1:20:void <init>(com.android.tools.r8.graph.DexItemFactory):582:601 -> <init>
    1:20:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):576 -> <init>
    1:1:boolean isFieldUpdater(com.android.tools.r8.graph.DexMethod):605:605 -> a
com.android.tools.r8.graph.DexItemFactory$ClassMethods -> com.android.tools.r8.graph.DexItemFactory$b:
    com.android.tools.r8.graph.DexMethod getDeclaredMethod -> j
    com.android.tools.r8.graph.DexMethod getMethod -> i
    com.android.tools.r8.graph.DexMethod getDeclaredField -> h
    com.android.tools.r8.graph.DexMethod getField -> g
    com.android.tools.r8.graph.DexMethod getTypeName -> f
    com.android.tools.r8.graph.DexMethod getSimpleName -> e
    com.android.tools.r8.graph.DexMethod getCanonicalName -> d
    com.android.tools.r8.graph.DexMethod getName -> c
    java.util.Set getMembers -> k
    com.android.tools.r8.graph.DexMethod forName -> b
    java.util.Set getNames -> l
    com.android.tools.r8.graph.DexMethod desiredAssertionStatus -> a
    1:22:void <init>(com.android.tools.r8.graph.DexItemFactory):470:491 -> <init>
    1:22:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):455 -> <init>
    1:1:boolean isReflectiveMemberLookup(com.android.tools.r8.graph.DexMethod):495:495 -> a
    1:1:boolean isReflectiveNameLookup(com.android.tools.r8.graph.DexMethod):499:499 -> b
com.android.tools.r8.graph.DexItemFactory$EnumMethods -> com.android.tools.r8.graph.DexItemFactory$c:
    com.android.tools.r8.graph.DexMethod valueOf -> a
    1:3:void <init>(com.android.tools.r8.graph.DexItemFactory):507:509 -> <init>
    1:3:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):503 -> <init>
com.android.tools.r8.graph.DexItemFactory$LongMethods -> com.android.tools.r8.graph.DexItemFactory$d:
    com.android.tools.r8.graph.DexMethod compare -> a
    1:3:void <init>(com.android.tools.r8.graph.DexItemFactory):410:412 -> <init>
    1:3:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):406 -> <init>
    4:4:void <init>(com.android.tools.r8.graph.DexItemFactory):411:411 -> <init>
    4:4:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):406 -> <init>
com.android.tools.r8.graph.DexItemFactory$NullPointerExceptionMethods -> com.android.tools.r8.graph.DexItemFactory$e:
    com.android.tools.r8.graph.DexMethod init -> a
    1:2:void <init>(com.android.tools.r8.graph.DexItemFactory):521:522 -> <init>
    1:2:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):517 -> <init>
com.android.tools.r8.graph.DexItemFactory$ObjectMethods -> com.android.tools.r8.graph.DexItemFactory$f:
    com.android.tools.r8.graph.DexMethod finalize -> c
    com.android.tools.r8.graph.DexMethod constructor -> b
    com.android.tools.r8.graph.DexMethod getClass -> a
    1:6:void <init>(com.android.tools.r8.graph.DexItemFactory):435:440 -> <init>
    1:6:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):429 -> <init>
com.android.tools.r8.graph.DexItemFactory$ObjectsMethods -> com.android.tools.r8.graph.DexItemFactory$g:
    com.android.tools.r8.graph.DexMethod requireNonNull -> a
    1:3:void <init>(com.android.tools.r8.graph.DexItemFactory):449:451 -> <init>
    1:3:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):445 -> <init>
    4:4:void <init>(com.android.tools.r8.graph.DexItemFactory):450:450 -> <init>
    4:4:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):445 -> <init>
com.android.tools.r8.graph.DexItemFactory$PolymorphicMethods -> com.android.tools.r8.graph.DexItemFactory$h:
    com.android.tools.r8.graph.DexProto compareAndSetSignature -> c
    java.util.Set varHandleMethods -> d
    com.android.tools.r8.graph.DexItemFactory this$0 -> g
    java.util.Set varHandleSetMethods -> e
    java.util.Set varHandleCompareAndSetMethods -> f
    com.android.tools.r8.graph.DexProto signature -> a
    com.android.tools.r8.graph.DexProto setSignature -> b
    1:36:void <init>(com.android.tools.r8.graph.DexItemFactory):737:772 -> <init>
    1:11:com.android.tools.r8.graph.DexMethod canonicalize(com.android.tools.r8.graph.DexMethod):780:790 -> a
    12:17:java.util.Set createStrings(java.lang.String[]):797:802 -> a
com.android.tools.r8.graph.DexItemFactory$PrimitiveTypesBoxedTypeFields -> com.android.tools.r8.graph.DexItemFactory$i:
    com.android.tools.r8.graph.DexField longTYPE -> f
    com.android.tools.r8.graph.DexField intTYPE -> e
    com.android.tools.r8.graph.DexField doubleTYPE -> h
    com.android.tools.r8.graph.DexField floatTYPE -> g
    com.android.tools.r8.graph.DexField byteTYPE -> b
    java.util.Map boxedFieldTypeToPrimitiveType -> i
    com.android.tools.r8.graph.DexField booleanTYPE -> a
    com.android.tools.r8.graph.DexField shortTYPE -> d
    com.android.tools.r8.graph.DexField charTYPE -> c
    1:21:void <init>(com.android.tools.r8.graph.DexItemFactory):544:564 -> <init>
    1:21:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):532 -> <init>
    1:1:com.android.tools.r8.graph.DexType boxedFieldTypeToPrimitiveType(com.android.tools.r8.graph.DexField):568:568 -> a
com.android.tools.r8.graph.DexItemFactory$ServiceLoaderMethods -> com.android.tools.r8.graph.DexItemFactory$j:
    com.android.tools.r8.graph.DexMethod loadInstalled -> c
    com.android.tools.r8.graph.DexMethod loadWithClassLoader -> b
    com.android.tools.r8.graph.DexMethod load -> a
    1:7:void <init>(com.android.tools.r8.graph.DexItemFactory):812:818 -> <init>
    1:7:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):806 -> <init>
    8:16:void <init>(com.android.tools.r8.graph.DexItemFactory):816:824 -> <init>
    8:16:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):806 -> <init>
    17:17:void <init>(com.android.tools.r8.graph.DexItemFactory):821:821 -> <init>
    17:17:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):806 -> <init>
    1:1:boolean isLoadMethod(com.android.tools.r8.graph.DexMethod):828:828 -> a
com.android.tools.r8.graph.DexItemFactory$StringBuildingMethods -> com.android.tools.r8.graph.DexItemFactory$k:
    com.android.tools.r8.graph.DexMethod appendStringBuffer -> m
    com.android.tools.r8.graph.DexMethod appendString -> l
    com.android.tools.r8.graph.DexMethod appendObject -> k
    com.android.tools.r8.graph.DexMethod appendLong -> j
    com.android.tools.r8.graph.DexMethod appendFloat -> i
    com.android.tools.r8.graph.DexMethod appendDouble -> h
    com.android.tools.r8.graph.DexMethod appendInt -> g
    com.android.tools.r8.graph.DexMethod appendSubCharSequence -> f
    com.android.tools.r8.graph.DexMethod appendCharSequence -> e
    com.android.tools.r8.graph.DexMethod appendSubCharArray -> d
    com.android.tools.r8.graph.DexMethod appendCharArray -> c
    com.android.tools.r8.graph.DexMethod appendChar -> b
    com.android.tools.r8.graph.DexMethod appendBoolean -> a
    java.util.Set appenders -> n
    1:34:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):692:725 -> <init>
    1:34:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory$1):675 -> <init>
    1:1:void forEachAppendMethod(java.util.function.Consumer):733:733 -> a
com.android.tools.r8.graph.DexItemFactory$StringMethods -> com.android.tools.r8.graph.DexItemFactory$l:
    com.android.tools.r8.graph.DexMethod valueOf -> o
    com.android.tools.r8.graph.DexMethod compareToIgnoreCase -> n
    com.android.tools.r8.graph.DexMethod compareTo -> m
    com.android.tools.r8.graph.DexMethod lastIndexOfString -> l
    com.android.tools.r8.graph.DexMethod lastIndexOfInt -> k
    com.android.tools.r8.graph.DexMethod indexOfString -> j
    com.android.tools.r8.graph.DexMethod indexOfInt -> i
    com.android.tools.r8.graph.DexMethod contentEqualsCharSequence -> h
    com.android.tools.r8.graph.DexMethod equalsIgnoreCase -> g
    com.android.tools.r8.graph.DexMethod equals -> f
    com.android.tools.r8.graph.DexMethod endsWith -> e
    com.android.tools.r8.graph.DexMethod startsWith -> d
    com.android.tools.r8.graph.DexMethod contains -> c
    com.android.tools.r8.graph.DexMethod length -> b
    com.android.tools.r8.graph.DexMethod isEmpty -> a
    com.android.tools.r8.graph.DexMethod toString -> p
    1:41:void <init>(com.android.tools.r8.graph.DexItemFactory):630:670 -> <init>
    1:41:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):609 -> <init>
com.android.tools.r8.graph.DexItemFactory$ThrowableMethods -> com.android.tools.r8.graph.DexItemFactory$m:
    com.android.tools.r8.graph.DexMethod getSuppressed -> b
    com.android.tools.r8.graph.DexMethod addSuppressed -> a
    1:3:void <init>(com.android.tools.r8.graph.DexItemFactory):421:423 -> <init>
    1:3:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):416 -> <init>
    4:7:void <init>(com.android.tools.r8.graph.DexItemFactory):422:425 -> <init>
    4:7:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):416 -> <init>
    8:8:void <init>(com.android.tools.r8.graph.DexItemFactory):424:424 -> <init>
    8:8:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexItemFactory$1):416 -> <init>
com.android.tools.r8.graph.DexLibraryClass -> com.android.tools.r8.graph.q:
    boolean $assertionsDisabled -> k
    1:1:void <clinit>():16:16 -> <clinit>
    1:21:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean):34:54 -> <init>
    boolean isLibraryClass() -> E
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):60:60 -> a
    1:1:void addDependencies(com.android.tools.r8.dex.MixedSectionCollection):76:76 -> b
    com.android.tools.r8.graph.DexLibraryClass asLibraryClass() -> m
    1:1:java.lang.String toSourceString():70:70 -> toSourceString
    1:1:java.lang.String toString():65:65 -> toString
    com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo() -> v
com.android.tools.r8.graph.DexMemberAnnotation -> com.android.tools.r8.graph.u:
    com.android.tools.r8.graph.Descriptor item -> a
    com.android.tools.r8.graph.DexItem annotations -> b
    1:3:void <init>(com.android.tools.r8.graph.Descriptor,com.android.tools.r8.graph.DexItem):14:16 -> <init>
    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):22:23 -> a
    3:3:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):28:28 -> a
    1:3:boolean equals(java.lang.Object):41:43 -> equals
    1:1:int hashCode():33:33 -> hashCode
com.android.tools.r8.graph.DexMemberAnnotation$DexFieldAnnotation -> com.android.tools.r8.graph.r:
    1:1:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexAnnotationSet):51:51 -> <init>
com.android.tools.r8.graph.DexMemberAnnotation$DexMethodAnnotation -> com.android.tools.r8.graph.s:
    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexAnnotationSet):58:58 -> <init>
com.android.tools.r8.graph.DexMemberAnnotation$DexParameterAnnotation -> com.android.tools.r8.graph.t:
    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.ParameterAnnotationsList):66:66 -> <init>
com.android.tools.r8.graph.DexMethod -> com.android.tools.r8.graph.DexMethod:
    java.util.Map singleTargetCache -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():12:12 -> <clinit>
    1:7:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexString,boolean):22:28 -> <init>
    1:1:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):12:12 -> a
    2:2:boolean match(com.android.tools.r8.graph.DexItem):12:12 -> a
    3:3:int slowCompareTo(java.lang.Object):12:12 -> a
    4:5:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):45:46 -> a
    6:6:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):67:67 -> a
    7:7:int compareTo(com.android.tools.r8.graph.DexMethod):108:108 -> a
    8:16:int layeredCompareTo(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingLens):139:147 -> a
    17:17:boolean match(com.android.tools.r8.graph.DexEncodedMethod):152:152 -> a
    18:18:boolean isLambdaDeserializeMethod(com.android.tools.r8.graph.DexItemFactory):184:184 -> a
    19:22:void setSingleVirtualMethodCache(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):190:193 -> a
    23:24:com.android.tools.r8.graph.DexEncodedMethod getSingleVirtualMethodCache(com.android.tools.r8.graph.DexType):201:202 -> a
    1:3:boolean collectIndexedItemsExceptName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):52:54 -> b
    4:8:boolean computeEquals(java.lang.Object):89:93 -> b
    9:9:boolean hasSameProtoAndName(com.android.tools.r8.graph.DexMethod):103:103 -> b
    10:10:boolean isSingleVirtualMethodCached(com.android.tools.r8.graph.DexType):197:197 -> b
    1:1:void collectIndexedItemsName(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):62:62 -> c
    1:1:int compareTo(java.lang.Object):12:12 -> compareTo
    1:3:int computeHashCode():82:84 -> d
    1:1:int getArity():39:39 -> getArity
    com.android.tools.r8.graph.DexMethod asDexMethod() -> h
    boolean isDexMethod() -> k
    1:1:java.lang.String qualifiedName():156:156 -> qualifiedName
    1:9:int slowCompareTo(com.android.tools.r8.graph.DexMethod):113:121 -> slowCompareTo
    1:1:java.lang.String toSmaliString():161:161 -> toSmaliString
    1:15:java.lang.String toSourceString():166:180 -> toSourceString
    1:1:java.lang.String toString():35:35 -> toString
com.android.tools.r8.graph.DexMethodHandle -> com.android.tools.r8.graph.w:
    com.android.tools.r8.graph.Descriptor fieldOrMethod -> d
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType type -> c
    boolean $assertionsDisabled -> f
    com.android.tools.r8.graph.DexMethod rewrittenTarget -> e
    1:1:void <clinit>():15:15 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.DexMethodHandle$MethodHandleType,com.android.tools.r8.graph.Descriptor):205:208 -> <init>
    5:8:void <init>(com.android.tools.r8.graph.DexMethodHandle$MethodHandleType,com.android.tools.r8.graph.Descriptor,com.android.tools.r8.graph.DexMethod):214:217 -> <init>
    1:1:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):15:15 -> a
    2:8:int layeredCompareTo(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.naming.NamingLens):339:345 -> a
    2:8:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):15 -> a
    9:9:int slowCompareTo(java.lang.Object):15:15 -> a
    10:14:com.android.tools.r8.graph.DexMethodHandle fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):222:226 -> a
    15:15:com.android.tools.r8.graph.DexMethodHandle com.android.tools.r8.graph.JarApplicationReader.getMethodHandle(com.android.tools.r8.graph.DexMethodHandle$MethodHandleType,com.android.tools.r8.graph.Descriptor):108:108 -> a
    15:15:com.android.tools.r8.graph.DexMethodHandle fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):227 -> a
    16:26:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):261:271 -> a
    27:27:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):278:278 -> a
    28:34:int slowCompareTo(com.android.tools.r8.graph.DexMethodHandle):311:317 -> a
    35:56:com.android.tools.r8.org.objectweb.asm.Handle toAsmHandle(com.android.tools.r8.naming.NamingLens):361:382 -> a
    57:78:int getAsmTag():386:407 -> a
    57:78:com.android.tools.r8.org.objectweb.asm.Handle toAsmHandle(com.android.tools.r8.naming.NamingLens):382 -> a
    79:79:com.android.tools.r8.org.objectweb.asm.Handle toAsmHandle(com.android.tools.r8.naming.NamingLens):382:382 -> a
    1:5:boolean computeEquals(java.lang.Object):239:243 -> b
    1:1:int compareTo(java.lang.Object):15:15 -> compareTo
    2:2:int compareTo(com.android.tools.r8.graph.DexMethodHandle):353:353 -> compareTo
    2:2:int compareTo(java.lang.Object):15 -> compareTo
    1:3:int computeHashCode():232:234 -> d
    1:2:com.android.tools.r8.graph.DexField asField():305:306 -> g
    1:2:com.android.tools.r8.graph.DexMethod asMethod():300:301 -> h
    1:1:boolean isFieldHandle():288:288 -> i
    1:1:boolean isMethodHandle():292:292 -> j
    1:1:boolean isStaticHandle():296:296 -> k
    1:1:java.lang.String toSmaliString():284:284 -> toSmaliString
    1:6:java.lang.String toString():250:255 -> toString
com.android.tools.r8.graph.DexMethodHandle$MethodHandleType -> com.android.tools.r8.graph.v:
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INVOKE_CONSTRUCTOR -> h
    boolean $assertionsDisabled -> m
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INVOKE_INSTANCE -> g
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType[] $VALUES -> l
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INVOKE_STATIC -> f
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INSTANCE_GET -> e
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INSTANCE_PUT -> d
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType STATIC_GET -> c
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType STATIC_PUT -> b
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INVOKE_SUPER -> k
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INVOKE_INTERFACE -> j
    com.android.tools.r8.graph.DexMethodHandle$MethodHandleType INVOKE_DIRECT -> i
    short value -> a
    1:12:void <clinit>():18:29 -> <clinit>
    13:13:void <clinit>():18:18 -> <clinit>
    1:2:void <init>(java.lang.String,int,short):33:34 -> <init>
    1:28:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):85:112 -> a
    29:33:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):106:110 -> a
    34:47:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):95:108 -> a
    48:48:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):104:104 -> a
    49:49:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):93:93 -> a
    50:50:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):91:91 -> a
    51:51:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):89:89 -> a
    52:52:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType fromAsmHandle(com.android.tools.r8.org.objectweb.asm.Handle,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):87:87 -> a
    53:53:boolean isFieldType():117:117 -> a
    54:54:boolean isInstancePut():134:134 -> a
    54:54:boolean isFieldType():117 -> a
    55:55:boolean isInstanceGet():138:138 -> a
    55:55:boolean isFieldType():117 -> a
    1:1:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):76:76 -> b
    2:2:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):73:73 -> b
    3:3:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):70:70 -> b
    4:4:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):67:67 -> b
    5:5:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):64:64 -> b
    6:6:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):61:61 -> b
    7:7:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):58:58 -> b
    8:8:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):55:55 -> b
    9:9:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):52:52 -> b
    10:10:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):49:49 -> b
    11:44:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):46:79 -> b
    45:45:short getValue():38:38 -> b
    45:45:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):79 -> b
    46:46:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType getKind(int):79:79 -> b
    47:47:boolean isInvokeConstructor():162:162 -> b
    1:1:boolean isInvokeDirect():146:146 -> c
    1:1:boolean isInvokeInstance():150:150 -> d
    1:1:boolean isInvokeInterface():154:154 -> e
    1:1:boolean isInvokeStatic():142:142 -> f
    1:1:boolean isMethodType():121:121 -> g
    2:2:boolean isInvokeSuper():158:158 -> g
    2:2:boolean isMethodType():121 -> g
    3:3:boolean isMethodType():122:122 -> g
    1:1:short getValue():38:38 -> getValue
    1:1:boolean isStaticGet():130:130 -> h
    1:1:boolean isStaticPut():126:126 -> i
    1:16:com.android.tools.r8.ir.code.Invoke$Type toInvokeType():166:181 -> j
    17:17:com.android.tools.r8.ir.code.Invoke$Type toInvokeType():179:179 -> j
    18:18:com.android.tools.r8.ir.code.Invoke$Type toInvokeType():177:177 -> j
    19:19:com.android.tools.r8.ir.code.Invoke$Type toInvokeType():175:175 -> j
    20:20:com.android.tools.r8.ir.code.Invoke$Type toInvokeType():173:173 -> j
    21:21:com.android.tools.r8.ir.code.Invoke$Type toInvokeType():171:171 -> j
    22:22:com.android.tools.r8.ir.code.Invoke$Type toInvokeType():169:169 -> j
    1:1:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType[] values():18:18 -> k
com.android.tools.r8.graph.DexProgramClass -> com.android.tools.r8.graph.DexProgramClass:
    com.android.tools.r8.ProgramResource$Kind originKind -> k
    int initialClassFileVersion -> n
    java.util.Collection synthesizedFrom -> m
    com.android.tools.r8.kotlin.KotlinInfo kotlinInfo -> o
    com.android.tools.r8.graph.DexEncodedArray staticValues -> l
    com.android.tools.r8.graph.DexProgramClass[] EMPTY_ARRAY -> p
    boolean $assertionsDisabled -> r
    com.android.tools.r8.graph.DexEncodedArray SENTINEL_NOT_YET_COMPUTED -> q
    1:4:void <clinit>():21:24 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean):65:65 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean):49:49 -> <init>
    3:3:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean,java.util.Collection):85:85 -> <init>
    4:79:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassAccessFlags,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.EnclosingMethodAttribute,java.util.List,com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedField[],com.android.tools.r8.graph.DexEncodedMethod[],com.android.tools.r8.graph.DexEncodedMethod[],boolean,java.util.Collection):28:103 -> <init>
    boolean isProgramClass() -> F
    1:20:void computeStaticValues():271:290 -> H
    1:2:int getInitialClassFileVersion():381:382 -> I
    1:2:com.android.tools.r8.graph.DexEncodedArray getStaticValues():311:312 -> J
    1:1:java.util.Collection getSynthesizedFrom():154:154 -> K
    1:5:boolean hasAnnotations():235:239 -> L
    1:1:boolean hasClassFileVersion():377:377 -> M
    1:2:boolean hasMethodsOrFields():229:230 -> N
    1:4:boolean hasOnlyInternalizableAnnotations():243:246 -> O
    1:4:boolean isSorted():295:298 -> P
    1:1:boolean originatesFromClassResource():111:111 -> Q
    1:1:boolean originatesFromDexResource():107:107 -> R
    1:4:void sortMembers():348:351 -> S
    1:26:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):117:142 -> a
    27:30:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):159:162 -> a
    31:32:void setKotlinInfo(com.android.tools.r8.kotlin.KotlinInfo):224:225 -> a
    33:36:void addSynthesizedFrom(com.android.tools.r8.graph.DexProgramClass):262:265 -> a
    37:41:boolean isSorted(com.android.tools.r8.graph.KeyedDexItem[]):303:307 -> a
    42:65:boolean hasReachabilitySensitiveAnnotation(com.android.tools.r8.graph.DexItemFactory):394:417 -> a
    1:3:void synchronizedCollectAll(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexItem[]):148:150 -> b
    4:24:void addDependencies(com.android.tools.r8.dex.MixedSectionCollection):168:188 -> b
    25:27:void synchronizedCollectAll(com.android.tools.r8.dex.MixedSectionCollection,com.android.tools.r8.graph.DexItem[]):193:195 -> b
    1:3:boolean hasAnnotations(com.android.tools.r8.graph.DexEncodedField[]):250:252 -> c
    4:6:boolean hasAnnotations(com.android.tools.r8.graph.DexEncodedMethod[]):256:258 -> c
    7:8:void addDirectMethod(com.android.tools.r8.graph.DexEncodedMethod):339:340 -> c
    9:14:void addDirectMethod(com.android.tools.r8.graph.DexEncodedMethod):339:344 -> c
    15:15:com.android.tools.r8.graph.DexField lambda$sortEncodedFields$0(com.android.tools.r8.graph.DexEncodedField):356:356 -> c
    1:6:void addMethod(com.android.tools.r8.graph.DexEncodedMethod):319:324 -> d
    7:7:void addMethod(com.android.tools.r8.graph.DexEncodedMethod):322:322 -> d
    8:10:void sortEncodedFields(com.android.tools.r8.graph.DexEncodedField[]):355:357 -> d
    11:13:void sortEncodedMethods(com.android.tools.r8.graph.DexEncodedMethod[]):361:363 -> d
    14:15:void setInitialClassFileVersion(int):372:373 -> d
    1:7:void addVirtualMethod(com.android.tools.r8.graph.DexEncodedMethod):329:335 -> e
    1:1:com.android.tools.r8.graph.DexMethod lambda$sortEncodedMethods$1(com.android.tools.r8.graph.DexEncodedMethod):362:362 -> f
    1:1:java.lang.Object get():21:21 -> get
    com.android.tools.r8.graph.DexProgramClass asProgramClass() -> n
    1:1:java.lang.String toSourceString():205:205 -> toSourceString
    1:1:java.lang.String toString():200:200 -> toString
    1:1:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo():220:220 -> v
com.android.tools.r8.graph.DexProto -> com.android.tools.r8.graph.DexProto:
    com.android.tools.r8.graph.DexString shorty -> a
    com.android.tools.r8.graph.DexProto SENTINEL -> b
    1:1:void <clinit>():11:11 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList):17:20 -> <init>
    1:1:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):9:9 -> a
    2:2:int slowCompareTo(java.lang.Object):9:9 -> a
    3:6:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):49:52 -> a
    7:7:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):58:58 -> a
    8:8:int compareTo(com.android.tools.r8.graph.DexProto):63:63 -> a
    9:11:int layeredCompareTo(com.android.tools.r8.graph.DexProto,com.android.tools.r8.naming.NamingLens):86:88 -> a
    12:19:java.lang.String toDescriptorString(com.android.tools.r8.naming.NamingLens):103:110 -> a
    1:5:boolean computeEquals(java.lang.Object):32:36 -> b
    6:8:int slowCompareTo(com.android.tools.r8.graph.DexProto):68:70 -> b
    1:1:int compareTo(java.lang.Object):9:9 -> compareTo
    1:3:int computeHashCode():25:27 -> d
    1:1:java.lang.String toDescriptorString():99:99 -> toDescriptorString
    1:1:java.lang.String toSmaliString():95:95 -> toSmaliString
    1:1:java.lang.String toString():43:43 -> toString
com.android.tools.r8.graph.DexReference -> com.android.tools.r8.graph.x:
    1:1:void <clinit>():14:14 -> <clinit>
    1:1:void <init>():14:14 -> <init>
    1:1:java.util.stream.Stream filterDexReference(java.util.stream.Stream):59:59 -> a
    1:1:java.util.stream.Stream filterDexType(java.util.stream.Stream):86:86 -> b
    2:2:java.util.stream.Stream filter(java.util.stream.Stream,java.util.function.Predicate,java.util.function.Function):82:82 -> b
    2:2:java.util.stream.Stream filterDexType(java.util.stream.Stream):86 -> b
    com.android.tools.r8.graph.DexField asDexField() -> g
    com.android.tools.r8.graph.DexMethod asDexMethod() -> h
    com.android.tools.r8.graph.DexType asDexType() -> i
    boolean isDexField() -> j
    boolean isDexMethod() -> k
    boolean isDexType() -> l
com.android.tools.r8.graph.DexString -> com.android.tools.r8.graph.DexString:
    boolean $assertionsDisabled -> b
    int size -> a
    1:3:void <clinit>():14:16 -> <clinit>
    1:3:void <init>(int,byte[]):21:23 -> <init>
    4:5:void <init>(java.lang.String):26:27 -> <init>
    6:15:int countBytes(java.lang.String):105:114 -> <init>
    6:15:byte[] encodeToMutf8(java.lang.String):122 -> <init>
    6:15:void <init>(java.lang.String):28 -> <init>
    16:31:byte[] encodeToMutf8(java.lang.String):122:137 -> <init>
    16:31:void <init>(java.lang.String):28 -> <init>
    32:32:void <init>(java.lang.String):28:28 -> <init>
    1:1:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):14:14 -> a
    2:2:int slowCompareTo(java.lang.Object):14:14 -> a
    3:3:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):144:144 -> a
    4:4:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):149:149 -> a
    5:5:int compareTo(com.android.tools.r8.graph.DexString):154:154 -> a
    6:6:int layeredCompareTo(com.android.tools.r8.graph.DexString,com.android.tools.r8.naming.NamingLens):199:199 -> a
    1:3:boolean computeEquals(java.lang.Object):38:40 -> b
    4:8:boolean endsWith(com.android.tools.r8.graph.DexString):318:322 -> b
    1:5:boolean startsWith(com.android.tools.r8.graph.DexString):306:310 -> c
    1:1:int compareTo(java.lang.Object):14:14 -> compareTo
    1:1:int computeHashCode():33:33 -> d
    1:11:java.lang.String dump():292:302 -> dump
    1:1:boolean isValidClassDescriptor():285:285 -> g
    2:13:boolean isValidClassDescriptor(java.lang.String):203:214 -> g
    2:13:boolean isValidClassDescriptor():285 -> g
    14:14:boolean isValidClassDescriptor(java.lang.String):212:212 -> g
    14:14:boolean isValidClassDescriptor():285 -> g
    1:1:boolean isValidFieldName():277:277 -> h
    2:18:boolean isValidFieldName(java.lang.String):244:260 -> h
    2:18:boolean isValidFieldName():277 -> h
    19:19:boolean isValidFieldName(java.lang.String):258:258 -> h
    19:19:boolean isValidFieldName():277 -> h
    1:1:boolean isValidMethodName():269:269 -> i
    2:16:boolean isValidMethodName(java.lang.String):222:236 -> i
    2:16:boolean isValidMethodName():269 -> i
    17:17:boolean isValidMethodName(java.lang.String):234:234 -> i
    17:17:boolean isValidMethodName():269 -> i
    1:1:int numberOfLeadingSquareBrackets():64:64 -> j
    1:15:java.lang.String decode():74:88 -> k
    16:25:java.lang.String decode():86:95 -> k
    26:30:java.lang.String decode():93:97 -> k
    1:13:int slowCompareTo(com.android.tools.r8.graph.DexString):167:179 -> slowCompareTo
    1:3:java.lang.String toASCIIString():56:58 -> toASCIIString
    1:3:java.lang.String toString():48:50 -> toString
com.android.tools.r8.graph.DexType -> com.android.tools.r8.graph.DexType:
    java.util.Set directSubtypes -> c
    java.util.Set implementedInterfaces -> d
    java.util.Set NO_DIRECT_SUBTYPE -> f
    boolean $assertionsDisabled -> g
    java.lang.String toStringCache -> a
    int hierarchyLevel -> b
    com.android.tools.r8.graph.DexType[] EMPTY_ARRAY -> e
    1:9:void <clinit>():32:40 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexString):54:54 -> <init>
    2:15:void <init>(com.android.tools.r8.graph.DexString):43:56 -> <init>
    1:1:boolean isLongType():455:455 -> A
    1:4:boolean isPrimitiveArrayType():473:476 -> B
    1:1:boolean isPrimitiveType():418:418 -> C
    1:1:boolean isShortType():443:443 -> D
    1:1:boolean isUnknown():150:150 -> E
    1:1:void tagAsInteface():105:105 -> F
    1:1:void tagAsSubtypeRoot():101:101 -> G
    1:1:char toShorty():349:349 -> H
    1:2:void ensureDirectSubTypeSet():73:74 -> I
    boolean isPrimitiveType(char) -> a
    1:1:int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens):32:32 -> a
    2:2:int slowCompareTo(java.lang.Object):32:32 -> a
    3:6:void addDirectSubtype(com.android.tools.r8.graph.DexType):94:97 -> a
    7:8:boolean isExternalizable(com.android.tools.r8.graph.DexDefinitionSupplier):120:121 -> a
    9:10:boolean classInitializationMayHaveSideEffects(com.android.tools.r8.graph.DexDefinitionSupplier,java.util.function.Predicate):135:136 -> a
    11:11:boolean initializationOfParentTypesMayHaveSideEffects(com.android.tools.r8.graph.AppInfo):140:140 -> a
    12:13:boolean initializationOfParentTypesMayHaveSideEffects(com.android.tools.r8.graph.AppInfo,java.util.function.Predicate):145:146 -> a
    14:24:boolean isStrictSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinitionSupplier,boolean):188:198 -> a
    25:28:boolean isSubtypeOfClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinitionSupplier,boolean):228:231 -> a
    25:28:boolean isStrictSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinitionSupplier,boolean):200 -> a
    29:38:boolean isInterfaceSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinitionSupplier):205:214 -> a
    39:40:java.lang.Iterable allInterfaces(com.android.tools.r8.graph.DexItemFactory):282:283 -> a
    41:53:void implementedInterfaces(com.android.tools.r8.graph.DexDefinitionSupplier,java.util.Set):311:323 -> a
    54:55:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):366:367 -> a
    56:56:int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping):380:380 -> a
    57:59:int layeredCompareTo(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.NamingLens):412:414 -> a
    60:69:com.android.tools.r8.graph.DexType replaceBaseType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):529:538 -> a
    70:100:boolean validateLevelsAreCorrect(java.util.function.Function,com.android.tools.r8.graph.DexItemFactory):550:580 -> a
    101:108:java.lang.String getPackageOrName(boolean):588:595 -> a
    109:153:com.android.tools.r8.graph.DexType computeLeastUpperBoundOfClasses(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexType):634:678 -> a
    1:2:boolean computeEquals(java.lang.Object):66:67 -> b
    3:4:boolean isMissingOrHasMissingSuperType(com.android.tools.r8.graph.DexDefinitionSupplier):109:110 -> b
    5:7:void addInterfaceSubtype(com.android.tools.r8.graph.DexType):156:158 -> b
    8:8:boolean lambda$isStrictSubtypeOf$0(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexType):198:198 -> b
    9:9:void forAllExtendsSubtypes(java.util.function.Consumer):248:248 -> b
    10:12:com.android.tools.r8.graph.DexType toArrayElementType(com.android.tools.r8.graph.DexItemFactory):542:544 -> b
    13:15:com.android.tools.r8.graph.DexType toArrayElementType(com.android.tools.r8.graph.DexItemFactory):543:545 -> b
    1:2:boolean isSerializable(com.android.tools.r8.graph.DexDefinitionSupplier):125:126 -> c
    3:4:void clearSubtypeInformation(com.android.tools.r8.graph.DexType):162:163 -> c
    5:5:void forAllImplementsSubtypes(java.util.function.Consumer):271:271 -> c
    6:11:com.android.tools.r8.graph.DexType toBaseType(com.android.tools.r8.graph.DexItemFactory):519:524 -> c
    12:14:com.android.tools.r8.graph.DexType toBaseType(com.android.tools.r8.graph.DexItemFactory):523:525 -> c
    1:1:int compareTo(java.lang.Object):32:32 -> compareTo
    1:1:int computeHashCode():61:61 -> d
    2:12:void setLevel(int):79:89 -> d
    13:13:int compareTo(com.android.tools.r8.graph.DexType):395:395 -> d
    1:2:boolean isImmediateSubtypeOf(com.android.tools.r8.graph.DexType):626:627 -> e
    1:1:boolean isSamePackage(com.android.tools.r8.graph.DexType):328:328 -> f
    1:2:void flushCachedValues():374:375 -> flushCachedValues
    1:1:int slowCompareTo(com.android.tools.r8.graph.DexType):400:400 -> g
    1:4:java.lang.String getName():613:616 -> getName
    1:1:java.lang.String getPackageDescriptor():609:609 -> getPackageDescriptor
    1:1:boolean lambda$allExtendsSubtypes$1(com.android.tools.r8.graph.DexType):257:257 -> h
    com.android.tools.r8.graph.DexType asDexType() -> i
    1:1:boolean lambda$allImplementsSubtypes$2(com.android.tools.r8.graph.DexType):276:276 -> i
    1:11:java.util.Set implementedInterfaces(com.android.tools.r8.graph.DexDefinitionSupplier):297:307 -> implementedInterfaces
    12:12:java.util.Set implementedInterfaces(com.android.tools.r8.graph.DexDefinitionSupplier):306:306 -> implementedInterfaces
    1:1:boolean isArrayType():463:463 -> isArrayType
    1:1:boolean isBooleanType():431:431 -> isBooleanType
    1:1:boolean isIntType():447:447 -> isIntType
    1:3:boolean isInterface():114:116 -> isInterface
    1:1:boolean isStrictSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinitionSupplier):176:176 -> isStrictSubtypeOf
    1:1:boolean isSubtypeOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinitionSupplier):167:167 -> isSubtypeOf
    1:1:boolean isVoidType():427:427 -> isVoidType
    boolean isDexType() -> l
    1:8:java.lang.Iterable allExtendsSubtypes():252:259 -> m
    1:1:java.util.Set allImmediateSubtypes():237:237 -> n
    1:4:java.lang.Iterable allImplementsSubtypes():275:278 -> o
    1:16:int elementSizeForPrimitiveArrayType():491:506 -> p
    1:2:java.lang.String getInternalName():621:622 -> q
    1:1:int getNumberOfLeadingSquareBrackets():512:512 -> r
    1:3:com.android.tools.r8.graph.DexType getSingleSubtype():600:602 -> s
    4:4:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.getFirst(java.lang.Iterable,java.lang.Object):809:809 -> s
    4:4:com.android.tools.r8.graph.DexType getSingleSubtype():602 -> s
    5:5:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.getNext(java.util.Iterator,java.lang.Object):888:888 -> s
    5:5:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.getFirst(java.lang.Iterable,java.lang.Object):809 -> s
    5:5:com.android.tools.r8.graph.DexType getSingleSubtype():602 -> s
    6:6:com.android.tools.r8.graph.DexType getSingleSubtype():602:602 -> s
    1:1:boolean hasSubtypes():171:171 -> t
    1:1:java.lang.String toDescriptorString():332:332 -> toDescriptorString
    1:1:java.lang.String toSmaliString():355:355 -> toSmaliString
    1:9:java.lang.String toSourceString():337:345 -> toSourceString
    1:1:java.lang.String toString():360:360 -> toString
    1:1:boolean isByteType():435:435 -> u
    1:1:boolean isCharType():439:439 -> v
    1:1:boolean isClassType():468:468 -> w
    1:8:boolean isD8R8SynthesizedClassType():480:487 -> x
    1:1:boolean isDoubleType():459:459 -> y
    1:1:boolean isFloatType():451:451 -> z
com.android.tools.r8.graph.DexTypeList -> com.android.tools.r8.graph.DexTypeList:
    com.android.tools.r8.graph.DexTypeList theEmptyTypeList -> a
    boolean $assertionsDisabled -> b
    1:3:void <clinit>():12:14 -> <clinit>
    1:2:void <init>():22:23 -> <init>
    3:5:void <init>(com.android.tools.r8.graph.DexType[]):26:28 -> <init>
    1:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):39:40 -> a
    3:3:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):46:46 -> a
    4:16:int compareTo(com.android.tools.r8.graph.DexTypeList):80:92 -> a
    1:13:int slowCompareTo(com.android.tools.r8.graph.DexTypeList):96:108 -> b
    1:1:int compareTo(java.lang.Object):12:12 -> compareTo
    1:1:com.android.tools.r8.graph.DexTypeList empty():19:19 -> empty
    1:2:boolean equals(java.lang.Object):54:55 -> equals
    1:1:int hashCode():33:33 -> hashCode
    1:1:boolean isEmpty():59:59 -> isEmpty
    1:1:int size():63:63 -> size
    1:8:java.lang.String toString():68:75 -> toString
com.android.tools.r8.graph.DexValue -> com.android.tools.r8.graph.DexValue:
    com.android.tools.r8.graph.DexValue$UnknownDexValue UNKNOWN -> b
    com.android.tools.r8.graph.DexValue[] EMPTY_ARRAY -> a
    1:3:void <clinit>():25:27 -> <clinit>
    1:1:void <init>():24:24 -> <init>
    com.android.tools.r8.ir.code.Instruction asConstInstruction(boolean,com.android.tools.r8.ir.code.Value,com.android.tools.r8.utils.InternalOptions) -> a
    void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping) -> a
    1:22:com.android.tools.r8.graph.DexValue fromAsmBootstrapArgument(java.lang.Object,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):58:79 -> a
    23:36:com.android.tools.r8.graph.DexValue fromAsmBootstrapArgument(java.lang.Object,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexType):73:86 -> a
    37:37:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):97:97 -> a
    38:58:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):114:134 -> a
    59:75:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):116:132 -> a
    76:76:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):126:126 -> a
    77:83:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):124:130 -> a
    84:84:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):120:120 -> a
    85:85:com.android.tools.r8.graph.DexValue defaultForType(com.android.tools.r8.graph.DexType):118:118 -> a
    1:1:boolean isDefault(com.android.tools.r8.graph.DexType):147:147 -> b
    java.lang.Object asAsmEncodedObject() -> d
    com.android.tools.r8.graph.DexValue$DexValueMethodHandle asDexValueMethodHandle() -> e
    com.android.tools.r8.graph.DexValue$DexValueMethodType asDexValueMethodType() -> f
    java.lang.Object getBoxedValue() -> g
    boolean mayHaveSideEffects() -> h
    void sort() -> i
com.android.tools.r8.graph.DexValue$1 -> com.android.tools.r8.graph.y:
com.android.tools.r8.graph.DexValue$DexItemBasedValueString -> com.android.tools.r8.graph.DexValue$a:
    com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo classNameComputationInfo -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():759:759 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexReference):763:763 -> <init>
    2:3:void <init>(com.android.tools.r8.graph.DexReference,com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo):768:769 -> <init>
    2:3:void <init>(com.android.tools.r8.graph.DexReference):763 -> <init>
    4:5:void <init>(com.android.tools.r8.graph.DexReference,com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo):768:769 -> <init>
    1:1:void com.android.tools.r8.graph.DexValue$NestedDexValue.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):694:694 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):759 -> a
    2:6:com.android.tools.r8.ir.code.Instruction asConstInstruction(boolean,com.android.tools.r8.ir.code.Value,com.android.tools.r8.utils.InternalOptions):789:793 -> a
    7:7:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):799:799 -> a
    1:1:java.lang.Object asAsmEncodedObject():778:778 -> d
    1:1:boolean equals(java.lang.Object):759:759 -> equals
    1:1:java.lang.Object getBoxedValue():759:759 -> g
    1:1:com.android.tools.r8.graph.IndexedDexItem com.android.tools.r8.graph.DexValue$NestedDexValue.getValue():668:668 -> getValue
    1:1:com.android.tools.r8.graph.IndexedDexItem getValue():0 -> getValue
    1:1:int hashCode():759:759 -> hashCode
    void sort() -> i
    byte getValueKind() -> j
    1:1:com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo getClassNameComputationInfo():773:773 -> k
    1:1:java.lang.String toString():759:759 -> toString
com.android.tools.r8.graph.DexValue$DexValueAnnotation -> com.android.tools.r8.graph.DexValue$b:
    com.android.tools.r8.graph.DexEncodedAnnotation value -> c
    1:2:void <init>(com.android.tools.r8.graph.DexEncodedAnnotation):970:971 -> <init>
    1:1:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):91:91 -> a
    1:1:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):24 -> a
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):982 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):983:983 -> a
    3:3:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):977:977 -> a
    1:1:java.lang.Object asAsmEncodedObject():993:993 -> d
    1:3:boolean equals(java.lang.Object):1011:1013 -> equals
    1:1:java.lang.Object getBoxedValue():988:988 -> g
    1:1:int hashCode():1003:1003 -> hashCode
    1:1:void sort():998:998 -> i
    1:1:java.lang.String toString():1020:1020 -> toString
com.android.tools.r8.graph.DexValue$DexValueArray -> com.android.tools.r8.graph.DexValue$DexValueArray:
    com.android.tools.r8.graph.DexValue[] values -> c
    1:2:void <init>(com.android.tools.r8.graph.DexValue[]):903:904 -> <init>
    1:1:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):91:91 -> a
    1:1:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):24 -> a
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):919 -> a
    2:4:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):920:922 -> a
    5:5:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):914:914 -> a
    1:1:java.lang.Object asAsmEncodedObject():933:933 -> d
    1:3:boolean equals(java.lang.Object):953:955 -> equals
    1:1:java.lang.Object getBoxedValue():928:928 -> g
    1:1:com.android.tools.r8.graph.DexValue[] getValues():908:908 -> getValues
    1:1:int hashCode():945:945 -> hashCode
    1:2:void sort():938:939 -> i
    1:1:java.lang.String toString():962:962 -> toString
com.android.tools.r8.graph.DexValue$DexValueBoolean -> com.android.tools.r8.graph.DexValue$DexValueBoolean:
    com.android.tools.r8.graph.DexValue$DexValueBoolean TRUE -> d
    com.android.tools.r8.graph.DexValue$DexValueBoolean FALSE -> e
    com.android.tools.r8.graph.DexValue$DexValueBoolean DEFAULT -> f
    boolean value -> c
    1:4:void <clinit>():1072:1075 -> <clinit>
    1:2:void <init>(boolean):1079:1080 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:com.android.tools.r8.graph.DexValue$DexValueBoolean create(boolean):1084:1084 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1098:1098 -> a
    3:3:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):91:91 -> a
    3:3:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):24 -> a
    3:3:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1098 -> a
    4:4:com.android.tools.r8.ir.code.Instruction asConstInstruction(boolean,com.android.tools.r8.ir.code.Value,com.android.tools.r8.utils.InternalOptions):1127:1127 -> a
    1:1:java.lang.Object asAsmEncodedObject():1103:1103 -> d
    1:1:boolean equals(java.lang.Object):1116:1116 -> equals
    1:1:java.lang.Object getBoxedValue():1093:1093 -> g
    1:1:boolean getValue():1088:1088 -> getValue
    boolean mayHaveSideEffects() -> h
    1:1:int hashCode():1108:1108 -> hashCode
    void sort() -> i
    1:1:com.android.tools.r8.graph.DexValue$DexValueBoolean access$000():1070:1070 -> j
    1:1:java.lang.String toString():1121:1121 -> toString
com.android.tools.r8.graph.DexValue$DexValueByte -> com.android.tools.r8.graph.DexValue$DexValueByte:
    byte value -> c
    com.android.tools.r8.graph.DexValue$DexValueByte DEFAULT -> d
    1:1:void <clinit>():254:254 -> <clinit>
    1:2:void <init>(byte):258:259 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):91:91 -> a
    1:1:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):24 -> a
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):277 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):278:278 -> a
    3:3:com.android.tools.r8.graph.DexValue$DexValueByte create(byte):263:263 -> a
    4:4:com.android.tools.r8.ir.code.Instruction asConstInstruction(boolean,com.android.tools.r8.ir.code.Value,com.android.tools.r8.utils.InternalOptions):307:307 -> a
    1:1:java.lang.Object asAsmEncodedObject():283:283 -> d
    1:1:boolean equals(java.lang.Object):296:296 -> equals
    1:1:java.lang.Object getBoxedValue():272:272 -> g
    1:1:byte getValue():267:267 -> getValue
    boolean mayHaveSideEffects() -> h
    1:1:int hashCode():288:288 -> hashCode
    void sort() -> i
    1:1:java.lang.String toString():301:301 -> toString
com.android.tools.r8.graph.DexValue$DexValueChar -> com.android.tools.r8.graph.DexValue$DexValueChar:
    com.android.tools.r8.graph.DexValue$DexValueChar DEFAULT -> d
    char value -> c
    1:1:void <clinit>():370:370 -> <clinit>
    1:2:void <init>(char):373:374 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:com.android.tools.r8.graph.DexValue$DexValueChar create(char):378:378 -> a
    2:4:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):392:394 -> a
    5:5:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):91:91 -> a
    5:5:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):24 -> a
    5:5:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):395 -> a
    6:6:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):396:396 -> a
    7:7:com.android.tools.r8.ir.code.Instruction asConstInstruction(boolean,com.android.tools.r8.ir.code.Value,com.android.tools.r8.utils.InternalOptions):425:425 -> a
    1:1:java.lang.Object asAsmEncodedObject():401:401 -> d
    1:1:boolean equals(java.lang.Object):414:414 -> equals
    1:1:java.lang.Object getBoxedValue():387:387 -> g
    1:1:char getValue():382:382 -> getValue
    boolean mayHaveSideEffects() -> h
    1:1:int hashCode():406:406 -> hashCode
    void sort() -> i
    1:1:java.lang.String toString():419:419 -> toString
com.android.tools.r8.graph.DexValue$DexValueDouble -> com.android.tools.r8.graph.DexValue$DexValueDouble:
    com.android.tools.r8.graph.DexValue$DexValueDouble DEFAULT -> d
    double value -> c
    1:1:void <clinit>():602:602 -> <clinit>
    1:2:void <init>(double):606:607 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:com.android.tools.r8.graph.DexValue$DexValueDouble create(double):611:611 -> a
    2:4:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):625:627 -> a
    5:5:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):91:91 -> a
    5:5:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):24 -> a
    5:5:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):628 -> a
    6:6:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):629:629 -> a
    1:1:java.lang.Object asAsmEncodedObject():634:634 -> d
    1:2:boolean equals(java.lang.Object):647:648 -> equals
    1:1:java.lang.Object getBoxedValue():620:620 -> g
    1:1:double getValue():615:615 -> getValue
    boolean mayHaveSideEffects() -> h
    1:1:int hashCode():639:639 -> hashCode
    void sort() -> i
    1:1:java.lang.String toString():653:653 -> toString
com.android.tools.r8.graph.DexValue$DexValueEnum -> com.android.tools.r8.graph.DexValue$c:
    1:1:void <init>(com.android.tools.r8.graph.DexField):861:861 -> <init>
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):858:858 -> a
    2:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):872:872 -> a
    1:1:java.lang.Object asAsmEncodedObject():858:858 -> d
    1:1:boolean equals(java.lang.Object):858:858 -> equals
    1:1:java.lang.Object getBoxedValue():858:858 -> g
    1:1:int hashCode():858:858 -> hashCode
    void sort() -> i
    byte getValueKind() -> j
    1:1:java.lang.String toString():858:858 -> toString
com.android.tools.r8.graph.DexValue$DexValueField -> com.android.tools.r8.graph.DexValue$d:
    1:1:void <init>(com.android.tools.r8.graph.DexField):825:825 -> <init>
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):822:822 -> a
    2:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):836:836 -> a
    1:1:java.lang.Object asAsmEncodedObject():822:822 -> d
    1:1:boolean equals(java.lang.Object):822:822 -> equals
    1:1:java.lang.Object getBoxedValue():822:822 -> g
    1:1:int hashCode():822:822 -> hashCode
    void sort() -> i
    byte getValueKind() -> j
    1:1:java.lang.String toString():822:822 -> toString
com.android.tools.r8.graph.DexValue$DexValueFloat -> com.android.tools.r8.graph.DexValue$DexValueFloat:
    float value -> c
    com.android.tools.r8.graph.DexValue$DexValueFloat DEFAULT -> d
    1:1:void <clinit>():545:545 -> <clinit>
    1:2:void <init>(float):548:549 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:com.android.tools.r8.graph.DexValue$DexValueFloat create(float):553:553 -> a
    2:4:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):567:569 -> a
    5:5:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):91:91 -> a
    5:5:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):24 -> a
    5:5:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):570 -> a
    6:6:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):571:571 -> a
    1:1:java.lang.Object asAsmEncodedObject():576:576 -> d
    1:2:boolean equals(java.lang.Object):589:590 -> equals
    1:1:java.lang.Object getBoxedValue():562:562 -> g
    1:1:float getValue():557:557 -> getValue
    boolean mayHaveSideEffects() -> h
    1:1:int hashCode():581:581 -> hashCode
    void sort() -> i
    1:1:java.lang.String toString():595:595 -> toString
com.android.tools.r8.graph.DexValue$DexValueInt -> com.android.tools.r8.graph.DexValue$DexValueInt:
    int value -> c
    com.android.tools.r8.graph.DexValue$DexValueInt DEFAULT -> d
    1:1:void <clinit>():431:431 -> <clinit>
    1:2:void <init>(int):434:435 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):453:453 -> a
    2:2:com.android.tools.r8.ir.code.Instruction asConstInstruction(boolean,com.android.tools.r8.ir.code.Value,com.android.tools.r8.utils.InternalOptions):482:482 -> a
    1:1:com.android.tools.r8.graph.DexValue$DexValueInt create(int):439:439 -> c
    1:1:java.lang.Object asAsmEncodedObject():458:458 -> d
    1:1:boolean equals(java.lang.Object):471:471 -> equals
    1:1:java.lang.Object getBoxedValue():448:448 -> g
    1:1:int getValue():443:443 -> getValue
    boolean mayHaveSideEffects() -> h
    1:1:int hashCode():463:463 -> hashCode
    void sort() -> i
    1:1:java.lang.String toString():476:476 -> toString
com.android.tools.r8.graph.DexValue$DexValueLong -> com.android.tools.r8.graph.DexValue$DexValueLong:
    com.android.tools.r8.graph.DexValue$DexValueLong DEFAULT -> d
    long value -> c
    1:1:void <clinit>():488:488 -> <clinit>
    1:2:void <init>(long):491:492 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:com.android.tools.r8.graph.DexValue$DexValueLong create(long):496:496 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):510:510 -> a
    3:3:com.android.tools.r8.ir.code.Instruction asConstInstruction(boolean,com.android.tools.r8.ir.code.Value,com.android.tools.r8.utils.InternalOptions):539:539 -> a
    1:1:java.lang.Object asAsmEncodedObject():515:515 -> d
    1:1:boolean equals(java.lang.Object):528:528 -> equals
    1:1:java.lang.Object getBoxedValue():505:505 -> g
    1:1:long getValue():500:500 -> getValue
    boolean mayHaveSideEffects() -> h
    1:1:int hashCode():520:520 -> hashCode
    void sort() -> i
    1:1:java.lang.String toString():533:533 -> toString
com.android.tools.r8.graph.DexValue$DexValueMethod -> com.android.tools.r8.graph.DexValue$e:
    1:1:void <init>(com.android.tools.r8.graph.DexMethod):843:843 -> <init>
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):840:840 -> a
    2:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):854:854 -> a
    1:1:java.lang.Object asAsmEncodedObject():840:840 -> d
    1:1:boolean equals(java.lang.Object):840:840 -> equals
    1:1:java.lang.Object getBoxedValue():840:840 -> g
    1:1:int hashCode():840:840 -> hashCode
    void sort() -> i
    byte getValueKind() -> j
    1:1:java.lang.String toString():840:840 -> toString
com.android.tools.r8.graph.DexValue$DexValueMethodHandle -> com.android.tools.r8.graph.DexValue$f:
    1:1:void <init>(com.android.tools.r8.graph.DexMethodHandle):1134:1134 -> <init>
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1131:1131 -> a
    2:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):1150:1150 -> a
    1:1:java.lang.Object asAsmEncodedObject():1131:1131 -> d
    com.android.tools.r8.graph.DexValue$DexValueMethodHandle asDexValueMethodHandle() -> e
    1:1:boolean equals(java.lang.Object):1131:1131 -> equals
    1:1:java.lang.Object getBoxedValue():1131:1131 -> g
    1:1:int hashCode():1131:1131 -> hashCode
    void sort() -> i
    byte getValueKind() -> j
    1:1:java.lang.String toString():1131:1131 -> toString
com.android.tools.r8.graph.DexValue$DexValueMethodType -> com.android.tools.r8.graph.DexValue$g:
    1:1:void <init>(com.android.tools.r8.graph.DexProto):879:879 -> <init>
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):876:876 -> a
    2:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):895:895 -> a
    1:1:java.lang.Object asAsmEncodedObject():876:876 -> d
    1:1:boolean equals(java.lang.Object):876:876 -> equals
    com.android.tools.r8.graph.DexValue$DexValueMethodType asDexValueMethodType() -> f
    1:1:java.lang.Object getBoxedValue():876:876 -> g
    1:1:int hashCode():876:876 -> hashCode
    void sort() -> i
    byte getValueKind() -> j
    1:1:java.lang.String toString():876:876 -> toString
com.android.tools.r8.graph.DexValue$DexValueNull -> com.android.tools.r8.graph.DexValue$h:
    com.android.tools.r8.graph.DexValue NULL -> c
    1:1:void <clinit>():1026:1026 -> <clinit>
    1:1:void <init>():1029:1029 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):91:91 -> a
    1:1:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):24 -> a
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):1038 -> a
    java.lang.Object asAsmEncodedObject() -> d
    1:1:boolean equals(java.lang.Object):1061:1061 -> equals
    java.lang.Object getBoxedValue() -> g
    boolean mayHaveSideEffects() -> h
    void sort() -> i
com.android.tools.r8.graph.DexValue$DexValueShort -> com.android.tools.r8.graph.DexValue$DexValueShort:
    com.android.tools.r8.graph.DexValue$DexValueShort DEFAULT -> d
    short value -> c
    1:1:void <clinit>():313:313 -> <clinit>
    1:2:void <init>(short):316:317 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    1:1:com.android.tools.r8.graph.DexValue$DexValueShort create(short):321:321 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):335:335 -> a
    3:3:com.android.tools.r8.ir.code.Instruction asConstInstruction(boolean,com.android.tools.r8.ir.code.Value,com.android.tools.r8.utils.InternalOptions):364:364 -> a
    1:1:java.lang.Object asAsmEncodedObject():340:340 -> d
    1:1:boolean equals(java.lang.Object):353:353 -> equals
    1:1:java.lang.Object getBoxedValue():330:330 -> g
    1:1:short getValue():325:325 -> getValue
    boolean mayHaveSideEffects() -> h
    1:1:int hashCode():345:345 -> hashCode
    void sort() -> i
    1:1:java.lang.String toString():358:358 -> toString
com.android.tools.r8.graph.DexValue$DexValueString -> com.android.tools.r8.graph.DexValue$DexValueString:
    1:1:void <init>(com.android.tools.r8.graph.DexString):728:728 -> <init>
    1:1:void com.android.tools.r8.graph.DexValue$NestedDexValue.collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):694:694 -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):725 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):725:725 -> a
    3:5:com.android.tools.r8.ir.code.Instruction asConstInstruction(boolean,com.android.tools.r8.ir.code.Value,com.android.tools.r8.utils.InternalOptions):744:746 -> a
    1:1:java.lang.Object asAsmEncodedObject():733:733 -> d
    1:1:boolean equals(java.lang.Object):725:725 -> equals
    1:1:java.lang.Object getBoxedValue():725:725 -> g
    1:1:com.android.tools.r8.graph.IndexedDexItem com.android.tools.r8.graph.DexValue$NestedDexValue.getValue():668:668 -> getValue
    1:1:com.android.tools.r8.graph.IndexedDexItem getValue():0 -> getValue
    boolean mayHaveSideEffects() -> h
    1:1:int hashCode():725:725 -> hashCode
    void sort() -> i
    byte getValueKind() -> j
    1:1:java.lang.String toString():725:725 -> toString
com.android.tools.r8.graph.DexValue$DexValueType -> com.android.tools.r8.graph.DexValue$i:
    1:1:void <init>(com.android.tools.r8.graph.DexType):807:807 -> <init>
    1:1:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):804:804 -> a
    2:2:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):818:818 -> a
    1:1:java.lang.Object asAsmEncodedObject():804:804 -> d
    1:1:boolean equals(java.lang.Object):804:804 -> equals
    1:1:java.lang.Object getBoxedValue():804:804 -> g
    1:1:int hashCode():804:804 -> hashCode
    void sort() -> i
    byte getValueKind() -> j
    1:1:java.lang.String toString():804:804 -> toString
com.android.tools.r8.graph.DexValue$NestedDexValue -> com.android.tools.r8.graph.DexValue$NestedDexValue:
    1:2:void <init>(com.android.tools.r8.graph.IndexedDexItem):661:662 -> <init>
    1:2:void <init>(com.android.tools.r8.graph.IndexedDexItem,com.android.tools.r8.graph.DexValue$1):657 -> <init>
    1:5:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):673:677 -> a
    6:6:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):91:91 -> a
    6:6:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):24 -> a
    6:6:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):677 -> a
    7:7:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):678:678 -> a
    8:8:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):694:694 -> a
    1:1:java.lang.Object asAsmEncodedObject():688:688 -> d
    1:3:boolean equals(java.lang.Object):712:714 -> equals
    1:1:java.lang.Object getBoxedValue():683:683 -> g
    1:1:com.android.tools.r8.graph.IndexedDexItem getValue():668:668 -> getValue
    1:1:int hashCode():704:704 -> hashCode
    void sort() -> i
    byte getValueKind() -> j
    1:1:java.lang.String toString():721:721 -> toString
com.android.tools.r8.graph.DexValue$SimpleDexValue -> com.android.tools.r8.graph.DexValue$j:
    1:1:void <init>():223:223 -> <init>
    1:1:void <init>(com.android.tools.r8.graph.DexValue$1):223 -> <init>
    1:3:void writeIntegerTo(byte,long,int,com.android.tools.r8.dex.DexOutputBuffer):244:246 -> a
    4:4:void com.android.tools.r8.graph.DexValue.writeHeader(byte,int,com.android.tools.r8.dex.DexOutputBuffer):91:91 -> a
    4:4:void com.android.tools.r8.graph.DexValue.access$100(byte,int,com.android.tools.r8.dex.DexOutputBuffer):24 -> a
    4:4:void writeIntegerTo(byte,long,int,com.android.tools.r8.dex.DexOutputBuffer):247 -> a
    5:5:void writeIntegerTo(byte,long,int,com.android.tools.r8.dex.DexOutputBuffer):248:248 -> a
com.android.tools.r8.graph.DexValue$UnknownDexValue -> com.android.tools.r8.graph.DexValue$k:
    com.android.tools.r8.graph.DexValue$UnknownDexValue UNKNOWN -> c
    1:1:void <clinit>():165:165 -> <clinit>
    1:1:void <init>():167:167 -> <init>
    com.android.tools.r8.ir.code.Instruction asConstInstruction(boolean,com.android.tools.r8.ir.code.Value,com.android.tools.r8.utils.InternalOptions) -> a
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):173:173 -> a
    2:2:void writeTo(com.android.tools.r8.dex.DexOutputBuffer,com.android.tools.r8.graph.ObjectToOffsetMapping):188:188 -> a
    1:1:java.lang.Object asAsmEncodedObject():198:198 -> d
    1:1:java.lang.Object getBoxedValue():193:193 -> g
    boolean mayHaveSideEffects() -> h
    1:1:int hashCode():203:203 -> hashCode
    1:1:void sort():178:178 -> i
com.android.tools.r8.graph.DirectMappedDexApplication -> com.android.tools.r8.graph.DirectMappedDexApplication:
    com.android.tools.r8.com.google.common.collect.ImmutableList classpathClasses -> j
    com.android.tools.r8.com.google.common.collect.ImmutableList programClasses -> i
    boolean $assertionsDisabled -> l
    com.android.tools.r8.com.google.common.collect.ImmutableList libraryClasses -> k
    java.util.Map allClasses -> h
    1:1:void <clinit>():22:22 -> <clinit>
    1:12:void <init>(com.android.tools.r8.naming.ClassNameMapper,java.util.Map,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableSet,java.lang.String,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexString,com.android.tools.r8.utils.Timing):43:54 -> <init>
    1:12:void <init>(com.android.tools.r8.naming.ClassNameMapper,java.util.Map,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableSet,java.lang.String,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexString,com.android.tools.r8.utils.Timing,com.android.tools.r8.graph.DirectMappedDexApplication$1):22 -> <init>
    com.android.tools.r8.graph.DirectMappedDexApplication asDirect() -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$100(com.android.tools.r8.graph.DirectMappedDexApplication):22:22 -> a
    2:3:com.android.tools.r8.graph.DexProgramClass programDefinitionFor(com.android.tools.r8.graph.DexType):78:79 -> a
    4:5:com.android.tools.r8.graph.DirectMappedDexApplication rewrittenWithLense(com.android.tools.r8.graph.GraphLense):104:105 -> a
    6:12:boolean mappingIsValid(com.android.tools.r8.graph.GraphLense,java.lang.Iterable):113:119 -> a
    13:15:void addAll(java.util.Map,java.lang.Iterable):184:186 -> a
    13:15:void access$300(java.util.Map,java.lang.Iterable):22 -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$200(com.android.tools.r8.graph.DirectMappedDexApplication):22:22 -> b
    2:2:com.android.tools.r8.graph.DexApplication$Builder builder():22:22 -> b
    3:3:com.android.tools.r8.graph.DirectMappedDexApplication$Builder builder():84:84 -> b
    1:1:java.util.List programClasses():63:63 -> d
    1:2:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):72:73 -> definitionFor
    1:1:java.util.Collection allClasses():58:58 -> e
    1:1:java.util.Collection libraryClasses():67:67 -> f
com.android.tools.r8.graph.DirectMappedDexApplication$1 -> com.android.tools.r8.graph.z:
com.android.tools.r8.graph.DirectMappedDexApplication$Builder -> com.android.tools.r8.graph.DirectMappedDexApplication$a:
    boolean $assertionsDisabled -> m
    com.android.tools.r8.com.google.common.collect.ImmutableList classpathClasses -> l
    com.android.tools.r8.com.google.common.collect.ImmutableList libraryClasses -> k
    1:1:void <clinit>():125:125 -> <clinit>
    1:6:void <init>(com.android.tools.r8.graph.LazyLoadedDexApplication):131:136 -> <init>
    7:9:void <init>(com.android.tools.r8.graph.DirectMappedDexApplication):140:142 -> <init>
    7:9:void <init>(com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.DirectMappedDexApplication$1):125 -> <init>
    1:5:com.android.tools.r8.graph.DexApplication build():154:158 -> build
    6:25:com.android.tools.r8.graph.DexApplication build():155:174 -> build
    com.android.tools.r8.graph.DexApplication$Builder self() -> d
com.android.tools.r8.graph.EnclosingMethodAttribute -> com.android.tools.r8.graph.EnclosingMethodAttribute:
    com.android.tools.r8.graph.DexType enclosingClass -> a
    com.android.tools.r8.graph.DexMethod enclosingMethod -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():17:17 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexType):27:28 -> <init>
    3:4:void <init>(com.android.tools.r8.graph.DexMethod):31:32 -> <init>
    1:5:void write(com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.naming.NamingLens):36:40 -> a
    6:11:void write(com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.naming.NamingLens):37:42 -> a
    12:12:com.android.tools.r8.graph.DexType getEnclosingClass():51:51 -> a
    13:17:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection):68:72 -> a
    1:1:com.android.tools.r8.graph.DexMethod getEnclosingMethod():47:47 -> b
    1:1:boolean equals(java.lang.Object):62:62 -> equals
    1:2:int hashCode():56:57 -> hashCode
com.android.tools.r8.graph.FieldAccessFlags -> com.android.tools.r8.graph.FieldAccessFlags:
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():11:11 -> <clinit>
    1:1:void <init>(int,int):44:44 -> <init>
    1:1:void <init>(int):40 -> <init>
    1:6:java.util.List getNames():21:26 -> b
    1:6:java.util.List getPredicates():31:36 -> d
    1:2:com.android.tools.r8.graph.FieldAccessFlags fromSharedAccessFlags(int):58:59 -> fromSharedAccessFlags
    1:1:com.android.tools.r8.graph.FieldAccessFlags fromCfAccessFlags(int):67:67 -> g
    1:1:com.android.tools.r8.graph.FieldAccessFlags fromDexAccessFlags(int):63:63 -> h
    1:1:int getAsCfAccessFlags():72:72 -> q
    1:1:int getAsDexAccessFlags():77:77 -> r
    1:1:boolean isEnum():97:97 -> s
    1:1:boolean isTransient():89:89 -> t
    1:1:boolean isVolatile():81:81 -> u
com.android.tools.r8.graph.GraphLense -> com.android.tools.r8.graph.GraphLense:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():48:48 -> <clinit>
    1:1:void <init>():48:48 -> <init>
    com.android.tools.r8.graph.DexField getOriginalFieldSignature(com.android.tools.r8.graph.DexField) -> a
    com.android.tools.r8.graph.DexMethod getOriginalMethodSignature(com.android.tools.r8.graph.DexMethod) -> a
    com.android.tools.r8.graph.DexType getOriginalType(com.android.tools.r8.graph.DexType) -> a
    com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type) -> a
    1:1:com.android.tools.r8.graph.GraphLense$Builder builder():377:377 -> a
    2:11:com.android.tools.r8.graph.DexEncodedMethod mapDexEncodedMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexDefinitionSupplier):392:401 -> a
    12:18:com.android.tools.r8.graph.DexReference lookupReference(com.android.tools.r8.graph.DexReference):431:437 -> a
    19:24:boolean assertDefinitionsNotModified(java.lang.Iterable):466:471 -> a
    25:38:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap rewriteReferencesConservatively(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap):546:559 -> a
    39:57:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet rewriteMethodsConservatively(java.util.Set):591:609 -> a
    58:62:com.android.tools.r8.com.google.common.collect.ImmutableMap rewriteReferenceKeys(java.util.Map,java.util.function.Function):635:639 -> a
    63:93:boolean verifyMappingToOriginalProgram(java.lang.Iterable,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexItemFactory):656:686 -> a
    94:114:boolean verifyIsBridgeMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexApplication,java.util.Set,com.android.tools.r8.graph.DexItemFactory):705:725 -> a
    94:114:boolean verifyMappingToOriginalProgram(java.lang.Iterable,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexItemFactory):687 -> a
    115:119:boolean verifyMappingToOriginalProgram(java.lang.Iterable,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.DexItemFactory):686:690 -> a
    com.android.tools.r8.graph.DexField getRenamedFieldSignature(com.android.tools.r8.graph.DexField) -> b
    com.android.tools.r8.graph.DexMethod getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod) -> b
    boolean isContextFreeForMethods() -> b
    com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexType) -> b
    1:11:boolean assertReferencesNotModified(java.lang.Iterable):477:487 -> b
    12:17:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet rewriteMethodsWithRenamedSignature(java.util.Set):582:587 -> b
    com.android.tools.r8.graph.DexField lookupField(com.android.tools.r8.graph.DexField) -> c
    1:1:boolean isContextFreeForMethod(com.android.tools.r8.graph.DexMethod):454:454 -> c
    2:2:com.android.tools.r8.graph.GraphLense getIdentityLense():458:458 -> c
    2:2:boolean isIdentityLense():462 -> c
    3:16:com.android.tools.r8.com.google.common.collect.ImmutableSet rewriteReferencesConservatively(java.util.Set):511:524 -> c
    1:2:com.android.tools.r8.graph.DexMethod lookupMethod(com.android.tools.r8.graph.DexMethod):409:410 -> d
    1:6:java.util.Set lookupMethodInAllContexts(com.android.tools.r8.graph.DexMethod):420:425 -> e
    com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod) -> f
    1:1:com.android.tools.r8.graph.GraphLense getIdentityLense():458:458 -> getIdentityLense
com.android.tools.r8.graph.GraphLense$1 -> com.android.tools.r8.graph.A:
com.android.tools.r8.graph.GraphLense$Builder -> com.android.tools.r8.graph.GraphLense$a:
    java.util.Map typeMap -> a
    java.util.Map methodMap -> b
    java.util.Map fieldMap -> c
    com.android.tools.r8.com.google.common.collect.BiMap originalFieldSignatures -> d
    com.android.tools.r8.com.google.common.collect.BiMap originalMethodSignatures -> e
    1:8:void <init>():311:318 -> <init>
    1:1:void map(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):324:324 -> a
    2:2:void map(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):331:331 -> a
    3:3:void map(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):338:338 -> a
    4:7:com.android.tools.r8.graph.GraphLense build(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.GraphLense):362:365 -> a
    1:2:void move(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):345:346 -> b
    3:4:void move(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):353:354 -> b
com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult -> com.android.tools.r8.graph.GraphLense$b:
    com.android.tools.r8.ir.code.Invoke$Type type -> b
    com.android.tools.r8.graph.DexMethod method -> a
    1:3:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):60:62 -> <init>
    1:1:com.android.tools.r8.graph.DexMethod getMethod():66:66 -> a
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():70:70 -> b
com.android.tools.r8.graph.GraphLense$IdentityGraphLense -> com.android.tools.r8.graph.GraphLense$c:
    com.android.tools.r8.graph.GraphLense$IdentityGraphLense INSTANCE -> b
    1:1:void <clinit>():733:733 -> <clinit>
    1:1:void <init>():735:735 -> <init>
    com.android.tools.r8.graph.DexField getOriginalFieldSignature(com.android.tools.r8.graph.DexField) -> a
    com.android.tools.r8.graph.DexMethod getOriginalMethodSignature(com.android.tools.r8.graph.DexMethod) -> a
    com.android.tools.r8.graph.DexType getOriginalType(com.android.tools.r8.graph.DexType) -> a
    1:1:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):773:773 -> a
    com.android.tools.r8.graph.DexField getRenamedFieldSignature(com.android.tools.r8.graph.DexField) -> b
    com.android.tools.r8.graph.DexMethod getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod) -> b
    boolean isContextFreeForMethods() -> b
    com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexType) -> b
    com.android.tools.r8.graph.DexField lookupField(com.android.tools.r8.graph.DexField) -> c
    1:1:com.android.tools.r8.graph.GraphLense$IdentityGraphLense getInstance():738:738 -> d
    1:1:com.android.tools.r8.graph.GraphLense$IdentityGraphLense access$100():731 -> d
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):778:778 -> f
com.android.tools.r8.graph.GraphLense$NestedGraphLense -> com.android.tools.r8.graph.GraphLense$d:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> c
    java.util.Map typeMap -> d
    boolean $assertionsDisabled -> j
    com.android.tools.r8.graph.GraphLense previousLense -> b
    com.android.tools.r8.com.google.common.collect.BiMap originalFieldSignatures -> h
    com.android.tools.r8.com.google.common.collect.BiMap originalMethodSignatures -> i
    java.util.Map arrayTypeCache -> e
    java.util.Map methodMap -> f
    java.util.Map fieldMap -> g
    1:1:void <clinit>():802:802 -> <clinit>
    1:1:void <init>(java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexItemFactory):830:830 -> <init>
    2:26:void <init>(java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexItemFactory):808:832 -> <init>
    27:35:void <init>(java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexItemFactory):831:839 -> <init>
    1:1:com.android.tools.r8.graph.DexType getOriginalType(com.android.tools.r8.graph.DexType):844:844 -> a
    2:5:com.android.tools.r8.graph.DexField getOriginalFieldSignature(com.android.tools.r8.graph.DexField):850:853 -> a
    6:9:com.android.tools.r8.graph.DexMethod getOriginalMethodSignature(com.android.tools.r8.graph.DexMethod):859:862 -> a
    10:21:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):907:918 -> a
    22:35:com.android.tools.r8.ir.code.Invoke$Type mapVirtualInterfaceInvocationTypes(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):946:959 -> a
    com.android.tools.r8.ir.code.Invoke$Type mapInvocationType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type) -> b
    1:3:com.android.tools.r8.graph.DexField getRenamedFieldSignature(com.android.tools.r8.graph.DexField):867:869 -> b
    4:6:com.android.tools.r8.graph.DexMethod getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):875:877 -> b
    7:25:com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexType):883:901 -> b
    26:26:boolean isContextFreeForMethods():981:981 -> b
    1:2:com.android.tools.r8.graph.DexField lookupField(com.android.tools.r8.graph.DexField):975:976 -> c
    3:3:boolean isContextFreeForMethod(com.android.tools.r8.graph.DexMethod):986:986 -> c
    boolean isLegitimateToHaveEmptyMappings() -> d
    1:3:java.util.Set lookupMethodInAllContexts(com.android.tools.r8.graph.DexMethod):966:968 -> e
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):923:923 -> f
    1:17:java.lang.String toString():991:1007 -> toString
com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription -> com.android.tools.r8.graph.GraphLense$e:
    boolean hasBeenChangedToReturnVoid -> a
    com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription none -> c
    com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo removedArgumentsInfo -> b
    boolean $assertionsDisabled -> d
    1:149:void <clinit>():74:222 -> <clinit>
    150:150:void <init>():228:228 -> <clinit>
    150:150:void <clinit>():222 -> <clinit>
    151:151:void <clinit>():222:222 -> <clinit>
    1:4:void <init>(boolean,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):232:235 -> <init>
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo getRemovedArgumentsInfo():251:251 -> a
    2:4:com.android.tools.r8.ir.code.ConstInstruction getConstantReturn(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Position):264:266 -> a
    5:6:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription withRemovedArguments(com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):304:305 -> a
    1:1:boolean hasBeenChangedToReturnVoid():247:247 -> b
    1:1:boolean isEmpty():243:243 -> c
    2:2:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo getRemovedArgumentsInfo():251:251 -> c
    2:2:boolean isEmpty():243 -> c
    3:3:boolean isEmpty():243:243 -> c
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription none():239:239 -> d
    1:2:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription withConstantReturn():298:299 -> e
com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo -> com.android.tools.r8.graph.GraphLense$e$a:
    com.android.tools.r8.graph.DexType type -> c
    boolean isAlwaysNull -> b
    int argumentIndex -> a
    1:4:void <init>(int,boolean,com.android.tools.r8.graph.DexType):110:113 -> <init>
    5:8:void <init>(int,boolean,com.android.tools.r8.graph.DexType):110:113 -> <init>
    5:8:void <init>(int,boolean,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.GraphLense$1):76 -> <init>
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo$Builder builder():117:117 -> a
    2:3:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo withArgumentIndex(int):137:138 -> a
    1:1:int getArgumentIndex():121:121 -> b
    1:1:com.android.tools.r8.graph.DexType getType():125:125 -> c
    1:1:boolean isAlwaysNull():129:129 -> d
    1:1:boolean isNeverUsed():133:133 -> e
com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo$Builder -> com.android.tools.r8.graph.GraphLense$e$a$a:
    com.android.tools.r8.graph.DexType type -> c
    boolean isAlwaysNull -> b
    boolean $assertionsDisabled -> d
    int argumentIndex -> a
    1:1:void <clinit>():78:78 -> <clinit>
    1:5:void <init>():78:82 -> <init>
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo$Builder setArgumentIndex(int):85:85 -> a
    2:2:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo$Builder setType(com.android.tools.r8.graph.DexType):95:95 -> a
    3:5:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo build():100:102 -> a
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo$Builder setIsAlwaysNull():90:90 -> b
com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo -> com.android.tools.r8.graph.GraphLense$e$b:
    java.util.List removedArguments -> a
    com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo empty -> b
    boolean $assertionsDisabled -> c
    1:3:void <clinit>():143:145 -> <clinit>
    1:2:void <init>(java.util.List):149:150 -> <init>
    3:8:boolean verifyRemovedArguments(java.util.List):155:160 -> <init>
    3:8:void <init>(java.util.List):150 -> <init>
    9:9:void <init>(java.util.List):151:151 -> <init>
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo empty():168:168 -> a
    2:4:boolean isArgumentRemoved(int):182:184 -> a
    5:26:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo combine(com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):197:218 -> a
    1:1:boolean hasRemovedArguments():178:178 -> b
    1:3:java.util.ListIterator iterator():172:174 -> c
    1:1:int numberOfRemovedArguments():193:193 -> d
com.android.tools.r8.graph.IndexedDexItem -> com.android.tools.r8.graph.IndexedDexItem:
    boolean $assertionsDisabled -> b
    int sortedIndex -> a
    1:1:void <clinit>():12:12 -> <clinit>
    1:4:void <init>():12:15 -> <init>
    void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int) -> a
    int getOffset(com.android.tools.r8.graph.ObjectToOffsetMapping) -> a
    1:1:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):24:24 -> a
    1:3:void setSortedIndex(int):33:35 -> b
    1:3:int sortedCompareTo(int):45:47 -> c
    1:1:int getSortedIndex():40:40 -> e
    1:1:void resetSortedIndex():57:57 -> f
    1:2:void flushCachedValues():52:53 -> flushCachedValues
com.android.tools.r8.graph.InnerClassAttribute -> com.android.tools.r8.graph.B:
    com.android.tools.r8.graph.DexString innerName -> d
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.DexType outer -> c
    com.android.tools.r8.graph.DexType inner -> b
    int access -> a
    1:1:void <clinit>():12:12 -> <clinit>
    1:6:void <init>(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):32:37 -> <init>
    1:1:int getAccess():49:49 -> a
    2:6:void write(com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions):65:69 -> a
    7:7:void write(com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.utils.InternalOptions):66:66 -> a
    8:13:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection):74:79 -> a
    1:1:com.android.tools.r8.graph.DexType getInner():53:53 -> b
    1:1:com.android.tools.r8.graph.DexString getInnerName():61:61 -> c
    1:1:com.android.tools.r8.graph.DexType getOuter():57:57 -> d
    1:1:boolean isAnonymous():45:45 -> e
    1:1:boolean isNamed():41:41 -> f
com.android.tools.r8.graph.JarApplicationReader -> com.android.tools.r8.graph.C:
    java.util.concurrent.ConcurrentHashMap stringCache -> d
    com.android.tools.r8.utils.InternalOptions options -> a
    java.util.concurrent.ConcurrentHashMap asmTypeCache -> c
    java.util.concurrent.ConcurrentHashMap asmObjectTypeCache -> b
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():20:20 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions):27:27 -> <init>
    2:7:void <init>(com.android.tools.r8.utils.InternalOptions):23:28 -> <init>
    1:1:com.android.tools.r8.graph.DexItemFactory getFactory():40:40 -> a
    2:2:com.android.tools.r8.graph.DexType getType(com.android.tools.r8.org.objectweb.asm.Type):48:48 -> a
    3:10:com.android.tools.r8.graph.DexTypeList getTypeListFromNames(java.lang.String[]):62:69 -> a
    11:11:com.android.tools.r8.graph.DexField getField(java.lang.String,java.lang.String,java.lang.String):84:84 -> a
    12:12:com.android.tools.r8.graph.DexField getField(com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String):88:88 -> a
    13:15:int getArgumentCount(java.lang.String):156:158 -> a
    1:1:com.android.tools.r8.graph.DexMethod getMethod(java.lang.String,java.lang.String,java.lang.String):92:92 -> b
    2:2:com.android.tools.r8.graph.DexMethod getMethod(com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String):96:96 -> b
    3:7:com.android.tools.r8.org.objectweb.asm.Type[] getArgumentTypes(java.lang.String):168:172 -> b
    1:1:com.android.tools.r8.org.objectweb.asm.Type getAsmObjectType(java.lang.String):32:32 -> c
    1:1:com.android.tools.r8.org.objectweb.asm.Type getAsmType(java.lang.String):36:36 -> d
    1:1:com.android.tools.r8.graph.DexProto getProto(java.lang.String):112:112 -> e
    2:2:boolean isValidDescriptor(java.lang.String):136:136 -> e
    2:2:com.android.tools.r8.graph.DexProto getProto(java.lang.String):112 -> e
    3:13:com.android.tools.r8.graph.DexProto getProto(java.lang.String):112:122 -> e
    14:21:com.android.tools.r8.graph.DexTypeList getTypeListFromDescriptors(java.lang.String[]):73:80 -> e
    14:21:com.android.tools.r8.graph.DexProto getProto(java.lang.String):123 -> e
    22:22:com.android.tools.r8.graph.DexProto getProto(java.lang.String):120:120 -> e
    1:1:com.android.tools.r8.org.objectweb.asm.Type getReturnType(java.lang.String):144:144 -> f
    1:1:com.android.tools.r8.graph.DexString getString(java.lang.String):44:44 -> g
    1:1:com.android.tools.r8.graph.DexType getTypeFromDescriptor(java.lang.String):57:57 -> h
    2:2:boolean isValidDescriptor(java.lang.String):136:136 -> h
    2:2:com.android.tools.r8.graph.DexType getTypeFromDescriptor(java.lang.String):57 -> h
    3:4:com.android.tools.r8.graph.DexType getTypeFromDescriptor(java.lang.String):57:58 -> h
    1:1:com.android.tools.r8.graph.DexType getTypeFromName(java.lang.String):52:52 -> i
    2:2:boolean isValidInternalName(java.lang.String):140:140 -> i
    2:2:com.android.tools.r8.graph.DexType getTypeFromName(java.lang.String):52 -> i
    3:4:com.android.tools.r8.graph.DexType getTypeFromName(java.lang.String):52:53 -> i
    1:35:java.lang.String[] getArgumentTypeDescriptors(java.lang.String):178:212 -> j
    36:41:java.lang.String[] getArgumentTypeDescriptors(java.lang.String):199:204 -> j
    42:65:java.lang.String[] getArgumentTypeDescriptors(java.lang.String):186:209 -> j
    66:66:java.lang.String[] getArgumentTypeDescriptors(java.lang.String):195:195 -> j
    1:2:java.lang.String getReturnTypeDescriptor(java.lang.String):148:149 -> k
    1:4:java.lang.String getShortyDescriptor(java.lang.String):128:131 -> l
    1:1:com.android.tools.r8.org.objectweb.asm.Type lambda$getAsmObjectType$0(java.lang.String):32:32 -> m
    1:1:com.android.tools.r8.org.objectweb.asm.Type lambda$getAsmType$1(java.lang.String):36:36 -> n
com.android.tools.r8.graph.JarClassFileReader -> com.android.tools.r8.graph.D:
    java.util.function.Consumer classConsumer -> b
    com.android.tools.r8.graph.JarApplicationReader application -> a
    byte[] CLASSFILE_HEADER -> c
    boolean $assertionsDisabled -> d
    1:3:void <clinit>():63:65 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.JarApplicationReader,java.util.function.Consumer):74:76 -> <init>
    int access$000(int) -> a
    1:1:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor access$100(java.lang.String,boolean,java.util.List,com.android.tools.r8.graph.JarApplicationReader):63:63 -> a
    2:2:com.android.tools.r8.graph.DexEncodedAnnotation access$1700(java.lang.String,java.util.List,java.util.List,com.android.tools.r8.graph.JarApplicationReader):63:63 -> a
    3:12:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):80:89 -> a
    13:13:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):29:29 -> a
    13:13:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):89 -> a
    14:23:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):89:98 -> a
    24:31:byte[] com.android.tools.r8.org.objectweb.asm.ClassReader.readStream(java.io.InputStream,boolean):303:310 -> a
    24:31:void com.android.tools.r8.org.objectweb.asm.ClassReader.<init>(java.io.InputStream):273 -> a
    24:31:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):98 -> a
    32:32:void com.android.tools.r8.org.objectweb.asm.ClassReader.<init>(java.io.InputStream):273:273 -> a
    32:32:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):98 -> a
    33:40:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):104:111 -> a
    41:41:void com.android.tools.r8.org.objectweb.asm.ClassReader.accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,int):391:391 -> a
    41:41:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):111 -> a
    42:48:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):116:122 -> a
    49:53:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):120:124 -> a
    54:54:byte[] com.android.tools.r8.org.objectweb.asm.ClassReader.readStream(java.io.InputStream,boolean):315:315 -> a
    54:54:void com.android.tools.r8.org.objectweb.asm.ClassReader.<init>(java.io.InputStream):273 -> a
    54:54:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):98 -> a
    55:55:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):94:94 -> a
    56:56:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):29:29 -> a
    56:56:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):94 -> a
    57:57:void read(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,java.io.InputStream):94:94 -> a
    58:60:com.android.tools.r8.graph.MethodAccessFlags createMethodAccessFlags(java.lang.String,int):139:141 -> a
    61:62:void lambda$createAnnotationVisitor$0(java.util.List,int,java.lang.String,com.android.tools.r8.graph.JarApplicationReader,java.util.List,java.util.List):150:151 -> a
    63:63:void lambda$createAnnotationVisitor$0(java.util.List,int,java.lang.String,com.android.tools.r8.graph.JarApplicationReader,java.util.List,java.util.List):150:150 -> a
    64:66:com.android.tools.r8.graph.DexAnnotationSet createAnnotationSet(java.util.List):417:419 -> a
    64:66:com.android.tools.r8.graph.DexAnnotationSet access$200(java.util.List):63 -> a
    67:67:com.android.tools.r8.graph.DexAnnotationSet createAnnotationSet(java.util.List):418:418 -> a
    67:67:com.android.tools.r8.graph.DexAnnotationSet access$200(java.util.List):63 -> a
    1:3:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor createAnnotationVisitor(java.lang.String,boolean,java.util.List,com.android.tools.r8.graph.JarApplicationReader):147:149 -> b
    4:5:com.android.tools.r8.graph.DexEncodedAnnotation createEncodedAnnotation(java.lang.String,java.util.List,java.util.List,com.android.tools.r8.graph.JarApplicationReader):156:157 -> b
    6:12:com.android.tools.r8.graph.DexEncodedAnnotation createEncodedAnnotation(java.lang.String,java.util.List,java.util.List,com.android.tools.r8.graph.JarApplicationReader):156:162 -> b
com.android.tools.r8.graph.JarClassFileReader$CreateAnnotationVisitor -> com.android.tools.r8.graph.D$a:
    java.util.List values -> e
    java.util.List names -> d
    com.android.tools.r8.graph.JarApplicationReader application -> b
    boolean $assertionsDisabled -> f
    java.util.function.BiConsumer onVisitEnd -> c
    1:1:void <clinit>():732:732 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.JarApplicationReader,java.util.function.BiConsumer):741:741 -> <init>
    2:9:void <init>(com.android.tools.r8.graph.JarApplicationReader,java.util.function.BiConsumer):736:743 -> <init>
    1:2:void visitEnum(java.lang.String,java.lang.String,java.lang.String):753:754 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,java.lang.String):759:759 -> a
    4:5:void lambda$visitAnnotation$0(java.lang.String,java.lang.String,java.util.List,java.util.List):760:761 -> a
    6:6:void lambda$visitAnnotation$0(java.lang.String,java.lang.String,java.util.List,java.util.List):760:760 -> a
    7:7:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitArray(java.lang.String):766:766 -> a
    8:9:void lambda$visitArray$1(java.lang.String,java.util.List,java.util.List):767:768 -> a
    10:10:void visitEnd():774:774 -> a
    11:16:void addElement(java.lang.String,com.android.tools.r8.graph.DexValue):779:784 -> a
    17:38:com.android.tools.r8.graph.DexValue getDexValue(java.lang.Object):850:871 -> a
    17:38:void visit(java.lang.String,java.lang.Object):748 -> a
    39:94:com.android.tools.r8.graph.DexValue$DexValueArray getDexValueArray(java.lang.Object):788:843 -> a
    39:94:com.android.tools.r8.graph.DexValue getDexValue(java.lang.Object):873 -> a
    39:94:void visit(java.lang.String,java.lang.Object):748 -> a
    95:95:void visit(java.lang.String,java.lang.Object):748:748 -> a
    96:96:com.android.tools.r8.graph.DexValue$DexValueArray getDexValueArray(java.lang.Object):845:845 -> a
    96:96:com.android.tools.r8.graph.DexValue getDexValue(java.lang.Object):873 -> a
    96:96:void visit(java.lang.String,java.lang.Object):748 -> a
com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor -> com.android.tools.r8.graph.D$b:
    com.android.tools.r8.graph.ClassKind classKind -> d
    java.util.List staticFields -> r
    java.util.Set methodSignatures -> w
    com.android.tools.r8.graph.DexType superType -> k
    java.util.List defaultAnnotations -> q
    java.util.List annotations -> p
    com.android.tools.r8.graph.DexType type -> i
    java.util.List innerClasses -> o
    java.util.List virtualMethods -> v
    com.android.tools.r8.graph.ClassAccessFlags accessFlags -> j
    java.util.Set fieldSignatures -> t
    java.util.List directMethods -> u
    int version -> h
    java.util.List instanceFields -> s
    com.android.tools.r8.graph.EnclosingMethodAttribute enclosingMember -> n
    boolean hasReachabilitySensitiveMethod -> x
    boolean $assertionsDisabled -> y
    com.android.tools.r8.origin.Origin origin -> c
    com.android.tools.r8.graph.JarApplicationReader application -> e
    com.android.tools.r8.graph.DexTypeList interfaces -> l
    java.util.function.Consumer classConsumer -> f
    com.android.tools.r8.graph.JarClassFileReader$ReparseContext context -> g
    com.android.tools.r8.graph.DexString sourceFile -> m
    1:1:void <clinit>():165:165 -> <clinit>
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,byte[],com.android.tools.r8.graph.JarApplicationReader,java.util.function.Consumer):198:198 -> <init>
    2:34:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.ClassKind,byte[],com.android.tools.r8.graph.JarApplicationReader,java.util.function.Consumer):171:203 -> <init>
    void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute) -> a
    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean) -> a
    1:1:com.android.tools.r8.graph.JarClassFileReader$ReparseContext access$1000(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):165:165 -> a
    2:2:boolean access$1376(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor,int):165:165 -> a
    3:8:void visitInnerClass(java.lang.String,java.lang.String,java.lang.String,int):208:213 -> a
    9:9:void visitInnerClass(java.lang.String,java.lang.String,java.lang.String,int):208:208 -> a
    10:15:void visitOuterClass(java.lang.String,java.lang.String,java.lang.String):219:224 -> a
    16:16:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):240:240 -> a
    17:18:java.lang.String illegalClassFilePrefix(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String):228:229 -> a
    17:18:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):240 -> a
    19:19:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):240:240 -> a
    20:20:java.lang.String illegalClassFilePostfix(int):235:235 -> a
    20:20:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):242 -> a
    21:21:java.lang.String illegalClassFileMessage(com.android.tools.r8.graph.ClassAccessFlags,java.lang.String,int,java.lang.String):242:242 -> a
    22:27:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):248:253 -> a
    28:28:int getMajorVersion():408:408 -> a
    28:28:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):253 -> a
    29:43:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):253:267 -> a
    44:52:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):266:274 -> a
    53:53:void addAnnotation(com.android.tools.r8.graph.DexAnnotation):397:397 -> a
    53:53:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):274 -> a
    54:56:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):254:256 -> a
    57:57:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):255:255 -> a
    58:63:void visitSource(java.lang.String,java.lang.String):281:286 -> a
    64:67:com.android.tools.r8.graph.DexAnnotation com.android.tools.r8.graph.DexAnnotation.createSourceDebugExtensionAnnotation(com.android.tools.r8.graph.DexValue,com.android.tools.r8.graph.DexItemFactory):175:178 -> a
    64:67:void visitSource(java.lang.String,java.lang.String):285 -> a
    68:68:void visitSource(java.lang.String,java.lang.String):284:284 -> a
    69:69:com.android.tools.r8.org.objectweb.asm.FieldVisitor visitField(int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):293:293 -> a
    70:70:com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):299:299 -> a
    71:71:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):304:304 -> a
    72:74:void visitEnd():321:323 -> a
    75:75:void visitEnd():322:322 -> a
    76:76:void addAnnotation(com.android.tools.r8.graph.DexAnnotation):397:397 -> a
    76:76:void visitEnd():322 -> a
    77:77:void checkReachabilitySensitivity():354:354 -> a
    77:77:void visitEnd():325 -> a
    78:88:boolean hasReachabilitySensitiveField():371:381 -> a
    78:88:void checkReachabilitySensitivity():354 -> a
    78:88:void visitEnd():325 -> a
    89:98:void checkReachabilitySensitivity():355:364 -> a
    89:98:void visitEnd():325 -> a
    99:115:void visitEnd():326:342 -> a
    116:136:void visitEnd():327:347 -> a
    137:140:void addDefaultAnnotation(java.lang.String,com.android.tools.r8.graph.DexValue):390:393 -> a
    137:140:void access$1600(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):165 -> a
    1:1:int access$1100(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):165:165 -> b
    2:5:java.util.List getAnnotations():401:404 -> b
    1:1:java.util.Set access$1200(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):165:165 -> c
    1:1:java.util.List access$1400(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):165:165 -> d
    1:1:java.util.List access$1500(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):165:165 -> e
    1:1:com.android.tools.r8.graph.JarApplicationReader access$300(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):165:165 -> f
    1:1:com.android.tools.r8.graph.DexType access$400(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):165:165 -> g
    1:1:java.util.Set access$500(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):165:165 -> h
    1:1:java.util.List access$600(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):165:165 -> i
    1:1:java.util.List access$700(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):165:165 -> j
    1:1:com.android.tools.r8.graph.ClassKind access$800(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):165:165 -> k
    1:1:com.android.tools.r8.origin.Origin access$900(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):165:165 -> l
com.android.tools.r8.graph.JarClassFileReader$CreateFieldVisitor -> com.android.tools.r8.graph.D$c:
    com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor parent -> b
    java.lang.Object value -> f
    boolean $assertionsDisabled -> h
    java.util.List annotations -> g
    int access -> c
    java.lang.String desc -> e
    java.lang.String name -> d
    1:1:void <clinit>():422:422 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor,int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):433:433 -> <init>
    2:14:void <init>(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor,int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):429:441 -> <init>
    15:15:void <init>(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor,int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):440:440 -> <init>
    16:16:void addAnnotation(com.android.tools.r8.graph.DexAnnotation):516:516 -> <init>
    16:16:void <init>(com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor,int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):440 -> <init>
    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean) -> a
    1:6:void visitEnd():459:464 -> a
    7:37:com.android.tools.r8.graph.DexValue getStaticValue(java.lang.Object,com.android.tools.r8.graph.DexType):482:512 -> a
    7:37:void visitEnd():464 -> a
    38:47:void visitEnd():465:474 -> a
    48:48:void visitEnd():472:472 -> a
    49:52:java.util.List getAnnotations():520:523 -> a
    49:52:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):447 -> a
    53:53:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):447:447 -> a
    1:4:java.util.List getAnnotations():520:523 -> b
com.android.tools.r8.graph.JarClassFileReader$CreateMethodVisitor -> com.android.tools.r8.graph.D$d:
    boolean $assertionsDisabled -> o
    com.android.tools.r8.graph.DexMethod method -> l
    com.android.tools.r8.graph.MethodAccessFlags flags -> m
    int annotableParameterCount -> h
    com.android.tools.r8.graph.Code code -> n
    int parameterCount -> e
    com.android.tools.r8.graph.DexValue defaultAnnotation -> g
    com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor parent -> d
    java.util.List annotations -> f
    java.util.List parameterNames -> j
    java.util.List parameterAnnotationsLists -> i
    java.lang.String name -> c
    java.util.List parameterFlags -> k
    1:1:void <clinit>():527:527 -> <clinit>
    1:1:void <init>(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):544:544 -> <init>
    2:26:void <init>(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):532:556 -> <init>
    27:27:void <init>(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):555:555 -> <init>
    28:28:void addAnnotation(com.android.tools.r8.graph.DexAnnotation):728:728 -> <init>
    28:28:void <init>(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):555 -> <init>
    29:31:void <init>(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):558:560 -> <init>
    32:32:void <init>(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):559:559 -> <init>
    33:33:void addAnnotation(com.android.tools.r8.graph.DexAnnotation):728:728 -> <init>
    33:33:void <init>(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],com.android.tools.r8.graph.JarClassFileReader$CreateDexClassVisitor):559 -> <init>
    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean) -> a
    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitLocalVariableAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.Label[],com.android.tools.r8.org.objectweb.asm.Label[],int[],java.lang.String,boolean) -> a
    1:1:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):566:566 -> a
    2:2:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotationDefault():571:571 -> a
    3:4:void lambda$visitAnnotationDefault$0(java.util.List,java.util.List):572:573 -> a
    5:11:void visitAnnotableParameterCount(int,boolean):586:592 -> a
    12:23:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitParameterAnnotation(int,java.lang.String,boolean):597:608 -> a
    24:24:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitParameterAnnotation(int,java.lang.String,boolean):607:607 -> a
    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTryCatchAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean) -> b
    1:8:void visitParameter(java.lang.String,int):634:641 -> b
    9:9:void visitCode():646:646 -> b
    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean) -> c
    1:16:void visitEnd():651:666 -> c
    17:17:void com.android.tools.r8.graph.ParameterAnnotationsList.<init>(com.android.tools.r8.graph.DexAnnotationSet[]):54:54 -> c
    17:17:void visitEnd():666 -> c
    18:23:void visitEnd():668:673 -> c
    24:30:void visitEnd():672:678 -> c
    31:39:com.android.tools.r8.graph.DexAnnotation com.android.tools.r8.graph.DexAnnotation.createMethodParametersAnnotation(com.android.tools.r8.graph.DexValue[],com.android.tools.r8.graph.DexValue[],com.android.tools.r8.graph.DexItemFactory):184:192 -> c
    31:39:void visitEnd():675 -> c
    40:55:void visitEnd():675:690 -> c
    56:58:boolean isReachabilitySensitive():711:713 -> c
    56:58:void visitEnd():690 -> c
    59:63:void visitEnd():690:694 -> c
    64:74:void visitEnd():692:702 -> c
    75:75:void visitEnd():699:699 -> c
    76:84:void visitEnd():697:705 -> c
    1:4:java.util.List getAnnotations():721:724 -> d
com.android.tools.r8.graph.JarClassFileReader$ReparseContext -> com.android.tools.r8.graph.E:
    byte[] classCache -> a
    com.android.tools.r8.graph.DexProgramClass owner -> b
    java.util.List codeList -> c
    1:8:void <init>():877:884 -> <init>
com.android.tools.r8.graph.JarCode -> com.android.tools.r8.graph.JarCode:
    com.android.tools.r8.graph.JarClassFileReader$ReparseContext context -> e
    com.android.tools.r8.graph.JarApplicationReader application -> f
    com.android.tools.r8.origin.Origin origin -> c
    boolean reachabilitySensitive -> g
    boolean $assertionsDisabled -> h
    com.android.tools.r8.graph.DexMethod method -> b
    com.android.tools.r8.org.objectweb.asm.tree.MethodNode node -> d
    1:1:void <clinit>():42:42 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.JarClassFileReader$ReparseContext,com.android.tools.r8.graph.JarApplicationReader):57:57 -> <init>
    2:10:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.JarClassFileReader$ReparseContext,com.android.tools.r8.graph.JarApplicationReader):54:62 -> <init>
    1:1:com.android.tools.r8.graph.DexMethod access$100(com.android.tools.r8.graph.JarCode):42:42 -> a
    2:2:com.android.tools.r8.org.objectweb.asm.tree.MethodNode access$202(com.android.tools.r8.graph.JarCode,com.android.tools.r8.org.objectweb.asm.tree.MethodNode):42:42 -> a
    3:6:boolean keepLocals(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.InternalOptions):177:180 -> a
    7:16:com.android.tools.r8.ir.code.IRCode internalBuild(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position):192:201 -> a
    17:29:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):296:308 -> a
    30:30:void com.android.tools.r8.org.objectweb.asm.ClassReader.accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,int):391:391 -> a
    30:30:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):308 -> a
    31:32:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):310:311 -> a
    33:33:java.util.function.BiFunction createCodeLocator(com.android.tools.r8.graph.JarClassFileReader$ReparseContext):316:316 -> a
    1:9:boolean computeEquals(java.lang.Object):95:103 -> b
    10:15:com.android.tools.r8.ir.code.IRCode internalBuildPossiblyWithLocals(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position):150:155 -> b
    16:20:com.android.tools.r8.ir.code.IRCode internalBuildWithLocals(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position):168:172 -> b
    16:20:com.android.tools.r8.ir.code.IRCode internalBuildPossiblyWithLocals(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position):157 -> b
    21:22:boolean hasJsr(com.android.tools.r8.graph.JarClassFileReader$ReparseContext):320:321 -> b
    23:25:boolean hasJsr(com.android.tools.r8.org.objectweb.asm.tree.MethodNode):329:331 -> b
    23:25:boolean hasJsr(com.android.tools.r8.graph.JarClassFileReader$ReparseContext):321 -> b
    1:1:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):128:128 -> buildIR
    1:2:com.android.tools.r8.ir.code.IRCode buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):139:140 -> buildInliningIR
    1:29:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexType):229:257 -> computeInliningConstraint
    1:2:int computeHashCode():89:90 -> d
    1:9:void triggerDelayedParsingIfNeccessary():276:284 -> e
    10:22:boolean verifyNoReparseContext(com.android.tools.r8.graph.DexProgramClass):392:404 -> e
    10:22:void triggerDelayedParsingIfNeccessary():284 -> e
    23:23:void triggerDelayedParsingIfNeccessary():284:284 -> e
    1:2:com.android.tools.r8.org.objectweb.asm.tree.MethodNode getNode():73:74 -> getNode
    1:1:boolean hasLocalVariableTable():122:122 -> hasLocalVariableTable
    1:3:boolean isEmptyVoidMethod():110:112 -> isEmptyVoidMethod
    1:2:void markReachabilitySensitive():68:69 -> markReachabilitySensitive
    1:2:void registerArgumentReferences(com.android.tools.r8.graph.ArgumentUse):220:221 -> registerArgumentReferences
    1:8:void registerCodeReferences(com.android.tools.r8.graph.UseRegistry):206:213 -> registerCodeReferences
    9:9:void registerCodeReferences(com.android.tools.r8.graph.UseRegistry):212:212 -> registerCodeReferences
    1:6:java.lang.String toString():262:267 -> toString
    7:7:java.lang.String toString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.ClassNameMapper):272:272 -> toString
    1:1:void writeTo(com.android.tools.r8.org.objectweb.asm.MethodVisitor):46:46 -> writeTo
com.android.tools.r8.graph.JarCode$1 -> com.android.tools.r8.graph.F:
com.android.tools.r8.graph.JarCode$DefaultCodeLocator -> com.android.tools.r8.graph.JarCode$a:
    com.android.tools.r8.graph.JarClassFileReader$ReparseContext context -> a
    com.android.tools.r8.graph.JarApplicationReader application -> b
    int methodIndex -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():339:339 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,com.android.tools.r8.graph.JarApplicationReader):344:344 -> <init>
    1:1:void <init>(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.JarCode$1):339 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,com.android.tools.r8.graph.JarApplicationReader):342:346 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.JarCode$1):339 -> <init>
    1:1:java.lang.Object apply(java.lang.Object,java.lang.Object):339:339 -> apply
    2:3:com.android.tools.r8.graph.JarCode apply(java.lang.String,java.lang.String):351:352 -> apply
    2:3:java.lang.Object apply(java.lang.Object,java.lang.Object):339 -> apply
com.android.tools.r8.graph.JarCode$SecondVisitor -> com.android.tools.r8.graph.JarCode$b:
    java.util.function.BiFunction codeLocator -> c
    boolean useJsrInliner -> d
    1:3:void <init>(java.util.function.BiFunction,boolean):365:367 -> <init>
    1:11:com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):374:384 -> a
com.android.tools.r8.graph.KeyedDexItem -> com.android.tools.r8.graph.G:
    1:1:void <init>():6:6 -> <init>
    1:1:boolean equals(java.lang.Object):15:15 -> equals
    1:1:int hashCode():20:20 -> hashCode
    com.android.tools.r8.graph.PresortedComparable getKey() -> l
com.android.tools.r8.graph.LazyCfCode -> com.android.tools.r8.graph.J:
    com.android.tools.r8.graph.JarClassFileReader$ReparseContext context -> e
    com.android.tools.r8.graph.JarApplicationReader application -> c
    com.android.tools.r8.graph.CfCode code -> d
    boolean $assertionsDisabled -> f
    com.android.tools.r8.graph.DexMethod method -> b
    1:1:void <clinit>():78:78 -> <clinit>
    1:6:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.graph.JarClassFileReader$ReparseContext,com.android.tools.r8.graph.JarApplicationReader):87:92 -> <init>
    1:1:com.android.tools.r8.graph.DexMethod access$000(com.android.tools.r8.graph.LazyCfCode):78:78 -> a
    2:2:void access$100(com.android.tools.r8.graph.LazyCfCode,com.android.tools.r8.graph.CfCode):78:78 -> a
    3:4:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):138:139 -> a
    5:5:void com.android.tools.r8.org.objectweb.asm.ClassReader.accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,int):391:391 -> a
    5:5:void parseCode(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,boolean):139 -> a
    6:11:void setCode(com.android.tools.r8.graph.CfCode):143:148 -> a
    1:19:com.android.tools.r8.graph.CfCode asCfCode():113:131 -> asCfCode
    20:26:boolean verifyNoReparseContext(com.android.tools.r8.graph.DexProgramClass):840:846 -> asCfCode
    20:26:com.android.tools.r8.graph.CfCode asCfCode():131 -> asCfCode
    27:33:com.android.tools.r8.graph.CfCode asCfCode():128:134 -> asCfCode
    1:1:boolean computeEquals(java.lang.Object):158:158 -> b
    1:2:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):179:180 -> buildIR
    1:3:com.android.tools.r8.ir.code.IRCode buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):191:193 -> buildInliningIR
    1:1:int computeHashCode():153:153 -> d
    1:1:int estimatedSizeForInlining():168:168 -> estimatedSizeForInlining
    1:1:boolean estimatedSizeForInliningAtMost(int):173:173 -> estimatedSizeForInliningAtMost
    1:1:boolean isEmptyVoidMethod():163:163 -> isEmptyVoidMethod
    1:1:void registerCodeReferences(com.android.tools.r8.graph.UseRegistry):199:199 -> registerCodeReferences
    1:1:java.lang.String toString():204:204 -> toString
    2:2:java.lang.String toString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.ClassNameMapper):209:209 -> toString
com.android.tools.r8.graph.LazyCfCode$ClassCodeVisitor -> com.android.tools.r8.graph.H:
    com.android.tools.r8.graph.JarClassFileReader$ReparseContext context -> c
    com.android.tools.r8.graph.JarApplicationReader application -> d
    boolean usrJsrInliner -> f
    boolean $assertionsDisabled -> g
    int methodIndex -> e
    1:1:void <clinit>():212:212 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,com.android.tools.r8.graph.JarApplicationReader,boolean):221:221 -> <init>
    2:10:void <init>(com.android.tools.r8.graph.JarClassFileReader$ReparseContext,com.android.tools.r8.graph.JarApplicationReader,boolean):216:224 -> <init>
    1:10:com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):230:239 -> a
com.android.tools.r8.graph.LazyCfCode$JsrEncountered -> com.android.tools.r8.graph.I:
    1:1:void <init>(java.lang.String):82:82 -> <init>
com.android.tools.r8.graph.LazyCfCode$MethodCodeVisitor -> com.android.tools.r8.graph.J$a:
    boolean $assertionsDisabled -> n
    com.android.tools.r8.graph.DexItemFactory factory -> d
    com.android.tools.r8.graph.DexMethod method -> m
    com.android.tools.r8.graph.JarApplicationReader application -> c
    int maxLocals -> f
    java.util.List localVariables -> i
    java.util.Map canonicalDebugLocalInfo -> j
    java.util.List tryCatchRanges -> h
    java.util.Map labelMap -> k
    int maxStack -> e
    java.util.List instructions -> g
    com.android.tools.r8.graph.LazyCfCode code -> l
    1:1:void <clinit>():245:245 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.LazyCfCode):259:259 -> <init>
    2:12:void <init>(com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.LazyCfCode):253:263 -> <init>
    com.android.tools.r8.graph.DebugLocalInfo lambda$canonicalize$1(com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.graph.DebugLocalInfo) -> a
    1:1:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):285:285 -> a
    2:8:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap parseLocals(int,java.lang.Object[]):292:298 -> a
    2:8:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):286 -> a
    9:11:java.util.List parseStack(int,java.lang.Object[]):306:308 -> a
    9:11:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):287 -> a
    12:12:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):288:288 -> a
    13:14:com.android.tools.r8.graph.DexType createTypeFromInternalType(java.lang.String):349:350 -> a
    15:15:void visitInsn(int):516:516 -> a
    16:18:void visitInsn(int):384:386 -> a
    19:19:void visitInsn(int):384:384 -> a
    20:22:void visitInsn(int):378:380 -> a
    23:23:void visitInsn(int):378:378 -> a
    24:24:void visitInsn(int):373:373 -> a
    25:25:void visitInsn(int):369:369 -> a
    26:26:void visitInsn(int):360:360 -> a
    27:129:void visitInsn(int):357:459 -> a
    130:130:void visitInsn(int):445:445 -> a
    131:131:com.android.tools.r8.cf.code.CfNeg com.android.tools.r8.cf.code.CfNeg.fromAsm(int):64:64 -> a
    131:131:void visitInsn(int):445 -> a
    132:132:com.android.tools.r8.cf.code.CfNeg com.android.tools.r8.cf.code.CfNeg.fromAsm(int):62:62 -> a
    132:132:void visitInsn(int):445 -> a
    133:133:com.android.tools.r8.cf.code.CfNeg com.android.tools.r8.cf.code.CfNeg.fromAsm(int):60:60 -> a
    133:133:void visitInsn(int):445 -> a
    134:134:com.android.tools.r8.cf.code.CfNeg com.android.tools.r8.cf.code.CfNeg.fromAsm(int):58:58 -> a
    134:134:void visitInsn(int):445 -> a
    135:135:com.android.tools.r8.cf.code.CfNeg com.android.tools.r8.cf.code.CfNeg.fromAsm(int):56:56 -> a
    135:135:void visitInsn(int):445 -> a
    136:136:void visitInsn(int):445:445 -> a
    137:137:void visitInsn(int):439:439 -> a
    138:138:void visitInsn(int):417:417 -> a
    139:216:void visitInsn(int):406:483 -> a
    217:242:void visitInsn(int):476:501 -> a
    243:243:void visitInsn(int):498:498 -> a
    244:244:void visitInsn(int):495:495 -> a
    245:245:void visitInsn(int):492:492 -> a
    246:246:void visitInsn(int):489:489 -> a
    247:274:void visitInsn(int):486:513 -> a
    275:275:void visitInsn(int):510:510 -> a
    276:276:void visitInsn(int):507:507 -> a
    277:277:void visitInsn(int):504:504 -> a
    278:293:void visitTypeInsn(int,java.lang.String):629:644 -> a
    294:294:void visitTypeInsn(int,java.lang.String):638:638 -> a
    295:295:void visitTypeInsn(int,java.lang.String):635:635 -> a
    296:296:void visitTypeInsn(int,java.lang.String):632:632 -> a
    297:301:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):650:654 -> a
    302:302:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):659:659 -> a
    303:303:com.android.tools.r8.graph.DexMethod com.android.tools.r8.graph.JarApplicationReader.getMethod(java.lang.String,java.lang.String,java.lang.String):92:92 -> a
    303:303:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):659 -> a
    304:304:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):660:660 -> a
    305:307:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):665:667 -> a
    308:338:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):672:702 -> a
    339:343:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):696:700 -> a
    344:344:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):692:692 -> a
    345:345:void visitLabel(com.android.tools.r8.org.objectweb.asm.Label):736:736 -> a
    346:369:void visitLdcInsn(java.lang.Object):741:764 -> a
    370:374:void visitLdcInsn(java.lang.Object):762:766 -> a
    375:375:void visitIincInsn(int,int):772:772 -> a
    376:381:void visitTableSwitchInsn(int,int,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label[]):777:782 -> a
    382:386:void visitLookupSwitchInsn(com.android.tools.r8.org.objectweb.asm.Label,int[],com.android.tools.r8.org.objectweb.asm.Label[]):787:791 -> a
    387:387:void visitMultiANewArrayInsn(java.lang.String,int):796:796 -> a
    388:388:void visitTryCatchBlock(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,java.lang.String):803:803 -> a
    389:392:void visitTryCatchBlock(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,java.lang.String):802:805 -> a
    393:398:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):811:816 -> a
    399:405:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):812:818 -> a
    406:407:void com.android.tools.r8.graph.CfCode$LocalVariableInfo.<init>(int,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.cf.code.CfLabel,com.android.tools.r8.cf.code.CfLabel):43:44 -> a
    406:407:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):818 -> a
    408:408:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):817:817 -> a
    409:409:com.android.tools.r8.graph.DebugLocalInfo canonicalize(com.android.tools.r8.graph.DebugLocalInfo):822:822 -> a
    1:6:void visitCode():268:273 -> b
    7:11:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(java.lang.Object):314:318 -> b
    12:24:com.android.tools.r8.graph.DexType parseAsmType(java.lang.Object):330:342 -> b
    12:24:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(java.lang.Object):321 -> b
    25:25:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(java.lang.Object):321:321 -> b
    26:26:com.android.tools.r8.graph.DexType parseAsmType(java.lang.Object):344:344 -> b
    26:26:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(java.lang.Object):321 -> b
    27:27:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(java.lang.Object):319:319 -> b
    28:28:com.android.tools.r8.cf.code.CfLabel getLabel(com.android.tools.r8.org.objectweb.asm.Label):326:326 -> b
    29:29:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):548:548 -> b
    30:30:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):546:546 -> b
    31:31:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):543:543 -> b
    32:32:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):540:540 -> b
    33:33:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):536:536 -> b
    34:34:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):533:533 -> b
    35:38:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):527:530 -> b
    39:39:com.android.tools.r8.ir.code.MemberType getMemberTypeForOpcode(int):524:524 -> b
    40:40:void visitIntInsn(int,int):560:560 -> b
    41:41:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):587:587 -> b
    41:41:void visitIntInsn(int,int):561 -> b
    42:42:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):585:585 -> b
    42:42:void visitIntInsn(int,int):561 -> b
    43:43:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):583:583 -> b
    43:43:void visitIntInsn(int,int):561 -> b
    44:44:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):581:581 -> b
    44:44:void visitIntInsn(int,int):561 -> b
    45:45:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):579:579 -> b
    45:45:void visitIntInsn(int,int):561 -> b
    46:46:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):577:577 -> b
    46:46:void visitIntInsn(int,int):561 -> b
    47:47:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):575:575 -> b
    47:47:void visitIntInsn(int,int):561 -> b
    48:48:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):573:573 -> b
    48:48:void visitIntInsn(int,int):561 -> b
    49:49:com.android.tools.r8.graph.DexType arrayTypeDesc(int,com.android.tools.r8.graph.DexItemFactory):571:571 -> b
    49:49:void visitIntInsn(int,int):561 -> b
    50:50:void visitIntInsn(int,int):561:561 -> b
    51:55:void visitIntInsn(int,int):560:564 -> b
    56:56:void visitIntInsn(int,int):557:557 -> b
    57:57:void visitLineNumber(int,com.android.tools.r8.org.objectweb.asm.Label):827:827 -> b
    1:1:void visitEnd():278:278 -> c
    2:2:com.android.tools.r8.cf.code.CfLabel lambda$getLabel$0(com.android.tools.r8.org.objectweb.asm.Label):326:326 -> c
    3:3:com.android.tools.r8.ir.code.If$Type ifType(int):730:730 -> c
    4:4:com.android.tools.r8.ir.code.If$Type ifType(int):728:728 -> c
    5:5:com.android.tools.r8.ir.code.If$Type ifType(int):725:725 -> c
    6:6:com.android.tools.r8.ir.code.If$Type ifType(int):722:722 -> c
    7:7:com.android.tools.r8.ir.code.If$Type ifType(int):719:719 -> c
    8:8:com.android.tools.r8.ir.code.If$Type ifType(int):716:716 -> c
    9:9:com.android.tools.r8.ir.code.If$Type ifType(int):712:712 -> c
    10:13:void visitMaxs(int,int):832:835 -> c
    1:1:void visitVarInsn(int,int):618:618 -> d
    2:2:void visitVarInsn(int,int):613:613 -> d
    3:3:void visitVarInsn(int,int):609:609 -> d
    4:8:void visitVarInsn(int,int):601:605 -> d
    9:35:void visitVarInsn(int,int):597:623 -> d
    36:36:void visitVarInsn(int,int):616:616 -> d
com.android.tools.r8.graph.LazyLoadedDexApplication -> com.android.tools.r8.graph.LazyLoadedDexApplication:
    com.android.tools.r8.utils.ProgramClassCollection programClasses -> h
    com.android.tools.r8.utils.LibraryClassCollection libraryClasses -> j
    boolean $assertionsDisabled -> k
    com.android.tools.r8.utils.ClasspathClassCollection classpathClasses -> i
    1:1:void <clinit>():23:23 -> <clinit>
    1:11:void <init>(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.utils.ProgramClassCollection,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.utils.ClasspathClassCollection,com.android.tools.r8.utils.LibraryClassCollection,com.android.tools.r8.com.google.common.collect.ImmutableSet,java.lang.String,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexString,com.android.tools.r8.utils.Timing):41:51 -> <init>
    1:11:void <init>(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.utils.ProgramClassCollection,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.utils.ClasspathClassCollection,com.android.tools.r8.utils.LibraryClassCollection,com.android.tools.r8.com.google.common.collect.ImmutableSet,java.lang.String,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexString,com.android.tools.r8.utils.Timing,com.android.tools.r8.graph.LazyLoadedDexApplication$1):23 -> <init>
    1:1:com.android.tools.r8.utils.ClasspathClassCollection access$000(com.android.tools.r8.graph.LazyLoadedDexApplication):23:23 -> a
    2:3:com.android.tools.r8.graph.DexProgramClass programDefinitionFor(com.android.tools.r8.graph.DexType):75:76 -> a
    boolean lambda$programClasses$0(com.android.tools.r8.graph.DexType) -> b
    1:1:com.android.tools.r8.utils.LibraryClassCollection access$100(com.android.tools.r8.graph.LazyLoadedDexApplication):23:23 -> b
    2:2:com.android.tools.r8.graph.DexApplication$Builder builder():23:23 -> b
    3:3:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder builder():227:227 -> b
    1:2:java.util.List programClasses():56:57 -> d
    1:7:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):62:68 -> definitionFor
    1:1:com.android.tools.r8.graph.LazyLoadedDexApplication$AllClasses loadAllClasses():171:171 -> e
    1:1:com.android.tools.r8.graph.DirectMappedDexApplication toDirect():232:232 -> toDirect
    1:1:java.lang.String toString():237:237 -> toString
com.android.tools.r8.graph.LazyLoadedDexApplication$1 -> com.android.tools.r8.graph.K:
com.android.tools.r8.graph.LazyLoadedDexApplication$AllClasses -> com.android.tools.r8.graph.LazyLoadedDexApplication$a:
    com.android.tools.r8.com.google.common.collect.ImmutableList classpathClasses -> b
    com.android.tools.r8.com.google.common.collect.ImmutableList programClasses -> a
    boolean $assertionsDisabled -> d
    com.android.tools.r8.com.google.common.collect.ImmutableList libraryClasses -> c
    1:1:void <clinit>():79:79 -> <clinit>
    1:57:void <init>(com.android.tools.r8.utils.LibraryClassCollection,com.android.tools.r8.utils.ClasspathClassCollection,com.android.tools.r8.utils.ProgramClassCollection):91:147 -> <init>
    boolean lambda$new$0(com.android.tools.r8.graph.DexType) -> a
    1:3:void lambda$new$3(java.util.Map,com.android.tools.r8.com.google.common.collect.ImmutableList$Builder,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClasspathClass):124:126 -> a
    4:6:void lambda$new$4(java.util.Map,com.android.tools.r8.com.google.common.collect.ImmutableList$Builder,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexLibraryClass):138:140 -> a
    7:7:com.android.tools.r8.com.google.common.collect.ImmutableList getClasspathClasses():159:159 -> a
    boolean lambda$new$1(com.android.tools.r8.graph.DexType) -> b
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList getLibraryClasses():163:163 -> b
    boolean lambda$new$2(com.android.tools.r8.graph.DexType) -> c
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList getProgramClasses():155:155 -> c
com.android.tools.r8.graph.LazyLoadedDexApplication$Builder -> com.android.tools.r8.graph.LazyLoadedDexApplication$Builder:
    com.android.tools.r8.utils.LibraryClassCollection libraryClasses -> l
    com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver resolver -> m
    com.android.tools.r8.utils.ClasspathClassCollection classpathClasses -> k
    1:1:void <init>(com.android.tools.r8.graph.LazyLoadedDexApplication,com.android.tools.r8.graph.LazyLoadedDexApplication$1):174:174 -> <init>
    2:5:void <init>(com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Timing):181:184 -> <init>
    6:9:void <init>(com.android.tools.r8.graph.LazyLoadedDexApplication):188:191 -> <init>
    1:1:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder setClasspathClassCollection(com.android.tools.r8.utils.ClasspathClassCollection):200:200 -> a
    2:2:com.android.tools.r8.graph.LazyLoadedDexApplication$Builder setLibraryClassCollection(com.android.tools.r8.utils.LibraryClassCollection):205:205 -> a
    1:1:com.android.tools.r8.graph.DexApplication build():174:174 -> build
    2:8:com.android.tools.r8.graph.LazyLoadedDexApplication build():211:217 -> build
    com.android.tools.r8.graph.LazyLoadedDexApplication$Builder self() -> d
    1:1:com.android.tools.r8.graph.DexApplication$Builder self():174:174 -> d
com.android.tools.r8.graph.MethodAccessFlags -> com.android.tools.r8.graph.MethodAccessFlags:
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():11:11 -> <clinit>
    1:1:void <init>(int,int):61:61 -> <init>
    1:1:void <init>(int):57 -> <init>
    2:2:void <init>(int,int):61:61 -> <init>
    1:1:void unsetBridge():130:130 -> A
    1:1:void unsetConstructor():178:178 -> B
    1:1:void unsetSynchronized():118:118 -> C
    1:2:com.android.tools.r8.graph.MethodAccessFlags fromCfAccessFlags(int,boolean):81:82 -> a
    1:9:java.util.List getNames():32:40 -> b
    1:9:java.util.List getPredicates():45:53 -> d
    1:3:com.android.tools.r8.graph.MethodAccessFlags fromSharedAccessFlags(int,boolean):75:77 -> fromSharedAccessFlags
    1:1:com.android.tools.r8.graph.MethodAccessFlags fromDexAccessFlags(int):86:86 -> g
    2:2:boolean isDeclaredSynchronized():184:184 -> g
    2:2:com.android.tools.r8.graph.MethodAccessFlags fromDexAccessFlags(int):87 -> g
    3:3:com.android.tools.r8.graph.MethodAccessFlags fromDexAccessFlags(int):88:88 -> g
    4:4:void unsetDeclaredSynchronized():192:192 -> g
    4:4:com.android.tools.r8.graph.MethodAccessFlags fromDexAccessFlags(int):89 -> g
    1:1:boolean isAbstract():150:150 -> isAbstract
    1:1:boolean isBridge():122:122 -> isBridge
    1:1:boolean isNative():142:142 -> isNative
    1:1:com.android.tools.r8.graph.MethodAccessFlags copy():66:66 -> q
    1:1:int getAsCfAccessFlags():106:106 -> r
    1:3:int getAsDexAccessFlags():96:98 -> s
    4:4:void setDeclaredSynchronized():188:188 -> s
    4:4:int getAsDexAccessFlags():99 -> s
    5:5:int getAsDexAccessFlags():101:101 -> s
    1:1:void setAbstract():154:154 -> setAbstract
    1:1:void setNative():146:146 -> setNative
    1:1:boolean isConstructor():170:170 -> t
    1:1:boolean isStrict():162:162 -> u
    1:1:boolean isSynchronized():110:110 -> v
    1:1:boolean isVarargs():134:134 -> w
    1:1:void setBridge():126:126 -> x
    1:1:void setSynchronized():114:114 -> y
    1:1:void unsetAbstract():158:158 -> z
com.android.tools.r8.graph.ObjectToOffsetMapping -> com.android.tools.r8.graph.ObjectToOffsetMapping:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap types -> c
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap methods -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap fields -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap strings -> f
    boolean $assertionsDisabled -> j
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap protos -> b
    com.android.tools.r8.graph.DexString firstJumboString -> i
    com.android.tools.r8.graph.DexProgramClass[] classes -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap callSites -> g
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap methodHandles -> h
    1:1:void <clinit>():19:19 -> <clinit>
    1:19:void <init>(com.android.tools.r8.graph.DexApplication,java.util.Collection,java.util.Collection,java.util.Collection,java.util.Collection,java.util.Collection,java.util.Collection,java.util.Collection,java.util.Collection):43:61 -> <init>
    1:1:void failOnOverflow(com.android.tools.r8.graph.DexItem):70:70 -> a
    2:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap createMap(java.util.Collection,java.util.function.Consumer):75:78 -> a
    6:6:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap.<init>(int):167:167 -> a
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap createMap(java.util.Collection,java.util.function.Consumer):78 -> a
    7:14:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap createMap(java.util.Collection,java.util.function.Consumer):79:86 -> a
    15:26:com.android.tools.r8.graph.DexProgramClass[] sortClasses(com.android.tools.r8.graph.DexApplication,java.util.Collection):140:151 -> a
    27:29:int lambda$sortClasses$0(com.android.tools.r8.graph.ObjectToOffsetMapping$ProgramClassDepthsMemoized,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):146:148 -> a
    30:30:java.util.Collection keysOrEmpty(java.util.Map):155:155 -> a
    31:31:java.util.Collection getCallSites():183:183 -> a
    32:34:int getOffsetFor(com.android.tools.r8.graph.IndexedDexItem,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):208:210 -> a
    35:35:int getOffsetFor(com.android.tools.r8.graph.DexProto):215:215 -> a
    36:36:int getOffsetFor(com.android.tools.r8.graph.DexField):219:219 -> a
    37:37:int getOffsetFor(com.android.tools.r8.graph.DexMethod):223:223 -> a
    38:38:int getOffsetFor(com.android.tools.r8.graph.DexString):227:227 -> a
    39:39:int getOffsetFor(com.android.tools.r8.graph.DexType):231:231 -> a
    40:40:int getOffsetFor(com.android.tools.r8.graph.DexCallSite):235:235 -> a
    41:41:int getOffsetFor(com.android.tools.r8.graph.DexMethodHandle):239:239 -> a
    1:2:void setFirstJumboString(com.android.tools.r8.graph.DexString):65:66 -> b
    3:3:com.android.tools.r8.graph.DexProgramClass[] getClasses():163:163 -> b
    1:1:java.util.Collection getFields():175:175 -> c
    1:1:com.android.tools.r8.graph.DexString getFirstJumboString():195:195 -> d
    1:3:com.android.tools.r8.graph.DexString getFirstString():199:201 -> e
    1:1:java.util.Collection getMethodHandles():187:187 -> f
    1:1:java.util.Collection getMethods():159:159 -> g
    1:1:java.util.Collection getProtos():171:171 -> h
    1:1:java.util.Collection getStrings():179:179 -> i
    1:1:java.util.Collection getTypes():167:167 -> j
    1:1:boolean hasJumboStrings():191:191 -> k
com.android.tools.r8.graph.ObjectToOffsetMapping$ProgramClassDepthsMemoized -> com.android.tools.r8.graph.ObjectToOffsetMapping$a:
    com.android.tools.r8.graph.DexApplication application -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap depthOfClasses -> b
    1:1:void <init>(com.android.tools.r8.graph.DexApplication):103:103 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.DexApplication):101:105 -> <init>
    1:22:int getDepth(com.android.tools.r8.graph.DexProgramClass):109:130 -> a
com.android.tools.r8.graph.OffsetToObjectMapping -> com.android.tools.r8.graph.OffsetToObjectMapping:
    com.android.tools.r8.graph.DexProto[] protos -> c
    boolean $assertionsDisabled -> i
    com.android.tools.r8.graph.DexMethodHandle[] methodHandles -> h
    com.android.tools.r8.graph.DexMethod[] methods -> b
    com.android.tools.r8.graph.DexField[] fields -> d
    com.android.tools.r8.graph.DexString[] strings -> f
    com.android.tools.r8.graph.DexCallSite[] callSites -> g
    com.android.tools.r8.graph.DexProgramClass[] classes -> a
    com.android.tools.r8.graph.DexType[] types -> e
    1:1:void <clinit>():6:6 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    1:2:com.android.tools.r8.graph.DexCallSite[] getCallSiteMap():88:89 -> a
    3:4:com.android.tools.r8.graph.DexField getField(int):113:114 -> a
    5:6:void setProto(int,com.android.tools.r8.graph.DexProto):143:144 -> a
    7:8:void setMethod(int,com.android.tools.r8.graph.DexMethod):148:149 -> a
    9:10:void setField(int,com.android.tools.r8.graph.DexField):153:154 -> a
    11:12:void setType(int,com.android.tools.r8.graph.DexType):158:159 -> a
    13:14:void setString(int,com.android.tools.r8.graph.DexString):163:164 -> a
    15:16:void setCallSites(int,com.android.tools.r8.graph.DexCallSite):168:169 -> a
    17:18:void setMethodHandle(int,com.android.tools.r8.graph.DexMethodHandle):173:174 -> a
    1:2:com.android.tools.r8.graph.DexField[] getFieldMap():73:74 -> b
    3:4:com.android.tools.r8.graph.DexMethod getMethod(int):103:104 -> b
    1:2:com.android.tools.r8.graph.DexMethodHandle[] getMethodHandleMap():93:94 -> c
    3:4:com.android.tools.r8.graph.DexMethodHandle getMethodHandle(int):133:134 -> c
    1:2:com.android.tools.r8.graph.DexMethod[] getMethodMap():63:64 -> d
    3:4:com.android.tools.r8.graph.DexProto getProto(int):108:109 -> d
    1:2:com.android.tools.r8.graph.DexProto[] getProtosMap():68:69 -> e
    3:4:com.android.tools.r8.graph.DexString getString(int):123:124 -> e
    1:2:com.android.tools.r8.graph.DexString[] getStringMap():83:84 -> f
    3:4:com.android.tools.r8.graph.DexType getType(int):118:119 -> f
    1:2:void initializeCallSites(int):48:49 -> g
    3:4:com.android.tools.r8.graph.DexType[] getTypeMap():78:79 -> g
    1:2:void initializeClasses(int):18:19 -> h
    1:2:void initializeFields(int):33:34 -> i
    1:2:void initializeMethodHandles(int):53:54 -> j
    1:2:void initializeMethods(int):23:24 -> k
    1:2:void initializeProtos(int):28:29 -> l
    1:2:void initializeStrings(int):43:44 -> m
    1:2:void initializeTypes(int):38:39 -> n
com.android.tools.r8.graph.OptimizationInfo -> com.android.tools.r8.graph.M:
    boolean returnsConstantNumber() -> A
    long getReturnedConstantNumber() -> B
    com.android.tools.r8.graph.UpdatableOptimizationInfo mutableCopy() -> a
    com.android.tools.r8.graph.ParameterUsagesInfo$ParameterUsage getParameterUsages(int) -> b
    com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer getTrivialInitializerInfo() -> d
    boolean returnsConstantString() -> e
    boolean triggersClassInitBeforeAnySideEffect() -> g
    java.util.BitSet getNonNullParamOrThrow() -> h
    boolean returnsArgument() -> j
    boolean isInitializerEnablingJavaAssertions() -> k
    boolean checksNullReceiverBeforeAnySideEffect() -> l
    boolean forceInline() -> n
    boolean mayHaveSideEffects() -> o
    boolean neverInline() -> p
    com.android.tools.r8.graph.DexString getReturnedConstantString() -> r
    boolean useIdentifierNameString() -> s
    boolean isReachabilitySensitive() -> t
    boolean neverReturnsNull() -> u
    com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility getClassInlinerEligibility() -> v
    int getReturnedArgument() -> w
    boolean returnsConstant() -> x
    java.util.BitSet getNonNullParamOnNormalExits() -> y
    boolean neverReturnsNormally() -> z
com.android.tools.r8.graph.OptimizationInfo$InlinePreference -> com.android.tools.r8.graph.L:
    com.android.tools.r8.graph.OptimizationInfo$InlinePreference ForceInline -> b
    com.android.tools.r8.graph.OptimizationInfo$InlinePreference NeverInline -> a
    com.android.tools.r8.graph.OptimizationInfo$InlinePreference Default -> c
    1:3:void <clinit>():15:17 -> <clinit>
    4:4:void <clinit>():14:14 -> <clinit>
    1:1:void <init>(java.lang.String,int):14:14 -> <init>
com.android.tools.r8.graph.ParameterAnnotationsList -> com.android.tools.r8.graph.ParameterAnnotationsList:
    com.android.tools.r8.graph.ParameterAnnotationsList EMPTY_PARAMETER_ANNOTATIONS_LIST -> c
    com.android.tools.r8.graph.DexAnnotationSet[] values -> a
    int missingParameterAnnotations -> b
    boolean $assertionsDisabled -> d
    1:3:void <clinit>():36:38 -> <clinit>
    1:3:void <init>():48:50 -> <init>
    4:7:void <init>(com.android.tools.r8.graph.DexAnnotationSet[],int):57:60 -> <init>
    1:1:void collectIndexedItems(com.android.tools.r8.dex.IndexedItemCollection,com.android.tools.r8.graph.DexMethod,int):86:86 -> a
    2:3:void collectMixedSectionItems(com.android.tools.r8.dex.MixedSectionCollection):92:93 -> a
    4:12:com.android.tools.r8.graph.ParameterAnnotationsList keepIf(java.util.function.Predicate):176:184 -> a
    13:13:com.android.tools.r8.graph.ParameterAnnotationsList empty():45:45 -> a
    13:13:com.android.tools.r8.graph.ParameterAnnotationsList keepIf(java.util.function.Predicate):192 -> a
    14:14:com.android.tools.r8.graph.ParameterAnnotationsList keepIf(java.util.function.Predicate):194:194 -> a
    1:3:void forEachAnnotation(java.util.function.Consumer):102:104 -> b
    1:2:boolean isMissing(int):132:133 -> c
    1:1:int countNonMissing():122:122 -> d
    2:14:com.android.tools.r8.graph.ParameterAnnotationsList withParameterCount(int):154:166 -> d
    1:1:int getAnnotableParameterCount():64:64 -> e
    1:1:com.android.tools.r8.graph.ParameterAnnotationsList empty():45:45 -> empty
    1:2:boolean equals(java.lang.Object):77:78 -> equals
    1:5:com.android.tools.r8.graph.DexAnnotationSet get(int):145:149 -> get
    1:1:int hashCode():69:69 -> hashCode
    1:1:boolean isEmpty():97:97 -> isEmpty
    1:1:int size():114:114 -> size
com.android.tools.r8.graph.ParameterUsagesInfo -> com.android.tools.r8.graph.N:
    boolean $assertionsDisabled -> b
    com.android.tools.r8.com.google.common.collect.ImmutableList parametersUsages -> a
    1:1:void <clinit>():26:26 -> <clinit>
    1:5:void <init>(java.util.List):29:33 -> <init>
    6:6:void <init>(java.util.List):32:32 -> <init>
    1:1:java.lang.Integer lambda$new$0(com.android.tools.r8.graph.ParameterUsagesInfo$ParameterUsage):33:33 -> a
    2:3:com.android.tools.r8.graph.ParameterUsagesInfo$ParameterUsage getParameterUsage(int):37:38 -> a
com.android.tools.r8.graph.ParameterUsagesInfo$ParameterUsage -> com.android.tools.r8.graph.N$a:
    java.util.List callsReceiver -> c
    boolean hasFieldRead -> e
    boolean isAssignedToField -> f
    boolean isReturned -> g
    java.util.Set ifZeroTest -> b
    int index -> a
    boolean hasFieldAssignment -> d
    1:10:void <init>(int,java.util.Set,java.util.List,boolean,boolean,boolean,boolean):70:79 -> <init>
    1:1:boolean notUsed():83:83 -> a
com.android.tools.r8.graph.ParameterUsagesInfo$ParameterUsageBuilder -> com.android.tools.r8.graph.N$b:
    boolean $assertionsDisabled -> i
    java.util.Set ifZeroTestTypes -> c
    java.util.List callsOnReceiver -> d
    boolean hasFieldAssignment -> e
    boolean hasFieldRead -> f
    com.android.tools.r8.ir.code.Value arg -> b
    boolean isAssignedToField -> g
    boolean isReturned -> h
    int index -> a
    1:1:void <clinit>():92:92 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value,int):104:104 -> <init>
    2:12:void <init>(com.android.tools.r8.ir.code.Value,int):96:106 -> <init>
    1:2:boolean note(com.android.tools.r8.ir.code.Instruction):111:112 -> a
    3:5:boolean note(com.android.tools.r8.ir.code.If):141:143 -> a
    3:5:boolean note(com.android.tools.r8.ir.code.Instruction):112 -> a
    6:7:boolean note(com.android.tools.r8.ir.code.Instruction):114:115 -> a
    8:10:boolean note(com.android.tools.r8.ir.code.InstanceGet):150:152 -> a
    8:10:boolean note(com.android.tools.r8.ir.code.Instruction):115 -> a
    11:12:boolean note(com.android.tools.r8.ir.code.Instruction):117:118 -> a
    13:20:boolean note(com.android.tools.r8.ir.code.InstancePut):159:166 -> a
    13:20:boolean note(com.android.tools.r8.ir.code.Instruction):118 -> a
    21:22:boolean note(com.android.tools.r8.ir.code.Instruction):120:121 -> a
    23:27:boolean note(com.android.tools.r8.ir.code.InvokeMethodWithReceiver):173:177 -> a
    23:27:boolean note(com.android.tools.r8.ir.code.Instruction):121 -> a
    28:28:boolean note(com.android.tools.r8.ir.code.InvokeMethodWithReceiver):174:174 -> a
    28:28:boolean note(com.android.tools.r8.ir.code.Instruction):121 -> a
    29:30:boolean note(com.android.tools.r8.ir.code.Instruction):123:124 -> a
    31:32:boolean note(com.android.tools.r8.ir.code.Return):184:185 -> a
    31:32:boolean note(com.android.tools.r8.ir.code.Instruction):124 -> a
    33:33:com.android.tools.r8.graph.ParameterUsagesInfo$ParameterUsage build():130:130 -> a
com.android.tools.r8.graph.Presorted -> com.android.tools.r8.graph.O:
    void setSortedIndex(int) -> b
com.android.tools.r8.graph.PresortedComparable -> com.android.tools.r8.graph.P:
    int layeredCompareTo(java.lang.Object,com.android.tools.r8.naming.NamingLens) -> a
    int slowCompareTo(java.lang.Object) -> a
    1:1:boolean isSorted(java.util.List):15:15 -> a
    2:2:boolean isSorted(java.lang.Object[],java.util.function.Function):19:19 -> a
    3:5:boolean isSorted(java.util.List,java.util.function.Function):25:27 -> a
    6:6:int slowCompare(com.android.tools.r8.graph.PresortedComparable,com.android.tools.r8.graph.PresortedComparable):44:44 -> a
com.android.tools.r8.graph.ProgramClassVisitor -> com.android.tools.r8.graph.Q:
    com.android.tools.r8.graph.DexApplication application -> a
    java.util.Set visited -> b
    1:1:void <init>(com.android.tools.r8.graph.DexApplication):32:32 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.DexApplication):30:33 -> <init>
    void visit(com.android.tools.r8.graph.DexClass) -> a
    void visit(com.android.tools.r8.graph.DexType) -> a
    1:2:void run(com.android.tools.r8.graph.DexProgramClass[]):66:67 -> a
    1:10:void accept(com.android.tools.r8.graph.DexType):37:46 -> b
    11:15:void accept(com.android.tools.r8.graph.DexClass):56:60 -> b
    16:17:void accept(com.android.tools.r8.graph.DexTypeList):50:51 -> b
    16:17:void accept(com.android.tools.r8.graph.DexClass):60 -> b
    18:19:void accept(com.android.tools.r8.graph.DexClass):61:62 -> b
com.android.tools.r8.graph.SmaliWriter -> com.android.tools.r8.graph.SmaliWriter:
    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.InternalOptions):22:22 -> <init>
    java.lang.String getFileEnding() -> a
    void writeField(com.android.tools.r8.graph.DexEncodedField,java.io.PrintStream) -> a
    1:3:void writeClassFooter(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):66:68 -> a
    4:6:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,java.io.PrintStream):73:75 -> a
    1:13:void writeClassHeader(com.android.tools.r8.graph.DexProgramClass,java.io.PrintStream):47:59 -> b
    1:11:java.lang.String smali(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):27:37 -> smali
    12:19:java.lang.String smali(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.InternalOptions):28:35 -> smali
com.android.tools.r8.graph.TopDownClassHierarchyTraversal -> com.android.tools.r8.graph.S:
    1:19:void visit(com.android.tools.r8.graph.AppView,java.lang.Iterable,java.util.function.Consumer):20:38 -> a
    20:38:void addAncestorsToWorklist(com.android.tools.r8.graph.DexProgramClass,java.util.Deque,java.util.Set,com.android.tools.r8.graph.AppView):48:66 -> a
com.android.tools.r8.graph.UpdatableOptimizationInfo -> com.android.tools.r8.graph.UpdatableOptimizationInfo:
    void markReturnsArgument(int) -> a
    void markReturnsConstantNumber(long) -> a
    void markReturnsConstantString(com.android.tools.r8.graph.DexString) -> a
    void markTriggerClassInitBeforeAnySideEffect(boolean) -> a
    void setClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility) -> a
    void setNonNullParamOrThrow(java.util.BitSet) -> a
    void setParameterUsages(com.android.tools.r8.graph.ParameterUsagesInfo) -> a
    void setTrivialInitializer(com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer) -> a
    void markNeverReturnsNull() -> b
    void setNonNullParamOnNormalExits(java.util.BitSet) -> b
    void setReachabilitySensitive(boolean) -> b
    void markCheckNullReceiverBeforeAnySideEffect(boolean) -> c
    void markNeverInline() -> c
    void markUseIdentifierNameString() -> f
    void setInitializerEnablingJavaAssertions() -> i
    void markNeverReturnsNormally() -> m
    void markMayNotHaveSideEffects() -> q
com.android.tools.r8.graph.UseRegistry -> com.android.tools.r8.graph.U:
    boolean $assertionsDisabled -> b
    com.android.tools.r8.graph.DexItemFactory factory -> a
    1:1:void <clinit>():15:15 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexItemFactory):24:25 -> <init>
    boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField) -> a
    boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod) -> a
    1:1:boolean registerCheckCast(com.android.tools.r8.graph.DexType):55:55 -> a
    2:36:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):60:94 -> a
    37:37:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):91:91 -> a
    38:38:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):88:88 -> a
    39:39:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):85:85 -> a
    40:42:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):80:82 -> a
    43:43:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):77:77 -> a
    44:44:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):74:74 -> a
    45:45:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):71:71 -> a
    46:46:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):68:68 -> a
    47:47:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):65:65 -> a
    48:48:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):62:62 -> a
    49:73:void registerCallSite(com.android.tools.r8.graph.DexCallSite):99:123 -> a
    74:76:void registerProto(com.android.tools.r8.graph.DexProto):133:135 -> a
    boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField) -> b
    boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod) -> b
    1:1:boolean registerConstClass(com.android.tools.r8.graph.DexType):51:51 -> b
    boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod) -> c
    boolean registerNewInstance(com.android.tools.r8.graph.DexType) -> c
    boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField) -> c
    boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod) -> d
    boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField) -> d
    boolean registerTypeReference(com.android.tools.r8.graph.DexType) -> d
    boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod) -> e
com.android.tools.r8.graph.UseRegistry$MethodHandleUse -> com.android.tools.r8.graph.T:
    com.android.tools.r8.graph.UseRegistry$MethodHandleUse ARGUMENT_TO_LAMBDA_METAFACTORY -> a
    com.android.tools.r8.graph.UseRegistry$MethodHandleUse NOT_ARGUMENT_TO_LAMBDA_METAFACTORY -> b
    1:2:void <clinit>():20:21 -> <clinit>
    3:3:void <clinit>():19:19 -> <clinit>
    1:1:void <init>(java.lang.String,int):19:19 -> <init>
com.android.tools.r8.ir.analysis.ClassInitializationAnalysis -> com.android.tools.r8.ir.analysis.c:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> c
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.code.DominatorTree dominatorTree -> d
    com.android.tools.r8.ir.analysis.ClassInitializationAnalysis TRIVIAL -> f
    boolean $assertionsDisabled -> g
    com.android.tools.r8.ir.code.IRCode code -> b
    int markingColor -> e
    1:13:void <clinit>():40:52 -> <clinit>
    1:1:void <init>():69:69 -> <init>
    1:1:void <init>(com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$1):40 -> <init>
    2:8:void <init>():66:72 -> <init>
    2:8:void <init>(com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$1):40 -> <init>
    9:9:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):75:75 -> <init>
    10:22:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):66:78 -> <init>
    1:24:boolean isClassDefinitelyLoadedBeforeInstruction(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction):87:110 -> a
    25:73:com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption getAssumptionForDominator(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):169:217 -> a
    25:73:boolean isClassDefinitelyLoadedBeforeInstruction(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction):111 -> a
    74:85:boolean isClassDefinitelyLoadedBeforeInstruction(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction):112:123 -> a
    86:86:boolean isClassDefinitelyLoadedBeforeInstruction(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction):122:122 -> a
    87:89:void returnMarkingColor():236:238 -> a
    87:89:void finish():232 -> a
    1:1:void notifyCodeHasChanged():226:226 -> b
    2:4:void returnMarkingColor():236:238 -> b
    2:4:void notifyCodeHasChanged():227 -> b
    1:1:com.android.tools.r8.ir.analysis.ClassInitializationAnalysis trivial():83:83 -> c
com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$1 -> com.android.tools.r8.ir.analysis.a:
    1:1:void <init>():53:53 -> <init>
    boolean isClassDefinitelyLoadedBeforeInstruction(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction) -> a
com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption -> com.android.tools.r8.ir.analysis.b:
    com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption NONE -> b
    com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption INSTRUCTION_DOES_NOT_THROW -> a
    1:2:void <clinit>():43:44 -> <clinit>
    3:3:void <clinit>():42:42 -> <clinit>
    1:1:void <init>(java.lang.String,int):42:42 -> <init>
com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$InstructionUtils -> com.android.tools.r8.ir.analysis.c$a:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():242:242 -> <clinit>
    1:1:boolean forInstanceGet(com.android.tools.r8.ir.code.InstanceGet,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):250:250 -> a
    2:2:boolean forInstancePut(com.android.tools.r8.ir.code.InstancePut,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):259:259 -> a
    3:14:boolean forInstanceGetOrPut(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):268:279 -> a
    15:21:boolean forInvokeDirect(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):288:294 -> a
    22:26:boolean forInvokeStatic(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):303:307 -> a
    27:53:boolean forInvokeSuper(com.android.tools.r8.ir.code.InvokeSuper,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):316:342 -> a
    54:72:boolean forInvokeVirtual(com.android.tools.r8.ir.code.InvokeVirtual,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):351:369 -> a
    73:73:boolean forNewInstance(com.android.tools.r8.ir.code.NewInstance,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):378:378 -> a
    74:74:boolean forStaticGet(com.android.tools.r8.ir.code.StaticGet,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):387:387 -> a
    75:75:boolean forStaticPut(com.android.tools.r8.ir.code.StaticPut,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):396:396 -> a
    76:79:boolean isTypeInitializedBy(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query):418:421 -> a
    1:6:boolean forStaticGetOrPut(com.android.tools.r8.ir.code.FieldInstruction,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):405:410 -> b
com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query -> com.android.tools.r8.ir.analysis.d:
    com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query DIRECTLY_OR_INDIRECTLY -> b
    com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query DIRECTLY -> a
    1:2:void <clinit>():48:49 -> <clinit>
    3:3:void <clinit>():47:47 -> <clinit>
    1:1:void <init>(java.lang.String,int):47:47 -> <init>
com.android.tools.r8.ir.analysis.EscapeAnalysis -> com.android.tools.r8.ir.analysis.EscapeAnalysis:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():26:26 -> <clinit>
    1:30:java.util.Set escape(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value):32:61 -> escape
    31:53:boolean isDirectlyEscaping(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexEncodedMethod,java.util.List):84:106 -> escape
    31:53:java.util.Set escape(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value):61 -> escape
    54:61:java.util.Set escape(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value):62:69 -> escape
    62:67:com.android.tools.r8.ir.code.Value getPropagatedSubject(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction):117:122 -> escape
    62:67:java.util.Set escape(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value):72 -> escape
    68:72:java.util.Set escape(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value):74:78 -> escape
com.android.tools.r8.ir.analysis.TypeChecker -> com.android.tools.r8.ir.analysis.e:
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():31:31 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.AppView):35:36 -> <init>
    1:5:boolean check(com.android.tools.r8.ir.code.IRCode):40:44 -> a
    6:6:boolean check(com.android.tools.r8.ir.code.InstancePut):61:61 -> a
    6:6:boolean check(com.android.tools.r8.ir.code.IRCode):44 -> a
    7:8:boolean check(com.android.tools.r8.ir.code.IRCode):47:48 -> a
    9:9:boolean check(com.android.tools.r8.ir.code.StaticPut):65:65 -> a
    9:9:boolean check(com.android.tools.r8.ir.code.IRCode):48 -> a
    10:11:boolean check(com.android.tools.r8.ir.code.IRCode):51:52 -> a
    12:15:boolean check(com.android.tools.r8.ir.code.Throw):93:96 -> a
    12:15:boolean check(com.android.tools.r8.ir.code.IRCode):52 -> a
    16:18:boolean check(com.android.tools.r8.ir.code.Throw):95:97 -> a
    16:18:boolean check(com.android.tools.r8.ir.code.IRCode):52 -> a
    19:27:boolean checkFieldPut(com.android.tools.r8.ir.code.FieldInstruction):69:77 -> a
    28:38:boolean checkFieldPut(com.android.tools.r8.ir.code.FieldInstruction):76:86 -> a
    39:41:boolean isSubtypeOf(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):102:104 -> a
com.android.tools.r8.ir.analysis.constant.Bottom -> com.android.tools.r8.ir.analysis.a.a:
    com.android.tools.r8.ir.analysis.constant.Bottom INSTANCE -> a
    1:1:void <clinit>():7:7 -> <clinit>
    1:1:void <init>():9:9 -> <init>
    com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement) -> a
    boolean isBottom() -> c
    1:1:com.android.tools.r8.ir.analysis.constant.Bottom getInstance():13:13 -> g
com.android.tools.r8.ir.analysis.constant.ConstLatticeElement -> com.android.tools.r8.ir.analysis.a.b:
    com.android.tools.r8.ir.code.ConstNumber value -> a
    1:2:void <init>(com.android.tools.r8.ir.code.ConstNumber):11:12 -> <init>
    com.android.tools.r8.ir.analysis.constant.ConstLatticeElement asConst() -> a
    1:10:com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement):17:26 -> a
    boolean isConst() -> d
    1:1:com.android.tools.r8.ir.code.ConstNumber getConstNumber():45:45 -> g
    1:1:int getIntValue():49:49 -> h
    1:1:java.lang.String toString():41:41 -> toString
com.android.tools.r8.ir.analysis.constant.ConstRangeLatticeElement -> com.android.tools.r8.ir.analysis.a.c:
    com.android.tools.r8.ir.code.Value value -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():8:8 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.Value):11:13 -> <init>
    1:8:com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement):18:25 -> a
    9:9:com.android.tools.r8.ir.code.Value getConstRange():44:44 -> a
    9:9:com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement):26 -> a
    10:10:com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement):26:26 -> a
    11:11:com.android.tools.r8.ir.code.Value getConstRange():44:44 -> a
    11:11:com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement):26 -> a
    12:16:com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement):26:30 -> a
    com.android.tools.r8.ir.analysis.constant.ConstRangeLatticeElement asConstRange() -> b
    boolean isValueRange() -> f
    1:1:com.android.tools.r8.ir.code.Value getConstRange():44:44 -> g
    1:1:java.lang.String toString():40:40 -> toString
com.android.tools.r8.ir.analysis.constant.LatticeElement -> com.android.tools.r8.ir.analysis.a.d:
    1:1:void <init>():6:6 -> <init>
    com.android.tools.r8.ir.analysis.constant.ConstLatticeElement asConst() -> a
    com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement) -> a
    com.android.tools.r8.ir.analysis.constant.ConstRangeLatticeElement asConstRange() -> b
    boolean isBottom() -> c
    boolean isConst() -> d
    boolean isTop() -> e
    boolean isValueRange() -> f
com.android.tools.r8.ir.analysis.constant.SparseConditionalConstantPropagation -> com.android.tools.r8.ir.analysis.a.e:
    java.util.Deque flowEdges -> d
    java.util.BitSet visitedBlocks -> g
    java.util.Map mapping -> b
    java.util.Deque ssaEdges -> c
    java.util.BitSet[] executableFlowEdges -> f
    com.android.tools.r8.ir.code.IRCode code -> a
    boolean $assertionsDisabled -> h
    int nextBlockNumber -> e
    1:1:void <clinit>():29:29 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.IRCode):39:39 -> <init>
    2:13:void <init>(com.android.tools.r8.ir.code.IRCode):32:43 -> <init>
    1:28:void run():48:75 -> a
    29:46:void run():52:69 -> a
    47:47:boolean lambda$rewriteCode$0(java.util.Map$Entry):82:82 -> a
    48:72:void lambda$rewriteCode$3(java.util.List,java.util.Map$Entry):84:108 -> a
    73:73:boolean lambda$rewriteCode$1(com.android.tools.r8.ir.code.Instruction):96:96 -> a
    74:74:boolean lambda$rewriteCode$2(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction):107:107 -> a
    75:75:com.android.tools.r8.ir.analysis.constant.LatticeElement getLatticeElement(com.android.tools.r8.ir.code.Value):121:121 -> a
    76:91:void visitPhi(com.android.tools.r8.ir.code.Phi):129:144 -> a
    92:92:com.android.tools.r8.ir.analysis.constant.LatticeElement getLatticeElement(com.android.tools.r8.ir.code.Value):121:121 -> a
    92:92:void visitPhi(com.android.tools.r8.ir.code.Phi):145 -> a
    93:94:void visitPhi(com.android.tools.r8.ir.code.Phi):146:147 -> a
    95:95:void setLatticeElement(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.constant.LatticeElement):125:125 -> a
    95:95:void visitPhi(com.android.tools.r8.ir.code.Phi):148 -> a
    96:99:void visitInstructions(com.android.tools.r8.ir.code.BasicBlock):154:157 -> a
    100:104:boolean isExecutableEdge(int,int):239:243 -> a
    1:39:void rewriteCode():79:117 -> b
    40:44:void visitInstruction(com.android.tools.r8.ir.code.Instruction):161:165 -> b
    45:45:void setLatticeElement(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.constant.LatticeElement):125:125 -> b
    45:45:void visitInstruction(com.android.tools.r8.ir.code.Instruction):165 -> b
    46:50:void visitInstruction(com.android.tools.r8.ir.code.Instruction):166:170 -> b
    51:100:void addFlowEdgesForJumpInstruction(com.android.tools.r8.ir.code.JumpInstruction):175:224 -> b
    51:100:void visitInstruction(com.android.tools.r8.ir.code.Instruction):170 -> b
    101:106:void setExecutableEdge(int,int):230:235 -> b
com.android.tools.r8.ir.analysis.constant.Top -> com.android.tools.r8.ir.analysis.a.f:
    com.android.tools.r8.ir.analysis.constant.Top INSTANCE -> a
    1:1:void <clinit>():7:7 -> <clinit>
    1:1:void <init>():9:9 -> <init>
    com.android.tools.r8.ir.analysis.constant.LatticeElement meet(com.android.tools.r8.ir.analysis.constant.LatticeElement) -> a
    boolean isTop() -> e
    1:1:com.android.tools.r8.ir.analysis.constant.Top getInstance():13:13 -> g
com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement:
    boolean $assertionsDisabled -> m
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement memberTypeLattice -> l
    1:1:void <clinit>():13:13 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.analysis.type.Nullability):19:20 -> <init>
    1:3:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getArrayBaseTypeLattice():54:56 -> a
    1:3:com.android.tools.r8.graph.DexType getArrayType(com.android.tools.r8.graph.DexItemFactory):24 -> a
    4:10:com.android.tools.r8.graph.DexType getArrayType(com.android.tools.r8.graph.DexItemFactory):26:32 -> a
    11:14:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement createVariant(com.android.tools.r8.ir.analysis.type.Nullability):63:66 -> a
    15:15:com.android.tools.r8.ir.analysis.type.TypeLatticeElement asNonNullable():76:76 -> a
    16:16:boolean isBasedOnMissingClass(com.android.tools.r8.graph.DexDefinitionSupplier):81:81 -> a
    17:38:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement join(com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement,com.android.tools.r8.graph.DexDefinitionSupplier):124:145 -> a
    39:41:com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement com.android.tools.r8.ir.analysis.type.TypeLatticeElement.objectArrayType(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.ir.analysis.type.Nullability):294:296 -> a
    39:41:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement join(com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement,com.android.tools.r8.graph.DexDefinitionSupplier):148 -> a
    42:44:com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement com.android.tools.r8.ir.analysis.type.TypeLatticeElement.objectArrayType(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.ir.analysis.type.Nullability):295:297 -> a
    42:44:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement join(com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement,com.android.tools.r8.graph.DexDefinitionSupplier):148 -> a
    45:46:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement com.android.tools.r8.ir.analysis.type.TypeLatticeElement.objectClassType(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.ir.analysis.type.Nullability):288:289 -> a
    45:46:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement join(com.android.tools.r8.ir.analysis.type.ArrayTypeLatticeElement,com.android.tools.r8.graph.DexDefinitionSupplier):146 -> a
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement asNullable():71:71 -> asNullable
    1:11:boolean equals(java.lang.Object):104:114 -> equals
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getArrayMemberTypeAsMemberType():46:46 -> getArrayMemberTypeAsMemberType
    1:4:int getNesting():37:40 -> getNesting
    1:1:int hashCode():119:119 -> hashCode
    1:1:java.lang.String toString():96:96 -> toString
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getArrayMemberTypeAsValueType():50:50 -> u
com.android.tools.r8.ir.analysis.type.BooleanTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.a:
    com.android.tools.r8.ir.analysis.type.BooleanTypeLatticeElement INSTANCE -> g
    1:1:void <clinit>():7:7 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    boolean isBoolean() -> c
    1:1:int hashCode():30:30 -> hashCode
    1:1:com.android.tools.r8.ir.analysis.type.BooleanTypeLatticeElement getInstance():10:10 -> t
com.android.tools.r8.ir.analysis.type.BottomTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.BottomTypeLatticeElement:
    com.android.tools.r8.ir.analysis.type.BottomTypeLatticeElement INSTANCE -> f
    1:1:void <clinit>():10:10 -> <clinit>
    1:1:void <init>():9:9 -> <init>
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement checkCast(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexType) -> a
    boolean isBottom() -> d
    1:1:int hashCode():43:43 -> hashCode
    1:1:com.android.tools.r8.ir.analysis.type.Nullability nullability():14:14 -> r
    1:1:com.android.tools.r8.ir.analysis.type.BottomTypeLatticeElement getInstance():18:18 -> t
com.android.tools.r8.ir.analysis.type.ByteTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.b:
    com.android.tools.r8.ir.analysis.type.ByteTypeLatticeElement INSTANCE -> g
    1:1:void <clinit>():7:7 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    boolean isByte() -> e
    1:1:int hashCode():30:30 -> hashCode
    1:1:com.android.tools.r8.ir.analysis.type.ByteTypeLatticeElement getInstance():10:10 -> t
com.android.tools.r8.ir.analysis.type.CharTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.c:
    com.android.tools.r8.ir.analysis.type.CharTypeLatticeElement INSTANCE -> g
    1:1:void <clinit>():7:7 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    boolean isChar() -> f
    1:1:int hashCode():30:30 -> hashCode
    1:1:com.android.tools.r8.ir.analysis.type.CharTypeLatticeElement getInstance():10:10 -> t
com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement:
    boolean $assertionsDisabled -> n
    com.android.tools.r8.graph.DexDefinitionSupplier definitionsForLazyInterfacesComputation -> m
    java.util.Set lazyInterfaces -> l
    1:1:void <clinit>():21:21 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,java.util.Set):28:28 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.DexDefinitionSupplier):33:33 -> <init>
    3:6:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,java.util.Set,com.android.tools.r8.graph.DexDefinitionSupplier):41:44 -> <init>
    1:4:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement createVariant(com.android.tools.r8.ir.analysis.type.Nullability):69:72 -> a
    5:5:com.android.tools.r8.ir.analysis.type.TypeLatticeElement asNonNullable():83:83 -> a
    6:8:boolean isBasedOnMissingClass(com.android.tools.r8.graph.DexDefinitionSupplier):88:90 -> a
    9:20:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement join(com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement,com.android.tools.r8.graph.DexDefinitionSupplier):122:133 -> a
    21:21:java.util.Set lambda$computeLeastUpperBoundOfInterfaces$1(com.android.tools.r8.graph.DexType):173:173 -> a
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement asNullable():78:78 -> asNullable
    1:1:boolean lambda$isBasedOnMissingClass$0(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexType):90:90 -> b
    2:2:java.util.Set lambda$computeLeastUpperBoundOfInterfaces$2(com.android.tools.r8.graph.DexType):189:189 -> b
    1:75:java.util.Set computeLeastUpperBoundOfInterfaces(com.android.tools.r8.graph.DexDefinitionSupplier,java.util.Set,java.util.Set):153:227 -> computeLeastUpperBoundOfInterfaces
    1:1:com.android.tools.r8.graph.DexType getClassType():48:48 -> getClassType
    1:1:int hashCode():117:117 -> hashCode
    1:12:java.util.Set getInterfaces():53:64 -> t
    13:13:java.util.Set getInterfaces():63:63 -> t
    1:1:java.lang.String toString():105:105 -> toString
    2:2:java.lang.String com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement.toString():111:111 -> toString
    2:2:java.lang.String toString():106 -> toString
    3:6:java.lang.String toString():106:109 -> toString
    7:10:java.lang.String toString():108:111 -> toString
com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement$InterfaceMarker -> com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement$a:
    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement$InterfaceMarker RIGHT -> b
    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement$InterfaceMarker LEFT -> a
    1:2:void <clinit>():137:138 -> <clinit>
    3:3:void <clinit>():136:136 -> <clinit>
    1:1:void <init>(java.lang.String,int):136:136 -> <init>
com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement$InterfaceWithMarker -> com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement$b:
    com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement$InterfaceMarker marker -> b
    com.android.tools.r8.graph.DexType itf -> a
    1:3:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement$InterfaceMarker):145:147 -> <init>
com.android.tools.r8.ir.analysis.type.DoubleTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.DoubleTypeLatticeElement:
    com.android.tools.r8.ir.analysis.type.DoubleTypeLatticeElement INSTANCE -> h
    1:1:void <clinit>():7:7 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    boolean isDouble() -> h
    1:1:int hashCode():25:25 -> hashCode
    1:1:com.android.tools.r8.ir.analysis.type.DoubleTypeLatticeElement getInstance():10:10 -> t
com.android.tools.r8.ir.analysis.type.FloatTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.FloatTypeLatticeElement:
    com.android.tools.r8.ir.analysis.type.FloatTypeLatticeElement INSTANCE -> h
    1:1:void <clinit>():7:7 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    1:1:int hashCode():25:25 -> hashCode
    boolean isFloat() -> j
    1:1:com.android.tools.r8.ir.analysis.type.FloatTypeLatticeElement getInstance():10:10 -> t
com.android.tools.r8.ir.analysis.type.IntTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.IntTypeLatticeElement:
    com.android.tools.r8.ir.analysis.type.IntTypeLatticeElement INSTANCE -> h
    1:1:void <clinit>():7:7 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    1:1:int hashCode():25:25 -> hashCode
    1:1:com.android.tools.r8.ir.analysis.type.IntTypeLatticeElement getInstance():10:10 -> t
com.android.tools.r8.ir.analysis.type.LongTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.LongTypeLatticeElement:
    com.android.tools.r8.ir.analysis.type.LongTypeLatticeElement INSTANCE -> h
    1:1:void <clinit>():7:7 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    1:1:int hashCode():25:25 -> hashCode
    boolean isLong() -> k
    1:1:com.android.tools.r8.ir.analysis.type.LongTypeLatticeElement getInstance():10:10 -> t
com.android.tools.r8.ir.analysis.type.Nullability -> com.android.tools.r8.ir.analysis.type.Nullability:
    com.android.tools.r8.ir.analysis.type.Nullability DEFINITELY_NULL -> a
    com.android.tools.r8.ir.analysis.type.Nullability MAYBE_NULL -> c
    com.android.tools.r8.ir.analysis.type.Nullability DEFINITELY_NOT_NULL -> b
    1:3:void <clinit>():21:23 -> <clinit>
    1:1:void <init>():25:25 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.Nullability join(com.android.tools.r8.ir.analysis.type.Nullability):43:43 -> a
    2:2:com.android.tools.r8.ir.analysis.type.Nullability definitelyNull():55:55 -> a
    1:1:boolean isDefinitelyNotNull():32:32 -> b
    2:2:boolean lessThanOrEqual(com.android.tools.r8.ir.analysis.type.Nullability):47:47 -> b
    1:1:boolean isDefinitelyNull():28:28 -> c
    1:1:boolean isMaybeNull():36:36 -> d
    1:1:com.android.tools.r8.ir.analysis.type.Nullability definitelyNotNull():59:59 -> definitelyNotNull
    1:1:boolean isNullable():51:51 -> e
    1:1:com.android.tools.r8.ir.analysis.type.Nullability maybeNull():63:63 -> maybeNull
    1:10:java.lang.String toString():68:77 -> toString
com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.d:
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():15:15 -> <clinit>
    1:1:void <init>():15:15 -> <init>
    1:25:com.android.tools.r8.graph.DexType toDexType(com.android.tools.r8.graph.DexItemFactory):38:62 -> a
    26:39:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement fromNumericType(com.android.tools.r8.ir.code.NumericType):104:117 -> a
    40:40:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement fromNumericType(com.android.tools.r8.ir.code.NumericType):115:115 -> a
    41:43:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement fromNumericType(com.android.tools.r8.ir.code.NumericType):111:113 -> a
    44:44:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement fromNumericType(com.android.tools.r8.ir.code.NumericType):109:109 -> a
    45:57:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement):125:137 -> a
    com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement asPrimitiveTypeLatticeElement() -> b
    1:1:com.android.tools.r8.ir.analysis.type.Nullability nullability():19:19 -> r
com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement:
    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement NULL_INSTANCE -> j
    com.android.tools.r8.ir.analysis.type.Nullability nullability -> g
    boolean $assertionsDisabled -> k
    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement nonNullVariant -> i
    com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement primaryOrNullVariant -> h
    com.android.tools.r8.graph.DexType type -> f
    1:4:void <clinit>():12:15 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.DexType):27:29 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement createVariant(com.android.tools.r8.ir.analysis.type.Nullability):62:62 -> a
    2:11:void linkVariant(com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement,com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement):67:76 -> a
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement asNullable():100:100 -> asNullable
    1:26:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement getOrCreateVariant(com.android.tools.r8.ir.analysis.type.Nullability):33:58 -> b
    27:27:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement getOrCreateVariant(com.android.tools.r8.ir.analysis.type.Nullability):44:44 -> b
    1:16:boolean equals(java.lang.Object):119:134 -> equals
    1:1:com.android.tools.r8.ir.analysis.type.ReferenceTypeLatticeElement getNullTypeLatticeElement():86:86 -> getNullTypeLatticeElement
    1:2:int hashCode():139:140 -> hashCode
    1:1:boolean isNullType():95:95 -> l
    1:1:com.android.tools.r8.ir.analysis.type.Nullability nullability():82:82 -> r
    1:1:java.util.Set getInterfaces():90:90 -> t
    1:1:java.lang.String toString():111:111 -> toString
com.android.tools.r8.ir.analysis.type.ShortTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.e:
    com.android.tools.r8.ir.analysis.type.ShortTypeLatticeElement INSTANCE -> g
    1:1:void <clinit>():7:7 -> <clinit>
    1:1:void <init>():6:6 -> <init>
    1:1:int hashCode():30:30 -> hashCode
    boolean isShort() -> n
    1:1:com.android.tools.r8.ir.analysis.type.ShortTypeLatticeElement getInstance():10:10 -> t
com.android.tools.r8.ir.analysis.type.SingleTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.SingleTypeLatticeElement:
    com.android.tools.r8.ir.analysis.type.SingleTypeLatticeElement SINGLE_INSTANCE -> g
    1:1:void <clinit>():10:10 -> <clinit>
    1:1:void <init>():13:13 -> <init>
    1:1:int hashCode():37:37 -> hashCode
    boolean isSingle() -> o
    1:1:com.android.tools.r8.ir.analysis.type.SingleTypeLatticeElement getInstance():17:17 -> t
com.android.tools.r8.ir.analysis.type.TopTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.TopTypeLatticeElement:
    com.android.tools.r8.ir.analysis.type.TopTypeLatticeElement INSTANCE -> f
    1:1:void <clinit>():10:10 -> <clinit>
    1:1:void <init>():9:9 -> <init>
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement checkCast(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexType) -> a
    1:1:int hashCode():43:43 -> hashCode
    boolean isTop() -> p
    1:1:com.android.tools.r8.ir.analysis.type.Nullability nullability():14:14 -> r
    1:1:com.android.tools.r8.ir.analysis.type.TopTypeLatticeElement getInstance():18:18 -> t
com.android.tools.r8.ir.analysis.type.TypeAnalysis -> com.android.tools.r8.ir.analysis.type.TypeAnalysis:
    com.android.tools.r8.graph.AppView appView -> c
    java.util.Deque worklist -> e
    boolean $assertionsDisabled -> f
    com.android.tools.r8.graph.DexEncodedMethod context -> d
    com.android.tools.r8.ir.analysis.type.TypeAnalysis$Mode mode -> b
    boolean mayHaveImpreciseTypes -> a
    1:1:void <clinit>():27:27 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):45:45 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,boolean):51:51 -> <init>
    3:20:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,boolean):37:54 -> <init>
    1:2:void analyze():58:59 -> a
    3:8:void analyzeValue(com.android.tools.r8.ir.code.Value):133:138 -> a
    3:8:void analyze():59 -> a
    9:14:void narrowing(java.lang.Iterable):80:85 -> a
    15:17:void enqueue(com.android.tools.r8.ir.code.Value):89:91 -> a
    18:33:void analyzeBasicBlock(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock):96:111 -> a
    34:54:void analyzeBasicBlock(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock):108:128 -> a
    55:81:void updateTypeOfValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):142:168 -> a
    82:86:com.android.tools.r8.graph.DexType getRefinedReceiverType(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.ir.code.InvokeMethodWithReceiver):174:178 -> a
    1:1:void lambda$widening$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock):66:66 -> b
    2:5:void widening(java.lang.Iterable):71:74 -> b
    1:4:void widening(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):64:67 -> widening
com.android.tools.r8.ir.analysis.type.TypeAnalysis$Mode -> com.android.tools.r8.ir.analysis.type.TypeAnalysis$a:
    com.android.tools.r8.ir.analysis.type.TypeAnalysis$Mode UNSET -> a
    com.android.tools.r8.ir.analysis.type.TypeAnalysis$Mode WIDENING -> b
    com.android.tools.r8.ir.analysis.type.TypeAnalysis$Mode NARROWING -> c
    1:3:void <clinit>():30:32 -> <clinit>
    4:4:void <clinit>():29:29 -> <clinit>
    1:1:void <init>(java.lang.String,int):29:29 -> <init>
com.android.tools.r8.ir.analysis.type.TypeLatticeElement -> com.android.tools.r8.ir.analysis.type.TypeLatticeElement:
    com.android.tools.r8.ir.analysis.type.ByteTypeLatticeElement BYTE -> b
    com.android.tools.r8.ir.analysis.type.BooleanTypeLatticeElement BOOLEAN -> a
    com.android.tools.r8.ir.analysis.type.CharTypeLatticeElement CHAR -> d
    com.android.tools.r8.ir.analysis.type.ShortTypeLatticeElement SHORT -> c
    boolean $assertionsDisabled -> e
    1:15:void <clinit>():15:29 -> <clinit>
    1:1:void <init>():15:15 -> <init>
    boolean isBasedOnMissingClass(com.android.tools.r8.graph.DexDefinitionSupplier) -> a
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement asNonNullable():52:52 -> a
    2:30:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DexDefinitionSupplier):66:94 -> a
    31:32:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement objectClassType(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.ir.analysis.type.Nullability):288:289 -> a
    31:32:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DexDefinitionSupplier):94 -> a
    33:43:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DexDefinitionSupplier):97:107 -> a
    44:44:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DexDefinitionSupplier):73:73 -> a
    45:46:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement classClassType(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.ir.analysis.type.Nullability):302:303 -> a
    47:51:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.DexDefinitionSupplier,boolean):322:326 -> a
    52:53:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromDexType(com.android.tools.r8.graph.DexType,boolean):33:34 -> a
    52:53:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.DexDefinitionSupplier,boolean):327 -> a
    54:54:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromTypeDescriptorChar(char,boolean):99:99 -> a
    54:54:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromDexType(com.android.tools.r8.graph.DexType,boolean):34 -> a
    54:54:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.DexDefinitionSupplier,boolean):327 -> a
    55:82:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromTypeDescriptorChar(char,boolean):70:97 -> a
    55:82:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromDexType(com.android.tools.r8.graph.DexType,boolean):34 -> a
    55:82:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.DexDefinitionSupplier,boolean):327 -> a
    83:83:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromTypeDescriptorChar(char,boolean):93:93 -> a
    83:83:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromDexType(com.android.tools.r8.graph.DexType,boolean):34 -> a
    83:83:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.DexDefinitionSupplier,boolean):327 -> a
    84:88:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromTypeDescriptorChar(char,boolean):91:95 -> a
    84:88:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromDexType(com.android.tools.r8.graph.DexType,boolean):34 -> a
    84:88:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.DexDefinitionSupplier,boolean):327 -> a
    89:103:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromTypeDescriptorChar(char,boolean):75:89 -> a
    89:103:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement.fromDexType(com.android.tools.r8.graph.DexType,boolean):34 -> a
    89:103:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.DexDefinitionSupplier,boolean):327 -> a
    104:105:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.DexDefinitionSupplier,boolean):330:331 -> a
    106:108:boolean isValueTypeCompatible(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):335:337 -> a
    109:110:com.android.tools.r8.ir.analysis.type.TypeLatticeElement checkCast(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexType):341:342 -> a
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement asNullable():43:43 -> asNullable
    com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement asPrimitiveTypeLatticeElement() -> b
    1:2:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement objectClassType(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.ir.analysis.type.Nullability):288:289 -> b
    boolean isBoolean() -> c
    boolean isBottom() -> d
    boolean isByte() -> e
    boolean isChar() -> f
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromDexType(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability,com.android.tools.r8.graph.DexDefinitionSupplier):314:314 -> fromDexType
    1:1:boolean isDefinitelyNull():278:278 -> g
    boolean isDouble() -> h
    1:4:boolean isFineGrainedType():254:257 -> i
    1:1:boolean isNullable():32:32 -> isNullable
    boolean isFloat() -> j
    1:3:com.android.tools.r8.ir.analysis.type.TypeLatticeElement join(java.lang.Iterable,com.android.tools.r8.graph.DexDefinitionSupplier):112:114 -> join
    boolean isLong() -> k
    boolean isNullType() -> l
    1:1:boolean lessThanOrEqual(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DexDefinitionSupplier):144:144 -> lessThanOrEqual
    1:8:boolean isPreciseType():243:250 -> m
    boolean isShort() -> n
    boolean isSingle() -> o
    boolean isTop() -> p
    boolean isWide() -> q
    com.android.tools.r8.ir.analysis.type.Nullability nullability() -> r
    1:2:int requiredRegisters():282:283 -> s
    1:5:boolean strictlyLessThan(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DexDefinitionSupplier):128:132 -> strictlyLessThan
    1:2:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement stringClassType(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.ir.analysis.type.Nullability):308:309 -> stringClassType
com.android.tools.r8.ir.analysis.type.WideTypeLatticeElement -> com.android.tools.r8.ir.analysis.type.WideTypeLatticeElement:
    com.android.tools.r8.ir.analysis.type.WideTypeLatticeElement WIDE_INSTANCE -> g
    1:1:void <clinit>():10:10 -> <clinit>
    1:1:void <init>():13:13 -> <init>
    1:1:int hashCode():37:37 -> hashCode
    boolean isWide() -> q
    1:1:com.android.tools.r8.ir.analysis.type.WideTypeLatticeElement getInstance():17:17 -> t
com.android.tools.r8.ir.code.Add -> com.android.tools.r8.ir.code.Add:
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):22:22 -> <init>
    boolean isCommutative() -> Db
    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode():117:117 -> Hb
    double foldDouble(double,double) -> a
    float foldFloat(float,float) -> a
    int foldIntegers(int,int) -> a
    long foldLongs(long,long) -> a
    1:1:com.android.tools.r8.code.Instruction CreateDouble(int,int,int):47:47 -> a
    com.android.tools.r8.ir.code.Add asAdd() -> b
    1:1:com.android.tools.r8.code.Instruction CreateFloat(int,int,int):42:42 -> b
    2:2:com.android.tools.r8.code.Instruction CreateDouble2Addr(int,int):67:67 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):82:82 -> b
    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):32:32 -> c
    2:2:com.android.tools.r8.code.Instruction CreateFloat2Addr(int,int):62:62 -> c
    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):52:52 -> d
    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):77:77 -> d
    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):57:57 -> e
    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):72:72 -> e
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):37:37 -> f
com.android.tools.r8.ir.code.AlwaysMaterializingDefinition -> com.android.tools.r8.ir.code.a:
    1:1:void <init>(com.android.tools.r8.ir.code.Value):19:19 -> <init>
    int maxOutValueRegister() -> Ab
    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    1:3:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):30:32 -> a
    4:4:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):31:31 -> a
    5:5:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):37:37 -> a
    6:6:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):57:57 -> a
    boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction) -> b
    1:1:int maxInValueRegister():47:47 -> zb
com.android.tools.r8.ir.code.AlwaysMaterializingNop -> com.android.tools.r8.ir.code.b:
    1:1:void <init>():20:20 -> <init>
    1:1:int maxOutValueRegister():50:50 -> Ab
    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):30:30 -> a
    2:2:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):35:35 -> a
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):56:56 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):40:40 -> b
    boolean hasInvariantOutType() -> qa
    1:1:int maxInValueRegister():45:45 -> zb
com.android.tools.r8.ir.code.AlwaysMaterializingUser -> com.android.tools.r8.ir.code.c:
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():16:16 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value):19:19 -> <init>
    1:1:int maxOutValueRegister():51:51 -> Ab
    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):30:30 -> a
    2:2:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):35:35 -> a
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):57:57 -> a
    4:4:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):62:62 -> a
    boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction) -> b
    boolean hasInvariantOutType() -> qa
    1:2:int maxInValueRegister():45:46 -> zb
com.android.tools.r8.ir.code.And -> com.android.tools.r8.ir.code.d:
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):18:18 -> <init>
    boolean isCommutative() -> Db
    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():83:83 -> Hb
    int foldIntegers(int,int) -> a
    long foldLongs(long,long) -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):38:38 -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):48:48 -> b
    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):63:63 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):68:68 -> b
    com.android.tools.r8.ir.code.And asAnd() -> c
    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):53:53 -> c
    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):58:58 -> c
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):43:43 -> d
    boolean isAnd() -> ua
com.android.tools.r8.ir.code.Argument -> com.android.tools.r8.ir.code.Argument:
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():22:22 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.Value):25:26 -> <init>
    int maxOutValueRegister() -> Ab
    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):50:50 -> a
    2:2:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):71:71 -> a
    3:3:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):82:82 -> a
    4:4:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):87:87 -> a
    5:5:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):92:92 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):55:55 -> b
    com.android.tools.r8.ir.code.Argument asArgument() -> d
    boolean hasInvariantOutType() -> qa
    1:1:int maxInValueRegister():39:39 -> zb
com.android.tools.r8.ir.code.ArithmeticBinop -> com.android.tools.r8.ir.code.e:
    boolean $assertionsDisabled -> i
    1:1:void <clinit>():17:17 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):20:20 -> <init>
    com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode() -> Hb
    com.android.tools.r8.code.Instruction CreateDouble(int,int,int) -> a
    1:25:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):65:89 -> a
    26:35:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):77:86 -> a
    36:70:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):83:117 -> a
    71:80:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):105:114 -> a
    81:90:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):111:120 -> a
    91:117:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):135:161 -> a
    118:118:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):168:168 -> a
    com.android.tools.r8.code.Instruction CreateDouble2Addr(int,int) -> b
    com.android.tools.r8.code.Instruction CreateFloat(int,int,int) -> b
    com.android.tools.r8.code.Instruction CreateFloat2Addr(int,int) -> c
    com.android.tools.r8.code.Instruction CreateInt(int,int,int) -> c
    1:8:boolean needsValueInRegister(com.android.tools.r8.ir.code.Value):52:59 -> c
    com.android.tools.r8.code.Instruction CreateInt2Addr(int,int) -> d
    com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int) -> d
    com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int) -> e
    com.android.tools.r8.code.Instruction CreateLong2Addr(int,int) -> e
    com.android.tools.r8.ir.code.ArithmeticBinop asArithmeticBinop() -> e
    com.android.tools.r8.code.Instruction CreateLong(int,int,int) -> f
    boolean isArithmeticBinop() -> va
com.android.tools.r8.ir.code.ArrayGet -> com.android.tools.r8.ir.code.ArrayGet:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.ir.code.MemberType type -> h
    1:1:void <clinit>():33:33 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):38:39 -> <init>
    int maxOutValueRegister() -> Ab
    1:1:com.android.tools.r8.ir.code.Value index():51:51 -> Cb
    1:1:com.android.tools.r8.ir.code.MemberType getMemberType():56:56 -> a
    2:36:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):61:95 -> a
    37:37:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):93:93 -> a
    38:40:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):72:74 -> a
    41:62:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):68:89 -> a
    63:63:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):86:86 -> a
    64:64:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):83:83 -> a
    65:65:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):80:80 -> a
    66:86:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):77:97 -> a
    87:87:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):142:142 -> a
    88:94:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):154:160 -> a
    95:96:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):165:166 -> a
    97:97:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):171:171 -> a
    98:141:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):176:219 -> a
    142:143:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):215:216 -> a
    144:146:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):215:217 -> a
    147:148:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):211:212 -> a
    149:151:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):211:213 -> a
    152:153:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):207:208 -> a
    154:156:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):207:209 -> a
    157:158:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):203:204 -> a
    159:161:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):203:205 -> a
    162:163:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):199:200 -> a
    164:166:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):199:201 -> a
    167:168:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):195:196 -> a
    169:171:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):195:197 -> a
    172:174:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):186:188 -> a
    175:179:com.android.tools.r8.ir.analysis.type.TypeLatticeElement checkConstraint(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ValueTypeConstraint):224:228 -> a
    180:180:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):234:234 -> a
    181:181:void constrainType(com.android.tools.r8.ir.conversion.TypeConstraintResolver):239:239 -> a
    182:182:void lambda$constrainType$0(com.android.tools.r8.ir.code.MemberType):239:239 -> a
    1:1:com.android.tools.r8.ir.code.Value array():47:47 -> array
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):110:110 -> b
    1:1:com.android.tools.r8.ir.code.Value dest():43:43 -> dest
    boolean hasInvariantOutType() -> qa
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.ArrayLength -> com.android.tools.r8.ir.code.ArrayLength:
    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):24:24 -> <init>
    int maxOutValueRegister() -> Ab
    1:3:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):47:49 -> a
    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):89:89 -> a
    5:6:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):94:95 -> a
    7:7:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):100:100 -> a
    8:8:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):105:105 -> a
    9:9:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):115:115 -> a
    1:1:com.android.tools.r8.ir.code.Value array():32:32 -> array
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):83:83 -> b
    1:1:com.android.tools.r8.ir.code.Value dest():28:28 -> dest
    com.android.tools.r8.ir.code.ArrayLength asArrayLength() -> f
    1:8:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):69:76 -> identicalAfterRegisterAllocation
    boolean hasInvariantOutType() -> qa
    boolean isArrayLength() -> wa
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.ArrayPut -> com.android.tools.r8.ir.code.ArrayPut:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.ir.code.MemberType type -> h
    1:1:void <clinit>():29:29 -> <clinit>
    1:5:void <init>(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):39:43 -> <init>
    1:1:int maxOutValueRegister():109:109 -> Ab
    1:1:com.android.tools.r8.ir.code.Value index():51:51 -> Cb
    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    1:1:com.android.tools.r8.ir.code.MemberType getMemberType():60:60 -> a
    2:34:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):65:97 -> a
    35:35:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):95:95 -> a
    36:36:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):76:76 -> a
    37:56:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):72:91 -> a
    57:57:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):88:88 -> a
    58:58:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):85:85 -> a
    59:59:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):82:82 -> a
    60:80:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):79:99 -> a
    81:81:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):163:163 -> a
    82:82:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):168:168 -> a
    83:83:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):178:178 -> a
    84:84:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):183:183 -> a
    85:85:void constrainType(com.android.tools.r8.ir.conversion.TypeConstraintResolver):188:188 -> a
    86:86:void lambda$constrainType$0(com.android.tools.r8.ir.code.MemberType):188:188 -> a
    1:1:com.android.tools.r8.ir.code.Value array():47:47 -> array
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):147:147 -> b
    boolean hasInvariantOutType() -> qa
    1:5:boolean instructionInstanceCanThrow():120:124 -> ta
    1:1:com.android.tools.r8.ir.code.Value value():55:55 -> value
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.BasicBlock -> com.android.tools.r8.ir.code.BasicBlock:
    int color -> n
    int estimatedPredecessorsCount -> l
    boolean $assertionsDisabled -> p
    int unfilledPredecessorsCount -> m
    boolean filled -> i
    boolean sealed -> j
    java.util.Map currentDefinitions -> o
    int number -> g
    com.android.tools.r8.ir.code.CatchHandlers catchHandlers -> e
    java.util.List successors -> b
    java.util.Set onControlFlowEdgesMayChangeListeners -> d
    java.util.List predecessors -> c
    java.util.LinkedList instructions -> f
    java.util.List phis -> h
    java.util.Map incompletePhis -> k
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap localsAtEntry -> a
    1:1:void <clinit>():53:53 -> <clinit>
    1:124:void <init>():53:176 -> <init>
    1:1:com.android.tools.r8.ir.code.InstructionIterator iterator():1453:1453 -> A
    1:1:int numberOfCatchHandlers():1402:1402 -> B
    1:2:int numberOfThrowingInstructions():1407:1408 -> C
    1:47:java.lang.String toDetailedString():1057:1103 -> D
    48:48:int digits(int):1053:1053 -> D
    48:48:java.lang.String toDetailedString():1103 -> D
    49:84:java.lang.String toDetailedString():1103:1138 -> D
    1:3:void unlinkCatchHandler():697:699 -> E
    1:5:com.android.tools.r8.ir.code.BasicBlock unlinkSinglePredecessor():658:662 -> F
    1:5:void unlinkSinglePredecessorSiblingsAllowed():668:672 -> G
    1:6:com.android.tools.r8.ir.code.BasicBlock unlinkSingleSuccessor():681:686 -> H
    1:2:boolean verifyFilledPredecessors():603:604 -> I
    1:2:boolean notifyPredecessorsMayChangeListeners():226:227 -> J
    1:2:boolean notifySuccessorsMayChangeListeners():196:197 -> K
    1:10:boolean consistentBlockInstructions(boolean,boolean):64:73 -> a
    11:15:boolean consistentBlockInstructions(boolean,boolean):72:76 -> a
    16:16:boolean lambda$verifyTypes$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Instruction):84:84 -> a
    17:17:boolean verifyTypes(com.android.tools.r8.graph.AppView):84:84 -> a
    18:18:void setLocalsAtEntry(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):89:89 -> a
    19:23:void addControlFlowEdgesMayChangeListener(com.android.tools.r8.ir.code.BasicBlock$BasicBlockChangeListener):179:183 -> a
    24:41:void swapSuccessorsByIndex(int,int):278:295 -> a
    42:49:void replacePredecessor(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):408:415 -> a
    50:53:void removeSuccessorsByIndex(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):419:422 -> a
    54:55:boolean com.android.tools.r8.utils.ListUtils.verifyListIsOrdered(java.util.List):23:24 -> a
    54:55:void removeSuccessorsByIndex(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):422 -> a
    56:97:void removeSuccessorsByIndex(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):422:463 -> a
    98:99:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):564:565 -> a
    100:102:void clearMark(int):577:579 -> a
    103:103:void addPhi(com.android.tools.r8.ir.code.Phi):609:609 -> a
    104:109:void close(com.android.tools.r8.ir.conversion.IRBuilder):625:630 -> a
    110:117:boolean verifyNoValuesAfterThrowingInstruction():1439:1446 -> a
    110:117:void close(com.android.tools.r8.ir.conversion.IRBuilder):630 -> a
    118:119:void close(com.android.tools.r8.ir.conversion.IRBuilder):631:632 -> a
    120:120:void unlinkCatchHandlerForGuard(com.android.tools.r8.graph.DexType):712:712 -> a
    121:125:boolean isCatchHandlerForSingleGuard():738:742 -> a
    121:125:void unlinkCatchHandlerForGuard(com.android.tools.r8.graph.DexType):713 -> a
    126:130:void unlinkCatchHandlerForGuard(com.android.tools.r8.graph.DexType):715:719 -> a
    131:131:boolean lambda$removeCatchHandlerWithGuard$4(int,com.android.tools.r8.ir.code.BasicBlock):730:730 -> a
    132:140:java.util.List unlink(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.DominatorTree):758:766 -> a
    141:170:java.util.Set cleanForRemoval():771:800 -> a
    171:180:void linkCatchSuccessors(java.util.List,java.util.List):804:813 -> a
    181:184:void addCatchHandler(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexType):817:820 -> a
    185:195:boolean renameGuardsInCatchHandlers(com.android.tools.r8.graph.GraphLense):830:840 -> a
    196:196:boolean isOnThrowValue(int,com.android.tools.r8.ir.code.BasicBlock$EdgeType):897:897 -> a
    196:196:void addIncompletePhi(int,com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1008 -> a
    197:200:void addIncompletePhi(int,com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.BasicBlock$EdgeType):1009:1012 -> a
    201:201:boolean isOnThrowValue(int,com.android.tools.r8.ir.code.BasicBlock$EdgeType):897:897 -> a
    201:201:void updateCurrentDefinition(int,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock$EdgeType):928 -> a
    202:219:void updateCurrentDefinition(int,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock$EdgeType):929:946 -> a
    220:224:com.android.tools.r8.ir.code.Value readCurrentDefinition(int,com.android.tools.r8.ir.code.BasicBlock$EdgeType):903:907 -> a
    225:229:void writeCurrentDefinition(int,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):953:957 -> a
    230:233:void writeCurrentDefinition(int,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):956:959 -> a
    234:235:com.android.tools.r8.ir.code.BasicBlock$EdgeType getEdgeType(com.android.tools.r8.ir.code.BasicBlock):979:980 -> a
    236:243:void appendBasicBlockList(java.lang.StringBuilder,java.util.List,java.util.function.Function):1025:1032 -> a
    244:247:void printDebugValueSet(java.lang.String,java.util.List,java.lang.StringBuilder):1142:1145 -> a
    248:280:void print(com.android.tools.r8.utils.CfgPrinter):1150:1182 -> a
    281:282:void printBlockList(com.android.tools.r8.utils.CfgPrinter,java.util.List):1186:1187 -> a
    283:283:void setInstructions(java.util.LinkedList):1200:1200 -> a
    284:297:void removeInstructions(java.util.List):1208:1221 -> a
    298:301:com.android.tools.r8.ir.code.BasicBlock createIfBlock(int,com.android.tools.r8.ir.code.If):1274:1277 -> a
    302:315:com.android.tools.r8.ir.code.BasicBlock createRethrowBlock(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Position,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):1310:1323 -> a
    316:316:com.android.tools.r8.ir.code.InstructionListIterator listIterator(com.android.tools.r8.ir.code.Instruction):1472:1472 -> a
    317:340:com.android.tools.r8.ir.code.BasicBlock createSplitBlock(int,boolean):1490:1513 -> a
    341:358:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1538:1555 -> a
    359:359:void copyCatchHandlers(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.utils.InternalOptions):1554:1554 -> a
    360:403:int splitCriticalExceptionEdges(int,com.android.tools.r8.ir.code.ValueNumberGenerator,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1580:1623 -> a
    404:443:int splitCriticalExceptionEdges(int,com.android.tools.r8.ir.code.ValueNumberGenerator,java.util.function.Consumer,com.android.tools.r8.utils.InternalOptions):1599:1638 -> a
    1:3:void add(com.android.tools.r8.ir.code.Instruction):619:621 -> add
    1:1:void lambda$notifyPredecessorsMayChangeListeners$2(com.android.tools.r8.ir.code.BasicBlock$BasicBlockChangeListener):227:227 -> b
    2:38:void replaceSuccessor(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):300:336 -> b
    39:43:boolean hasLinearFlow(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):395:399 -> b
    39:43:void replaceSuccessor(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):336 -> b
    44:94:void replaceSuccessor(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):336:386 -> b
    95:96:void removePhisByIndex(java.util.List):484:485 -> b
    97:98:void decrementUnfilledPredecessorCount(int):593:594 -> b
    99:100:void removePhi(com.android.tools.r8.ir.code.Phi):613:614 -> b
    101:110:void removeCatchHandlerWithGuard(com.android.tools.r8.graph.DexType):724:733 -> b
    111:112:com.android.tools.r8.ir.code.Value readOnThrowValue(int,com.android.tools.r8.ir.code.BasicBlock$EdgeType):890:891 -> b
    113:124:void filledPredecessor(com.android.tools.r8.ir.conversion.IRBuilder):963:974 -> b
    125:133:int guardsForCatchSuccessor(com.android.tools.r8.ir.code.BasicBlock):991:999 -> b
    134:136:void removeInstruction(com.android.tools.r8.ir.code.Instruction):1229:1231 -> b
    137:137:void clearCatchHandlers():1393:1393 -> b
    1:3:void replaceLastInstruction(com.android.tools.r8.ir.code.Instruction):97:99 -> c
    4:4:void lambda$notifySuccessorsMayChangeListeners$1(com.android.tools.r8.ir.code.BasicBlock$BasicBlockChangeListener):197:197 -> c
    5:9:void swapSuccessors(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):270:274 -> c
    10:21:void removePredecessorsByIndex(java.util.List):469:480 -> c
    22:23:boolean isMarked(int):583:584 -> c
    24:26:void clearCurrentDefinitions():876:878 -> c
    27:39:boolean hasPathTo(com.android.tools.r8.ir.code.BasicBlock):1740:1752 -> c
    1:2:boolean canThrow():1416:1417 -> canThrow
    1:2:com.android.tools.r8.ir.code.BasicBlock createGotoBlock(int,com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.BasicBlock):1244:1245 -> createGotoBlock
    3:7:com.android.tools.r8.ir.code.BasicBlock createGotoBlock(int,com.android.tools.r8.ir.code.Position):1257:1261 -> createGotoBlock
    1:2:void clearUserInfo():559:560 -> d
    3:6:void mark(int):570:573 -> d
    7:10:void link(com.android.tools.r8.ir.code.BasicBlock):637:640 -> d
    11:11:boolean blocksClean(java.util.List):644:644 -> d
    1:2:int numberInstructions(int):521:522 -> e
    3:8:boolean consistentCatchHandlers():847:852 -> e
    9:28:boolean consistentCatchHandlers():851:870 -> e
    29:34:void moveCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):1522:1527 -> e
    1:3:com.android.tools.r8.ir.code.JumpInstruction exit():541:543 -> exit
    int onThrowValueRegister(int) -> f
    1:16:void removePredecessor(com.android.tools.r8.ir.code.BasicBlock):249:264 -> f
    17:18:void decrementUnfilledPredecessorCount():598:599 -> f
    1:3:void removeSuccessor(com.android.tools.r8.ir.code.BasicBlock):243:245 -> g
    4:5:boolean verifyOnThrowWrite(int):1429:1430 -> g
    6:20:void deduplicatePhis():1783:1797 -> g
    1:1:java.util.LinkedList getInstructions():529:529 -> getInstructions
    1:2:java.util.List getMutablePredecessors():221:222 -> getMutablePredecessors
    1:2:java.util.List getMutableSuccessors():191:192 -> getMutableSuccessors
    1:1:java.util.List getPhis():490:490 -> getPhis
    1:1:java.util.List getPredecessors():217:217 -> getPredecessors
    1:1:java.util.List getSuccessors():187:187 -> getSuccessors
    1:4:void detachAllSuccessors():751:754 -> h
    5:6:void transferCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):1397:1398 -> h
    1:2:boolean hasCatchHandlers():502:503 -> hasCatchHandlers
    1:4:boolean hasCatchSuccessor(com.android.tools.r8.ir.code.BasicBlock):984:987 -> hasCatchSuccessor
    1:3:com.android.tools.r8.ir.code.BasicBlock endOfGotoChain():1337:1339 -> i
    4:79:java.util.List appendCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):1655:1730 -> i
    1:1:boolean isTrivialGoto():1328:1328 -> isTrivialGoto
    1:1:com.android.tools.r8.ir.code.Instruction entry():537:537 -> j
    2:3:void lambda$blocksClean$3(com.android.tools.r8.ir.code.BasicBlock):646:647 -> j
    java.lang.String lambda$toDetailedString$5(com.android.tools.r8.ir.code.BasicBlock) -> k
    1:5:com.android.tools.r8.ir.code.Instruction exceptionalExit():547:551 -> k
    1:2:java.lang.String predecessorPostfix(com.android.tools.r8.ir.code.BasicBlock):1046:1047 -> l
    3:7:com.android.tools.r8.ir.code.CatchHandlers getCatchHandlers():1381:1385 -> l
    1:1:com.android.tools.r8.ir.code.InstructionListIterator listIterator():1457:1457 -> listIterator
    2:2:com.android.tools.r8.ir.code.InstructionListIterator listIterator(int):1461:1461 -> listIterator
    1:1:com.android.tools.r8.ir.code.CatchHandlers getCatchHandlersWithSuccessorIndexes():1389:1389 -> m
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap getLocalsAtEntry():93:93 -> n
    1:7:java.util.List getNormalPredecessors():233:239 -> o
    1:11:java.util.List getNormalSuccessors():203:213 -> p
    1:2:int getNumber():507:508 -> q
    1:1:java.lang.String getNumberAsString():517:517 -> r
    1:1:com.android.tools.r8.ir.code.Position getPosition():1373:1373 -> s
    1:1:void setFilledForTesting():498:498 -> setFilledForTesting
    1:2:void setNumber(int):512:513 -> setNumber
    1:1:boolean hasIncompletePhis():1016:1016 -> t
    1:1:java.lang.String toString():1038:1038 -> toString
    1:1:boolean hasOneNormalExit():1377:1377 -> u
    1:2:void incrementUnfilledPredecessorCount():588:589 -> v
    1:1:boolean isEmpty():533:533 -> w
    1:1:boolean isFilled():494:494 -> x
    1:1:boolean isSealed():1004:1004 -> y
    1:11:boolean isSimpleAlwaysThrowingPath():1354:1364 -> z
com.android.tools.r8.ir.code.BasicBlock$1 -> com.android.tools.r8.ir.code.f:
com.android.tools.r8.ir.code.BasicBlock$BasicBlockChangeListener -> com.android.tools.r8.ir.code.BasicBlock$a:
com.android.tools.r8.ir.code.BasicBlock$EdgeType -> com.android.tools.r8.ir.code.BasicBlock$b:
    com.android.tools.r8.ir.code.BasicBlock$EdgeType NORMAL -> b
    com.android.tools.r8.ir.code.BasicBlock$EdgeType EXCEPTIONAL -> c
    com.android.tools.r8.ir.code.BasicBlock$EdgeType NON_EDGE -> a
    1:3:void <clinit>():112:114 -> <clinit>
    4:4:void <clinit>():111:111 -> <clinit>
    1:1:void <init>(java.lang.String,int):111:111 -> <init>
com.android.tools.r8.ir.code.BasicBlock$PhiEquivalence -> com.android.tools.r8.ir.code.BasicBlock$c:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():1760:1760 -> <clinit>
    1:1:void <init>():1760:1760 -> <init>
    1:1:void <init>(com.android.tools.r8.ir.code.BasicBlock$1):1760 -> <init>
    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):1760:1760 -> a
    2:4:boolean doEquivalent(com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.Phi):1763:1765 -> a
    2:4:boolean doEquivalent(java.lang.Object,java.lang.Object):1760 -> a
    5:5:int doHash(java.lang.Object):1760:1760 -> a
    6:7:int doHash(com.android.tools.r8.ir.code.Phi):1775:1776 -> a
    6:7:int doHash(java.lang.Object):1760 -> a
com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo -> com.android.tools.r8.ir.code.BasicBlock$d:
    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo CAN_THROW -> b
    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo NO_THROW -> a
    1:2:void <clinit>():103:104 -> <clinit>
    3:3:void <clinit>():102:102 -> <clinit>
    1:1:void <init>(java.lang.String,int):102:102 -> <init>
    1:1:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo defaultForConstString(com.android.tools.r8.utils.InternalOptions):107:107 -> a
com.android.tools.r8.ir.code.BasicBlockInstructionIterator -> com.android.tools.r8.ir.code.g:
    java.util.ListIterator listIterator -> b
    com.android.tools.r8.ir.code.Instruction current -> c
    boolean $assertionsDisabled -> e
    com.android.tools.r8.ir.code.Position position -> d
    com.android.tools.r8.ir.code.BasicBlock block -> a
    1:1:void <clinit>():26:26 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.BasicBlock):33:33 -> <init>
    2:6:void <init>(com.android.tools.r8.ir.code.BasicBlock):31:35 -> <init>
    7:7:void <init>(com.android.tools.r8.ir.code.BasicBlock,int):38:38 -> <init>
    8:17:void <init>(com.android.tools.r8.ir.code.BasicBlock,int):31:40 -> <init>
    18:19:void <init>(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):44:45 -> <init>
    boolean lambda$inlineInvoke$1(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock) -> a
    boolean lambda$new$0(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction) -> a
    1:1:void setInsertionPosition(com.android.tools.r8.ir.code.Position):82:82 -> a
    2:34:void splitBlockAndCopyCatchHandlers(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,java.util.ListIterator):261:293 -> a
    35:40:void removeArgumentInstruction(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Value):327:332 -> a
    41:73:com.android.tools.r8.ir.code.InstructionListIterator ensureSingleReturnInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.List):524:556 -> a
    74:74:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):45:45 -> a
    74:74:com.android.tools.r8.ir.code.InstructionListIterator ensureSingleReturnInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.List):556 -> a
    75:93:com.android.tools.r8.ir.code.InstructionListIterator ensureSingleReturnInstruction(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.List):556:574 -> a
    1:1:void add(java.lang.Object):26:26 -> add
    2:7:void add(com.android.tools.r8.ir.code.Instruction):95:100 -> add
    2:7:void add(java.lang.Object):26 -> add
    1:1:boolean hasNext():50:50 -> hasNext
    1:1:boolean hasPrevious():66:66 -> hasPrevious
    1:1:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.List,com.android.tools.r8.graph.DexType):343:343 -> inlineInvoke
    2:4:boolean canThrow(com.android.tools.r8.ir.code.IRCode):245:247 -> inlineInvoke
    2:4:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.List,com.android.tools.r8.graph.DexType):344 -> inlineInvoke
    5:12:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):186:193 -> inlineInvoke
    5:12:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator):232 -> inlineInvoke
    5:12:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.List,com.android.tools.r8.graph.DexType):349 -> inlineInvoke
    13:13:boolean hasNext():50:50 -> inlineInvoke
    13:13:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):193 -> inlineInvoke
    13:13:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator):232 -> inlineInvoke
    13:13:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.List,com.android.tools.r8.graph.DexType):349 -> inlineInvoke
    14:17:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):193:196 -> inlineInvoke
    14:17:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator):232 -> inlineInvoke
    14:17:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.List,com.android.tools.r8.graph.DexType):349 -> inlineInvoke
    18:18:boolean hasPrevious():66:66 -> inlineInvoke
    18:18:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):200 -> inlineInvoke
    18:18:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator):232 -> inlineInvoke
    18:18:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.List,com.android.tools.r8.graph.DexType):349 -> inlineInvoke
    19:42:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):200:223 -> inlineInvoke
    19:42:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator):232 -> inlineInvoke
    19:42:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.List,com.android.tools.r8.graph.DexType):349 -> inlineInvoke
    43:49:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator):233:239 -> inlineInvoke
    43:49:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.List,com.android.tools.r8.graph.DexType):349 -> inlineInvoke
    50:76:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.List,com.android.tools.r8.graph.DexType):350:376 -> inlineInvoke
    77:128:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.List,com.android.tools.r8.graph.DexType):375:426 -> inlineInvoke
    129:129:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):45:45 -> inlineInvoke
    129:129:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.List,com.android.tools.r8.graph.DexType):426 -> inlineInvoke
    130:149:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.List,com.android.tools.r8.graph.DexType):426:445 -> inlineInvoke
    150:150:void com.android.tools.r8.ir.analysis.type.TypeAnalysis.<init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod):45:45 -> inlineInvoke
    150:150:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.List,com.android.tools.r8.graph.DexType):445 -> inlineInvoke
    151:151:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.List,com.android.tools.r8.graph.DexType):448:448 -> inlineInvoke
    152:152:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> inlineInvoke
    152:152:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.List,com.android.tools.r8.graph.DexType):447 -> inlineInvoke
    153:202:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.List,com.android.tools.r8.graph.DexType):446:495 -> inlineInvoke
    203:219:void appendCatchHandlers(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):304:320 -> inlineInvoke
    203:219:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.List,com.android.tools.r8.graph.DexType):496 -> inlineInvoke
    220:233:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.List,com.android.tools.r8.graph.DexType):503:516 -> inlineInvoke
    234:234:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.List,com.android.tools.r8.graph.DexType):515:515 -> inlineInvoke
    1:2:com.android.tools.r8.ir.code.Instruction next():55:56 -> next
    1:2:java.lang.Object next():26 -> next
    1:1:int nextIndex():61:61 -> nextIndex
    1:2:com.android.tools.r8.ir.code.Instruction previous():71:72 -> previous
    1:2:java.lang.Object previous():26 -> previous
    1:1:int previousIndex():77:77 -> previousIndex
    1:21:void remove():129:149 -> remove
    22:22:void remove():130:130 -> remove
    1:4:void removeOrReplaceByDebugLocalRead():154:157 -> removeOrReplaceByDebugLocalRead
    5:25:void remove():129:149 -> removeOrReplaceByDebugLocalRead
    5:25:void removeOrReplaceByDebugLocalRead():158 -> removeOrReplaceByDebugLocalRead
    26:26:void remove():130:130 -> removeOrReplaceByDebugLocalRead
    26:26:void removeOrReplaceByDebugLocalRead():158 -> removeOrReplaceByDebugLocalRead
    27:27:void removeOrReplaceByDebugLocalRead():160:160 -> removeOrReplaceByDebugLocalRead
    28:43:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):166:181 -> removeOrReplaceByDebugLocalRead
    28:43:void removeOrReplaceByDebugLocalRead():160 -> removeOrReplaceByDebugLocalRead
    44:44:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):167:167 -> removeOrReplaceByDebugLocalRead
    44:44:void removeOrReplaceByDebugLocalRead():160 -> removeOrReplaceByDebugLocalRead
    45:45:void removeOrReplaceByDebugLocalRead():155:155 -> removeOrReplaceByDebugLocalRead
    1:16:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):166:181 -> replaceCurrentInstruction
    17:17:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):167:167 -> replaceCurrentInstruction
    1:1:void set(java.lang.Object):26:26 -> set
    2:4:void set(com.android.tools.r8.ir.code.Instruction):113:115 -> set
    2:4:void set(java.lang.Object):26 -> set
    1:8:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):186:193 -> split
    1:8:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator):232 -> split
    9:9:boolean hasNext():50:50 -> split
    9:9:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):193 -> split
    9:9:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator):232 -> split
    10:13:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):193:196 -> split
    10:13:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator):232 -> split
    14:14:boolean hasPrevious():66:66 -> split
    14:14:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):200 -> split
    14:14:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator):232 -> split
    15:38:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):200:223 -> split
    15:38:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator):232 -> split
    39:45:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator):233:239 -> split
    46:53:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):186:193 -> split
    54:54:boolean hasNext():50:50 -> split
    54:54:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):193 -> split
    55:58:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):193:196 -> split
    59:59:boolean hasPrevious():66:66 -> split
    59:59:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):200 -> split
    60:83:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):200:223 -> split
com.android.tools.r8.ir.code.BasicBlockIterator -> com.android.tools.r8.ir.code.h:
    java.util.ListIterator listIterator -> a
    com.android.tools.r8.ir.code.BasicBlock current -> b
    1:3:void <init>(com.android.tools.r8.ir.code.IRCode):16:18 -> <init>
    1:1:void add(java.lang.Object):10:10 -> add
    2:2:void add(com.android.tools.r8.ir.code.BasicBlock):60:60 -> add
    2:2:void add(java.lang.Object):10 -> add
    1:1:boolean hasNext():28:28 -> hasNext
    1:1:boolean hasPrevious():44:44 -> hasPrevious
    1:2:com.android.tools.r8.ir.code.BasicBlock next():33:34 -> next
    1:2:java.lang.Object next():10 -> next
    1:1:int nextIndex():39:39 -> nextIndex
    1:2:com.android.tools.r8.ir.code.BasicBlock previous():49:50 -> previous
    1:2:java.lang.Object previous():10 -> previous
    1:1:int previousIndex():55:55 -> previousIndex
    1:12:void remove():78:89 -> remove
    13:13:void remove():79:79 -> remove
    1:1:void set(java.lang.Object):10:10 -> set
    2:2:void set(com.android.tools.r8.ir.code.BasicBlock):65:65 -> set
    2:2:void set(java.lang.Object):10 -> set
com.android.tools.r8.ir.code.Binop -> com.android.tools.r8.ir.code.i:
    com.android.tools.r8.ir.code.NumericType type -> h
    1:8:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):25:32 -> <init>
    1:1:int maxOutValueRegister():96:96 -> Ab
    1:1:com.android.tools.r8.ir.code.NumericType getNumericType():37:37 -> Cb
    boolean isCommutative() -> Db
    1:1:com.android.tools.r8.ir.code.Value leftValue():41:41 -> Eb
    1:2:int maxInOutValueRegisterSize():83:84 -> Fb
    1:1:com.android.tools.r8.ir.code.Value rightValue():45:45 -> Gb
    1:8:boolean isTwoAddr(com.android.tools.r8.ir.regalloc.RegisterAllocator):52:59 -> a
    9:9:int foldIntegers(int,int):100:100 -> a
    10:10:long foldLongs(long,long):104:104 -> a
    11:11:float foldFloat(float,float):108:108 -> a
    12:12:double foldDouble(double,double):112:112 -> a
    13:13:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):128:128 -> a
    14:15:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):133:134 -> a
    16:16:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):139:139 -> a
    com.android.tools.r8.ir.code.Binop asBinop() -> g
    1:1:boolean fitsInDexInstruction(com.android.tools.r8.ir.code.Value):65:65 -> g
    1:3:boolean fitsInLit16Instruction(com.android.tools.r8.ir.code.Value):69:71 -> h
    1:3:boolean fitsInLit8Instruction(com.android.tools.r8.ir.code.Value):75:77 -> i
    boolean hasInvariantOutType() -> qa
    boolean isBinop() -> xa
    1:1:int maxInValueRegister():91:91 -> zb
com.android.tools.r8.ir.code.CanonicalPositions -> com.android.tools.r8.ir.code.j:
    java.util.Map canonicalPositions -> b
    com.android.tools.r8.ir.code.Position callerPosition -> a
    com.android.tools.r8.ir.code.Position preamblePosition -> c
    1:12:void <init>(com.android.tools.r8.ir.code.Position,int,com.android.tools.r8.graph.DexMethod):23:34 -> <init>
    1:1:com.android.tools.r8.ir.code.Position getPreamblePosition():38:38 -> a
    2:4:com.android.tools.r8.ir.code.Position canonicalizeCallerPosition(com.android.tools.r8.ir.code.Position):57:59 -> a
    5:5:com.android.tools.r8.ir.code.Position getCanonical(com.android.tools.r8.ir.code.Position):46:46 -> a
    5:5:com.android.tools.r8.ir.code.Position canonicalizeCallerPosition(com.android.tools.r8.ir.code.Position):60 -> a
    6:10:com.android.tools.r8.ir.code.Position canonicalizeCallerPosition(com.android.tools.r8.ir.code.Position):62:66 -> a
    11:11:com.android.tools.r8.ir.code.Position getCanonical(com.android.tools.r8.ir.code.Position):46:46 -> a
    11:11:com.android.tools.r8.ir.code.Position canonicalizeCallerPosition(com.android.tools.r8.ir.code.Position):63 -> a
    1:1:com.android.tools.r8.ir.code.Position getCanonical(com.android.tools.r8.ir.code.Position):46:46 -> b
com.android.tools.r8.ir.code.CatchHandlers -> com.android.tools.r8.ir.code.CatchHandlers:
    java.util.List targets -> b
    java.util.List guards -> a
    java.util.Set uniqueTargets -> c
    boolean $assertionsDisabled -> f
    com.android.tools.r8.ir.code.CatchHandlers EMPTY_INDICES -> d
    com.android.tools.r8.ir.code.CatchHandlers EMPTY_BASIC_BLOCK -> e
    1:19:void <clinit>():17:35 -> <clinit>
    1:3:void <init>():37:39 -> <init>
    4:9:void <init>(java.util.List,java.util.List):42:47 -> <init>
    1:1:java.util.List access$000(com.android.tools.r8.ir.code.CatchHandlers):17:17 -> a
    2:3:boolean hasCatchAll(com.android.tools.r8.graph.DexItemFactory):75:76 -> a
    4:13:com.android.tools.r8.ir.code.CatchHandlers removeGuard(com.android.tools.r8.graph.DexType):80:89 -> a
    14:15:void lambda$removeGuard$0(com.android.tools.r8.graph.DexType,java.util.List,java.util.List,com.android.tools.r8.graph.DexType,java.lang.Object):85:86 -> a
    16:17:void forEach(java.util.function.BiConsumer):93:94 -> a
    1:1:java.util.List access$100(com.android.tools.r8.ir.code.CatchHandlers):17:17 -> b
    1:1:java.util.List getAllTargets():64:64 -> c
    1:1:java.util.List getGuards():60:60 -> e
    1:5:boolean equals(java.lang.Object):124:128 -> equals
    1:4:java.util.Set getUniqueTargets():68:71 -> g
    1:1:int hashCode():133:133 -> hashCode
    1:1:boolean isEmpty():51:51 -> isEmpty
    1:1:java.util.Iterator iterator():100:100 -> iterator
    1:2:int size():55:56 -> size
com.android.tools.r8.ir.code.CatchHandlers$1 -> com.android.tools.r8.ir.code.k:
    com.android.tools.r8.ir.code.CatchHandlers this$0 -> b
    int nextIndex -> a
    1:3:void <init>(com.android.tools.r8.ir.code.CatchHandlers):100:102 -> <init>
    1:1:boolean hasNext():106:106 -> hasNext
    1:4:com.android.tools.r8.ir.code.CatchHandlers$CatchHandler next():111:114 -> next
    1:4:java.lang.Object next():100 -> next
com.android.tools.r8.ir.code.CatchHandlers$CatchHandler -> com.android.tools.r8.ir.code.CatchHandlers$a:
    java.lang.Object target -> b
    com.android.tools.r8.graph.DexType guard -> a
    1:3:void <init>(com.android.tools.r8.graph.DexType,java.lang.Object):24:26 -> <init>
com.android.tools.r8.ir.code.CheckCast -> com.android.tools.r8.ir.code.CheckCast:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.graph.DexType type -> h
    1:1:void <clinit>():22:22 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):31:32 -> <init>
    int maxOutValueRegister() -> Ab
    1:1:com.android.tools.r8.graph.DexType getType():36:36 -> Cb
    1:14:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):48:61 -> a
    15:15:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):105:105 -> a
    16:16:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):110:110 -> a
    17:18:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):155:156 -> a
    19:19:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):168:168 -> a
    20:20:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):173:173 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):69:69 -> b
    2:30:boolean verifyTypes(com.android.tools.r8.graph.AppView):115:143 -> b
    com.android.tools.r8.ir.code.CheckCast asCheckCast() -> h
    1:1:com.android.tools.r8.ir.code.Value object():40:40 -> object
    boolean hasInvariantOutType() -> qa
    1:1:java.lang.String toString():99:99 -> toString
    boolean isCheckCast() -> ya
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.Cmp -> com.android.tools.r8.ir.code.Cmp:
    boolean $assertionsDisabled -> j
    com.android.tools.r8.ir.code.Cmp$Bias bias -> i
    1:1:void <clinit>():27:27 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Cmp$Bias,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):36:37 -> <init>
    int maxOutValueRegister() -> Ab
    boolean isCommutative() -> Db
    1:28:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):48:75 -> a
    29:53:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):53:77 -> a
    54:62:java.lang.String biasToString(com.android.tools.r8.ir.code.Cmp$Bias):81:89 -> a
    63:77:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):154:168 -> a
    78:89:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):166:177 -> a
    90:102:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):175:187 -> a
    103:109:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):186:192 -> a
    110:116:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):191:197 -> a
    117:120:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):196:199 -> a
    121:127:com.android.tools.r8.ir.analysis.constant.LatticeElement buildLatticeResult(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.LongInterval,com.android.tools.r8.utils.LongInterval):204:210 -> a
    128:128:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):225:225 -> a
    129:129:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):230:230 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):127:127 -> b
    com.android.tools.r8.ir.code.Cmp asCmp() -> i
    1:17:java.lang.String toString():95:111 -> toString
    18:40:java.lang.String toString():100:122 -> toString
    boolean isCmp() -> za
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.Cmp$Bias -> com.android.tools.r8.ir.code.Cmp$Bias:
    com.android.tools.r8.ir.code.Cmp$Bias[] $VALUES -> a
    1:1:void <clinit>():30:30 -> <clinit>
    2:2:void <clinit>():29:29 -> <clinit>
    1:1:void <init>(java.lang.String,int):29:29 -> <init>
    1:1:com.android.tools.r8.ir.code.Cmp$Bias[] values():29:29 -> values
com.android.tools.r8.ir.code.ConstClass -> com.android.tools.r8.ir.code.l:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.graph.DexType clazz -> h
    1:1:void <clinit>():22:22 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):27:28 -> <init>
    boolean isConstClass() -> Aa
    int maxOutValueRegister() -> Ab
    1:1:com.android.tools.r8.graph.DexType getValue():49:49 -> Cb
    1:1:com.android.tools.r8.ir.code.ConstClass copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstClass):41:41 -> a
    2:2:com.android.tools.r8.graph.DexType getValue():49:49 -> a
    2:2:com.android.tools.r8.ir.code.ConstClass copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstClass):41 -> a
    3:3:com.android.tools.r8.ir.code.ConstClass copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstClass):41:41 -> a
    4:4:com.android.tools.r8.ir.code.Value dest():45:45 -> a
    4:4:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):54 -> a
    5:6:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):54:55 -> a
    7:7:com.android.tools.r8.graph.DexType getValue():49:49 -> a
    7:7:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):88 -> a
    8:15:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):88:95 -> a
    16:16:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):109:109 -> a
    17:17:com.android.tools.r8.graph.DexType getValue():49:49 -> a
    17:17:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):88 -> a
    17:17:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):109 -> a
    18:25:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):88:95 -> a
    18:25:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):109 -> a
    26:26:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):135:135 -> a
    27:27:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):140:140 -> a
    28:28:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):146:146 -> a
    29:29:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):151:151 -> a
    30:30:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):156:156 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):119:119 -> b
    com.android.tools.r8.ir.code.ConstClass asConstClass() -> j
    boolean isOutConstant() -> mb
    boolean instructionInstanceCanThrow() -> ta
    1:1:java.lang.String toString():71:71 -> toString
    1:1:int maxInValueRegister():60:60 -> zb
com.android.tools.r8.ir.code.ConstInstruction -> com.android.tools.r8.ir.code.m:
    1:1:void <init>(com.android.tools.r8.ir.code.Value):32:32 -> <init>
    boolean isConstInstruction() -> Ba
    1:6:com.android.tools.r8.ir.code.ConstInstruction copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstInstruction):14:19 -> a
    7:7:com.android.tools.r8.ir.code.ConstMethodType com.android.tools.r8.ir.code.ConstMethodType.copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstMethodType):38:38 -> a
    7:7:com.android.tools.r8.ir.code.ConstInstruction copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstInstruction):19 -> a
    8:9:com.android.tools.r8.ir.code.ConstInstruction copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstInstruction):20:21 -> a
    10:10:com.android.tools.r8.ir.code.ConstNumber com.android.tools.r8.ir.code.ConstNumber.copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstNumber):54:54 -> a
    10:10:com.android.tools.r8.ir.code.ConstInstruction copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstInstruction):21 -> a
    11:16:com.android.tools.r8.ir.code.ConstInstruction copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstInstruction):22:27 -> a
    17:17:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):53:53 -> a
    com.android.tools.r8.ir.code.ConstInstruction asConstInstruction() -> k
    com.android.tools.r8.ir.code.ConstInstruction getOutConstantConstInstruction() -> la
    boolean hasInvariantOutType() -> qa
com.android.tools.r8.ir.code.ConstMethodHandle -> com.android.tools.r8.ir.code.n:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.graph.DexMethodHandle methodHandle -> h
    1:1:void <clinit>():21:21 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexMethodHandle):26:27 -> <init>
    int maxOutValueRegister() -> Ab
    boolean isConstMethodHandle() -> Ca
    1:1:com.android.tools.r8.graph.DexMethodHandle getValue():48:48 -> Cb
    1:1:com.android.tools.r8.ir.code.ConstMethodHandle copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstMethodHandle):40:40 -> a
    2:2:com.android.tools.r8.graph.DexMethodHandle getValue():48:48 -> a
    2:2:com.android.tools.r8.ir.code.ConstMethodHandle copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstMethodHandle):40 -> a
    3:3:com.android.tools.r8.ir.code.ConstMethodHandle copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstMethodHandle):40:40 -> a
    4:4:com.android.tools.r8.ir.code.Value dest():44:44 -> a
    4:4:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):53 -> a
    5:6:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):53:54 -> a
    7:7:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):59:59 -> a
    8:8:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):76:76 -> a
    9:9:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):112:112 -> a
    10:10:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):111:111 -> a
    11:11:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):118:118 -> a
    12:12:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):123:123 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):64:64 -> b
    com.android.tools.r8.ir.code.ConstMethodHandle asConstMethodHandle() -> l
    boolean isOutConstant() -> mb
    1:1:java.lang.String toString():86:86 -> toString
    1:1:int maxInValueRegister():69:69 -> zb
com.android.tools.r8.ir.code.ConstMethodType -> com.android.tools.r8.ir.code.o:
    com.android.tools.r8.graph.DexProto methodType -> h
    boolean $assertionsDisabled -> i
    1:1:void <clinit>():19:19 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexProto):24:25 -> <init>
    int maxOutValueRegister() -> Ab
    1:1:com.android.tools.r8.graph.DexProto getValue():46:46 -> Cb
    boolean isConstMethodType() -> Da
    1:1:com.android.tools.r8.ir.code.Value dest():42:42 -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):51 -> a
    2:3:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):51:52 -> a
    4:4:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):57:57 -> a
    5:5:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):104:104 -> a
    6:6:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):103:103 -> a
    7:7:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):110:110 -> a
    8:8:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):115:115 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):62:62 -> b
    com.android.tools.r8.ir.code.ConstMethodType asConstMethodType() -> m
    boolean isOutConstant() -> mb
    1:1:java.lang.String toString():78:78 -> toString
    1:1:int maxInValueRegister():67:67 -> zb
com.android.tools.r8.ir.code.ConstNumber -> com.android.tools.r8.ir.code.ConstNumber:
    boolean $assertionsDisabled -> i
    long value -> h
    1:1:void <clinit>():32:32 -> <clinit>
    1:6:void <init>(com.android.tools.r8.ir.code.Value,long):37:42 -> <init>
    int maxOutValueRegister() -> Ab
    1:1:boolean getBooleanValue():62:62 -> Cb
    1:2:double getDoubleValue():82:83 -> Db
    1:2:float getFloatValue():77:78 -> Eb
    1:2:int getIntValue():66:67 -> Fb
    3:5:int getIntValue():66:68 -> Fb
    1:2:long getLongValue():72:73 -> Gb
    1:1:boolean is16Bit():259:259 -> Hb
    1:1:boolean is8Bit():251:251 -> Ib
    1:1:boolean isIntegerOne():99:99 -> Jb
    1:1:boolean isIntegerZero():95:95 -> Kb
    1:1:boolean isZero():91:91 -> Lb
    1:1:boolean negativeIs16Bit():263:263 -> Mb
    1:1:boolean negativeIs8Bit():255:255 -> Nb
    1:4:com.android.tools.r8.ir.code.ConstNumber copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.ConstNumber):46:49 -> a
    5:5:com.android.tools.r8.ir.code.ConstNumber copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstNumber):54:54 -> a
    5:5:com.android.tools.r8.ir.code.ConstNumber copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.ConstNumber):50 -> a
    6:10:boolean isIntegerNegativeOne(com.android.tools.r8.ir.code.NumericType):103:107 -> a
    11:37:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):112:138 -> a
    38:46:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):119:127 -> a
    47:47:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):145:145 -> a
    48:51:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):150:153 -> a
    52:52:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):159:159 -> a
    53:70:int estimatedDexSize(com.android.tools.r8.ir.code.ValueType,long):197:214 -> a
    53:70:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):159 -> a
    71:101:int estimatedCfSize(com.android.tools.r8.ir.code.ValueType,long):163:193 -> a
    71:101:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):159 -> a
    102:102:int estimatedCfSize(com.android.tools.r8.ir.code.ValueType,long):186:186 -> a
    102:102:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):159 -> a
    103:103:int estimatedCfSize(com.android.tools.r8.ir.code.ValueType,long):180:180 -> a
    103:103:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.code.ValueType,long):159 -> a
    104:105:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):284:285 -> a
    106:109:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):290:293 -> a
    110:110:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):298:298 -> a
    1:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):243:247 -> b
    6:9:boolean verifyTypes(com.android.tools.r8.graph.AppView):303:306 -> b
    10:10:boolean verifyTypes(com.android.tools.r8.graph.AppView):304:304 -> b
    1:1:com.android.tools.r8.ir.code.Value dest():58:58 -> dest
    1:1:long getRawValue():87:87 -> getRawValue
    boolean isOutConstant() -> mb
    1:1:java.lang.String toString():235:235 -> toString
    1:1:int maxInValueRegister():224:224 -> zb
com.android.tools.r8.ir.code.ConstString -> com.android.tools.r8.ir.code.ConstString:
    boolean $assertionsDisabled -> j
    com.android.tools.r8.graph.DexString value -> h
    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfo -> i
    1:1:void <clinit>():21:21 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexString,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):27:29 -> <init>
    int maxOutValueRegister() -> Ab
    1:1:com.android.tools.r8.graph.DexString getValue():49:49 -> Cb
    boolean isConstString() -> Ea
    1:5:com.android.tools.r8.ir.code.ConstString copyOf(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.ConstString):33:37 -> a
    6:6:com.android.tools.r8.ir.code.ConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ConstString):41:41 -> a
    7:8:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):54:55 -> a
    9:9:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):120:120 -> a
    10:10:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):125:125 -> a
    11:11:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):130:130 -> a
    12:12:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):136:136 -> a
    13:13:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):141:141 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):60:60 -> b
    1:1:com.android.tools.r8.ir.code.Value dest():45:45 -> dest
    1:1:boolean instructionTypeCanThrow():81:81 -> instructionTypeCanThrow
    boolean isOutConstant() -> mb
    com.android.tools.r8.ir.code.ConstString asConstString() -> n
    1:11:boolean instructionInstanceCanThrow():101:111 -> ta
    1:1:java.lang.String toString():76:76 -> toString
    1:1:int maxInValueRegister():65:65 -> zb
com.android.tools.r8.ir.code.DebugLocalRead -> com.android.tools.r8.ir.code.p:
    1:1:void <init>():20:20 -> <init>
    1:1:int maxOutValueRegister():55:55 -> Ab
    boolean isDebugLocalRead() -> Ha
    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):35:35 -> a
    2:2:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):40:40 -> a
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):61:61 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):45:45 -> b
    boolean hasInvariantOutType() -> qa
    1:1:int maxInValueRegister():50:50 -> zb
com.android.tools.r8.ir.code.DebugLocalUninitialized -> com.android.tools.r8.ir.code.q:
    1:1:void <init>(com.android.tools.r8.ir.code.Value):21:21 -> <init>
    boolean isDebugLocalUninitialized() -> Ia
com.android.tools.r8.ir.code.DebugLocalWrite -> com.android.tools.r8.ir.code.r:
    boolean $assertionsDisabled -> i
    1:1:void <clinit>():27:27 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):30:31 -> <init>
    boolean isDebugLocalWrite() -> Ja
    1:1:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):57:57 -> a
    2:2:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):62:62 -> a
    3:3:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):68:68 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):51:51 -> b
    boolean isOutConstant() -> mb
    com.android.tools.r8.ir.code.DebugLocalWrite asDebugLocalWrite() -> o
com.android.tools.r8.ir.code.DebugLocalsChange -> com.android.tools.r8.ir.code.s:
    boolean $assertionsDisabled -> j
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap starting -> i
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap ending -> h
    1:1:void <clinit>():20:20 -> <clinit>
    1:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):27:30 -> <init>
    1:1:int maxOutValueRegister():73:73 -> Ab
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap getEnding():34:34 -> Cb
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap getStarting():38:38 -> Db
    boolean isDebugLocalsChange() -> Ka
    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):53:53 -> a
    2:2:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):94:94 -> a
    3:12:boolean apply(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):99:108 -> a
    13:13:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):115:115 -> a
    14:14:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):125:125 -> a
    1:6:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):58:63 -> b
    com.android.tools.r8.ir.code.DebugLocalsChange asDebugLocalsChange() -> p
    boolean hasInvariantOutType() -> qa
    1:6:java.lang.String toString():83:88 -> toString
    1:1:int maxInValueRegister():68:68 -> zb
com.android.tools.r8.ir.code.DebugPosition -> com.android.tools.r8.ir.code.t:
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():17:17 -> <clinit>
    1:1:void <init>():20:20 -> <init>
    1:1:int maxOutValueRegister():51:51 -> Ab
    boolean isDebugPosition() -> La
    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):35:35 -> a
    2:2:void com.android.tools.r8.ir.conversion.DexBuilder.addDebugPosition(com.android.tools.r8.ir.code.DebugPosition):585:585 -> a
    2:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):36 -> a
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):57:57 -> a
    4:6:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):77:79 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):41:41 -> b
    com.android.tools.r8.ir.code.DebugPosition asDebugPosition() -> q
    boolean hasInvariantOutType() -> qa
    1:1:int maxInValueRegister():46:46 -> zb
com.android.tools.r8.ir.code.DexItemBasedConstString -> com.android.tools.r8.ir.code.u:
    com.android.tools.r8.graph.DexReference item -> h
    boolean $assertionsDisabled -> k
    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfo -> j
    com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo classNameComputationInfo -> i
    1:1:void <clinit>():21:21 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexReference,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):28:28 -> <init>
    2:5:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexReference,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo,com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo):36:39 -> <init>
    int maxOutValueRegister() -> Ab
    1:1:com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo getClassNameComputationInfo():52:52 -> Cb
    1:1:com.android.tools.r8.graph.DexReference getItem():48:48 -> Db
    boolean isDexItemBasedConstString() -> Ma
    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    1:1:com.android.tools.r8.ir.code.DexItemBasedConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.DexItemBasedConstString):43:43 -> a
    2:2:com.android.tools.r8.graph.DexReference getItem():48:48 -> a
    2:2:com.android.tools.r8.ir.code.DexItemBasedConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.DexItemBasedConstString):44 -> a
    3:3:com.android.tools.r8.ir.code.DexItemBasedConstString copyOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.DexItemBasedConstString):44:44 -> a
    4:5:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):67:68 -> a
    6:6:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):120:120 -> a
    7:7:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):125:125 -> a
    8:8:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):131:131 -> a
    9:9:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):136:136 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):76:76 -> b
    1:1:boolean instructionTypeCanThrow():97:97 -> instructionTypeCanThrow
    boolean isOutConstant() -> mb
    com.android.tools.r8.ir.code.DexItemBasedConstString asDexItemBasedConstString() -> r
    boolean instructionInstanceCanThrow() -> ta
    1:1:java.lang.String toString():92:92 -> toString
    1:1:int maxInValueRegister():81:81 -> zb
com.android.tools.r8.ir.code.Div -> com.android.tools.r8.ir.code.Div:
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):24:24 -> <init>
    boolean isCommutative() -> Db
    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode():138:138 -> Hb
    boolean isDiv() -> Na
    double foldDouble(double,double) -> a
    float foldFloat(float,float) -> a
    1:1:com.android.tools.r8.code.Instruction CreateDouble(int,int,int):59:59 -> a
    2:2:int foldIntegers(int,int):104:104 -> a
    3:3:long foldLongs(long,long):109:109 -> a
    4:8:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):129:133 -> a
    1:1:com.android.tools.r8.code.Instruction CreateFloat(int,int,int):54:54 -> b
    2:2:com.android.tools.r8.code.Instruction CreateDouble2Addr(int,int):79:79 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):94:94 -> b
    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):44:44 -> c
    2:2:com.android.tools.r8.code.Instruction CreateFloat2Addr(int,int):74:74 -> c
    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):64:64 -> d
    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):89:89 -> d
    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):69:69 -> e
    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):84:84 -> e
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):49:49 -> f
    1:1:boolean instructionTypeCanThrow():124:124 -> instructionTypeCanThrow
    com.android.tools.r8.ir.code.Div asDiv() -> s
com.android.tools.r8.ir.code.DominatorTree -> com.android.tools.r8.ir.code.y:
    com.android.tools.r8.ir.code.BasicBlock[] sorted -> a
    com.android.tools.r8.ir.code.BasicBlock[] doms -> b
    boolean obsolete -> e
    boolean $assertionsDisabled -> f
    int unreachableStartIndex -> d
    com.android.tools.r8.ir.code.BasicBlock normalExitBlock -> c
    1:1:void <clinit>():16:16 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.IRCode):37:37 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.DominatorTree$Assumption):40:40 -> <init>
    3:50:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.DominatorTree$Assumption):30:77 -> <init>
    51:52:void numberBlocks():222:223 -> <init>
    51:52:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.DominatorTree$Assumption):79 -> <init>
    53:82:void build():238:267 -> <init>
    53:82:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.DominatorTree$Assumption):80 -> <init>
    83:83:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.DominatorTree$Assumption):84:84 -> <init>
    84:85:boolean recordChangesToControlFlowEdges(java.util.List):302:303 -> <init>
    84:85:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.DominatorTree$Assumption):84 -> <init>
    1:1:boolean dominatedBy(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):103:103 -> a
    2:8:boolean strictlyDominatedBy(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):118:124 -> a
    2:8:boolean dominatedBy(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):107 -> a
    9:16:com.android.tools.r8.ir.code.BasicBlock closestDominator(java.util.Collection):141:148 -> a
    17:22:java.util.List dominatedBlocks(com.android.tools.r8.ir.code.BasicBlock):155:160 -> a
    23:24:java.lang.Iterable dominatorBlocks(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.DominatorTree$Inclusive):177:178 -> a
    25:25:com.android.tools.r8.ir.code.BasicBlock[] getSortedBlocks():218:218 -> a
    1:2:com.android.tools.r8.ir.code.BasicBlock immediateDominator(com.android.tools.r8.ir.code.BasicBlock):91:92 -> b
    3:30:java.util.Iterator lambda$dominatorBlocks$0(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.DominatorTree$Inclusive):179:206 -> b
    31:31:boolean postorderCompareLess(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):229:229 -> b
    31:31:com.android.tools.r8.ir.code.BasicBlock intersect(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):278 -> b
    32:32:com.android.tools.r8.ir.code.BasicBlock intersect(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):279:279 -> b
    33:33:boolean postorderCompareLess(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):229:229 -> b
    33:33:com.android.tools.r8.ir.code.BasicBlock intersect(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):281 -> b
    34:34:com.android.tools.r8.ir.code.BasicBlock intersect(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):282:282 -> b
    1:1:void onPredecessorsMayChange(com.android.tools.r8.ir.code.BasicBlock):315:315 -> c
    1:1:void onSuccessorsMayChange(com.android.tools.r8.ir.code.BasicBlock):310:310 -> d
    1:9:java.lang.String toString():290:298 -> toString
com.android.tools.r8.ir.code.DominatorTree$1 -> com.android.tools.r8.ir.code.v:
    com.android.tools.r8.ir.code.DominatorTree this$0 -> c
    com.android.tools.r8.ir.code.BasicBlock val$dominated -> b
    boolean $assertionsDisabled -> d
    com.android.tools.r8.ir.code.BasicBlock current -> a
    1:1:void <clinit>():180:180 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.DominatorTree,com.android.tools.r8.ir.code.BasicBlock):180:181 -> <init>
    1:1:boolean hasNext():185:185 -> hasNext
    1:1:boolean hasNext():185:185 -> next
    1:1:com.android.tools.r8.ir.code.BasicBlock next():190 -> next
    1:1:java.lang.Object next():180 -> next
    2:7:com.android.tools.r8.ir.code.BasicBlock next():193:198 -> next
    2:7:java.lang.Object next():180 -> next
com.android.tools.r8.ir.code.DominatorTree$Assumption -> com.android.tools.r8.ir.code.w:
    com.android.tools.r8.ir.code.DominatorTree$Assumption MAY_HAVE_UNREACHABLE_BLOCKS -> b
    com.android.tools.r8.ir.code.DominatorTree$Assumption NO_UNREACHABLE_BLOCKS -> a
    1:2:void <clinit>():19:20 -> <clinit>
    3:3:void <clinit>():18:18 -> <clinit>
    1:1:void <init>(java.lang.String,int):18:18 -> <init>
com.android.tools.r8.ir.code.DominatorTree$Inclusive -> com.android.tools.r8.ir.code.x:
    com.android.tools.r8.ir.code.DominatorTree$Inclusive YES -> a
    com.android.tools.r8.ir.code.DominatorTree$Inclusive NO -> b
    1:2:void <clinit>():24:25 -> <clinit>
    3:3:void <clinit>():23:23 -> <clinit>
    1:1:void <init>(java.lang.String,int):23:23 -> <init>
com.android.tools.r8.ir.code.Dup -> com.android.tools.r8.ir.code.A:
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():17:17 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Value):20:20 -> <init>
    2:3:void <init>(com.android.tools.r8.ir.code.StackValues,com.android.tools.r8.ir.code.Value):24:25 -> <init>
    2:3:void <init>(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Value):20 -> <init>
    1:1:int maxOutValueRegister():81:81 -> Ab
    1:1:com.android.tools.r8.ir.code.StackValue[] getStackValues():40:40 -> Cb
    1:1:com.android.tools.r8.ir.code.StackValue outBottom():44 -> Cb
    2:2:com.android.tools.r8.ir.code.StackValue outBottom():44:44 -> Cb
    1:1:com.android.tools.r8.ir.code.StackValue[] getStackValues():40:40 -> Db
    1:1:com.android.tools.r8.ir.code.StackValue outTop():48 -> Db
    2:2:com.android.tools.r8.ir.code.StackValue outTop():48:48 -> Db
    boolean isDup() -> Oa
    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):57:57 -> a
    2:5:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):62:65 -> a
    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):87:87 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):71:71 -> b
    1:6:void setOutValue(com.android.tools.r8.ir.code.Value):30:35 -> e
    boolean hasInvariantOutType() -> qa
    1:1:com.android.tools.r8.ir.code.StackValue src():52:52 -> src
    com.android.tools.r8.ir.code.Dup asDup() -> t
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.Dup2 -> com.android.tools.r8.ir.code.z:
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():18:18 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):27:27 -> <init>
    2:7:void <init>(com.android.tools.r8.ir.code.StackValues,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):34:39 -> <init>
    2:7:void <init>(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):27 -> <init>
    1:1:int maxOutValueRegister():95:95 -> Ab
    boolean isDup2() -> Pa
    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):75:75 -> a
    2:2:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):80:80 -> a
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):101:101 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):85:85 -> b
    1:6:void setOutValue(com.android.tools.r8.ir.code.Value):44:49 -> e
    boolean hasInvariantOutType() -> qa
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.FieldInstruction -> com.android.tools.r8.ir.code.B:
    com.android.tools.r8.graph.DexField field -> i
    boolean $assertionsDisabled -> j
    com.android.tools.r8.ir.code.MemberType type -> h
    1:1:void <clinit>():10:10 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):16:16 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.Value,java.util.List):20:23 -> <init>
    1:1:com.android.tools.r8.graph.DexField getField():31:31 -> Cb
    1:1:com.android.tools.r8.ir.code.MemberType getType():27:27 -> Db
    boolean isFieldInstruction() -> Qa
    boolean hasInvariantOutType() -> qa
    com.android.tools.r8.ir.code.FieldInstruction asFieldInstruction() -> u
com.android.tools.r8.ir.code.FixedRegisterValue -> com.android.tools.r8.ir.code.FixedRegisterValue:
    int register -> r
    boolean $assertionsDisabled -> s
    1:1:void <clinit>():11:11 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,int):16:18 -> <init>
    boolean isConstant() -> A
    boolean isFixedRegisterValue() -> D
    1:23:com.android.tools.r8.ir.code.ValueType outType():23:45 -> T
    24:25:com.android.tools.r8.ir.code.ValueType outType():42:43 -> T
    1:1:int getRegister():49:49 -> getRegister
    1:1:java.lang.String toString():69:69 -> toString
com.android.tools.r8.ir.code.Goto -> com.android.tools.r8.ir.code.Goto:
    boolean $assertionsDisabled -> i
    1:1:void <clinit>():14:14 -> <clinit>
    1:1:void <init>():17:17 -> <init>
    2:2:void <init>():17:17 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.BasicBlock):21 -> <init>
    3:3:void <init>(com.android.tools.r8.ir.code.BasicBlock):22:22 -> <init>
    1:1:int maxOutValueRegister():55:55 -> Ab
    1:4:com.android.tools.r8.ir.code.BasicBlock getTarget():26:29 -> Cb
    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):44:44 -> a
    2:3:void print(com.android.tools.r8.utils.CfgPrinter):69:70 -> a
    4:9:boolean isTrivialGotoToTheNextBlock(com.android.tools.r8.ir.code.IRCode):94:99 -> a
    10:10:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):107:107 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):75:75 -> b
    1:4:java.lang.String toString():61:64 -> toString
    com.android.tools.r8.ir.code.Goto asGoto() -> v
    1:1:int maxInValueRegister():49:49 -> zb
com.android.tools.r8.ir.code.IRCode -> com.android.tools.r8.ir.code.IRCode:
    boolean $assertionsDisabled -> k
    com.android.tools.r8.ir.code.ValueNumberGenerator valueNumberGenerator -> a
    boolean allThrowingInstructionsHavePositions -> e
    boolean hasDebugPositions -> f
    int nextInstructionNumber -> d
    boolean hasConstString -> g
    boolean hasMonitorInstruction -> h
    int usedMarkingColors -> b
    com.android.tools.r8.utils.InternalOptions options -> i
    com.android.tools.r8.origin.Origin origin -> j
    boolean numbered -> c
    1:1:void <clinit>():39:39 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexEncodedMethod,java.util.LinkedList,com.android.tools.r8.ir.code.ValueNumberGenerator,boolean,boolean,boolean,com.android.tools.r8.origin.Origin):119:119 -> <init>
    2:39:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexEncodedMethod,java.util.LinkedList,com.android.tools.r8.ir.code.ValueNumberGenerator,boolean,boolean,boolean,com.android.tools.r8.origin.Origin):93:130 -> <init>
    1:2:void copyMetadataFromInlinee(com.android.tools.r8.ir.code.IRCode):134:135 -> a
    3:7:void ensureBlockNumbering():357:361 -> a
    3:7:void print(com.android.tools.r8.utils.CfgPrinter):463 -> a
    8:9:void print(com.android.tools.r8.utils.CfgPrinter):464:465 -> a
    10:13:boolean verifyTypes(com.android.tools.r8.graph.AppView):491:494 -> a
    14:14:boolean lambda$verifyTypes$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.BasicBlock):494:494 -> a
    15:15:void lambda$consistentBlockNumbering$1(java.lang.Integer,java.lang.Long):638:638 -> a
    16:22:boolean lambda$verifyNoImpreciseOrBottomTypes$2(com.android.tools.r8.ir.code.Value):682:688 -> a
    23:23:boolean lambda$verifyNoImpreciseOrBottomTypes$2(com.android.tools.r8.ir.code.Value):687:687 -> a
    24:27:boolean lambda$verifyNoImpreciseOrBottomTypes$3(java.util.function.Predicate,com.android.tools.r8.ir.code.Value):695:698 -> a
    28:40:java.util.List collectArguments(boolean):773:785 -> a
    41:41:java.util.List collectArguments(boolean):784:784 -> a
    42:42:com.android.tools.r8.ir.code.Value createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):801:801 -> a
    43:43:com.android.tools.r8.ir.code.Value createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):805:805 -> a
    44:45:com.android.tools.r8.ir.code.ConstNumber createConstNull(com.android.tools.r8.graph.DebugLocalInfo):827:828 -> a
    46:49:void removeAllTrivialPhis(com.android.tools.r8.ir.conversion.IRBuilder):858:861 -> a
    50:50:boolean anyMarkingColorAvailable():881:881 -> a
    51:52:boolean anyBlocksMarkedWithColor(int):901:902 -> a
    53:64:void markTransitivePredecessors(com.android.tools.r8.ir.code.BasicBlock,int):967:978 -> a
    1:52:java.util.Map computeLiveAtEntrySets():146:197 -> b
    53:101:java.util.Map computeLiveAtEntrySets():196:244 -> b
    102:102:boolean com.android.tools.r8.ir.code.IRCode$LiveAtEntrySets.equals(java.lang.Object):68:68 -> b
    102:102:java.util.Map computeLiveAtEntrySets():247 -> b
    103:110:java.util.Map computeLiveAtEntrySets():248:255 -> b
    111:111:boolean com.android.tools.r8.ir.code.IRCode$LiveAtEntrySets.isEmpty():72:72 -> b
    111:111:java.util.Map computeLiveAtEntrySets():255 -> b
    112:114:java.util.Map computeLiveAtEntrySets():255:257 -> b
    115:116:void clearMarks(int):378:379 -> b
    117:117:boolean verifyValue(com.android.tools.r8.ir.code.Value):570:570 -> b
    118:118:boolean verifyPhi(com.android.tools.r8.ir.code.Phi):575:575 -> b
    118:118:boolean verifyValue(com.android.tools.r8.ir.code.Value):570 -> b
    119:122:boolean verifyDefinition(com.android.tools.r8.ir.code.Value):580:583 -> b
    119:122:boolean verifyValue(com.android.tools.r8.ir.code.Value):570 -> b
    123:123:boolean verifyDefinition(com.android.tools.r8.ir.code.Value):581:581 -> b
    123:123:boolean verifyValue(com.android.tools.r8.ir.code.Value):570 -> b
    124:124:void setAllThrowingInstructionsHavePositions(boolean):836:836 -> b
    125:136:void markTransitiveSuccessors(com.android.tools.r8.ir.code.BasicBlock,int):944:955 -> b
    1:4:boolean consistentBlockNumbering():633:636 -> c
    5:6:com.android.tools.r8.ir.code.ConstNumber createIntConstant(int):813:814 -> c
    1:1:java.util.List collectArguments():769:769 -> collectArguments
    1:7:java.util.List computeNormalExitBlocks():727:733 -> computeNormalExitBlocks
    1:2:com.android.tools.r8.ir.code.ConstNumber createConstNull():822:823 -> d
    3:3:boolean isMarkingColorInUse(int):897:897 -> d
    1:1:boolean doAllThrowingInstructionsHavePositions():832:832 -> e
    2:4:void returnMarkingColor(int):891:893 -> e
    1:1:com.android.tools.r8.ir.code.BasicBlock entryBlock():139:139 -> entryBlock
    1:2:boolean verifyNoBlocksMarked(int):394:395 -> f
    3:3:int getHighestBlockNumber():818:818 -> f
    1:1:int getNextInstructionNumber():765:765 -> g
    1:7:com.android.tools.r8.ir.code.Value getThis():790:796 -> h
    1:9:java.util.Set getUnreachableBlocks():914:922 -> i
    1:1:com.android.tools.r8.ir.code.InstructionIterator instructionIterator():723:723 -> instructionIterator
    1:2:boolean isConsistentSSA():470:471 -> isConsistentSSA
    3:38:boolean consistentDefUseChains():528:563 -> isConsistentSSA
    3:38:boolean isConsistentSSA():471 -> isConsistentSSA
    39:48:boolean consistentValueUses(com.android.tools.r8.ir.code.Value):588:597 -> isConsistentSSA
    39:48:boolean consistentDefUseChains():563 -> isConsistentSSA
    39:48:boolean isConsistentSSA():471 -> isConsistentSSA
    49:49:boolean isConsistentSSA():472:472 -> isConsistentSSA
    50:66:boolean validThrowingInstructions():655:671 -> isConsistentSSA
    50:66:boolean isConsistentSSA():472 -> isConsistentSSA
    67:67:boolean isConsistentSSA():473:473 -> isConsistentSSA
    68:79:boolean noCriticalEdges():499:510 -> isConsistentSSA
    68:79:boolean isConsistentSSA():473 -> isConsistentSSA
    80:81:boolean isConsistentSSA():473:474 -> isConsistentSSA
    1:2:boolean hasCatchHandlers():519:520 -> j
    1:1:java.lang.Iterable instructions():719:719 -> k
    1:3:boolean isConsistentGraph():479:481 -> l
    4:19:boolean consistentPredecessorSuccessors():604:619 -> l
    4:19:boolean isConsistentGraph():481 -> l
    20:20:boolean isConsistentGraph():482:482 -> l
    21:22:boolean consistentCatchHandlers():626:627 -> l
    21:22:boolean isConsistentGraph():482 -> l
    23:23:boolean isConsistentGraph():483:483 -> l
    24:27:boolean consistentBlockInstructions():645:648 -> l
    24:27:boolean isConsistentGraph():483 -> l
    28:28:boolean consistentBlockInstructions():646:646 -> l
    28:28:boolean isConsistentGraph():483 -> l
    29:29:boolean isConsistentGraph():484:484 -> l
    1:1:java.util.ListIterator listIterator():737:737 -> listIterator
    1:1:boolean noColorsInUse():910:910 -> m
    1:3:com.android.tools.r8.com.google.common.collect.ImmutableList numberInstructions():745:747 -> n
    1:9:int numberRemainingInstructions():753:761 -> o
    1:1:void removeAllTrivialPhis():854:854 -> p
    1:13:java.util.Set removeUnreachableBlocks():927:939 -> q
    1:9:int reserveMarkingColor():867:875 -> r
    1:1:void removeBlocks(java.util.Collection):401:401 -> removeBlocks
    1:31:void splitCriticalEdges():262:292 -> s
    1:24:com.android.tools.r8.com.google.common.collect.ImmutableList depthFirstSorting():419:442 -> t
    1:24:com.android.tools.r8.com.google.common.collect.ImmutableList topologicallySortedBlocks():412 -> t
    25:25:com.android.tools.r8.com.google.common.collect.ImmutableList topologicallySortedBlocks():413:413 -> t
    26:37:com.android.tools.r8.com.google.common.collect.ImmutableList reorderExceptionalBlocksLastForTesting(com.android.tools.r8.com.google.common.collect.ImmutableList):448:459 -> t
    26:37:com.android.tools.r8.com.google.common.collect.ImmutableList topologicallySortedBlocks():414 -> t
    1:7:java.lang.String toString():368:374 -> toString
    1:20:void traceBlocks():323:342 -> u
    21:33:void traceBlocks():341:353 -> u
    1:12:boolean verifyNoImpreciseOrBottomTypes():680:691 -> v
    13:21:boolean verifySSATypeLattice(java.util.function.Predicate):704:712 -> v
    13:21:boolean verifyNoImpreciseOrBottomTypes():691 -> v
    1:14:boolean verifySplitCriticalEdges():296:309 -> w
    1:7:boolean computeAllThrowingInstructionsHavePositions():840:846 -> x
com.android.tools.r8.ir.code.IRCode$BlockMarker -> com.android.tools.r8.ir.code.IRCode$a:
    com.android.tools.r8.ir.code.BasicBlock block -> a
    1:2:void <init>(com.android.tools.r8.ir.code.BasicBlock):80:81 -> <init>
com.android.tools.r8.ir.code.IRCode$LiveAtEntrySets -> com.android.tools.r8.ir.code.IRCode$b:
    java.util.Deque liveStackValues -> c
    java.util.Set liveValues -> a
    java.util.Set liveLocalValues -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():43:43 -> <clinit>
    1:5:void <init>(java.util.Set,java.util.Set,java.util.Deque):53:57 -> <init>
    1:2:boolean equals(java.lang.Object):67:68 -> equals
    1:1:int hashCode():62:62 -> hashCode
com.android.tools.r8.ir.code.IRCodeInstructionsIterator -> com.android.tools.r8.ir.code.C:
    java.util.ListIterator blockIterator -> a
    com.android.tools.r8.ir.code.InstructionListIterator instructionIterator -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():10:10 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.IRCode):15:17 -> <init>
    1:1:void add(java.lang.Object):10:10 -> add
    2:2:void add(com.android.tools.r8.ir.code.Instruction):69:69 -> add
    2:2:void add(java.lang.Object):10 -> add
    1:1:boolean hasNext():22:22 -> hasNext
    1:1:boolean hasPrevious():40:40 -> hasPrevious
    1:9:com.android.tools.r8.ir.code.Instruction next():27:35 -> next
    1:9:java.lang.Object next():10 -> next
    10:10:com.android.tools.r8.ir.code.Instruction next():31:31 -> next
    10:10:java.lang.Object next():10 -> next
    1:1:int nextIndex():59:59 -> nextIndex
    1:10:com.android.tools.r8.ir.code.Instruction previous():45:54 -> previous
    1:10:java.lang.Object previous():10 -> previous
    11:11:com.android.tools.r8.ir.code.Instruction previous():49:49 -> previous
    11:11:java.lang.Object previous():10 -> previous
    1:1:int previousIndex():64:64 -> previousIndex
    1:1:void remove():74:74 -> remove
    1:1:void removeOrReplaceByDebugLocalRead():89:89 -> removeOrReplaceByDebugLocalRead
    1:1:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):84:84 -> replaceCurrentInstruction
    1:1:void set(java.lang.Object):10:10 -> set
    2:2:void set(com.android.tools.r8.ir.code.Instruction):79:79 -> set
    2:2:void set(java.lang.Object):10 -> set
com.android.tools.r8.ir.code.If -> com.android.tools.r8.ir.code.If:
    boolean $assertionsDisabled -> j
    com.android.tools.r8.ir.code.If$Type type -> i
    1:1:void <clinit>():20:20 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.Value):73:74 -> <init>
    3:4:void <init>(com.android.tools.r8.ir.code.If$Type,java.util.List):78:79 -> <init>
    1:1:int maxOutValueRegister():160:160 -> Ab
    1:4:com.android.tools.r8.ir.code.BasicBlock getTrueTarget():98:101 -> Cb
    1:1:com.android.tools.r8.ir.code.If$Type getType():87:87 -> Db
    1:4:void invert():91:94 -> Eb
    1:3:com.android.tools.r8.ir.code.BasicBlock targetFromNonNullObject():195:197 -> Fb
    1:3:boolean verifyTypeCompatible(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.code.If$Type):65:67 -> a
    4:5:void setFallthroughBlock(com.android.tools.r8.ir.code.BasicBlock):121:122 -> a
    6:6:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):127:127 -> a
    7:7:int estimatedSize(com.android.tools.r8.utils.InternalOutputMode):132:132 -> a
    8:9:void print(com.android.tools.r8.utils.CfgPrinter):166:167 -> a
    10:12:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(com.android.tools.r8.ir.code.ConstNumber):182:184 -> a
    13:16:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(com.android.tools.r8.ir.code.ConstNumber,com.android.tools.r8.ir.code.ConstNumber):188:191 -> a
    17:17:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):231:231 -> a
    18:25:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):236:243 -> a
    1:4:void setTrueTarget(com.android.tools.r8.ir.code.BasicBlock):105:108 -> b
    5:10:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):172:177 -> b
    11:26:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):201:216 -> b
    27:35:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):206:214 -> b
    36:36:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):212:212 -> b
    37:37:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):210:210 -> b
    38:38:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):208:208 -> b
    39:39:com.android.tools.r8.ir.code.BasicBlock targetFromCondition(int):204:204 -> b
    1:4:com.android.tools.r8.ir.code.BasicBlock fallthroughBlock():113:116 -> fallthroughBlock
    1:1:boolean isZeroTest():83:83 -> isZeroTest
    1:8:java.lang.String toString():142:149 -> toString
    1:1:int maxInValueRegister():155:155 -> zb
com.android.tools.r8.ir.code.If$Type -> com.android.tools.r8.ir.code.If$Type:
    com.android.tools.r8.ir.code.If$Type[] $VALUES -> a
    1:1:void <clinit>():23:23 -> <clinit>
    2:2:void <clinit>():22:22 -> <clinit>
    1:1:void <init>(java.lang.String,int):22:22 -> <init>
    1:14:com.android.tools.r8.ir.code.If$Type forSwappedOperands():27:40 -> a
    15:15:com.android.tools.r8.ir.code.If$Type forSwappedOperands():38:38 -> a
    16:16:com.android.tools.r8.ir.code.If$Type forSwappedOperands():36:36 -> a
    17:17:com.android.tools.r8.ir.code.If$Type forSwappedOperands():34:34 -> a
    18:18:com.android.tools.r8.ir.code.If$Type forSwappedOperands():32:32 -> a
    1:15:com.android.tools.r8.ir.code.If$Type inverted():45:59 -> b
    16:16:com.android.tools.r8.ir.code.If$Type inverted():55:55 -> b
    17:17:com.android.tools.r8.ir.code.If$Type inverted():53:53 -> b
    18:18:com.android.tools.r8.ir.code.If$Type inverted():51:51 -> b
    19:27:com.android.tools.r8.ir.code.If$Type inverted():49:57 -> b
    28:28:com.android.tools.r8.ir.code.If$Type inverted():47:47 -> b
    1:1:com.android.tools.r8.ir.code.If$Type[] values():22:22 -> values
com.android.tools.r8.ir.code.ImpreciseMemberTypeInstruction -> com.android.tools.r8.ir.code.D:
    void constrainType(com.android.tools.r8.ir.conversion.TypeConstraintResolver) -> a
    com.android.tools.r8.ir.code.MemberType getMemberType() -> a
com.android.tools.r8.ir.code.Inc -> com.android.tools.r8.ir.code.E:
    boolean $assertionsDisabled -> b
    int increment -> a
    1:1:void <clinit>():20:20 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,int):25:27 -> <init>
    int maxOutValueRegister() -> Ab
    1:1:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):60:60 -> a
    2:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):65:65 -> a
    3:3:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):71:71 -> a
    4:14:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):76:86 -> a
    1:2:void addInValue(com.android.tools.r8.ir.code.Value):33:34 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):44:44 -> b
    1:1:java.lang.String toString():92:92 -> toString
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.InstanceGet -> com.android.tools.r8.ir.code.InstanceGet:
    boolean $assertionsDisabled -> k
    1:1:void <clinit>():38:38 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexField):41:41 -> <init>
    int maxOutValueRegister() -> Ab
    boolean isInstanceGet() -> Sa
    1:33:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):60:92 -> a
    34:34:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):90:90 -> a
    35:35:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):71:71 -> a
    36:55:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):67:86 -> a
    56:56:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):83:83 -> a
    57:57:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):80:80 -> a
    58:58:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):77:77 -> a
    59:79:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):74:94 -> a
    80:101:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):105:126 -> a
    102:102:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):151:151 -> a
    103:103:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):171:171 -> a
    104:104:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):177:177 -> a
    105:106:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):182:183 -> a
    107:108:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):188:189 -> a
    109:109:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):188:188 -> a
    110:110:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):194:194 -> a
    111:111:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):203:203 -> a
    1:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):141:145 -> b
    1:1:com.android.tools.r8.ir.code.Value dest():45:45 -> dest
    boolean couldIntroduceAnAlias() -> fa
    1:2:com.android.tools.r8.ir.code.Value object():49:50 -> object
    1:1:java.lang.String toString():166:166 -> toString
    com.android.tools.r8.ir.code.InstanceGet asInstanceGet() -> w
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.InstanceOf -> com.android.tools.r8.ir.code.InstanceOf:
    com.android.tools.r8.graph.DexType type -> h
    1:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):24:25 -> <init>
    int maxOutValueRegister() -> Ab
    1:1:com.android.tools.r8.graph.DexType type():29:29 -> Cb
    boolean isInstanceOf() -> Ta
    1:3:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):42:44 -> a
    4:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):80:80 -> a
    5:5:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):85:85 -> a
    6:7:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):95:96 -> a
    8:8:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):101:101 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):64:64 -> b
    1:1:com.android.tools.r8.ir.code.Value dest():33:33 -> dest
    boolean hasInvariantOutType() -> qa
    1:1:com.android.tools.r8.ir.code.Value value():37:37 -> value
    com.android.tools.r8.ir.code.InstanceOf asInstanceOf() -> x
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.InstancePut -> com.android.tools.r8.ir.code.InstancePut:
    boolean $assertionsDisabled -> k
    1:1:void <clinit>():33:33 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):36:38 -> <init>
    1:1:int maxOutValueRegister():109:109 -> Ab
    1:32:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):52:83 -> a
    33:33:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):81:81 -> a
    34:34:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62:62 -> a
    35:54:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):58:77 -> a
    55:55:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):74:74 -> a
    56:56:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):71:71 -> a
    57:57:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):68:68 -> a
    58:78:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):65:85 -> a
    79:79:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):116:116 -> a
    80:80:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):136:136 -> a
    81:82:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):141:142 -> a
    83:83:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):141:141 -> a
    84:84:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):147:147 -> a
    85:85:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):156:156 -> a
    1:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):95:99 -> b
    1:1:com.android.tools.r8.ir.code.Value object():42:42 -> object
    1:1:java.lang.String toString():131:131 -> toString
    1:1:com.android.tools.r8.ir.code.Value value():46:46 -> value
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.Instruction -> com.android.tools.r8.ir.code.Instruction:
    java.util.List inValues -> b
    java.util.Set debugValues -> e
    boolean $assertionsDisabled -> g
    int number -> d
    com.android.tools.r8.ir.code.Value outValue -> a
    com.android.tools.r8.ir.code.BasicBlock block -> c
    com.android.tools.r8.ir.code.Position position -> f
    1:1:void <clinit>():37:37 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value):46:46 -> <init>
    2:10:void <init>(com.android.tools.r8.ir.code.Value):39:47 -> <init>
    11:11:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):50:50 -> <init>
    12:25:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):39:52 -> <init>
    26:26:void <init>(com.android.tools.r8.ir.code.Value,java.util.List):55:55 -> <init>
    27:49:void <init>(com.android.tools.r8.ir.code.Value,java.util.List):39:61 -> <init>
    com.android.tools.r8.ir.code.InvokeInterface asInvokeInterface() -> A
    boolean isConstClass() -> Aa
    int maxOutValueRegister() -> Ab
    com.android.tools.r8.ir.code.InvokeMultiNewArray asInvokeMultiNewArray() -> B
    boolean isConstInstruction() -> Ba
    1:1:void removeOrReplaceByDebugLocalRead():264:264 -> Bb
    com.android.tools.r8.ir.code.InvokeNewArray asInvokeNewArray() -> C
    boolean isConstMethodHandle() -> Ca
    com.android.tools.r8.ir.code.InvokePolymorphic asInvokePolymorphic() -> D
    boolean isConstMethodType() -> Da
    com.android.tools.r8.ir.code.InvokeStatic asInvokeStatic() -> E
    boolean isConstString() -> Ea
    com.android.tools.r8.ir.code.InvokeSuper asInvokeSuper() -> F
    1:5:boolean isCreatingInstanceOrArray():1185:1189 -> Fa
    com.android.tools.r8.ir.code.JumpInstruction asJumpInstruction() -> G
    1:4:boolean isDebugInstruction():994:997 -> Ga
    com.android.tools.r8.ir.code.Load asLoad() -> H
    boolean isDebugLocalRead() -> Ha
    com.android.tools.r8.ir.code.LogicalBinop asLogicalBinop() -> I
    boolean isDebugLocalUninitialized() -> Ia
    com.android.tools.r8.ir.code.Monitor asMonitor() -> J
    boolean isDebugLocalWrite() -> Ja
    com.android.tools.r8.ir.code.MoveException asMoveException() -> K
    boolean isDebugLocalsChange() -> Ka
    com.android.tools.r8.ir.code.Mul asMul() -> L
    boolean isDebugPosition() -> La
    com.android.tools.r8.ir.code.Neg asNeg() -> M
    boolean isDexItemBasedConstString() -> Ma
    com.android.tools.r8.ir.code.NewArrayEmpty asNewArrayEmpty() -> N
    boolean isDiv() -> Na
    com.android.tools.r8.ir.code.NewArrayFilledData asNewArrayFilledData() -> O
    boolean isDup() -> Oa
    com.android.tools.r8.ir.code.NewInstance asNewInstance() -> P
    boolean isDup2() -> Pa
    com.android.tools.r8.ir.code.Not asNot() -> Q
    boolean isFieldInstruction() -> Qa
    com.android.tools.r8.ir.code.Or asOr() -> R
    1:1:boolean isFieldPut():766:766 -> Ra
    com.android.tools.r8.ir.code.Rem asRem() -> S
    boolean isInstanceGet() -> Sa
    com.android.tools.r8.ir.code.Shl asShl() -> T
    boolean isInstanceOf() -> Ta
    com.android.tools.r8.ir.code.Shr asShr() -> U
    boolean isIntroducingAnAlias() -> Ua
    com.android.tools.r8.ir.code.StaticGet asStaticGet() -> V
    boolean isInvokeCustom() -> Va
    com.android.tools.r8.ir.code.StaticPut asStaticPut() -> W
    boolean isInvokeInterface() -> Wa
    com.android.tools.r8.ir.code.Store asStore() -> X
    boolean isInvokeMultiNewArray() -> Xa
    com.android.tools.r8.ir.code.Sub asSub() -> Y
    boolean isInvokeNewArray() -> Ya
    com.android.tools.r8.ir.code.Switch asSwitch() -> Z
    boolean isInvokePolymorphic() -> Za
    boolean isInvokeSuper() -> _a
    void buildCf(com.android.tools.r8.ir.conversion.CfBuilder) -> a
    void buildDex(com.android.tools.r8.ir.conversion.DexBuilder) -> a
    boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption) -> a
    com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType) -> a
    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
    boolean isTwoAddr(com.android.tools.r8.ir.regalloc.RegisterAllocator) -> a
    boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory) -> a
    1:6:void addDebugValue(com.android.tools.r8.ir.code.Value):128:133 -> a
    7:13:void clearUserInfo(com.android.tools.r8.ir.code.Instruction):138:144 -> a
    14:17:void replaceValue(int,com.android.tools.r8.ir.code.Value):166:169 -> a
    18:27:void replaceDebugValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):173:182 -> a
    28:34:com.android.tools.r8.ir.code.Value removeDebugValue(com.android.tools.r8.graph.DebugLocalInfo):216:222 -> a
    35:49:void print(com.android.tools.r8.utils.CfgPrinter):303:317 -> a
    50:51:void setNumber(int):332:333 -> a
    52:52:boolean identicalStackValuePair(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue):481:481 -> a
    53:59:boolean identicalStackValuesPair(com.android.tools.r8.ir.code.StackValues,com.android.tools.r8.ir.code.StackValues):485:491 -> a
    60:60:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):511:511 -> a
    61:61:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):516:516 -> a
    62:63:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):1204:1205 -> a
    64:67:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):1211:1214 -> a
    68:70:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):1219:1221 -> a
    71:73:boolean verifyValidPositionInfo(boolean):1272:1274 -> a
    com.android.tools.r8.ir.code.Throw asThrow() -> aa
    boolean isJumpInstruction() -> ab
    com.android.tools.r8.ir.code.Add asAdd() -> b
    boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction) -> b
    1:4:void addInValue(com.android.tools.r8.ir.code.Value):84:87 -> b
    5:8:void replaceValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):157:160 -> b
    9:9:void printLIR(com.android.tools.r8.utils.CfgPrinter):324:324 -> b
    10:21:boolean verifyTypes(com.android.tools.r8.graph.AppView):1226:1237 -> b
    com.android.tools.r8.ir.code.Ushr asUshr() -> ba
    boolean isLoad() -> bb
    com.android.tools.r8.ir.code.And asAnd() -> c
    boolean needsValueInRegister(com.android.tools.r8.ir.code.Value) -> c
    1:2:boolean identicalNonValueParts(com.android.tools.r8.ir.code.Instruction):342:343 -> c
    com.android.tools.r8.ir.code.Xor asXor() -> ca
    boolean isLogicalBinop() -> cb
    com.android.tools.r8.ir.code.Argument asArgument() -> d
    1:7:void moveDebugValues(com.android.tools.r8.ir.code.Instruction):188:194 -> d
    8:16:void removeDebugValue(com.android.tools.r8.ir.code.Value):204:212 -> d
    1:2:void clearBlock():259:260 -> da
    boolean isMonitor() -> db
    com.android.tools.r8.ir.code.ArithmeticBinop asArithmeticBinop() -> e
    1:4:void setOutValue(com.android.tools.r8.ir.code.Value):110:113 -> e
    5:5:void replace(com.android.tools.r8.ir.code.Instruction):268:268 -> e
    1:5:void clearDebugValues():231:235 -> ea
    boolean isMove() -> eb
    com.android.tools.r8.ir.code.ArrayLength asArrayLength() -> f
    1:5:com.android.tools.r8.ir.code.Value swapOutValue(com.android.tools.r8.ir.code.Value):118:122 -> f
    boolean couldIntroduceAnAlias() -> fa
    boolean isMoveException() -> fb
    com.android.tools.r8.ir.code.Binop asBinop() -> g
    1:1:com.android.tools.r8.ir.code.Value getAliasForOutValue():1180:1180 -> ga
    boolean isMul() -> gb
    1:2:com.android.tools.r8.ir.code.BasicBlock getBlock():243:244 -> getBlock
    com.android.tools.r8.ir.code.CheckCast asCheckCast() -> h
    1:1:java.util.Set getDebugValues():557:557 -> ha
    boolean isNeg() -> hb
    com.android.tools.r8.ir.code.Cmp asCmp() -> i
    1:1:java.lang.String getInstructionName():279:279 -> ia
    boolean isNewArrayEmpty() -> ib
    1:10:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):434:443 -> identicalAfterRegisterAllocation
    11:25:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):440:454 -> identicalAfterRegisterAllocation
    26:58:boolean identicalOutputAfterRegisterAllocation(com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.ir.regalloc.RegisterAllocator):398:430 -> identicalAfterRegisterAllocation
    26:58:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):453 -> identicalAfterRegisterAllocation
    59:69:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):457:467 -> identicalAfterRegisterAllocation
    70:105:boolean identicalInputAfterRegisterAllocation(com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.ir.regalloc.RegisterAllocator):353:388 -> identicalAfterRegisterAllocation
    70:105:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):467 -> identicalAfterRegisterAllocation
    106:122:boolean identicalInputAfterRegisterAllocation(com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.ir.regalloc.RegisterAllocator):377:393 -> identicalAfterRegisterAllocation
    106:122:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):467 -> identicalAfterRegisterAllocation
    123:124:boolean identicalAfterRegisterAllocation(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):473:474 -> identicalAfterRegisterAllocation
    com.android.tools.r8.ir.code.ConstClass asConstClass() -> j
    1:1:com.android.tools.r8.graph.DebugLocalInfo getLocalInfo():553:553 -> ja
    boolean isNewArrayFilledData() -> jb
    com.android.tools.r8.ir.code.ConstInstruction asConstInstruction() -> k
    1:1:int getNumber():328:328 -> ka
    boolean isNot() -> kb
    com.android.tools.r8.ir.code.ConstMethodHandle asConstMethodHandle() -> l
    com.android.tools.r8.ir.code.ConstInstruction getOutConstantConstInstruction() -> la
    boolean isOr() -> lb
    com.android.tools.r8.ir.code.ConstMethodType asConstMethodType() -> m
    1:2:com.android.tools.r8.ir.code.Position getPosition():65:66 -> ma
    boolean isOutConstant() -> mb
    com.android.tools.r8.ir.code.ConstString asConstString() -> n
    1:1:java.lang.String getPositionAsString():75:75 -> na
    boolean isPop() -> nb
    com.android.tools.r8.ir.code.DebugLocalWrite asDebugLocalWrite() -> o
    1:1:boolean hasBlock():275:275 -> oa
    boolean isRem() -> ob
    1:1:com.android.tools.r8.ir.code.ValueType outType():149:149 -> outType
    1:1:com.android.tools.r8.ir.code.Value outValue():106:106 -> outValue
    com.android.tools.r8.ir.code.DebugLocalsChange asDebugLocalsChange() -> p
    1:2:boolean hasInValueWithLocalInfo():93:94 -> pa
    boolean isShl() -> pb
    com.android.tools.r8.ir.code.DebugPosition asDebugPosition() -> q
    boolean hasInvariantOutType() -> qa
    boolean isShr() -> qb
    com.android.tools.r8.ir.code.DexItemBasedConstString asDexItemBasedConstString() -> r
    1:1:boolean hasOutValue():102:102 -> ra
    boolean isStaticGet() -> rb
    com.android.tools.r8.ir.code.Div asDiv() -> s
    1:1:java.util.List inValues():79:79 -> sa
    boolean isStore() -> sb
    1:2:void setBlock(com.android.tools.r8.ir.code.BasicBlock):251:252 -> setBlock
    1:2:void setPosition(com.android.tools.r8.ir.code.Position):70:71 -> setPosition
    com.android.tools.r8.ir.code.Dup asDup() -> t
    1:1:boolean instructionInstanceCanThrow():506:506 -> ta
    boolean isSub() -> tb
    1:14:java.lang.String toString():284:297 -> toString
    com.android.tools.r8.ir.code.FieldInstruction asFieldInstruction() -> u
    boolean isAnd() -> ua
    boolean isSwap() -> ub
    com.android.tools.r8.ir.code.Goto asGoto() -> v
    boolean isArithmeticBinop() -> va
    boolean isSwitch() -> vb
    com.android.tools.r8.ir.code.InstanceGet asInstanceGet() -> w
    boolean isArrayLength() -> wa
    boolean isUnop() -> wb
    com.android.tools.r8.ir.code.InstanceOf asInstanceOf() -> x
    boolean isBinop() -> xa
    boolean isUshr() -> xb
    com.android.tools.r8.ir.code.Invoke asInvoke() -> y
    boolean isCheckCast() -> ya
    boolean isXor() -> yb
    com.android.tools.r8.ir.code.InvokeCustom asInvokeCustom() -> z
    boolean isCmp() -> za
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.InstructionListIterator -> com.android.tools.r8.ir.code.InstructionListIterator:
    void setInsertionPosition(com.android.tools.r8.ir.code.Position) -> a
    1:3:com.android.tools.r8.ir.code.Instruction peekPrevious():25:27 -> a
    1:3:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode):145:147 -> inlineInvoke
    1:3:com.android.tools.r8.ir.code.Instruction peekNext():40:42 -> peekNext
    1:1:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode):70:70 -> split
    2:2:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int):97:97 -> split
com.android.tools.r8.ir.code.InstructionOrPhi -> com.android.tools.r8.ir.code.F:
com.android.tools.r8.ir.code.Invoke -> com.android.tools.r8.ir.code.H:
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():24:24 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value,java.util.List):61:61 -> <init>
    int maxOutValueRegister() -> Ab
    1:1:java.util.List arguments():103:103 -> Cb
    com.android.tools.r8.graph.DexType getReturnType() -> Db
    com.android.tools.r8.ir.code.Invoke$Type getType() -> Eb
    java.lang.String getTypeString() -> Fb
    1:2:int requiredArgumentRegisters():108:109 -> Gb
    1:10:boolean argumentsAreConsecutiveInputArguments():205:214 -> Hb
    1:1:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List):66:66 -> a
    2:22:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):71:91 -> a
    23:23:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):89:89 -> a
    24:24:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):87:87 -> a
    25:25:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):85:85 -> a
    26:26:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):83:83 -> a
    27:27:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):81:81 -> a
    28:28:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):79:79 -> a
    29:29:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):77:77 -> a
    30:30:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):75:75 -> a
    31:31:com.android.tools.r8.ir.code.Invoke create(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List,boolean):73:73 -> a
    32:39:int argumentRegisterValue(int,com.android.tools.r8.ir.conversion.DexBuilder):115:122 -> a
    40:58:int fillArgumentRegisters(com.android.tools.r8.ir.conversion.DexBuilder,int[]):128:146 -> a
    59:72:void addInvokeAndMoveResult(com.android.tools.r8.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder):165:178 -> a
    73:77:void addInvokeAndMoveResult(com.android.tools.r8.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder):176:180 -> a
    78:82:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):267:271 -> a
    83:83:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):269:269 -> a
    1:6:boolean argumentsConsecutive(com.android.tools.r8.ir.conversion.DexBuilder):153:158 -> b
    1:17:boolean needsRangedInvoke(com.android.tools.r8.ir.conversion.DexBuilder):223:239 -> c
    1:1:boolean couldIntroduceAnAlias():186:186 -> fa
    1:1:java.lang.String getInstructionName():252:252 -> ia
    com.android.tools.r8.ir.code.Invoke asInvoke() -> y
    1:3:int maxInValueRegister():196:198 -> zb
com.android.tools.r8.ir.code.Invoke$Type -> com.android.tools.r8.ir.code.G:
    com.android.tools.r8.ir.code.Invoke$Type NEW_ARRAY -> f
    com.android.tools.r8.ir.code.Invoke$Type MULTI_NEW_ARRAY -> g
    com.android.tools.r8.ir.code.Invoke$Type[] $VALUES -> j
    com.android.tools.r8.ir.code.Invoke$Type CUSTOM -> h
    com.android.tools.r8.ir.code.Invoke$Type POLYMORPHIC -> i
    com.android.tools.r8.ir.code.Invoke$Type INTERFACE -> b
    com.android.tools.r8.ir.code.Invoke$Type STATIC -> c
    com.android.tools.r8.ir.code.Invoke$Type SUPER -> d
    com.android.tools.r8.ir.code.Invoke$Type VIRTUAL -> e
    com.android.tools.r8.ir.code.Invoke$Type DIRECT -> a
    1:9:void <clinit>():27:35 -> <clinit>
    10:10:void <clinit>():26:26 -> <clinit>
    1:1:void <init>(java.lang.String,int):26:26 -> <init>
    1:1:com.android.tools.r8.ir.code.Invoke$Type[] values():26:26 -> a
    2:18:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType toMethodHandle(com.android.tools.r8.graph.DexMethod):38:54 -> a
    19:29:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType toMethodHandle(com.android.tools.r8.graph.DexMethod):42:52 -> a
    30:40:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType toMethodHandle(com.android.tools.r8.graph.DexMethod):40:50 -> a
    41:44:com.android.tools.r8.graph.DexMethodHandle$MethodHandleType toMethodHandle(com.android.tools.r8.graph.DexMethod):44:47 -> a
com.android.tools.r8.ir.code.InvokeCustom -> com.android.tools.r8.ir.code.I:
    com.android.tools.r8.graph.DexCallSite callSite -> i
    boolean $assertionsDisabled -> j
    1:1:void <clinit>():20:20 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.ir.code.Value,java.util.List):25:27 -> <init>
    1:1:com.android.tools.r8.graph.DexType getReturnType():32:32 -> Db
    java.lang.String getTypeString() -> Fb
    1:1:com.android.tools.r8.graph.DexCallSite getCallSite():36:36 -> Hb
    boolean isInvokeCustom() -> Va
    1:1:com.android.tools.r8.graph.DexCallSite getCallSite():36:36 -> a
    1:1:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):128 -> a
    2:2:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):128:128 -> a
    3:8:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):57:62 -> a
    9:9:com.android.tools.r8.graph.DexCallSite getCallSite():36:36 -> a
    9:9:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62 -> a
    10:14:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62:66 -> a
    15:15:com.android.tools.r8.graph.DexCallSite getCallSite():36:36 -> a
    15:15:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):68 -> a
    16:23:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):68:75 -> a
    24:24:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):80:80 -> a
    25:25:com.android.tools.r8.graph.DexCallSite getCallSite():36:36 -> a
    25:25:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):80 -> a
    26:26:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):80:80 -> a
    27:27:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):101:101 -> a
    28:28:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):108:108 -> a
    29:29:com.android.tools.r8.graph.DexCallSite getCallSite():36:36 -> a
    29:29:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):109 -> a
    30:33:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):109:112 -> a
    34:34:com.android.tools.r8.graph.DexCallSite getCallSite():36:36 -> a
    34:34:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):113 -> a
    35:38:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):113:116 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):85:85 -> b
    boolean hasInvariantOutType() -> qa
    1:1:java.lang.String toString():51:51 -> toString
    com.android.tools.r8.ir.code.InvokeCustom asInvokeCustom() -> z
com.android.tools.r8.ir.code.InvokeDirect -> com.android.tools.r8.ir.code.InvokeDirect:
    boolean $assertionsDisabled -> m
    boolean itf -> l
    1:1:void <clinit>():28:28 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):33:33 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List,boolean):37:40 -> <init>
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():46:46 -> Eb
    java.lang.String getTypeString() -> Fb
    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):57:75 -> a
    20:23:boolean sameConstructorReceiverValue(com.android.tools.r8.ir.code.Invoke):84:87 -> a
    24:24:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.graph.DexType):108:108 -> a
    25:25:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):121:121 -> a
    26:26:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):126:126 -> a
    27:27:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):135:135 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):92:92 -> b
com.android.tools.r8.ir.code.InvokeInterface -> com.android.tools.r8.ir.code.J:
    boolean $assertionsDisabled -> l
    1:1:void <clinit>():22:22 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):25:25 -> <init>
    com.android.tools.r8.ir.code.InvokeInterface asInvokeInterface() -> A
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():30:30 -> Eb
    java.lang.String getTypeString() -> Fb
    boolean isInvokeInterface() -> Wa
    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):41:59 -> a
    20:22:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.graph.DexType):80:82 -> a
    23:23:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):94:94 -> a
    24:24:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):99:99 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):64:64 -> b
com.android.tools.r8.ir.code.InvokeMethod -> com.android.tools.r8.ir.code.InvokeMethod:
    boolean $assertionsDisabled -> j
    com.android.tools.r8.graph.DexMethod method -> i
    1:1:void <clinit>():21:21 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):26:27 -> <init>
    1:1:com.android.tools.r8.graph.DexType getReturnType():32:32 -> Db
    com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis) -> a
    com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.graph.DexType) -> a
    1:9:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):74:82 -> a
    10:10:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):94:94 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):41:41 -> b
    1:1:com.android.tools.r8.graph.DexMethod getInvokedMethod():36:36 -> getInvokedMethod
    boolean hasInvariantOutType() -> qa
    1:1:java.lang.String toString():46:46 -> toString
com.android.tools.r8.ir.code.InvokeMethodWithReceiver -> com.android.tools.r8.ir.code.InvokeMethodWithReceiver:
    boolean $assertionsDisabled -> k
    1:1:void <clinit>():17:17 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):20:20 -> <init>
    1:1:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis):42:42 -> a
    2:2:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):47:47 -> a
    1:4:boolean verifyTypes(com.android.tools.r8.graph.AppView):52:55 -> b
    1:1:com.android.tools.r8.ir.code.Value getReceiver():34:34 -> getReceiver
com.android.tools.r8.ir.code.InvokeMultiNewArray -> com.android.tools.r8.ir.code.K:
    com.android.tools.r8.graph.DexType type -> i
    1:2:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value,java.util.List):26:27 -> <init>
    com.android.tools.r8.ir.code.InvokeMultiNewArray asInvokeMultiNewArray() -> B
    1:1:com.android.tools.r8.graph.DexType getArrayType():46:46 -> Db
    1:1:com.android.tools.r8.graph.DexType getReturnType():51 -> Db
    java.lang.String getTypeString() -> Fb
    1:1:com.android.tools.r8.graph.DexType getArrayType():46:46 -> Hb
    boolean isInvokeMultiNewArray() -> Xa
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):67:67 -> a
    2:2:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):72:72 -> a
    3:3:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):83:83 -> a
    4:5:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):88:89 -> a
    6:6:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):94:94 -> a
    7:7:java.util.List com.android.tools.r8.ir.code.Invoke.arguments():103:103 -> a
    7:7:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):94 -> a
    8:8:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):94:94 -> a
    9:9:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):99:99 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):61:61 -> b
    boolean hasInvariantOutType() -> qa
com.android.tools.r8.ir.code.InvokeNewArray -> com.android.tools.r8.ir.code.InvokeNewArray:
    com.android.tools.r8.graph.DexType type -> i
    boolean $assertionsDisabled -> j
    1:1:void <clinit>():22:22 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value,java.util.List):27:28 -> <init>
    com.android.tools.r8.ir.code.InvokeNewArray asInvokeNewArray() -> C
    1:1:com.android.tools.r8.graph.DexType getReturnType():33:33 -> Db
    java.lang.String getTypeString() -> Fb
    1:1:com.android.tools.r8.graph.DexType getArrayType():37:37 -> Hb
    1:1:com.android.tools.r8.errors.Unreachable cfUnsupported():127:127 -> Ib
    boolean isInvokeNewArray() -> Ya
    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):58:76 -> a
    20:20:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):97:97 -> a
    21:21:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):102:102 -> a
    22:22:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):113:113 -> a
    23:23:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):118:118 -> a
    24:24:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):123:123 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):81:81 -> b
    boolean hasInvariantOutType() -> qa
    1:1:java.lang.String toString():52:52 -> toString
com.android.tools.r8.ir.code.InvokePolymorphic -> com.android.tools.r8.ir.code.L:
    boolean $assertionsDisabled -> l
    com.android.tools.r8.graph.DexProto proto -> k
    1:1:void <clinit>():26:26 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto,com.android.tools.r8.ir.code.Value,java.util.List):31:32 -> <init>
    com.android.tools.r8.ir.code.InvokePolymorphic asInvokePolymorphic() -> D
    1:1:com.android.tools.r8.graph.DexType getReturnType():37:37 -> Db
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():42:42 -> Eb
    java.lang.String getTypeString() -> Fb
    1:1:com.android.tools.r8.graph.DexProto getProto():51:51 -> Hb
    boolean isInvokePolymorphic() -> Za
    com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.graph.DexType) -> a
    1:7:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):57:63 -> a
    8:8:com.android.tools.r8.graph.DexProto getProto():51:51 -> a
    8:8:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):63 -> a
    9:15:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):63:69 -> a
    16:16:com.android.tools.r8.graph.DexProto getProto():51:51 -> a
    16:16:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):70 -> a
    17:24:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):70:77 -> a
    25:31:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):82:88 -> a
    32:32:com.android.tools.r8.graph.DexProto getProto():51:51 -> a
    32:32:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):88 -> a
    33:34:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):88:89 -> a
    35:35:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):126:126 -> a
    36:36:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis):134:134 -> a
    1:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):94:96 -> b
com.android.tools.r8.ir.code.InvokeStatic -> com.android.tools.r8.ir.code.M:
    boolean itf -> k
    boolean $assertionsDisabled -> l
    1:1:void <clinit>():31:31 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):36:37 -> <init>
    3:4:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List,boolean):41:42 -> <init>
    com.android.tools.r8.ir.code.InvokeStatic asInvokeStatic() -> E
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():47:47 -> Eb
    java.lang.String getTypeString() -> Fb
    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):58:76 -> a
    20:21:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.graph.DexType):97:98 -> a
    22:22:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):111:111 -> a
    23:23:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeInlining(com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis):119:119 -> a
    24:24:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):124:124 -> a
    25:25:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):133:133 -> a
    26:36:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):140:150 -> a
    37:38:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.graph.DexType):97:98 -> a
    37:38:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):151 -> a
    39:54:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):157:172 -> a
    55:55:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):171:171 -> a
    56:56:boolean lambda$instructionMayHaveSideEffects$0(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):174:174 -> a
    57:57:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):182:182 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):81:81 -> b
com.android.tools.r8.ir.code.InvokeSuper -> com.android.tools.r8.ir.code.N:
    boolean $assertionsDisabled -> m
    boolean itf -> l
    1:1:void <clinit>():27:27 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List,boolean):32:33 -> <init>
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():38:38 -> Eb
    com.android.tools.r8.ir.code.InvokeSuper asInvokeSuper() -> F
    java.lang.String getTypeString() -> Fb
    boolean isInvokeSuper() -> _a
    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):49:67 -> a
    20:20:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):72:72 -> a
    21:24:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.graph.DexType):96:99 -> a
    25:25:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):113:113 -> a
    26:26:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):122:122 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):77:77 -> b
com.android.tools.r8.ir.code.InvokeVirtual -> com.android.tools.r8.ir.code.InvokeVirtual:
    boolean $assertionsDisabled -> l
    1:1:void <clinit>():27:27 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,java.util.List):30:30 -> <init>
    1:1:com.android.tools.r8.ir.code.Invoke$Type getType():35:35 -> Eb
    java.lang.String getTypeString() -> Fb
    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):46:64 -> a
    20:22:com.android.tools.r8.graph.DexEncodedMethod lookupSingleTarget(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.graph.DexType):85:87 -> a
    23:23:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):99:99 -> a
    24:24:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):104:104 -> a
    25:25:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):113:113 -> a
    26:41:boolean instructionMayHaveSideEffects(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):120:135 -> a
    42:42:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):144:144 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):69:69 -> b
com.android.tools.r8.ir.code.JumpInstruction -> com.android.tools.r8.ir.code.JumpInstruction:
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():13:13 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value):16:16 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):20:20 -> <init>
    3:3:void <init>(com.android.tools.r8.ir.code.Value,java.util.List):24:24 -> <init>
    com.android.tools.r8.ir.code.JumpInstruction asJumpInstruction() -> G
    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    1:1:void setFallthroughBlock(com.android.tools.r8.ir.code.BasicBlock):32:32 -> a
    2:2:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):53:53 -> a
    boolean isJumpInstruction() -> ab
    boolean hasInvariantOutType() -> qa
com.android.tools.r8.ir.code.LinearFlowInstructionIterator -> com.android.tools.r8.ir.code.LinearFlowInstructionIterator:
    com.android.tools.r8.ir.code.InstructionListIterator currentBlockIterator -> b
    boolean $assertionsDisabled -> c
    com.android.tools.r8.ir.code.BasicBlock currentBlock -> a
    1:1:void <clinit>():13:13 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.BasicBlock):19:19 -> <init>
    2:9:void <init>(com.android.tools.r8.ir.code.BasicBlock,int):22:29 -> <init>
    1:1:void add(com.android.tools.r8.ir.code.Instruction):62:62 -> a
    2:5:boolean isLinearEdge(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):71:74 -> a
    6:16:com.android.tools.r8.ir.code.BasicBlock getBeginningOfTrivialLinearGotoChain(com.android.tools.r8.ir.code.BasicBlock):105:115 -> a
    1:1:void add(java.lang.Object):13:13 -> add
    1:1:void set(com.android.tools.r8.ir.code.Instruction):160:160 -> b
    1:1:boolean hasNext():79:79 -> hasNext
    1:4:boolean hasPrevious():120:123 -> hasPrevious
    1:1:com.android.tools.r8.ir.code.BasicBlock inlineInvoke(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.List,com.android.tools.r8.graph.DexType):56:56 -> inlineInvoke
    1:1:java.lang.Object next():13:13 -> next
    2:19:com.android.tools.r8.ir.code.Instruction next():84:101 -> next
    1:1:int nextIndex():145:145 -> nextIndex
    1:1:java.lang.Object previous():13:13 -> previous
    2:14:com.android.tools.r8.ir.code.Instruction previous():128:140 -> previous
    1:1:int previousIndex():150:150 -> previousIndex
    1:1:void remove():155:155 -> remove
    1:1:void removeOrReplaceByDebugLocalRead():67:67 -> removeOrReplaceByDebugLocalRead
    1:1:void replaceCurrentInstruction(com.android.tools.r8.ir.code.Instruction):35:35 -> replaceCurrentInstruction
    1:1:void set(java.lang.Object):13:13 -> set
    1:1:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator):40:40 -> split
    2:2:com.android.tools.r8.ir.code.BasicBlock split(com.android.tools.r8.ir.code.IRCode,int,java.util.ListIterator):45:45 -> split
com.android.tools.r8.ir.code.Load -> com.android.tools.r8.ir.code.O:
    1:1:void <init>(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Value):23:23 -> <init>
    1:1:int maxOutValueRegister():52:52 -> Ab
    com.android.tools.r8.ir.code.Load asLoad() -> H
    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):58:58 -> a
    2:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):63:63 -> a
    3:4:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):68:69 -> a
    5:5:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):75:75 -> a
    6:6:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):85:85 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):42:42 -> b
    boolean isLoad() -> bb
    boolean hasInvariantOutType() -> qa
    1:1:com.android.tools.r8.ir.code.Value src():27:27 -> src
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.LogicalBinop -> com.android.tools.r8.ir.code.P:
    boolean $assertionsDisabled -> i
    1:1:void <clinit>():17:17 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):20:20 -> <init>
    com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode() -> Hb
    com.android.tools.r8.ir.code.LogicalBinop asLogicalBinop() -> I
    com.android.tools.r8.code.Instruction CreateInt(int,int,int) -> a
    1:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):55:73 -> a
    20:28:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):67:75 -> a
    29:33:boolean needsValueInRegister(com.android.tools.r8.ir.code.Value):44:48 -> a
    29:33:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):75 -> a
    34:52:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):76:94 -> a
    53:62:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):88:97 -> a
    63:80:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):112:129 -> a
    81:91:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):127:137 -> a
    92:92:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):144:144 -> a
    com.android.tools.r8.code.Instruction CreateInt2Addr(int,int) -> b
    com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int) -> b
    com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int) -> c
    com.android.tools.r8.code.Instruction CreateLong2Addr(int,int) -> c
    1:5:boolean needsValueInRegister(com.android.tools.r8.ir.code.Value):44:48 -> c
    boolean isLogicalBinop() -> cb
    com.android.tools.r8.code.Instruction CreateLong(int,int,int) -> d
com.android.tools.r8.ir.code.MemberType -> com.android.tools.r8.ir.code.Q:
    com.android.tools.r8.ir.code.MemberType BYTE -> c
    com.android.tools.r8.ir.code.MemberType BOOLEAN -> b
    com.android.tools.r8.ir.code.MemberType SHORT -> e
    com.android.tools.r8.ir.code.MemberType CHAR -> d
    com.android.tools.r8.ir.code.MemberType[] $VALUES -> l
    com.android.tools.r8.ir.code.MemberType FLOAT -> g
    com.android.tools.r8.ir.code.MemberType INT -> f
    com.android.tools.r8.ir.code.MemberType DOUBLE -> i
    com.android.tools.r8.ir.code.MemberType LONG -> h
    com.android.tools.r8.ir.code.MemberType LONG_OR_DOUBLE -> k
    com.android.tools.r8.ir.code.MemberType INT_OR_FLOAT -> j
    com.android.tools.r8.ir.code.MemberType OBJECT -> a
    1:11:void <clinit>():12:22 -> <clinit>
    12:12:void <clinit>():11:11 -> <clinit>
    1:1:void <init>(java.lang.String,int):11:11 -> <init>
    1:1:boolean isPrecise():25:25 -> a
    2:44:com.android.tools.r8.ir.code.MemberType constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):29:71 -> a
    45:45:com.android.tools.r8.ir.code.MemberType constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):66:66 -> a
    46:47:com.android.tools.r8.ir.code.MemberType constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):61:62 -> a
    48:49:com.android.tools.r8.ir.code.MemberType constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):56:57 -> a
    50:50:com.android.tools.r8.ir.code.MemberType constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):51:51 -> a
    51:51:com.android.tools.r8.ir.code.MemberType constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):46:46 -> a
    52:53:com.android.tools.r8.ir.code.MemberType constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):41:42 -> a
    54:55:com.android.tools.r8.ir.code.MemberType constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):36:37 -> a
    56:56:com.android.tools.r8.ir.code.MemberType constrainedType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.ValueTypeConstraint):31:31 -> a
    57:57:com.android.tools.r8.ir.code.MemberType fromDexType(com.android.tools.r8.graph.DexType):105:105 -> a
    58:58:com.android.tools.r8.ir.code.MemberType fromTypeDescriptorChar(char):100:100 -> a
    58:58:com.android.tools.r8.ir.code.MemberType fromDexType(com.android.tools.r8.graph.DexType):105 -> a
    59:75:com.android.tools.r8.ir.code.MemberType fromTypeDescriptorChar(char):82:98 -> a
    59:75:com.android.tools.r8.ir.code.MemberType fromDexType(com.android.tools.r8.graph.DexType):105 -> a
    76:76:com.android.tools.r8.ir.code.MemberType fromTypeDescriptorChar(char):86:86 -> a
    76:76:com.android.tools.r8.ir.code.MemberType fromDexType(com.android.tools.r8.graph.DexType):105 -> a
    77:91:com.android.tools.r8.ir.code.MemberType fromTypeDescriptorChar(char):80:94 -> a
    77:91:com.android.tools.r8.ir.code.MemberType fromDexType(com.android.tools.r8.graph.DexType):105 -> a
    92:98:com.android.tools.r8.ir.code.MemberType fromTypeDescriptorChar(char):90:96 -> a
    92:98:com.android.tools.r8.ir.code.MemberType fromDexType(com.android.tools.r8.graph.DexType):105 -> a
    99:99:com.android.tools.r8.ir.code.MemberType fromTypeDescriptorChar(char):88:88 -> a
    99:99:com.android.tools.r8.ir.code.MemberType fromDexType(com.android.tools.r8.graph.DexType):105 -> a
    100:100:com.android.tools.r8.ir.code.MemberType fromTypeDescriptorChar(char):84:84 -> a
    100:100:com.android.tools.r8.ir.code.MemberType fromDexType(com.android.tools.r8.graph.DexType):105 -> a
    1:1:com.android.tools.r8.ir.code.MemberType[] values():11:11 -> b
com.android.tools.r8.ir.code.Monitor -> com.android.tools.r8.ir.code.Monitor:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.ir.code.Monitor$Type type -> h
    1:1:void <clinit>():21:21 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.Monitor$Type,com.android.tools.r8.ir.code.Value):30:31 -> <init>
    1:1:int maxOutValueRegister():76:76 -> Ab
    1:1:boolean isEnter():39:39 -> Cb
    com.android.tools.r8.ir.code.Monitor asMonitor() -> J
    1:8:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):53:60 -> a
    9:9:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):98:98 -> a
    10:10:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):120:120 -> a
    11:11:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):125:125 -> a
    12:12:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):130:130 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):66:66 -> b
    boolean isMonitor() -> db
    1:7:java.lang.String getInstructionName():103:109 -> ia
    1:1:com.android.tools.r8.ir.code.Value object():35:35 -> object
    boolean hasInvariantOutType() -> qa
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.Monitor$Type -> com.android.tools.r8.ir.code.Monitor$Type:
    com.android.tools.r8.ir.code.Monitor$Type[] $VALUES -> a
    1:1:void <clinit>():24:24 -> <clinit>
    2:2:void <clinit>():23:23 -> <clinit>
    1:1:void <init>(java.lang.String,int):23:23 -> <init>
com.android.tools.r8.ir.code.Move -> com.android.tools.r8.ir.code.Move:
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():19:19 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):24:24 -> <init>
    int maxOutValueRegister() -> Ab
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):42:42 -> a
    2:2:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):47:47 -> a
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):94:94 -> a
    4:4:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):99:99 -> a
    5:5:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):109:109 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):62:62 -> b
    1:1:com.android.tools.r8.ir.code.Value dest():28:28 -> dest
    boolean isMove() -> eb
    boolean couldIntroduceAnAlias() -> fa
    1:2:com.android.tools.r8.ir.code.ConstInstruction getOutConstantConstInstruction():77:78 -> la
    1:1:boolean isOutConstant():72:72 -> mb
    boolean hasInvariantOutType() -> qa
    1:1:com.android.tools.r8.ir.code.Value src():32:32 -> src
    1:1:java.lang.String toString():67:67 -> toString
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.MoveException -> com.android.tools.r8.ir.code.S:
    boolean $assertionsDisabled -> j
    com.android.tools.r8.graph.DexType exceptionType -> h
    com.android.tools.r8.utils.InternalOptions options -> i
    1:1:void <clinit>():20:20 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType,com.android.tools.r8.utils.InternalOptions):25:27 -> <init>
    int maxOutValueRegister() -> Ab
    1:1:com.android.tools.r8.graph.DexType getExceptionType():111:111 -> Cb
    com.android.tools.r8.ir.code.MoveException asMoveException() -> K
    void buildCf(com.android.tools.r8.ir.conversion.CfBuilder) -> a
    1:1:com.android.tools.r8.ir.code.Value dest():31:31 -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):36 -> a
    2:3:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):36:37 -> a
    4:5:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):74:75 -> a
    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):81:81 -> a
    7:7:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):86:86 -> a
    8:8:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):102:102 -> a
    9:9:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):107:107 -> a
    1:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):53:57 -> b
    boolean isMoveException() -> fb
    boolean hasInvariantOutType() -> qa
    1:1:int maxInValueRegister():42:42 -> zb
com.android.tools.r8.ir.code.Mul -> com.android.tools.r8.ir.code.T:
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):22:22 -> <init>
    boolean isCommutative() -> Db
    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode():129:129 -> Hb
    com.android.tools.r8.ir.code.Mul asMul() -> L
    double foldDouble(double,double) -> a
    float foldFloat(float,float) -> a
    int foldIntegers(int,int) -> a
    long foldLongs(long,long) -> a
    1:1:com.android.tools.r8.code.Instruction CreateDouble(int,int,int):59:59 -> a
    1:1:com.android.tools.r8.code.Instruction CreateFloat(int,int,int):51:51 -> b
    2:2:com.android.tools.r8.code.Instruction CreateDouble2Addr(int,int):79:79 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):94:94 -> b
    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):35:35 -> c
    2:2:com.android.tools.r8.code.Instruction CreateFloat2Addr(int,int):74:74 -> c
    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):64:64 -> d
    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):89:89 -> d
    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):69:69 -> e
    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):84:84 -> e
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):43:43 -> f
    boolean isMul() -> gb
com.android.tools.r8.ir.code.Neg -> com.android.tools.r8.ir.code.U:
    com.android.tools.r8.ir.code.NumericType type -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():21:21 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):26:27 -> <init>
    com.android.tools.r8.ir.code.Neg asNeg() -> M
    1:1:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.Unop.dest():22:22 -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):45 -> a
    2:18:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):45:61 -> a
    19:19:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):58:58 -> a
    20:20:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):55:55 -> a
    21:21:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):52:52 -> a
    22:36:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):49:63 -> a
    37:55:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):78:96 -> a
    56:56:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):101:101 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):39:39 -> b
    boolean isNeg() -> hb
com.android.tools.r8.ir.code.NewArrayEmpty -> com.android.tools.r8.ir.code.NewArrayEmpty:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.graph.DexType type -> h
    1:1:void <clinit>():21:21 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):26:27 -> <init>
    int maxOutValueRegister() -> Ab
    1:1:com.android.tools.r8.ir.code.Value size():40:40 -> Cb
    com.android.tools.r8.ir.code.NewArrayEmpty asNewArrayEmpty() -> N
    1:3:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):45:47 -> a
    4:9:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):76:81 -> a
    10:10:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):102:102 -> a
    11:11:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):113:113 -> a
    12:13:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):118:119 -> a
    14:15:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):124:125 -> a
    16:16:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):130:130 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):86:86 -> b
    1:1:com.android.tools.r8.ir.code.Value dest():36:36 -> dest
    boolean isNewArrayEmpty() -> ib
    boolean hasInvariantOutType() -> qa
    1:4:boolean instructionInstanceCanThrow():68:71 -> ta
    1:1:java.lang.String toString():32:32 -> toString
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.NewArrayFilledData -> com.android.tools.r8.ir.code.V:
    long size -> i
    short[] data -> j
    boolean $assertionsDisabled -> k
    int element_width -> h
    1:1:void <clinit>():20:20 -> <clinit>
    1:4:void <init>(com.android.tools.r8.ir.code.Value,int,long,short[]):30:33 -> <init>
    1:1:int maxOutValueRegister():73:73 -> Ab
    1:1:com.android.tools.r8.code.FillArrayDataPayload createPayload():41:41 -> Cb
    com.android.tools.r8.ir.code.NewArrayFilledData asNewArrayFilledData() -> O
    1:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):46:47 -> a
    3:3:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):52:52 -> a
    4:9:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):79:84 -> a
    10:10:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):108:108 -> a
    11:11:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):113:113 -> a
    1:7:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):57:63 -> b
    boolean isNewArrayFilledData() -> jb
    boolean hasInvariantOutType() -> qa
    1:1:com.android.tools.r8.ir.code.Value src():37:37 -> src
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.NewInstance -> com.android.tools.r8.ir.code.NewInstance:
    boolean allowSpilling -> i
    boolean $assertionsDisabled -> j
    com.android.tools.r8.graph.DexType clazz -> h
    1:1:void <clinit>():23:23 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):29:29 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Value):26:31 -> <init>
    int maxOutValueRegister() -> Ab
    1:1:boolean isSpillingAllowed():128:128 -> Cb
    1:1:void markNoSpilling():124:124 -> Db
    com.android.tools.r8.ir.code.NewInstance asNewInstance() -> P
    1:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):40:41 -> a
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):84:84 -> a
    4:4:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):94:94 -> a
    5:5:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):99:99 -> a
    6:6:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):105:105 -> a
    7:7:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):110:110 -> a
    8:8:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):119:119 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):51:51 -> b
    1:1:com.android.tools.r8.ir.code.Value dest():35:35 -> dest
    boolean hasInvariantOutType() -> qa
    1:1:java.lang.String toString():46:46 -> toString
    1:1:int maxInValueRegister():56:56 -> zb
com.android.tools.r8.ir.code.NextUntilIterator -> com.android.tools.r8.ir.code.NextUntilIterator:
    1:3:java.lang.Object nextUntil(java.util.function.Predicate):18:20 -> nextUntil
com.android.tools.r8.ir.code.NonNull -> com.android.tools.r8.ir.code.NonNull:
    com.android.tools.r8.ir.code.Instruction origin -> h
    boolean $assertionsDisabled -> i
    1:1:void <clinit>():17:17 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction):23:25 -> <init>
    1:1:int maxOutValueRegister():82:82 -> Ab
    1:1:com.android.tools.r8.ir.code.Instruction origin():37:37 -> Cb
    boolean isIntroducingAnAlias() -> Ua
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):67:67 -> a
    2:2:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):72:72 -> a
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):98:98 -> a
    4:4:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):103:103 -> a
    5:5:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):113:113 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):92:92 -> b
    1:1:com.android.tools.r8.ir.code.Value dest():29:29 -> dest
    boolean couldIntroduceAnAlias() -> fa
    1:1:com.android.tools.r8.ir.code.Value getAliasForOutValue():62:62 -> ga
    boolean isOutConstant() -> mb
    boolean hasInvariantOutType() -> qa
    1:1:com.android.tools.r8.ir.code.Value src():33:33 -> src
    1:1:int maxInValueRegister():77:77 -> zb
com.android.tools.r8.ir.code.Not -> com.android.tools.r8.ir.code.W:
    com.android.tools.r8.ir.code.NumericType type -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():19:19 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):24:25 -> <init>
    com.android.tools.r8.ir.code.Not asNot() -> Q
    1:15:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):35:49 -> a
    16:16:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):54:54 -> a
    17:17:com.android.tools.r8.ir.code.Value com.android.tools.r8.ir.code.Unop.dest():22:22 -> a
    17:17:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):56 -> a
    18:28:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):56:66 -> a
    29:37:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):60:68 -> a
    38:38:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):89:89 -> a
    39:39:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):95:95 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):73:73 -> b
    boolean isNot() -> kb
com.android.tools.r8.ir.code.NumberConversion -> com.android.tools.r8.ir.code.NumberConversion:
    com.android.tools.r8.ir.code.NumericType from -> a
    1:3:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):36:38 -> <init>
    1:1:boolean isLongToIntConversion():42:42 -> Db
    1:74:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):48:121 -> a
    75:86:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):106:117 -> a
    87:87:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):111:111 -> a
    88:88:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):108:108 -> a
    89:100:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):91:102 -> a
    101:101:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):96:96 -> a
    102:102:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):93:93 -> a
    103:114:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):76:87 -> a
    115:115:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):81:81 -> a
    116:116:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):78:78 -> a
    117:137:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):52:72 -> a
    138:138:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):69:69 -> a
    139:139:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):66:66 -> a
    140:140:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):63:63 -> a
    141:141:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):60:60 -> a
    142:142:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):57:57 -> a
    143:212:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):54:123 -> a
    213:213:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):147:147 -> a
    214:214:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):152:152 -> a
    1:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):128:132 -> b
com.android.tools.r8.ir.code.NumericType -> com.android.tools.r8.ir.code.NumericType:
    com.android.tools.r8.ir.code.NumericType DOUBLE -> e
    com.android.tools.r8.ir.code.NumericType FLOAT -> d
    com.android.tools.r8.ir.code.NumericType SHORT -> c
    com.android.tools.r8.ir.code.NumericType CHAR -> b
    com.android.tools.r8.ir.code.NumericType[] $VALUES -> f
    com.android.tools.r8.ir.code.NumericType BYTE -> a
    1:7:void <clinit>():11:17 -> <clinit>
    8:8:void <clinit>():10:10 -> <clinit>
    1:1:void <init>(java.lang.String,int):10:10 -> <init>
    1:17:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):20:36 -> a
    18:18:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):34:34 -> a
    19:19:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):32:32 -> a
    20:20:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):30:30 -> a
    21:21:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):28:28 -> a
    22:22:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):26:26 -> a
    23:23:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):24:24 -> a
    24:24:com.android.tools.r8.graph.DexType dexTypeFor(com.android.tools.r8.graph.DexItemFactory):22:22 -> a
    25:39:com.android.tools.r8.ir.code.NumericType fromDexType(com.android.tools.r8.graph.DexType):41:55 -> a
    40:40:com.android.tools.r8.ir.code.NumericType fromDexType(com.android.tools.r8.graph.DexType):47:47 -> a
    41:51:com.android.tools.r8.ir.code.NumericType fromDexType(com.android.tools.r8.graph.DexType):43:53 -> a
    52:52:com.android.tools.r8.ir.code.NumericType fromDexType(com.android.tools.r8.graph.DexType):49:49 -> a
    53:59:com.android.tools.r8.ir.code.NumericType fromDexType(com.android.tools.r8.graph.DexType):45:51 -> a
    1:1:boolean isWide():62:62 -> isWide
com.android.tools.r8.ir.code.Or -> com.android.tools.r8.ir.code.X:
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):17:17 -> <init>
    boolean isCommutative() -> Db
    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():82:82 -> Hb
    com.android.tools.r8.ir.code.Or asOr() -> R
    int foldIntegers(int,int) -> a
    long foldLongs(long,long) -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):37:37 -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):47:47 -> b
    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):62:62 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):67:67 -> b
    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):52:52 -> c
    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):57:57 -> c
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):42:42 -> d
    boolean isOr() -> lb
com.android.tools.r8.ir.code.Phi -> com.android.tools.r8.ir.code.Phi:
    com.android.tools.r8.ir.code.Phi$RegisterReadType readType -> t
    java.util.List definitionUsers -> v
    java.util.List operands -> s
    boolean isStackPhi -> u
    boolean $assertionsDisabled -> w
    com.android.tools.r8.ir.code.BasicBlock block -> r
    1:1:void <clinit>():26:26 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.ir.code.Phi$RegisterReadType):51:51 -> <init>
    2:21:void <init>(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.ir.code.Phi$RegisterReadType):35:54 -> <init>
    boolean isConstant() -> A
    boolean isPhi() -> F
    1:2:boolean isValueOnStack():370:371 -> J
    1:1:boolean knownToBeBoolean():333:333 -> L
    1:2:void markNonDebugLocalRead():153:154 -> O
    1:1:void clearDefinitionsUsers():325:325 -> Y
    1:1:com.android.tools.r8.ir.code.BasicBlock getBlock():68:68 -> Z
    1:44:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):75:118 -> a
    45:74:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):96:125 -> a
    75:76:void appendOperand(com.android.tools.r8.ir.code.Value):166:167 -> a
    75:76:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):126 -> a
    77:77:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):128:128 -> a
    78:78:void throwUndefinedValueError():159:159 -> a
    78:78:void addOperands(com.android.tools.r8.ir.conversion.IRBuilder,int):77 -> a
    79:79:void addOperands(java.util.List):132:132 -> a
    80:84:void addOperands(java.util.List,boolean):139:143 -> a
    85:86:void appendOperand(com.android.tools.r8.ir.code.Value):166:167 -> a
    85:86:void addOperands(java.util.List,boolean):144 -> a
    87:87:void addOperands(java.util.List,boolean):147:147 -> a
    88:88:void throwUndefinedValueError():159:159 -> a
    88:88:void addOperands(java.util.List,boolean):141 -> a
    89:89:com.android.tools.r8.ir.code.Value getOperand(int):171:171 -> a
    90:93:void replaceOperandAt(int,com.android.tools.r8.ir.code.Value):199:202 -> a
    94:97:void replaceOperand(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):206:209 -> a
    98:150:void removeTrivialPhi(com.android.tools.r8.ir.conversion.IRBuilder):236:288 -> a
    151:158:void print(com.android.tools.r8.utils.CfgPrinter):305:312 -> a
    159:159:void addDefinitionsUser(java.util.Map):317:317 -> a
    160:177:boolean knownToBeBoolean(java.util.HashSet):337:354 -> a
    178:179:boolean verifyIsStackPhi(java.util.Set):379:380 -> a
    180:183:void lambda$verifyIsStackPhi$0(java.util.Set,com.android.tools.r8.ir.code.Value):382:385 -> a
    184:192:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.cf.TypeVerificationHelper):401:409 -> a
    193:195:com.android.tools.r8.ir.analysis.type.TypeLatticeElement computePhiType(com.android.tools.r8.graph.DexDefinitionSupplier):414:416 -> a
    1:1:boolean isTrivialPhi():216:216 -> aa
    com.android.tools.r8.ir.code.Phi asPhi() -> b
    1:2:void removeOperand(int):179:180 -> b
    3:14:void removeOperandsByIndex(java.util.List):184:195 -> b
    15:15:void removeDefinitionsUser(java.util.Map):321:321 -> b
    16:16:void setIsStackPhi(boolean):375:375 -> b
    1:10:java.lang.String printPhi():292:301 -> ba
    1:1:boolean usesValueOneTime(com.android.tools.r8.ir.code.Value):397:397 -> c
    1:1:void removeTrivialPhi():231:231 -> ca
    1:1:java.util.List getOperands():175:175 -> getOperands
    1:1:boolean needsRegister():393:393 -> needsRegister
com.android.tools.r8.ir.code.Phi$RegisterReadType -> com.android.tools.r8.ir.code.Phi$a:
    com.android.tools.r8.ir.code.Phi$RegisterReadType NORMAL -> a
    com.android.tools.r8.ir.code.Phi$RegisterReadType DEBUG -> b
    com.android.tools.r8.ir.code.Phi$RegisterReadType NORMAL_AND_DEBUG -> c
    1:3:void <clinit>():29:31 -> <clinit>
    4:4:void <clinit>():28:28 -> <clinit>
    1:1:void <init>(java.lang.String,int):28:28 -> <init>
com.android.tools.r8.ir.code.Pop -> com.android.tools.r8.ir.code.Y:
    1:1:void <init>(com.android.tools.r8.ir.code.StackValue):20:20 -> <init>
    1:1:int maxOutValueRegister():55:55 -> Ab
    boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode) -> a
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):61:61 -> a
    2:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):66:66 -> a
    3:3:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):71:71 -> a
    4:4:com.android.tools.r8.cf.code.CfStackInstruction com.android.tools.r8.cf.code.CfStackInstruction.popType(com.android.tools.r8.ir.code.ValueType):66:66 -> a
    4:4:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):71 -> a
    5:5:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):71:71 -> a
    6:6:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):76:76 -> a
    1:1:void addInValue(com.android.tools.r8.ir.code.Value):25:25 -> b
    2:5:void com.android.tools.r8.ir.code.Instruction.addInValue(com.android.tools.r8.ir.code.Value):84:87 -> b
    2:5:void addInValue(com.android.tools.r8.ir.code.Value):26 -> b
    6:6:void addInValue(com.android.tools.r8.ir.code.Value):29:29 -> b
    7:7:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):45:45 -> b
    boolean isPop() -> nb
    boolean hasInvariantOutType() -> qa
    1:1:int maxInValueRegister():50:50 -> zb
com.android.tools.r8.ir.code.Position -> com.android.tools.r8.ir.code.Position:
    com.android.tools.r8.ir.code.Position TESTING_POSITION -> g
    com.android.tools.r8.graph.DexString file -> a
    boolean $assertionsDisabled -> h
    com.android.tools.r8.graph.DexMethod method -> c
    com.android.tools.r8.ir.code.Position callerPosition -> d
    boolean synthetic -> b
    com.android.tools.r8.ir.code.Position NO_POSITION_SYNTHETIC -> f
    com.android.tools.r8.ir.code.Position NO_POSITION -> e
    1:12:void <clinit>():11:22 -> <clinit>
    1:3:void <init>(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):37:39 -> <init>
    4:10:void <init>(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position,boolean):43:49 -> <init>
    1:2:com.android.tools.r8.ir.code.Position noneWithMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):75:76 -> a
    3:3:com.android.tools.r8.ir.code.Position getOutermostCaller():95:95 -> a
    1:1:boolean isNone():80:80 -> b
    1:1:boolean isSome():88:88 -> c
    1:1:boolean isSyntheticNone():84:84 -> d
    1:1:com.android.tools.r8.ir.code.Position syntheticNone():63:63 -> e
    1:6:boolean equals(java.lang.Object):106:111 -> equals
    1:5:int hashCode():118:122 -> hashCode
    1:1:com.android.tools.r8.ir.code.Position none():59:59 -> none
    1:3:com.android.tools.r8.ir.code.Position synthetic(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):53:55 -> synthetic
    1:1:com.android.tools.r8.ir.code.Position testingPosition():68:68 -> testingPosition
    1:19:java.lang.String toString(boolean):127:145 -> toString
    1:19:java.lang.String toString():150 -> toString
com.android.tools.r8.ir.code.PreviousUntilIterator -> com.android.tools.r8.ir.code.Z:
    1:3:java.lang.Object previousUntil(java.util.function.Predicate):18:20 -> a
com.android.tools.r8.ir.code.Rem -> com.android.tools.r8.ir.code.aa:
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):24:24 -> <init>
    boolean isCommutative() -> Db
    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode():138:138 -> Hb
    com.android.tools.r8.ir.code.Rem asRem() -> S
    double foldDouble(double,double) -> a
    float foldFloat(float,float) -> a
    1:1:com.android.tools.r8.code.Instruction CreateDouble(int,int,int):59:59 -> a
    2:2:int foldIntegers(int,int):104:104 -> a
    3:3:long foldLongs(long,long):109:109 -> a
    4:8:com.android.tools.r8.ir.analysis.constant.LatticeElement evaluate(com.android.tools.r8.ir.code.IRCode,java.util.function.Function):129:133 -> a
    1:1:com.android.tools.r8.code.Instruction CreateFloat(int,int,int):54:54 -> b
    2:2:com.android.tools.r8.code.Instruction CreateDouble2Addr(int,int):79:79 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):94:94 -> b
    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):44:44 -> c
    2:2:com.android.tools.r8.code.Instruction CreateFloat2Addr(int,int):74:74 -> c
    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):64:64 -> d
    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):89:89 -> d
    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):69:69 -> e
    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):84:84 -> e
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):49:49 -> f
    1:1:boolean instructionTypeCanThrow():124:124 -> instructionTypeCanThrow
    boolean isRem() -> ob
com.android.tools.r8.ir.code.Return -> com.android.tools.r8.ir.code.Return:
    boolean $assertionsDisabled -> i
    1:1:void <clinit>():21:21 -> <clinit>
    1:1:void <init>():24:24 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.Value):28:28 -> <init>
    1:1:int maxOutValueRegister():87:87 -> Ab
    1:2:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getReturnType():36:37 -> Cb
    1:1:boolean isReturnVoid():32:32 -> Db
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):65:65 -> a
    2:2:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):104:104 -> a
    3:4:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):109:110 -> a
    5:7:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):117:119 -> a
    8:8:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):116:116 -> a
    1:15:com.android.tools.r8.code.Instruction createDexInstruction(com.android.tools.r8.ir.conversion.DexBuilder):46:60 -> b
    16:23:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):70:77 -> b
    1:2:com.android.tools.r8.ir.code.Value returnValue():41:42 -> returnValue
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.Shl -> com.android.tools.r8.ir.code.ba:
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):17:17 -> <init>
    boolean isCommutative() -> Db
    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():88:88 -> Hb
    com.android.tools.r8.ir.code.Shl asShl() -> T
    int foldIntegers(int,int) -> a
    long foldLongs(long,long) -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):43:43 -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):53:53 -> b
    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):68:68 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):73:73 -> b
    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):58:58 -> c
    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):63:63 -> c
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):48:48 -> d
    1:1:boolean fitsInDexInstruction(com.android.tools.r8.ir.code.Value):23:23 -> g
    boolean isShl() -> pb
com.android.tools.r8.ir.code.Shr -> com.android.tools.r8.ir.code.ca:
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):17:17 -> <init>
    boolean isCommutative() -> Db
    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():88:88 -> Hb
    com.android.tools.r8.ir.code.Shr asShr() -> U
    int foldIntegers(int,int) -> a
    long foldLongs(long,long) -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):43:43 -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):53:53 -> b
    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):68:68 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):73:73 -> b
    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):58:58 -> c
    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):63:63 -> c
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):48:48 -> d
    1:1:boolean fitsInDexInstruction(com.android.tools.r8.ir.code.Value):23:23 -> g
    boolean isShr() -> qb
com.android.tools.r8.ir.code.StackValue -> com.android.tools.r8.ir.code.da:
    int height -> r
    com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo typeInfo -> s
    boolean $assertionsDisabled -> t
    1:1:void <clinit>():12:12 -> <clinit>
    1:4:void <init>(com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,int):18:21 -> <init>
    boolean isValueOnStack() -> J
    1:1:int getHeight():33:33 -> Y
    1:1:com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo getTypeInfo():37:37 -> Z
    1:3:com.android.tools.r8.ir.code.StackValue create(com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo,int,com.android.tools.r8.graph.AppView):26:28 -> a
    4:4:com.android.tools.r8.ir.code.StackValue duplicate(int):41:41 -> a
    1:1:void setNeedsRegister(boolean):56:56 -> setNeedsRegister
    1:1:java.lang.String toString():61:61 -> toString
com.android.tools.r8.ir.code.StackValues -> com.android.tools.r8.ir.code.ea:
    com.android.tools.r8.ir.code.StackValue[] stackValues -> r
    boolean $assertionsDisabled -> s
    1:1:void <clinit>():14:14 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.StackValue[]):19:21 -> <init>
    boolean isValueOnStack() -> J
    1:1:com.android.tools.r8.ir.code.StackValue[] getStackValues():25:25 -> Y
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getTypeLattice():59:59 -> getTypeLattice
    1:1:void setNeedsRegister(boolean):35:35 -> setNeedsRegister
    1:10:java.lang.String toString():40:49 -> toString
com.android.tools.r8.ir.code.StaticGet -> com.android.tools.r8.ir.code.StaticGet:
    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexField):39:39 -> <init>
    int maxOutValueRegister() -> Ab
    com.android.tools.r8.ir.code.StaticGet asStaticGet() -> V
    1:31:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):54:84 -> a
    32:32:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):82:82 -> a
    33:33:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):63:63 -> a
    34:53:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):59:78 -> a
    54:54:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):75:75 -> a
    55:55:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):72:72 -> a
    56:56:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):69:69 -> a
    57:77:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):66:86 -> a
    78:100:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):98:120 -> a
    101:101:boolean lambda$canBeDeadCode$0(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.DexType):123:123 -> a
    102:102:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):148:148 -> a
    103:103:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):168:168 -> a
    104:105:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):173:174 -> a
    106:106:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):173:173 -> a
    107:107:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):180:180 -> a
    108:108:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):185:185 -> a
    109:109:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):194:194 -> a
    1:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):138:142 -> b
    1:1:com.android.tools.r8.ir.code.Value dest():43:43 -> dest
    boolean couldIntroduceAnAlias() -> fa
    boolean isStaticGet() -> rb
    1:1:java.lang.String toString():153:153 -> toString
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.StaticPut -> com.android.tools.r8.ir.code.fa:
    boolean $assertionsDisabled -> k
    1:1:void <clinit>():30:30 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexField):33:33 -> <init>
    1:1:int maxOutValueRegister():92:92 -> Ab
    1:2:com.android.tools.r8.ir.code.Value inValue():37:38 -> Eb
    com.android.tools.r8.ir.code.StaticPut asStaticPut() -> W
    1:31:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):44:74 -> a
    32:32:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):72:72 -> a
    33:33:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):53:53 -> a
    34:53:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):49:68 -> a
    54:54:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):65:65 -> a
    55:55:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):62:62 -> a
    56:56:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):59:59 -> a
    57:77:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):56:76 -> a
    78:78:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):108:108 -> a
    79:79:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):128:128 -> a
    80:81:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):133:134 -> a
    82:82:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):133:133 -> a
    83:83:boolean definitelyTriggersClassInitialization(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$Query,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis$AnalysisAssumption):143:143 -> a
    1:5:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):98:102 -> b
    1:1:java.lang.String toString():113:113 -> toString
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.Store -> com.android.tools.r8.ir.code.ga:
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():21:21 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.StackValue):24:24 -> <init>
    int maxOutValueRegister() -> Ab
    com.android.tools.r8.ir.code.Store asStore() -> X
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):59:59 -> a
    2:2:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):64:64 -> a
    3:3:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):69:69 -> a
    4:4:com.android.tools.r8.graph.DexType computeVerificationType(com.android.tools.r8.graph.AppView,com.android.tools.r8.cf.TypeVerificationHelper):75:75 -> a
    5:5:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):80:80 -> a
    6:6:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):85:85 -> a
    7:7:boolean canBeDeadCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):95:95 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):43:43 -> b
    1:2:boolean needsValueInRegister(com.android.tools.r8.ir.code.Value):100:101 -> c
    boolean hasInvariantOutType() -> qa
    boolean isStore() -> sb
    1:1:com.android.tools.r8.ir.code.Value src():28:28 -> src
    1:1:int maxInValueRegister():48:48 -> zb
com.android.tools.r8.ir.code.Sub -> com.android.tools.r8.ir.code.ha:
    boolean $assertionsDisabled -> j
    1:1:void <clinit>():24:24 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):27:27 -> <init>
    boolean isCommutative() -> Db
    1:2:int maxInOutValueRegisterSize():121:122 -> Fb
    3:3:boolean com.android.tools.r8.ir.code.Binop.fitsInDexInstruction(com.android.tools.r8.ir.code.Value):65:65 -> Fb
    3:3:int maxInOutValueRegisterSize():122 -> Fb
    4:10:int maxInOutValueRegisterSize():122:128 -> Fb
    1:1:com.android.tools.r8.cf.code.CfArithmeticBinop$Opcode getCfOpcode():207:207 -> Hb
    com.android.tools.r8.ir.code.Sub asSub() -> Y
    double foldDouble(double,double) -> a
    float foldFloat(float,float) -> a
    int foldIntegers(int,int) -> a
    long foldLongs(long,long) -> a
    1:1:com.android.tools.r8.code.Instruction CreateDouble(int,int,int):52:52 -> a
    2:10:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):154:162 -> a
    11:11:boolean com.android.tools.r8.ir.code.Binop.fitsInDexInstruction(com.android.tools.r8.ir.code.Value):65:65 -> a
    11:11:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):162 -> a
    12:39:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):162:189 -> a
    40:40:com.android.tools.r8.code.Instruction CreateInt(int,int,int):37:37 -> a
    40:40:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):190 -> a
    41:41:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):192:192 -> a
    42:66:void com.android.tools.r8.ir.code.ArithmeticBinop.buildDex(com.android.tools.r8.ir.conversion.DexBuilder):65:89 -> a
    42:66:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):155 -> a
    67:76:void com.android.tools.r8.ir.code.ArithmeticBinop.buildDex(com.android.tools.r8.ir.conversion.DexBuilder):77:86 -> a
    67:76:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):155 -> a
    77:93:void com.android.tools.r8.ir.code.ArithmeticBinop.buildDex(com.android.tools.r8.ir.conversion.DexBuilder):83:99 -> a
    77:93:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):155 -> a
    94:115:void com.android.tools.r8.ir.code.ArithmeticBinop.buildDex(com.android.tools.r8.ir.conversion.DexBuilder):96:117 -> a
    94:115:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):155 -> a
    116:125:void com.android.tools.r8.ir.code.ArithmeticBinop.buildDex(com.android.tools.r8.ir.conversion.DexBuilder):105:114 -> a
    116:125:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):155 -> a
    126:135:void com.android.tools.r8.ir.code.ArithmeticBinop.buildDex(com.android.tools.r8.ir.conversion.DexBuilder):111:120 -> a
    126:135:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):155 -> a
    1:1:com.android.tools.r8.code.Instruction CreateFloat(int,int,int):47:47 -> b
    2:2:com.android.tools.r8.code.Instruction CreateDouble2Addr(int,int):72:72 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):89:89 -> b
    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):37:37 -> c
    2:2:com.android.tools.r8.code.Instruction CreateFloat2Addr(int,int):67:67 -> c
    3:7:boolean needsValueInRegister(com.android.tools.r8.ir.code.Value):135:139 -> c
    8:8:boolean com.android.tools.r8.ir.code.Binop.fitsInDexInstruction(com.android.tools.r8.ir.code.Value):65:65 -> c
    8:8:boolean needsValueInRegister(com.android.tools.r8.ir.code.Value):142 -> c
    9:12:boolean needsValueInRegister(com.android.tools.r8.ir.code.Value):144:147 -> c
    13:13:boolean com.android.tools.r8.ir.code.Binop.fitsInDexInstruction(com.android.tools.r8.ir.code.Value):65:65 -> c
    13:13:boolean needsValueInRegister(com.android.tools.r8.ir.code.Value):147 -> c
    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):57:57 -> d
    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):84:84 -> d
    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):62:62 -> e
    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):78:78 -> e
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):42:42 -> f
    1:3:boolean negativeFitsInDexInstruction(com.android.tools.r8.ir.code.Value):113:115 -> j
    boolean isSub() -> tb
com.android.tools.r8.ir.code.Swap -> com.android.tools.r8.ir.code.ia:
    boolean $assertionsDisabled -> h
    1:1:void <clinit>():18:18 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):21:21 -> <init>
    2:5:void <init>(com.android.tools.r8.ir.code.StackValues,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):25:28 -> <init>
    2:5:void <init>(com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.StackValue,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):21 -> <init>
    1:1:int maxOutValueRegister():76:76 -> Ab
    void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper) -> a
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):56:56 -> a
    2:2:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):61:61 -> a
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):82:82 -> a
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):66:66 -> b
    1:6:void setOutValue(com.android.tools.r8.ir.code.Value):33:38 -> e
    boolean hasInvariantOutType() -> qa
    boolean isSwap() -> ub
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.Switch -> com.android.tools.r8.ir.code.ja:
    int[] keys -> i
    int fallthroughBlockIndex -> k
    boolean $assertionsDisabled -> l
    int[] targetBlockIndices -> j
    1:1:void <clinit>():26:26 -> <clinit>
    1:5:void <init>(com.android.tools.r8.ir.code.Value,int[],int[],int):37:41 -> <init>
    6:13:boolean valid():45:52 -> <init>
    6:13:void <init>(com.android.tools.r8.ir.code.Value,int[],int[],int):41 -> <init>
    int maxOutValueRegister() -> Ab
    1:1:int getFallthroughBlockIndex():230:230 -> Cb
    1:1:int getFirstKey():171:171 -> Db
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap getKeyToTargetMap():217:219 -> Eb
    1:1:int[] getKeys():209:209 -> Fb
    1:1:int numberOfKeys():201:201 -> Gb
    1:1:int[] targetBlockIndices():213:213 -> Hb
    com.android.tools.r8.ir.code.Switch asSwitch() -> Z
    1:1:long numberOfTargetsIfPacked(int[]):62:62 -> a
    2:2:boolean canBePacked(com.android.tools.r8.utils.InternalOutputMode,int[]):67:67 -> a
    3:3:boolean canBePacked(com.android.tools.r8.utils.InternalOutputMode,long):73:73 -> a
    4:4:boolean canBePacked(com.android.tools.r8.utils.InternalOutputMode):153:153 -> a
    4:4:boolean emitPacked(com.android.tools.r8.utils.InternalOutputMode):167 -> a
    5:5:long packedPayloadSize(com.android.tools.r8.utils.InternalOutputMode):158:158 -> a
    5:5:boolean emitPacked(com.android.tools.r8.utils.InternalOutputMode):167 -> a
    6:6:long sparsePayloadSize(com.android.tools.r8.utils.InternalOutputMode):163:163 -> a
    6:6:boolean emitPacked(com.android.tools.r8.utils.InternalOutputMode):167 -> a
    7:11:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):191:195 -> a
    12:12:void setFallthroughBlock(com.android.tools.r8.ir.code.BasicBlock):243:243 -> a
    13:39:com.android.tools.r8.code.Nop buildPayload(int[],int,com.android.tools.r8.utils.InternalOutputMode):247:273 -> a
    40:43:void print(com.android.tools.r8.utils.CfgPrinter):304:307 -> a
    44:44:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):313:313 -> a
    45:66:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):318:339 -> a
    boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction) -> b
    1:1:long estimatedSparseSize(com.android.tools.r8.utils.InternalOutputMode,long):91:91 -> b
    2:2:int baseSparseSize(com.android.tools.r8.utils.InternalOutputMode):108:108 -> b
    2:2:long estimatedSparseSize(com.android.tools.r8.utils.InternalOutputMode,long):91 -> b
    3:3:long sparsePayloadSize(com.android.tools.r8.utils.InternalOutputMode,int[]):137:137 -> b
    3:3:long estimatedSize(com.android.tools.r8.utils.InternalOutputMode,int[]):78 -> b
    4:4:int baseSparseSize(com.android.tools.r8.utils.InternalOutputMode):108:108 -> b
    4:4:long estimatedSize(com.android.tools.r8.utils.InternalOutputMode,int[]):78 -> b
    5:6:long estimatedSize(com.android.tools.r8.utils.InternalOutputMode,int[]):80:81 -> b
    7:7:int basePackedSize(com.android.tools.r8.utils.InternalOutputMode):97:97 -> b
    7:7:long estimatedSize(com.android.tools.r8.utils.InternalOutputMode,int[]):82 -> b
    8:8:long estimatedSize(com.android.tools.r8.utils.InternalOutputMode,int[]):87:87 -> b
    9:9:int getKey(int):205:205 -> b
    1:2:long packedPayloadSize(com.android.tools.r8.utils.InternalOutputMode,long):118:119 -> c
    3:5:long packedPayloadSize(com.android.tools.r8.utils.InternalOutputMode,int[]):130:132 -> c
    6:6:void setFallthroughBlockIndex(int):234:234 -> c
    1:1:long sparsePayloadSize(com.android.tools.r8.utils.InternalOutputMode,int[]):137:137 -> d
    2:2:long sparsePayloadSize(com.android.tools.r8.utils.InternalOutputMode,long):142:142 -> d
    3:3:com.android.tools.r8.ir.code.BasicBlock targetBlock(int):238:238 -> d
    4:4:int[] targetBlockIndices():213:213 -> d
    4:4:com.android.tools.r8.ir.code.BasicBlock targetBlock(int):238 -> d
    5:5:com.android.tools.r8.ir.code.BasicBlock targetBlock(int):238:238 -> d
    1:1:com.android.tools.r8.ir.code.BasicBlock fallthroughBlock():226:226 -> fallthroughBlock
    1:11:java.lang.String toString():289:299 -> toString
    1:1:com.android.tools.r8.ir.code.Value value():57:57 -> value
    boolean isSwitch() -> vb
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.Throw -> com.android.tools.r8.ir.code.Throw:
    boolean $assertionsDisabled -> i
    1:1:void <clinit>():17:17 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value):20:20 -> <init>
    1:1:int maxOutValueRegister():39:39 -> Ab
    1:1:com.android.tools.r8.ir.code.Value exception():24:24 -> Cb
    1:1:void buildDex(com.android.tools.r8.ir.conversion.DexBuilder):29:29 -> a
    2:2:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):66:66 -> a
    3:3:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):71:71 -> a
    4:4:void buildCf(com.android.tools.r8.ir.conversion.CfBuilder):76:76 -> a
    5:22:boolean throwsNpeIfValueIsNull(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):81:98 -> a
    com.android.tools.r8.ir.code.Throw asThrow() -> aa
    1:1:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):50:50 -> b
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.Unop -> com.android.tools.r8.ir.code.ka:
    1:1:void <init>(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):18:18 -> <init>
    int maxOutValueRegister() -> Ab
    1:1:com.android.tools.r8.ir.code.Value source():26:26 -> Cb
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget inliningConstraint(com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):52:52 -> a
    2:3:void insertLoadAndStores(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.cf.LoadStoreHelper):57:58 -> a
    4:4:com.android.tools.r8.ir.analysis.type.TypeLatticeElement evaluate(com.android.tools.r8.graph.AppView):63:63 -> a
    1:1:com.android.tools.r8.ir.code.Value dest():22:22 -> dest
    boolean hasInvariantOutType() -> qa
    boolean isUnop() -> wb
    int maxInValueRegister() -> zb
com.android.tools.r8.ir.code.Ushr -> com.android.tools.r8.ir.code.la:
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):17:17 -> <init>
    boolean isCommutative() -> Db
    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():88:88 -> Hb
    int foldIntegers(int,int) -> a
    long foldLongs(long,long) -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):43:43 -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):53:53 -> b
    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):68:68 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):73:73 -> b
    com.android.tools.r8.ir.code.Ushr asUshr() -> ba
    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):58:58 -> c
    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):63:63 -> c
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):48:48 -> d
    1:1:boolean fitsInDexInstruction(com.android.tools.r8.ir.code.Value):23:23 -> g
    boolean isUshr() -> xb
com.android.tools.r8.ir.code.Value -> com.android.tools.r8.ir.code.Value:
    boolean isThis -> j
    boolean isArgument -> k
    int needsRegister -> i
    boolean knownToBeBoolean -> l
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeLattice -> o
    com.android.tools.r8.ir.code.Value UNDEFINED -> p
    boolean $assertionsDisabled -> q
    com.android.tools.r8.ir.regalloc.LiveIntervals liveIntervals -> h
    int number -> a
    java.util.Set uniqueUsers -> c
    com.android.tools.r8.ir.code.Value previousConsecutive -> g
    java.util.Set uniquePhiUsers -> e
    com.android.tools.r8.ir.code.Value nextConsecutive -> f
    java.util.LinkedList phiUsers -> d
    com.android.tools.r8.ir.code.Value$DebugData debugData -> n
    com.android.tools.r8.utils.LongInterval valueRange -> m
    java.util.LinkedList users -> b
    1:164:void <clinit>():33:196 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):216:216 -> <init>
    2:21:void <init>(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):200:219 -> <init>
    1:1:boolean isConstant():751:751 -> A
    1:1:boolean isDexItemBasedConstString():737:737 -> B
    1:3:boolean isDexItemBasedConstStringThatNeedsToComputeClassName():741:743 -> C
    boolean isFixedRegisterValue() -> D
    1:1:boolean isLinked():367:367 -> E
    boolean isPhi() -> F
    1:1:boolean isThis():816:816 -> G
    1:1:boolean isUninitializedLocal():501:501 -> H
    1:1:boolean isUsed():443:443 -> I
    boolean isValueOnStack() -> J
    1:3:boolean isZero():890:892 -> K
    1:8:boolean knownToBeBoolean():791:798 -> L
    1:3:void markAsArgument():777:779 -> M
    1:3:void markAsThis():805:807 -> N
    1:1:void markNonDebugLocalRead():129:129 -> O
    1:1:int numberOfAllNonDebugUsers():431:431 -> P
    1:1:int numberOfDebugUsers():435:435 -> Q
    1:5:int numberOfPhiUsers():423:427 -> R
    1:5:int numberOfUsers():415:419 -> S
    1:1:com.android.tools.r8.ir.code.ValueType outType():720:720 -> T
    1:1:int requiredRegisters():270:270 -> U
    1:2:com.android.tools.r8.ir.code.Instruction singleUniqueUser():394:395 -> V
    1:4:java.util.Set uniquePhiUsers():404:407 -> W
    1:2:boolean usedInMonitorOperation():447:448 -> X
    boolean lambda$fullyRemovePhiUser$1(com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.Phi) -> a
    1:14:void constrainType(com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.utils.Reporter):37:50 -> a
    15:15:void constrainType(com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.utils.Reporter):39:39 -> a
    16:75:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):55:114 -> a
    76:77:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):109:110 -> a
    78:79:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):104:105 -> a
    80:81:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):99:100 -> a
    82:86:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):91:95 -> a
    87:88:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):86:87 -> a
    89:90:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):81:82 -> a
    91:107:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):60:76 -> a
    108:112:com.android.tools.r8.ir.analysis.type.TypeLatticeElement constrainedType(com.android.tools.r8.ir.code.ValueTypeConstraint):73:77 -> a
    113:113:boolean verifyCompatible(com.android.tools.r8.ir.code.ValueType):120:120 -> a
    114:116:void setLocalInfo(com.android.tools.r8.graph.DebugLocalInfo):282:284 -> a
    117:120:boolean hasSameOrNoLocal(com.android.tools.r8.ir.code.Value):293:296 -> a
    121:122:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):336:337 -> a
    123:124:com.android.tools.r8.ir.code.Value$DebugUse markEnd(com.android.tools.r8.ir.code.Value$DebugUse):341:342 -> a
    123:124:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):337 -> a
    125:133:com.android.tools.r8.ir.code.Value$DebugUse com.android.tools.r8.ir.code.Value$DebugUse.end():164:172 -> a
    125:133:com.android.tools.r8.ir.code.Value$DebugUse markEnd(com.android.tools.r8.ir.code.Value$DebugUse):342 -> a
    125:133:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):337 -> a
    134:134:com.android.tools.r8.ir.code.Value$DebugUse com.android.tools.r8.ir.code.Value$DebugUse.end():170:170 -> a
    134:134:com.android.tools.r8.ir.code.Value$DebugUse markEnd(com.android.tools.r8.ir.code.Value$DebugUse):342 -> a
    134:134:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):337 -> a
    135:135:com.android.tools.r8.ir.code.Value$DebugUse com.android.tools.r8.ir.code.Value$DebugUse.end():167:167 -> a
    135:135:com.android.tools.r8.ir.code.Value$DebugUse markEnd(com.android.tools.r8.ir.code.Value$DebugUse):342 -> a
    135:135:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):337 -> a
    136:136:void addDebugLocalEnd(com.android.tools.r8.ir.code.Instruction):337:337 -> a
    137:138:void addPhiUser(com.android.tools.r8.ir.code.Phi):481:482 -> a
    139:146:java.util.Set affectedValues():532:539 -> a
    147:174:void replaceSelectiveUsers(com.android.tools.r8.ir.code.Value,java.util.Set,java.util.Map):571:598 -> a
    175:184:void replaceUserInDebugData(java.util.Map$Entry,com.android.tools.r8.ir.code.Value):605:614 -> a
    185:198:com.android.tools.r8.ir.code.Value$DebugUse com.android.tools.r8.ir.code.Value$DebugUse.join(com.android.tools.r8.ir.code.Value$DebugUse,com.android.tools.r8.ir.code.Value$DebugUse):177:190 -> a
    185:198:void replaceUserInDebugData(java.util.Map$Entry,com.android.tools.r8.ir.code.Value):614 -> a
    199:199:com.android.tools.r8.ir.code.Value$DebugUse com.android.tools.r8.ir.code.Value$DebugUse.join(com.android.tools.r8.ir.code.Value$DebugUse,com.android.tools.r8.ir.code.Value$DebugUse):178:178 -> a
    199:199:void replaceUserInDebugData(java.util.Map$Entry,com.android.tools.r8.ir.code.Value):614 -> a
    200:200:void replaceUserInDebugData(java.util.Map$Entry,com.android.tools.r8.ir.code.Value):614:614 -> a
    201:209:void replaceDebugUser(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):619:627 -> a
    210:211:void setLiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):632:633 -> a
    212:212:void setKnownToBeBoolean(boolean):787:787 -> a
    213:213:void setValueRange(com.android.tools.r8.utils.LongInterval):820:820 -> a
    214:214:boolean isDead(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):852:852 -> a
    215:239:boolean isDead(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.Set):858:882 -> a
    240:240:void narrowing(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):912:912 -> a
    com.android.tools.r8.ir.code.Phi asPhi() -> b
    boolean lambda$fullyRemoveUser$0(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction) -> b
    1:1:boolean verifyCompatible(com.android.tools.r8.ir.code.ValueTypeConstraint):124:124 -> b
    2:5:void linkTo(com.android.tools.r8.ir.code.Value):346:349 -> b
    6:7:void removePhiUser(com.android.tools.r8.ir.code.Phi):486:487 -> b
    8:9:void addDebugUser(com.android.tools.r8.ir.code.Instruction):496:497 -> b
    10:10:void widening(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):902:902 -> b
    boolean lambda$replaceSelectiveUsers$2(com.android.tools.r8.ir.code.Value) -> c
    1:2:void addUser(com.android.tools.r8.ir.code.Instruction):456:457 -> c
    3:4:void fullyRemovePhiUser(com.android.tools.r8.ir.code.Phi):491:492 -> c
    5:6:boolean canBeNull():772:773 -> c
    1:2:void computeNeedsRegister():652:653 -> computeNeedsRegister
    1:6:void clearUsers():471:476 -> d
    7:11:void removeDebugUser(com.android.tools.r8.ir.code.Instruction):509:513 -> d
    1:2:void removeUser(com.android.tools.r8.ir.code.Instruction):461:462 -> e
    3:8:void clearUsersInfo():521:526 -> e
    1:1:java.util.Set debugUsers():411:411 -> f
    2:3:void fullyRemoveUser(com.android.tools.r8.ir.code.Instruction):466:467 -> f
    1:2:com.android.tools.r8.ir.code.Phi firstPhiUser():399:400 -> g
    1:1:int getNumber():266:266 -> getNumber
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getTypeLattice():916:916 -> getTypeLattice
    1:17:com.android.tools.r8.ir.code.Value getAliasedValue():245:261 -> h
    1:1:int hashCode():686:686 -> hashCode
    1:2:com.android.tools.r8.ir.code.ConstInstruction getConstInstruction():724:725 -> i
    1:1:boolean isArgument():783:783 -> isArgument
    1:3:boolean isNeverNull():766:768 -> isNeverNull
    1:7:java.util.List getDebugLocalEnds():313:319 -> j
    1:7:java.util.List getDebugLocalStarts():300:306 -> k
    1:2:com.android.tools.r8.ir.code.Instruction getDefinition():231:232 -> l
    1:1:com.android.tools.r8.ir.regalloc.LiveIntervals getLiveIntervals():637:637 -> m
    1:1:com.android.tools.r8.graph.DebugLocalInfo getLocalInfo():274:274 -> n
    1:3:boolean needsRegister():641:643 -> needsRegister
    1:1:int numberOfAllUsers():439:439 -> numberOfAllUsers
    1:1:com.android.tools.r8.ir.code.Value getNextConsecutive():379:379 -> o
    1:1:com.android.tools.r8.ir.code.Value getPreviousConsecutive():383:383 -> p
    1:2:com.android.tools.r8.ir.code.Value getStartOfConsecutive():372:373 -> q
    1:11:com.android.tools.r8.utils.LongInterval getValueRange():836:846 -> r
    1:13:void replaceUsers(com.android.tools.r8.ir.code.Value):546:558 -> replaceUsers
    1:1:boolean hasLocalInfo():278:278 -> s
    1:2:void setNeedsRegister(boolean):647:648 -> setNeedsRegister
    1:2:boolean hasRegisterConstraint():672:673 -> t
    1:26:java.lang.String toString():691:716 -> toString
    1:1:boolean hasUsersInfo():517:517 -> u
    1:4:java.util.Set uniqueUsers():387:390 -> uniqueUsers
    1:1:boolean hasValueRange():824:824 -> v
    1:8:boolean internalComputeNeedsRegister():657:664 -> w
    1:1:boolean isConstClass():747:747 -> x
    1:1:boolean isConstNumber():729:729 -> y
    1:1:boolean isConstString():733:733 -> z
com.android.tools.r8.ir.code.Value$DebugData -> com.android.tools.r8.ir.code.Value$a:
    java.util.Map users -> b
    com.android.tools.r8.graph.DebugLocalInfo local -> a
    1:1:void <init>(com.android.tools.r8.graph.DebugLocalInfo):139:139 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.DebugLocalInfo):137:140 -> <init>
com.android.tools.r8.ir.code.Value$DebugUse -> com.android.tools.r8.ir.code.Value$b:
    com.android.tools.r8.ir.code.Value$DebugUse START -> b
    com.android.tools.r8.ir.code.Value$DebugUse[] $VALUES -> e
    com.android.tools.r8.ir.code.Value$DebugUse LIVE -> a
    com.android.tools.r8.ir.code.Value$DebugUse LIVE_FINAL -> d
    com.android.tools.r8.ir.code.Value$DebugUse END -> c
    boolean $assertionsDisabled -> f
    1:2:void <clinit>():147:148 -> <clinit>
    3:3:void <clinit>():147:147 -> <clinit>
    1:1:void <init>(java.lang.String,int):147:147 -> <init>
com.android.tools.r8.ir.code.ValueNumberGenerator -> com.android.tools.r8.ir.code.ValueNumberGenerator:
    int nextValueNumber -> a
    1:2:void <init>():6:7 -> <init>
    1:1:int next():10:10 -> next
com.android.tools.r8.ir.code.ValueType -> com.android.tools.r8.ir.code.ValueType:
    com.android.tools.r8.ir.code.ValueType FLOAT -> a
    com.android.tools.r8.ir.code.ValueType DOUBLE -> b
    com.android.tools.r8.ir.code.ValueType[] $VALUES -> c
    1:5:void <clinit>():14:18 -> <clinit>
    6:6:void <clinit>():13:13 -> <clinit>
    1:1:void <init>(java.lang.String,int):13:13 -> <init>
    1:1:boolean isObject():21:21 -> a
    2:21:com.android.tools.r8.ir.code.ValueType fromMemberType(com.android.tools.r8.ir.code.MemberType):37:56 -> a
    22:22:com.android.tools.r8.ir.code.ValueType fromMemberType(com.android.tools.r8.ir.code.MemberType):54:54 -> a
    23:23:com.android.tools.r8.ir.code.ValueType fromMemberType(com.android.tools.r8.ir.code.MemberType):49:49 -> a
    24:24:com.android.tools.r8.ir.code.ValueType fromMemberType(com.android.tools.r8.ir.code.MemberType):47:47 -> a
    25:25:com.android.tools.r8.ir.code.ValueType fromMemberType(com.android.tools.r8.ir.code.MemberType):45:45 -> a
    26:34:com.android.tools.r8.ir.code.ValueType fromMemberType(com.android.tools.r8.ir.code.MemberType):43:51 -> a
    35:35:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):85:85 -> a
    36:36:com.android.tools.r8.ir.code.ValueType fromTypeDescriptorChar(char):80:80 -> a
    36:36:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):85 -> a
    37:37:com.android.tools.r8.ir.code.ValueType fromTypeDescriptorChar(char):78:78 -> a
    37:37:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):85 -> a
    38:48:com.android.tools.r8.ir.code.ValueType fromTypeDescriptorChar(char):64:74 -> a
    38:48:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):85 -> a
    49:53:com.android.tools.r8.ir.code.ValueType fromTypeDescriptorChar(char):72:76 -> a
    49:53:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):85 -> a
    54:54:com.android.tools.r8.ir.code.ValueType fromTypeDescriptorChar(char):70:70 -> a
    54:54:com.android.tools.r8.ir.code.ValueType fromDexType(com.android.tools.r8.graph.DexType):85 -> a
    55:68:com.android.tools.r8.ir.code.ValueType fromNumericType(com.android.tools.r8.ir.code.NumericType):89:102 -> a
    69:69:com.android.tools.r8.ir.code.ValueType fromNumericType(com.android.tools.r8.ir.code.NumericType):100:100 -> a
    70:72:com.android.tools.r8.ir.code.ValueType fromNumericType(com.android.tools.r8.ir.code.NumericType):96:98 -> a
    73:73:com.android.tools.r8.ir.code.ValueType fromNumericType(com.android.tools.r8.ir.code.NumericType):94:94 -> a
    74:89:com.android.tools.r8.ir.code.ValueType fromTypeLattice(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):107:122 -> a
    1:1:boolean isSingle():25:25 -> b
    1:1:boolean isWide():29:29 -> c
    1:1:int requiredRegisters():33:33 -> d
    1:11:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement toPrimitiveTypeLattice():126:136 -> e
    12:12:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement toPrimitiveTypeLattice():134:134 -> e
    13:13:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement toPrimitiveTypeLattice():132:132 -> e
    14:14:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement toPrimitiveTypeLattice():130:130 -> e
    15:15:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement toPrimitiveTypeLattice():128:128 -> e
    1:1:com.android.tools.r8.ir.code.ValueType[] values():13:13 -> f
com.android.tools.r8.ir.code.ValueTypeConstraint -> com.android.tools.r8.ir.code.ma:
    com.android.tools.r8.ir.code.ValueTypeConstraint FLOAT -> c
    com.android.tools.r8.ir.code.ValueTypeConstraint INT -> b
    com.android.tools.r8.ir.code.ValueTypeConstraint OBJECT -> a
    com.android.tools.r8.ir.code.ValueTypeConstraint DOUBLE -> g
    com.android.tools.r8.ir.code.ValueTypeConstraint LONG -> f
    com.android.tools.r8.ir.code.ValueTypeConstraint INT_OR_FLOAT_OR_OBJECT -> e
    com.android.tools.r8.ir.code.ValueTypeConstraint INT_OR_FLOAT -> d
    com.android.tools.r8.ir.code.ValueTypeConstraint[] $VALUES -> i
    com.android.tools.r8.ir.code.ValueTypeConstraint LONG_OR_DOUBLE -> h
    1:8:void <clinit>():14:21 -> <clinit>
    9:9:void <clinit>():13:13 -> <clinit>
    1:1:void <init>(java.lang.String,int):13:13 -> <init>
    1:1:boolean isPrecise():36:36 -> a
    2:14:com.android.tools.r8.ir.code.ValueTypeConstraint fromValueType(com.android.tools.r8.ir.code.ValueType):46:58 -> a
    15:15:com.android.tools.r8.ir.code.ValueTypeConstraint fromValueType(com.android.tools.r8.ir.code.ValueType):56:56 -> a
    16:16:com.android.tools.r8.ir.code.ValueTypeConstraint fromValueType(com.android.tools.r8.ir.code.ValueType):54:54 -> a
    17:17:com.android.tools.r8.ir.code.ValueTypeConstraint fromValueType(com.android.tools.r8.ir.code.ValueType):52:52 -> a
    18:18:com.android.tools.r8.ir.code.ValueTypeConstraint fromValueType(com.android.tools.r8.ir.code.ValueType):50:50 -> a
    19:19:com.android.tools.r8.ir.code.ValueTypeConstraint fromValueType(com.android.tools.r8.ir.code.ValueType):48:48 -> a
    20:40:com.android.tools.r8.ir.code.ValueTypeConstraint fromMemberType(com.android.tools.r8.ir.code.MemberType):63:83 -> a
    41:41:com.android.tools.r8.ir.code.ValueTypeConstraint fromMemberType(com.android.tools.r8.ir.code.MemberType):79:79 -> a
    42:46:com.android.tools.r8.ir.code.ValueTypeConstraint fromMemberType(com.android.tools.r8.ir.code.MemberType):73:77 -> a
    47:47:com.android.tools.r8.ir.code.ValueTypeConstraint fromMemberType(com.android.tools.r8.ir.code.MemberType):75:75 -> a
    48:48:com.android.tools.r8.ir.code.ValueTypeConstraint fromMemberType(com.android.tools.r8.ir.code.MemberType):71:71 -> a
    49:61:com.android.tools.r8.ir.code.ValueTypeConstraint fromMemberType(com.android.tools.r8.ir.code.MemberType):69:81 -> a
    62:62:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeDescriptorChar(char):107:107 -> a
    63:63:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeDescriptorChar(char):105:105 -> a
    64:74:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeDescriptorChar(char):91:101 -> a
    75:79:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeDescriptorChar(char):99:103 -> a
    80:80:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeDescriptorChar(char):97:97 -> a
    81:81:com.android.tools.r8.ir.code.ValueTypeConstraint fromDexType(com.android.tools.r8.graph.DexType):112:112 -> a
    82:95:com.android.tools.r8.ir.code.ValueTypeConstraint fromNumericType(com.android.tools.r8.ir.code.NumericType):116:129 -> a
    96:96:com.android.tools.r8.ir.code.ValueTypeConstraint fromNumericType(com.android.tools.r8.ir.code.NumericType):127:127 -> a
    97:99:com.android.tools.r8.ir.code.ValueTypeConstraint fromNumericType(com.android.tools.r8.ir.code.NumericType):123:125 -> a
    100:100:com.android.tools.r8.ir.code.ValueTypeConstraint fromNumericType(com.android.tools.r8.ir.code.NumericType):121:121 -> a
    101:125:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeLattice(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):134:158 -> a
    126:126:com.android.tools.r8.ir.code.ValueTypeConstraint fromTypeLattice(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):138:138 -> a
    1:1:boolean isWide():32:32 -> b
    1:1:int requiredRegisters():42:42 -> c
com.android.tools.r8.ir.code.Xor -> com.android.tools.r8.ir.code.na:
    1:1:void <init>(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):17:17 -> <init>
    boolean isCommutative() -> Db
    1:1:com.android.tools.r8.cf.code.CfLogicalBinop$Opcode getCfOpcode():82:82 -> Hb
    int foldIntegers(int,int) -> a
    long foldLongs(long,long) -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt(int,int,int):37:37 -> a
    1:1:com.android.tools.r8.code.Instruction CreateInt2Addr(int,int):47:47 -> b
    2:2:com.android.tools.r8.code.Instruction CreateIntLit16(int,int,int):62:62 -> b
    3:3:boolean identicalNonValueNonPositionParts(com.android.tools.r8.ir.code.Instruction):67:67 -> b
    1:1:com.android.tools.r8.code.Instruction CreateLong2Addr(int,int):52:52 -> c
    2:2:com.android.tools.r8.code.Instruction CreateIntLit8(int,int,int):57:57 -> c
    com.android.tools.r8.ir.code.Xor asXor() -> ca
    1:1:com.android.tools.r8.code.Instruction CreateLong(int,int,int):42:42 -> d
    boolean isXor() -> yb
com.android.tools.r8.ir.conversion.ArrayFilledDataPayloadResolver -> com.android.tools.r8.ir.conversion.c:
    java.util.Map unresolvedPayload -> a
    java.util.Map payloadToData -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():15:15 -> <clinit>
    1:10:void <init>():15:24 -> <init>
    1:7:void addPayloadUser(com.android.tools.r8.code.FillArrayData):27:33 -> a
    8:17:void resolve(com.android.tools.r8.code.FillArrayDataPayload):38:47 -> a
    18:18:short[] getData(int):59:59 -> a
    19:19:void clear():63:63 -> a
    1:1:int getElementWidth(int):51:51 -> b
    1:1:long getSize(int):55:55 -> c
com.android.tools.r8.ir.conversion.ArrayFilledDataPayloadResolver$1 -> com.android.tools.r8.ir.conversion.a:
com.android.tools.r8.ir.conversion.ArrayFilledDataPayloadResolver$PayloadData -> com.android.tools.r8.ir.conversion.b:
    long size -> b
    short[] data -> c
    int element_width -> a
    1:1:void <init>():17:17 -> <init>
    1:1:void <init>(com.android.tools.r8.ir.conversion.ArrayFilledDataPayloadResolver$1):17 -> <init>
com.android.tools.r8.ir.conversion.CallGraph -> com.android.tools.r8.ir.conversion.CallGraph:
    java.util.Map nodes -> a
    java.util.Set singleCallSite -> c
    java.util.Set doubleCallSite -> d
    boolean $assertionsDisabled -> e
    com.android.tools.r8.utils.IROrdering shuffle -> b
    1:1:void <clinit>():64:64 -> <clinit>
    1:84:void <init>(com.android.tools.r8.utils.InternalOptions):66:149 -> <init>
    85:85:void <init>(com.android.tools.r8.utils.InternalOptions):67:67 -> <init>
    1:1:com.android.tools.r8.ir.conversion.CallGraph$Node access$600(com.android.tools.r8.ir.conversion.CallGraph,com.android.tools.r8.graph.DexEncodedMethod):64:64 -> a
    2:2:void access$700(com.android.tools.r8.ir.conversion.CallGraph,com.android.tools.r8.ir.conversion.CallGraph$Node,com.android.tools.r8.ir.conversion.CallGraph$Node):64:64 -> a
    3:21:com.android.tools.r8.ir.conversion.CallGraph build(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing):156:174 -> a
    22:29:void fillCallSiteSets(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness):195:202 -> a
    22:29:com.android.tools.r8.ir.conversion.CallGraph build(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing):174 -> a
    30:30:int lambda$build$0(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):158:158 -> a
    31:31:boolean hasDoubleCallSite(com.android.tools.r8.graph.DexMethod):191:191 -> a
    32:33:boolean allMethodsExists(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.conversion.CallGraph):209:210 -> a
    34:35:void lambda$extractLeaves$3(com.android.tools.r8.ir.conversion.CallGraph$Node):232:233 -> a
    36:36:com.android.tools.r8.ir.conversion.CallGraph$Node ensureMethodNode(com.android.tools.r8.graph.DexEncodedMethod):434:434 -> a
    37:37:com.android.tools.r8.ir.conversion.CallGraph$Node lambda$ensureMethodNode$5(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):434:434 -> a
    38:45:void addCall(com.android.tools.r8.ir.conversion.CallGraph$Node,com.android.tools.r8.ir.conversion.CallGraph$Node):438:445 -> a
    46:46:boolean isEmpty():449:449 -> a
    46:46:void forEachMethod(com.android.tools.r8.utils.ThrowingBiConsumer,com.android.tools.r8.utils.Action,com.android.tools.r8.utils.Action,java.util.concurrent.ExecutorService):464 -> a
    47:58:void forEachMethod(com.android.tools.r8.utils.ThrowingBiConsumer,com.android.tools.r8.utils.Action,com.android.tools.r8.utils.Action,java.util.concurrent.ExecutorService):465:476 -> a
    59:59:java.lang.Object lambda$forEachMethod$6(com.android.tools.r8.utils.ThrowingBiConsumer,com.android.tools.r8.graph.DexEncodedMethod,java.util.Collection):471:471 -> a
    1:1:boolean hasSingleCallSite(com.android.tools.r8.graph.DexMethod):186:186 -> b
    2:2:void lambda$allMethodsExists$1(com.android.tools.r8.ir.conversion.CallGraph,com.android.tools.r8.graph.DexEncodedMethod):211:211 -> b
    3:3:void lambda$extractLeaves$2(com.android.tools.r8.ir.conversion.CallGraph$Node,com.android.tools.r8.ir.conversion.CallGraph$Node):232:232 -> b
    4:4:com.android.tools.r8.graph.DexEncodedMethod lambda$extractLeaves$4(com.android.tools.r8.ir.conversion.CallGraph$Node):236:236 -> b
    5:5:boolean isEmpty():449:449 -> b
    5:5:java.util.Collection extractLeaves():226 -> b
    6:16:java.util.Collection extractLeaves():227:237 -> b
com.android.tools.r8.ir.conversion.CallGraph$CycleEliminator -> com.android.tools.r8.ir.conversion.CallGraph$CycleEliminator:
    java.util.Deque stack -> c
    java.util.Collection nodes -> a
    java.util.Set stackSet -> d
    com.android.tools.r8.utils.InternalOptions options -> b
    java.util.Set marked -> e
    int numberOfCycles -> f
    boolean $assertionsDisabled -> g
    1:1:void <clinit>():240:240 -> <clinit>
    1:1:void <init>(java.util.Collection,com.android.tools.r8.utils.InternalOptions):270:270 -> <init>
    2:19:void <init>(java.util.Collection,com.android.tools.r8.utils.InternalOptions):260:277 -> <init>
    1:1:int lambda$traverse$0(com.android.tools.r8.ir.conversion.CallGraph$Node,com.android.tools.r8.ir.conversion.CallGraph$Node):308:308 -> a
    2:2:boolean edgeRemovalIsSafe(com.android.tools.r8.ir.conversion.CallGraph$Node,com.android.tools.r8.ir.conversion.CallGraph$Node):414:414 -> a
    3:5:java.util.Collection reorderNodes(java.util.List):425:427 -> a
    1:1:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):298:298 -> b
    2:4:void push(com.android.tools.r8.ir.conversion.CallGraph$Node):374:376 -> b
    2:4:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):303 -> b
    5:19:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):307:321 -> b
    20:24:java.util.LinkedList extractCycle(com.android.tools.r8.ir.conversion.CallGraph$Node):387:391 -> b
    20:24:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):332 -> b
    25:33:com.android.tools.r8.ir.conversion.CallGraph$CycleEliminator$CallEdge findCallEdgeForRemoval(java.util.LinkedList):396:404 -> b
    25:33:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):341 -> b
    34:38:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):346:350 -> b
    39:41:void recoverStack(java.util.LinkedList):418:420 -> b
    39:41:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):363 -> b
    42:42:com.android.tools.r8.ir.conversion.CallGraph$CycleEliminator$CallEdge findCallEdgeForRemoval(java.util.LinkedList):408:408 -> b
    42:42:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):341 -> b
    43:43:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):366:366 -> b
    44:47:void pop(com.android.tools.r8.ir.conversion.CallGraph$Node):380:383 -> b
    44:47:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):369 -> b
    48:48:void traverse(com.android.tools.r8.ir.conversion.CallGraph$Node):370:370 -> b
    1:4:int breakCycles():282:285 -> breakCycles
    5:8:void reset():291:294 -> breakCycles
    5:8:int breakCycles():286 -> breakCycles
com.android.tools.r8.ir.conversion.CallGraph$CycleEliminator$CallEdge -> com.android.tools.r8.ir.conversion.CallGraph$CycleEliminator$a:
    com.android.tools.r8.ir.conversion.CallGraph$Node callee -> b
    com.android.tools.r8.ir.conversion.CallGraph$Node caller -> a
    1:3:void <init>(com.android.tools.r8.ir.conversion.CallGraph$Node,com.android.tools.r8.ir.conversion.CallGraph$Node):250:252 -> <init>
    1:1:com.android.tools.r8.ir.conversion.CallGraph$Node access$300(com.android.tools.r8.ir.conversion.CallGraph$CycleEliminator$CallEdge):245:245 -> a
    1:1:com.android.tools.r8.ir.conversion.CallGraph$Node access$400(com.android.tools.r8.ir.conversion.CallGraph$CycleEliminator$CallEdge):245:245 -> b
com.android.tools.r8.ir.conversion.CallGraph$InvokeExtractor -> com.android.tools.r8.ir.conversion.CallGraph$a:
    com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness appInfo -> c
    com.android.tools.r8.graph.GraphLense graphLense -> d
    com.android.tools.r8.ir.conversion.CallGraph graph -> f
    boolean $assertionsDisabled -> g
    com.android.tools.r8.ir.conversion.CallGraph$Node caller -> e
    1:1:void <clinit>():484:484 -> <clinit>
    1:5:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.CallGraph$Node,com.android.tools.r8.ir.conversion.CallGraph):492:496 -> <init>
    1:3:void addClassInitializerTarget(com.android.tools.r8.graph.DexClass):500:502 -> a
    4:5:void addTarget(com.android.tools.r8.graph.DexEncodedMethod):515:516 -> a
    6:28:void processInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod):537:559 -> a
    29:29:void addPossibleTargets(com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):529:529 -> a
    29:29:void processInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod):561 -> a
    30:33:void addPossibleTarget(com.android.tools.r8.graph.DexEncodedMethod):520:523 -> a
    30:33:void addPossibleTargets(com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):531 -> a
    30:33:void processInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod):561 -> a
    34:34:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):585:585 -> a
    35:35:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):615:615 -> a
    1:1:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):597:597 -> b
    2:2:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):609:609 -> b
    1:1:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):591:591 -> c
    2:3:boolean registerNewInstance(com.android.tools.r8.graph.DexType):621:622 -> c
    4:4:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):629:629 -> c
    boolean registerTypeReference(com.android.tools.r8.graph.DexType) -> d
    1:1:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):603:603 -> d
    2:2:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):635:635 -> d
    1:4:void addClassInitializerTarget(com.android.tools.r8.graph.DexType):507:510 -> e
    5:8:void processFieldAccess(com.android.tools.r8.graph.DexField):569:572 -> e
    9:9:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):579:579 -> e
com.android.tools.r8.ir.conversion.CallGraph$Node -> com.android.tools.r8.ir.conversion.CallGraph$Node:
    java.util.Set callees -> c
    java.util.Set callers -> d
    boolean isSelfRecursive -> b
    int invokeCount -> a
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod):82:82 -> <init>
    2:12:void <init>(com.android.tools.r8.graph.DexEncodedMethod):73:83 -> <init>
    1:1:int access$000(com.android.tools.r8.ir.conversion.CallGraph$Node):70:70 -> a
    2:2:boolean access$502(com.android.tools.r8.ir.conversion.CallGraph$Node,boolean):70:70 -> a
    3:3:boolean isBridge():87:87 -> a
    1:2:void addCallee(com.android.tools.r8.ir.conversion.CallGraph$Node):91:92 -> addCallee
    1:1:int access$008(com.android.tools.r8.ir.conversion.CallGraph$Node):70:70 -> b
    2:2:boolean isSelfRecursive():100:100 -> b
    1:1:java.util.Set access$100(com.android.tools.r8.ir.conversion.CallGraph$Node):70:70 -> c
    1:1:java.util.Set access$200(com.android.tools.r8.ir.conversion.CallGraph$Node):70:70 -> d
    1:1:boolean hasCallee(com.android.tools.r8.ir.conversion.CallGraph$Node):96:96 -> hasCallee
    1:1:boolean isLeaf():104:104 -> isLeaf
    1:33:java.lang.String toString():109:141 -> toString
com.android.tools.r8.ir.conversion.CallSiteInformation -> com.android.tools.r8.ir.conversion.e:
    1:1:void <init>():8:8 -> <init>
    boolean hasDoubleCallSite(com.android.tools.r8.graph.DexMethod) -> a
    1:1:com.android.tools.r8.ir.conversion.CallSiteInformation empty():21:21 -> a
    boolean hasSingleCallSite(com.android.tools.r8.graph.DexMethod) -> b
com.android.tools.r8.ir.conversion.CallSiteInformation$EmptyCallSiteInformation -> com.android.tools.r8.ir.conversion.d:
    com.android.tools.r8.ir.conversion.CallSiteInformation$EmptyCallSiteInformation EMPTY_INFO -> a
    1:1:void <clinit>():26:26 -> <clinit>
    1:1:void <init>():24:24 -> <init>
    boolean hasDoubleCallSite(com.android.tools.r8.graph.DexMethod) -> a
    boolean hasSingleCallSite(com.android.tools.r8.graph.DexMethod) -> b
    1:1:com.android.tools.r8.ir.conversion.CallSiteInformation$EmptyCallSiteInformation access$000():24:24 -> b
com.android.tools.r8.ir.conversion.CfBuilder -> com.android.tools.r8.ir.conversion.h:
    com.android.tools.r8.ir.code.Position currentPosition -> h
    java.util.Map newInstanceLabels -> q
    java.util.List thisInitializers -> p
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.code.BasicBlock pendingFrame -> l
    boolean pendingLocalChanges -> k
    java.util.Map initializers -> o
    com.android.tools.r8.ir.code.IRCode code -> c
    boolean $assertionsDisabled -> r
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap openLocalVariables -> n
    java.util.Map labels -> d
    com.android.tools.r8.cf.CfRegisterAllocator registerAllocator -> g
    java.util.List instructions -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap pendingLocals -> j
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap emittedLocals -> i
    java.util.Set emittedLabels -> e
    com.android.tools.r8.graph.DexEncodedMethod method -> b
    java.util.List localVariablesTable -> m
    1:1:void <clinit>():72:72 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):128:128 -> <init>
    2:46:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):87:131 -> <init>
    void addArgument(com.android.tools.r8.ir.code.Argument) -> a
    1:2:com.android.tools.r8.graph.DexField resolveField(com.android.tools.r8.graph.DexField):186:187 -> a
    3:20:void computeInitializers():191:208 -> a
    3:20:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):135 -> a
    21:23:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):136:138 -> a
    24:45:void rewriteNots():225:246 -> a
    24:45:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):139 -> a
    46:46:void rewriteNots():245:245 -> a
    46:46:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):139 -> a
    47:67:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):140:160 -> a
    68:124:void rewriteIincPatterns():356:412 -> a
    68:124:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    125:125:void rewriteIincPatterns():390:390 -> a
    125:125:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    126:126:void rewriteIincPatterns():385:385 -> a
    126:126:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):163 -> a
    127:128:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):165:166 -> a
    129:148:com.android.tools.r8.graph.CfCode buildCfCode():261:280 -> a
    129:148:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):167 -> a
    149:176:com.android.tools.r8.graph.CfCode buildCfCode():279:306 -> a
    149:176:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):167 -> a
    177:179:int stackHeightAtBlockEntry(com.android.tools.r8.ir.code.BasicBlock):253:255 -> a
    177:179:com.android.tools.r8.graph.CfCode buildCfCode():309 -> a
    177:179:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):167 -> a
    180:181:void com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker.setHeight(int):123:124 -> a
    180:181:com.android.tools.r8.graph.CfCode buildCfCode():309 -> a
    180:181:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):167 -> a
    182:182:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):419:419 -> a
    182:182:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
    182:182:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):167 -> a
    183:183:boolean hasMaterializingInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):347:347 -> a
    183:183:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):420 -> a
    183:183:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
    183:183:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):167 -> a
    184:188:boolean isNopInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock):336:340 -> a
    184:188:boolean hasMaterializingInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):348 -> a
    184:188:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):420 -> a
    184:188:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
    184:188:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):167 -> a
    189:191:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):424:426 -> a
    189:191:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
    189:191:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):167 -> a
    192:225:void addFrame(com.android.tools.r8.ir.code.BasicBlock):540:573 -> a
    192:225:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):426 -> a
    192:225:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
    192:225:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):167 -> a
    226:258:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):427:459 -> a
    226:258:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
    226:258:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):167 -> a
    259:276:void updatePositionAndLocals(com.android.tools.r8.ir.code.Instruction):468:485 -> a
    259:276:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):461 -> a
    259:276:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
    259:276:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):167 -> a
    277:277:void add(com.android.tools.r8.cf.code.CfInstruction):642:642 -> a
    277:277:void updatePositionAndLocals(com.android.tools.r8.ir.code.Instruction):485 -> a
    277:277:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):461 -> a
    277:277:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
    277:277:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):167 -> a
    278:278:void updatePositionAndLocals(com.android.tools.r8.ir.code.Instruction):486:486 -> a
    278:278:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):461 -> a
    278:278:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
    278:278:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):167 -> a
    279:279:void buildCfInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,boolean,com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker):462:462 -> a
    279:279:com.android.tools.r8.graph.CfCode buildCfCode():310 -> a
    279:279:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):167 -> a
    280:280:com.android.tools.r8.graph.CfCode buildCfCode():312:312 -> a
    280:280:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):167 -> a
    281:281:boolean com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker.isEmpty():108:108 -> a
    281:281:com.android.tools.r8.graph.CfCode buildCfCode():312 -> a
    281:281:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):167 -> a
    282:298:com.android.tools.r8.graph.CfCode buildCfCode():312:328 -> a
    282:298:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):167 -> a
    299:299:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):168:168 -> a
    300:305:boolean verifyInvokeInterface(com.android.tools.r8.graph.CfCode,com.android.tools.r8.graph.DexDefinitionSupplier):173:178 -> a
    300:305:com.android.tools.r8.graph.CfCode build(com.android.tools.r8.ir.optimize.CodeRewriter):168 -> a
    306:306:com.android.tools.r8.cf.code.CfInstruction getLastInstruction():536:536 -> a
    306:306:com.android.tools.r8.cf.code.CfLabel ensureLabel():526 -> a
    307:310:com.android.tools.r8.cf.code.CfLabel ensureLabel():527:530 -> a
    311:311:void add(com.android.tools.r8.cf.code.CfInstruction):642:642 -> a
    311:311:com.android.tools.r8.cf.code.CfLabel ensureLabel():531 -> a
    312:313:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):577:578 -> a
    314:344:com.android.tools.r8.cf.code.CfFrame$FrameType findAllocator(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):587:617 -> a
    314:344:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):580 -> a
    345:345:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):581:581 -> a
    346:346:com.android.tools.r8.cf.code.CfFrame$FrameType findAllocator(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):594:594 -> a
    346:346:com.android.tools.r8.cf.code.CfFrame$FrameType getFrameType(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.cf.TypeVerificationHelper$TypeInfo):580 -> a
    347:349:void emitLabel(com.android.tools.r8.cf.code.CfLabel):625:627 -> a
    350:350:com.android.tools.r8.cf.code.CfLabel getLabel(com.android.tools.r8.ir.code.BasicBlock):634:634 -> a
    351:351:int getLocalRegister(com.android.tools.r8.ir.code.Value):638:638 -> a
    352:352:void add(com.android.tools.r8.cf.code.CfInstruction):642:642 -> a
    1:7:java.util.List computeInitializers(com.android.tools.r8.ir.code.Value):212:218 -> b
    8:27:void updateLocals(com.android.tools.r8.cf.code.CfLabel):491:510 -> b
    28:33:void updateLocals(com.android.tools.r8.cf.code.CfLabel):509:514 -> b
    34:38:boolean localsChanged():518:522 -> b
    39:39:com.android.tools.r8.cf.code.CfLabel lambda$getLabel$0(com.android.tools.r8.ir.code.BasicBlock):634:634 -> b
com.android.tools.r8.ir.conversion.CfBuilder$1 -> com.android.tools.r8.ir.conversion.f:
com.android.tools.r8.ir.conversion.CfBuilder$StackHeightTracker -> com.android.tools.r8.ir.conversion.g:
    int height -> b
    boolean $assertionsDisabled -> c
    int maxHeight -> a
    1:1:void <clinit>():103:103 -> <clinit>
    1:3:void <init>():103:105 -> <init>
    1:3:void <init>(com.android.tools.r8.ir.conversion.CfBuilder$1):103 -> <init>
    1:2:void pop(com.android.tools.r8.ir.code.Value):118:119 -> a
    1:3:void push(com.android.tools.r8.ir.code.Value):112:114 -> b
com.android.tools.r8.ir.conversion.CfSourceCode -> com.android.tools.r8.ir.conversion.i:
    com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList cachedTryHandlerList -> h
    com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo currentBlockInfo -> a
    int currentInstructionIndex -> j
    com.android.tools.r8.graph.CfCode code -> d
    boolean inPrelude -> k
    com.android.tools.r8.origin.Origin origin -> f
    com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList cachedLocalVariableList -> i
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap incomingLocals -> l
    boolean $assertionsDisabled -> q
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap outgoingLocals -> m
    com.android.tools.r8.utils.InternalOutputMode internalOutputMode -> p
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap incomingState -> n
    com.android.tools.r8.ir.code.CanonicalPositions canonicalPositions -> o
    com.android.tools.r8.ir.conversion.CfState state -> c
    com.android.tools.r8.graph.DexEncodedMethod method -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap labelOffsets -> g
    boolean hasExitingInstruction -> b
    1:1:void <clinit>():53:53 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.CfCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin,com.android.tools.r8.utils.InternalOutputMode):211:211 -> <init>
    2:173:void <init>(com.android.tools.r8.graph.CfCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin,com.android.tools.r8.utils.InternalOutputMode):56:227 -> <init>
    1:5:boolean canThrowHelper(com.android.tools.r8.cf.code.CfInstruction):260:264 -> a
    6:6:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList getTryHandlers(int,com.android.tools.r8.graph.DexItemFactory):304:304 -> a
    7:7:boolean com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList.validFor(int):73:73 -> a
    7:7:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList getTryHandlers(int,com.android.tools.r8.graph.DexItemFactory):304 -> a
    8:10:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList getTryHandlers(int,com.android.tools.r8.graph.DexItemFactory):305:307 -> a
    11:14:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList getTryHandlers(int,com.android.tools.r8.graph.DexItemFactory):306:309 -> a
    15:15:com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList getLocalVariables(int):313:313 -> a
    16:16:boolean com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList.validFor(int):163:163 -> a
    16:16:com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList getLocalVariables(int):313 -> a
    17:20:com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList getLocalVariables(int):314:317 -> a
    21:22:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):501:502 -> a
    23:27:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.origin.Origin):108:112 -> a
    23:27:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):502 -> a
    28:43:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.origin.Origin):116:131 -> a
    28:43:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.origin.Origin):112 -> a
    28:43:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):502 -> a
    44:44:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):504:504 -> a
    45:45:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.ir.conversion.CfState$BaseSnapshot,com.android.tools.r8.origin.Origin):117:117 -> a
    45:45:com.android.tools.r8.ir.conversion.CfState$Snapshot com.android.tools.r8.ir.conversion.CfState.merge(com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.origin.Origin):112 -> a
    45:45:void recordStateForTarget(int,com.android.tools.r8.ir.conversion.CfState$Snapshot):502 -> a
    46:46:int getCurrentInstructionIndex():509:509 -> a
    47:48:int getLabelOffset(com.android.tools.r8.cf.code.CfLabel):513:514 -> a
    49:59:void setStateFromFrame(com.android.tools.r8.cf.code.CfFrame):518:528 -> a
    60:60:void setStateFromFrame(com.android.tools.r8.cf.code.CfFrame):527:527 -> a
    61:84:com.android.tools.r8.graph.DexType convertUninitialized(com.android.tools.r8.cf.code.CfFrame$FrameType):532:555 -> a
    85:90:com.android.tools.r8.ir.code.Position getCanonicalPosition(com.android.tools.r8.ir.code.Position):679:684 -> a
    91:91:com.android.tools.r8.ir.code.Position getCanonicalPosition(com.android.tools.r8.ir.code.Position):679:679 -> a
    1:25:int[] getTargets(int):321:345 -> b
    26:27:int[] getTargets(int):325:326 -> b
    28:28:boolean localsChanged():601:601 -> b
    29:30:boolean isControlFlow(com.android.tools.r8.cf.code.CfInstruction):623:624 -> b
    1:28:void buildBlockTransfer(com.android.tools.r8.ir.conversion.IRBuilder,int,int,boolean):397:424 -> buildBlockTransfer
    1:22:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):433:454 -> buildInstruction
    23:23:int instructionCount():232:232 -> buildInstruction
    23:23:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):456 -> buildInstruction
    24:26:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):457:459 -> buildInstruction
    27:30:void endLocals(com.android.tools.r8.ir.conversion.IRBuilder):605:608 -> buildInstruction
    27:30:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):478 -> buildInstruction
    31:43:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):461:473 -> buildInstruction
    44:44:void build(com.android.tools.r8.cf.code.CfInstruction,com.android.tools.r8.ir.conversion.IRBuilder):497:497 -> buildInstruction
    44:44:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):481 -> buildInstruction
    45:51:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):483:489 -> buildInstruction
    52:55:void startLocals(com.android.tools.r8.ir.conversion.IRBuilder):614:617 -> buildInstruction
    52:55:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):492 -> buildInstruction
    1:4:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):350:353 -> buildPrelude
    5:5:boolean isStatic():382:382 -> buildPrelude
    5:5:void buildArgumentInstructions(com.android.tools.r8.ir.conversion.IRBuilder):362 -> buildPrelude
    5:5:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):354 -> buildPrelude
    6:21:void buildArgumentInstructions(com.android.tools.r8.ir.conversion.IRBuilder):363:378 -> buildPrelude
    6:21:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):354 -> buildPrelude
    22:24:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):355:357 -> buildPrelude
    1:9:void setLocalVariableLists():588:596 -> c
    10:10:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMaps.emptyMap():198:198 -> c
    10:10:void setLocalVariableLists():597 -> c
    11:11:void setLocalVariableLists():597:597 -> c
    1:14:com.android.tools.r8.ir.code.Position getCanonicalDebugPositionAtOffset(int):657:670 -> getCanonicalDebugPositionAtOffset
    1:3:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder):631:633 -> getCurrentCatchHandlers
    4:9:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder):632:637 -> getCurrentCatchHandlers
    1:1:com.android.tools.r8.ir.code.Position getCurrentPosition():675:675 -> getCurrentPosition
    1:1:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int):574:574 -> getIncomingLocal
    1:1:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocalAtBlock(int,int):569:569 -> getIncomingLocalAtBlock
    1:1:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):579:579 -> getOutgoingLocal
    2:2:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int):574:574 -> getOutgoingLocal
    2:2:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):580 -> getOutgoingLocal
    3:5:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):582:584 -> getOutgoingLocal
    1:1:int instructionCount():232:232 -> instructionCount
    1:4:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):269:272 -> traceInstruction
    5:31:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):271:297 -> traceInstruction
    1:1:boolean verifyCurrentInstructionCanThrow():647:647 -> verifyCurrentInstructionCanThrow
com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList -> com.android.tools.r8.ir.conversion.i$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap locals -> c
    int endOffset -> b
    int startOffset -> a
    1:1:void <clinit>():122:122 -> <clinit>
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMaps.emptyMap():198:198 -> <clinit>
    2:2:void <clinit>():122 -> <clinit>
    3:3:void <clinit>():122:122 -> <clinit>
    1:4:void <init>(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap):128:131 -> <init>
    1:18:com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList compute(int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):141:158 -> a
    19:19:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMaps.emptyMap():198:198 -> a
    19:19:com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList compute(int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):159 -> a
    20:20:com.android.tools.r8.ir.conversion.CfSourceCode$LocalVariableList compute(int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):159:159 -> a
com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList -> com.android.tools.r8.ir.conversion.j:
    java.util.List guards -> c
    boolean $assertionsDisabled -> e
    int endOffset -> b
    int startOffset -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList offsets -> d
    1:1:void <clinit>():58:58 -> <clinit>
    1:5:void <init>(int,int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):65:69 -> <init>
    1:2:boolean isEmpty():77:78 -> a
    3:31:com.android.tools.r8.ir.conversion.CfSourceCode$TryHandlerList computeTryHandlers(int,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,com.android.tools.r8.graph.DexItemFactory):88:116 -> a
com.android.tools.r8.ir.conversion.CfState -> com.android.tools.r8.ir.conversion.v:
    com.android.tools.r8.ir.conversion.CfState$Snapshot current -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():12:12 -> <clinit>
    1:1:void <init>(com.android.tools.r8.origin.Origin):71:71 -> <init>
    1:1:void buildPrelude(com.android.tools.r8.ir.code.Position):78:78 -> a
    2:2:void com.android.tools.r8.ir.conversion.CfState$BaseSnapshot.<init>(com.android.tools.r8.ir.code.Position):316:316 -> a
    2:2:void buildPrelude(com.android.tools.r8.ir.code.Position):78 -> a
    3:3:void buildPrelude(com.android.tools.r8.ir.code.Position):78:78 -> a
    4:5:void reset(com.android.tools.r8.ir.conversion.CfState$Snapshot,boolean):86:87 -> a
    6:6:void setStateFromFrame(com.android.tools.r8.graph.DexType[],com.android.tools.r8.graph.DexType[],com.android.tools.r8.ir.code.Position):91:91 -> a
    7:7:int stackHeight():147:147 -> a
    7:7:void setStateFromFrame(com.android.tools.r8.graph.DexType[],com.android.tools.r8.graph.DexType[],com.android.tools.r8.ir.code.Position):91 -> a
    8:9:void setStateFromFrame(com.android.tools.r8.graph.DexType[],com.android.tools.r8.graph.DexType[],com.android.tools.r8.ir.code.Position):91:92 -> a
    10:10:com.android.tools.r8.ir.conversion.CfState$Slot push(com.android.tools.r8.ir.conversion.CfState$Slot):151:151 -> a
    11:11:com.android.tools.r8.ir.conversion.CfState$Slot push(com.android.tools.r8.graph.DexType):155:155 -> a
    12:12:com.android.tools.r8.ir.conversion.CfState$Slot push(com.android.tools.r8.ir.code.ValueType):159:159 -> a
    13:15:com.android.tools.r8.ir.conversion.CfState$Slot push(com.android.tools.r8.ir.conversion.CfState$SlotType):163:165 -> a
    16:16:void updateState(com.android.tools.r8.ir.conversion.CfState$Snapshot):169:169 -> a
    17:17:com.android.tools.r8.ir.conversion.CfState$Slot peek(int):191:191 -> a
    18:18:com.android.tools.r8.ir.conversion.CfState$Slot write(int,com.android.tools.r8.graph.DexType):199:199 -> a
    19:20:com.android.tools.r8.ir.conversion.CfState$Slot write(int,com.android.tools.r8.ir.conversion.CfState$SlotType):207:208 -> a
    19:20:com.android.tools.r8.ir.conversion.CfState$Slot write(int,com.android.tools.r8.graph.DexType):199 -> a
    21:21:com.android.tools.r8.ir.conversion.CfState$Slot write(int,com.android.tools.r8.ir.conversion.CfState$Slot):203:203 -> a
    22:23:com.android.tools.r8.ir.conversion.CfState$Slot write(int,com.android.tools.r8.ir.conversion.CfState$SlotType):207:208 -> a
    22:23:com.android.tools.r8.ir.conversion.CfState$Slot write(int,com.android.tools.r8.ir.conversion.CfState$Slot):203 -> a
    24:24:com.android.tools.r8.ir.code.Position getPosition():212:212 -> a
    1:1:com.android.tools.r8.ir.conversion.CfState$Snapshot getSnapshot():104:104 -> b
    2:4:int[] popReverse(int):179:181 -> b
    5:6:void setPosition(com.android.tools.r8.ir.code.Position):216:217 -> b
    1:1:com.android.tools.r8.ir.conversion.CfState$Slot peek():187:187 -> c
    2:2:com.android.tools.r8.ir.conversion.CfState$Slot read(int):195:195 -> c
    1:2:com.android.tools.r8.ir.conversion.CfState$Slot pop():173:174 -> d
    1:1:java.lang.String toString():222:222 -> toString
    2:17:java.lang.String com.android.tools.r8.ir.conversion.CfState$BaseSnapshot.toString():401:416 -> toString
    2:17:java.lang.String toString():222 -> toString
com.android.tools.r8.ir.conversion.CfState$1 -> com.android.tools.r8.ir.conversion.k:
com.android.tools.r8.ir.conversion.CfState$BaseSnapshot -> com.android.tools.r8.ir.conversion.l:
    com.android.tools.r8.ir.conversion.CfState$SlotType[] locals -> c
    com.android.tools.r8.ir.conversion.CfState$SlotType[] stack -> d
    boolean $assertionsDisabled -> f
    com.android.tools.r8.ir.code.Position position -> e
    1:1:void <clinit>():310:310 -> <clinit>
    1:5:void <init>(int,int,com.android.tools.r8.ir.code.Position):320:324 -> <init>
    6:7:void <init>(com.android.tools.r8.ir.conversion.CfState$Snapshot):328:329 -> <init>
    8:18:void <init>(com.android.tools.r8.graph.DexType[],com.android.tools.r8.graph.DexType[],com.android.tools.r8.ir.code.Position):333:343 -> <init>
    com.android.tools.r8.ir.conversion.CfState$BaseSnapshot asBase() -> a
    1:1:com.android.tools.r8.ir.conversion.CfState$Slot getLocal(int):376:376 -> a
    2:6:void build(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot):386:390 -> a
    1:3:com.android.tools.r8.ir.conversion.CfState$SlotType getSlotType(com.android.tools.r8.graph.DexType):348:350 -> b
    4:4:com.android.tools.r8.ir.conversion.CfState$Slot getStack(int):365:365 -> b
    5:5:com.android.tools.r8.ir.code.Position getPosition():381:381 -> b
    1:1:int maxLocal():360:360 -> c
    1:1:com.android.tools.r8.ir.conversion.CfState$Slot peek():370:370 -> d
    2:2:int stackHeight():355:355 -> d
    2:2:com.android.tools.r8.ir.conversion.CfState$Slot peek():370 -> d
    3:3:com.android.tools.r8.ir.conversion.CfState$Slot peek():370:370 -> d
    4:4:int stackHeight():355:355 -> d
    4:4:com.android.tools.r8.ir.conversion.CfState$Slot peek():371 -> d
    5:5:com.android.tools.r8.ir.conversion.CfState$Slot getStack(int):365:365 -> d
    5:5:com.android.tools.r8.ir.conversion.CfState$Slot peek():371 -> d
    1:1:int stackHeight():355:355 -> e
    1:16:java.lang.String toString():401:416 -> toString
com.android.tools.r8.ir.conversion.CfState$Pop -> com.android.tools.r8.ir.conversion.m:
    int stackHeight -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():459:459 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.conversion.CfState$Snapshot):464:466 -> <init>
    1:2:com.android.tools.r8.ir.conversion.CfState$Slot getStack(int):476:477 -> b
    1:1:com.android.tools.r8.ir.conversion.CfState$Slot peek():482:482 -> d
    1:1:int stackHeight():471:471 -> e
    1:1:java.lang.String toString():487:487 -> toString
com.android.tools.r8.ir.conversion.CfState$Push -> com.android.tools.r8.ir.conversion.n:
    com.android.tools.r8.ir.conversion.CfState$Slot slot -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():420:420 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.ir.conversion.CfState$SlotType):425:427 -> <init>
    1:3:void build(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot):447:449 -> a
    1:1:com.android.tools.r8.ir.conversion.CfState$Slot getStack(int):437:437 -> b
    2:2:com.android.tools.r8.ir.conversion.CfState$Slot peek():442:442 -> b
    2:2:com.android.tools.r8.ir.conversion.CfState$Slot getStack(int):437 -> b
    3:3:com.android.tools.r8.ir.conversion.CfState$Slot getStack(int):437:437 -> b
    1:1:com.android.tools.r8.ir.conversion.CfState$Slot peek():442:442 -> d
    1:1:int stackHeight():432:432 -> e
    1:1:java.lang.String toString():455:455 -> toString
com.android.tools.r8.ir.conversion.CfState$SetPosition -> com.android.tools.r8.ir.conversion.o:
    com.android.tools.r8.ir.code.Position position -> c
    1:2:void <init>(com.android.tools.r8.ir.conversion.CfState$Snapshot,com.android.tools.r8.ir.code.Position):528:529 -> <init>
    1:1:com.android.tools.r8.ir.code.Position getPosition():534:534 -> b
    1:1:java.lang.String toString():539:539 -> toString
com.android.tools.r8.ir.conversion.CfState$Slot -> com.android.tools.r8.ir.conversion.p:
    com.android.tools.r8.ir.conversion.CfState$SlotType slotType -> d
    com.android.tools.r8.ir.code.ValueType type -> b
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.DexType preciseType -> c
    int register -> a
    1:1:void <clinit>():225:225 -> <clinit>
    1:1:void <init>(int,com.android.tools.r8.ir.conversion.CfState$SlotType,com.android.tools.r8.ir.conversion.CfState$1):225:225 -> <init>
    2:6:void <init>(int,com.android.tools.r8.ir.conversion.CfState$SlotType):237:241 -> <init>
    1:1:com.android.tools.r8.ir.conversion.CfState$SlotType access$100(com.android.tools.r8.ir.conversion.CfState$Slot):225:225 -> a
    2:2:com.android.tools.r8.ir.conversion.CfState$Slot stackSlot(int,com.android.tools.r8.ir.conversion.CfState$SlotType):245:245 -> a
    2:2:com.android.tools.r8.ir.conversion.CfState$Slot access$300(int,com.android.tools.r8.ir.conversion.CfState$SlotType):225 -> a
    3:4:int stackPosition():249:250 -> a
    1:1:int access$500(com.android.tools.r8.ir.conversion.CfState$Slot):225:225 -> b
    1:3:java.lang.String toString():255:257 -> toString
com.android.tools.r8.ir.conversion.CfState$SlotType -> com.android.tools.r8.ir.conversion.s:
    1:1:void <init>():14:14 -> <init>
    1:1:void <init>(com.android.tools.r8.ir.conversion.CfState$1):14 -> <init>
    com.android.tools.r8.ir.code.ValueType getImprecise() -> a
    com.android.tools.r8.graph.DexType getPrecise() -> b
com.android.tools.r8.ir.conversion.CfState$SlotType$Imprecise -> com.android.tools.r8.ir.conversion.q:
    com.android.tools.r8.ir.code.ValueType type -> a
    1:2:void <init>(com.android.tools.r8.ir.code.ValueType):47:48 -> <init>
    1:1:com.android.tools.r8.ir.code.ValueType getImprecise():58:58 -> a
    com.android.tools.r8.graph.DexType getPrecise() -> b
    1:1:java.lang.String toString():63:63 -> toString
com.android.tools.r8.ir.conversion.CfState$SlotType$Precise -> com.android.tools.r8.ir.conversion.r:
    com.android.tools.r8.graph.DexType type -> a
    1:2:void <init>(com.android.tools.r8.graph.DexType):23:24 -> <init>
    1:1:com.android.tools.r8.ir.code.ValueType getImprecise():34:34 -> a
    1:1:com.android.tools.r8.graph.DexType getPrecise():29:29 -> b
    1:1:java.lang.String toString():39:39 -> toString
com.android.tools.r8.ir.conversion.CfState$Snapshot -> com.android.tools.r8.ir.conversion.t:
    com.android.tools.r8.ir.conversion.CfState$Snapshot parent -> a
    int updates -> b
    1:3:void <init>(com.android.tools.r8.ir.conversion.CfState$Snapshot,int):265:267 -> <init>
    1:3:void <init>(com.android.tools.r8.ir.conversion.CfState$Snapshot,int,com.android.tools.r8.ir.conversion.CfState$1):261 -> <init>
    1:1:com.android.tools.r8.ir.conversion.CfState$Slot getLocal(int):287:287 -> a
    2:2:void build(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot):295:295 -> a
    3:3:com.android.tools.r8.ir.conversion.CfState$BaseSnapshot asBase():299:299 -> a
    4:6:com.android.tools.r8.ir.conversion.CfState$Snapshot exceptionTransfer(com.android.tools.r8.graph.DexType):303:305 -> a
    1:1:com.android.tools.r8.ir.conversion.CfState$Slot getStack(int):279:279 -> b
    2:2:com.android.tools.r8.ir.code.Position getPosition():291:291 -> b
    1:1:int maxLocal():275:275 -> c
    1:1:com.android.tools.r8.ir.conversion.CfState$Slot peek():283:283 -> d
    1:1:int stackHeight():271:271 -> e
com.android.tools.r8.ir.conversion.CfState$Write -> com.android.tools.r8.ir.conversion.u:
    com.android.tools.r8.ir.conversion.CfState$Slot slot -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():491:491 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.conversion.CfState$Snapshot,int,com.android.tools.r8.ir.conversion.CfState$SlotType):496:498 -> <init>
    1:1:com.android.tools.r8.ir.conversion.CfState$Slot getLocal(int):508:508 -> a
    2:3:void build(com.android.tools.r8.ir.conversion.CfState$BaseSnapshot):513:514 -> a
    1:1:int maxLocal():503:503 -> c
    1:1:java.lang.String toString():519:519 -> toString
com.android.tools.r8.ir.conversion.DexBuilder -> com.android.tools.r8.ir.conversion.A:
    boolean hasBackwardsBranch -> m
    boolean $assertionsDisabled -> o
    int outRegisterCount -> l
    int inRegisterCount -> k
    int minOffset -> h
    com.android.tools.r8.utils.InternalOptions options -> c
    com.android.tools.r8.ir.code.IRCode ir -> a
    int maxOffset -> g
    com.android.tools.r8.ir.conversion.DexBuilder$Info[] instructionToInfo -> i
    com.android.tools.r8.ir.conversion.DexBuilder$Info previousNonFallthroughInfo -> j
    com.android.tools.r8.ir.code.BasicBlock nextBlock -> n
    java.util.List fillArrayDataInfos -> e
    java.util.List switchPayloadInfos -> d
    com.android.tools.r8.ir.regalloc.RegisterAllocator registerAllocator -> b
    java.util.Set ifsNeedingRewrite -> f
    1:1:void <clinit>():83:83 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):125:127 -> <init>
    4:4:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,com.android.tools.r8.utils.InternalOptions):130:130 -> <init>
    5:45:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,com.android.tools.r8.utils.InternalOptions):95:135 -> <init>
    1:1:com.android.tools.r8.ir.conversion.DexBuilder$Info access$000(com.android.tools.r8.ir.conversion.DexBuilder,com.android.tools.r8.ir.code.BasicBlock):83:83 -> a
    2:2:boolean access$202(com.android.tools.r8.ir.conversion.DexBuilder,boolean):83:83 -> a
    3:6:boolean identicalInstructionsAfterBuildingDexCode(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.RegisterAllocator):143:146 -> a
    7:9:com.android.tools.r8.ir.conversion.DexBuilder$Info buildInfoForComparison(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder):151:153 -> a
    10:38:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):315:343 -> a
    39:41:boolean isTrivialFallthroughTarget(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):305:307 -> a
    39:41:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):344 -> a
    42:104:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):346:408 -> a
    105:106:boolean isNopInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock):565:566 -> a
    105:106:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):409 -> a
    107:109:boolean isNonMaterializingConstNumber(com.android.tools.r8.ir.code.Instruction):573:575 -> a
    107:109:boolean isNopInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock):567 -> a
    107:109:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):409 -> a
    110:110:boolean isNopInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock):568:568 -> a
    110:110:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):409 -> a
    111:156:void removeRedundantDebugPositions(com.android.tools.r8.ir.code.IRCode):411:456 -> a
    157:170:void rewriteIfs():472:485 -> a
    157:170:com.android.tools.r8.graph.DexCode build():185 -> a
    171:179:void reset():161:169 -> a
    171:179:com.android.tools.r8.graph.DexCode build():188 -> a
    180:249:com.android.tools.r8.graph.DexCode build():192:261 -> a
    250:261:com.android.tools.r8.code.Nop createSwitchPayload(com.android.tools.r8.ir.conversion.DexBuilder$SwitchPayloadInfo,int):693:704 -> a
    250:261:com.android.tools.r8.graph.DexCode build():264 -> a
    262:262:com.android.tools.r8.ir.conversion.DexBuilder$Info getInfo(com.android.tools.r8.ir.code.Instruction):648:648 -> a
    262:262:com.android.tools.r8.code.Nop createSwitchPayload(com.android.tools.r8.ir.conversion.DexBuilder$SwitchPayloadInfo,int):704 -> a
    262:262:com.android.tools.r8.graph.DexCode build():264 -> a
    263:269:com.android.tools.r8.code.Nop createSwitchPayload(com.android.tools.r8.ir.conversion.DexBuilder$SwitchPayloadInfo,int):704:710 -> a
    263:269:com.android.tools.r8.graph.DexCode build():264 -> a
    270:270:com.android.tools.r8.ir.conversion.DexBuilder$Info getInfo(com.android.tools.r8.ir.code.Instruction):648:648 -> a
    270:270:com.android.tools.r8.code.Nop createSwitchPayload(com.android.tools.r8.ir.conversion.DexBuilder$SwitchPayloadInfo,int):710 -> a
    270:270:com.android.tools.r8.graph.DexCode build():264 -> a
    271:273:com.android.tools.r8.code.Nop createSwitchPayload(com.android.tools.r8.ir.conversion.DexBuilder$SwitchPayloadInfo,int):710:712 -> a
    271:273:com.android.tools.r8.graph.DexCode build():264 -> a
    274:290:com.android.tools.r8.graph.DexCode build():265:281 -> a
    291:291:int com.android.tools.r8.code.FillArrayDataPayload.getSize():75:75 -> a
    291:291:com.android.tools.r8.graph.DexCode build():282 -> a
    292:292:com.android.tools.r8.graph.DexCode build():283:283 -> a
    293:295:com.android.tools.r8.ir.conversion.DexBuilder$TryInfo computeTryInfo():719:721 -> a
    293:295:com.android.tools.r8.graph.DexCode build():287 -> a
    296:301:com.android.tools.r8.graph.DexCode$Try[] getDexTryItems(java.util.List,java.util.Map):822:827 -> a
    296:301:com.android.tools.r8.ir.conversion.DexBuilder$TryInfo computeTryInfo():723 -> a
    296:301:com.android.tools.r8.graph.DexCode build():287 -> a
    302:302:com.android.tools.r8.ir.conversion.DexBuilder$TryInfo computeTryInfo():724:724 -> a
    302:302:com.android.tools.r8.graph.DexCode build():287 -> a
    303:320:com.android.tools.r8.graph.DexCode$TryHandler[] getDexTryHandlers(java.util.Map):833:850 -> a
    303:320:com.android.tools.r8.ir.conversion.DexBuilder$TryInfo computeTryInfo():724 -> a
    303:320:com.android.tools.r8.graph.DexCode build():287 -> a
    321:329:com.android.tools.r8.graph.DexCode build():290:298 -> a
    330:330:int allocatedRegister(com.android.tools.r8.ir.code.Value,int):501:501 -> a
    331:334:void addGoto(com.android.tools.r8.ir.code.Goto):511:514 -> a
    335:349:boolean needsNopBetweenMoveAndInstanceOf(com.android.tools.r8.code.InstanceOf):519:533 -> a
    335:349:void addInstanceOf(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.code.InstanceOf):543 -> a
    350:352:void addInstanceOf(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.code.InstanceOf):544:546 -> a
    353:354:void addIf(com.android.tools.r8.ir.code.If):551:552 -> a
    355:355:void addMove(com.android.tools.r8.ir.code.Move):556:556 -> a
    356:356:void addNop(com.android.tools.r8.ir.code.Instruction):579:579 -> a
    357:360:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.code.Instruction):589:592 -> a
    361:364:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.code.Instruction):590:593 -> a
    365:366:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.code.Instruction[]):597:598 -> a
    367:369:void addSwitch(com.android.tools.r8.ir.code.Switch,com.android.tools.r8.code.Format31t):602:604 -> a
    370:371:void addFillArrayData(com.android.tools.r8.ir.code.NewArrayFilledData,com.android.tools.r8.code.FillArrayData):608:609 -> a
    372:373:void addArgument(com.android.tools.r8.ir.code.Argument):613:614 -> a
    374:378:void addReturn(com.android.tools.r8.ir.code.Return,com.android.tools.r8.code.Instruction):618:622 -> a
    379:379:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):627:627 -> a
    380:381:void setSingleInfo(com.android.tools.r8.ir.conversion.DexBuilder$Info):659:660 -> a
    380:381:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):629 -> a
    382:384:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):632:634 -> a
    385:385:com.android.tools.r8.ir.conversion.DexBuilder$Info getInfo(com.android.tools.r8.ir.code.Instruction):648:648 -> a
    385:385:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):634 -> a
    386:390:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):634:638 -> a
    391:394:void setInfo(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):652:655 -> a
    391:394:void add(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.conversion.DexBuilder$Info):639 -> a
    395:395:int instructionNumberToIndex(int):643:643 -> a
    396:396:com.android.tools.r8.ir.conversion.DexBuilder$Info getInfo(com.android.tools.r8.ir.code.Instruction):648:648 -> a
    396:396:com.android.tools.r8.ir.conversion.DexBuilder$Info access$100(com.android.tools.r8.ir.conversion.DexBuilder,com.android.tools.r8.ir.code.Instruction):83 -> a
    397:408:com.android.tools.r8.ir.conversion.DexBuilder$Info getTargetInfo(com.android.tools.r8.ir.code.BasicBlock):664:675 -> a
    409:409:com.android.tools.r8.ir.conversion.DexBuilder$Info getInfo(com.android.tools.r8.ir.code.Instruction):648:648 -> a
    409:409:com.android.tools.r8.ir.conversion.DexBuilder$Info getTargetInfo(com.android.tools.r8.ir.code.BasicBlock):675 -> a
    410:410:com.android.tools.r8.ir.conversion.DexBuilder$Info getTargetInfo(com.android.tools.r8.ir.code.BasicBlock):675:675 -> a
    411:416:com.android.tools.r8.ir.code.BasicBlock computeNextBlock(com.android.tools.r8.ir.code.BasicBlock):683:688 -> a
    411:416:com.android.tools.r8.ir.conversion.DexBuilder$Info getTargetInfo(com.android.tools.r8.ir.code.BasicBlock):676 -> a
    417:420:com.android.tools.r8.ir.conversion.DexBuilder$Info getTargetInfo(com.android.tools.r8.ir.code.BasicBlock):676:679 -> a
    421:477:java.util.List computeTryItems(com.android.tools.r8.com.google.common.collect.BiMap):730:786 -> a
    478:478:com.android.tools.r8.ir.conversion.DexBuilder$Info getInfo(com.android.tools.r8.ir.code.Instruction):648:648 -> a
    478:478:java.util.List computeTryItems(com.android.tools.r8.com.google.common.collect.BiMap):787 -> a
    479:496:java.util.List computeTryItems(com.android.tools.r8.com.google.common.collect.BiMap):787:804 -> a
    1:1:void needsIfRewriting(com.android.tools.r8.ir.code.BasicBlock):491:491 -> b
    1:1:void access$300(com.android.tools.r8.ir.conversion.DexBuilder,com.android.tools.r8.ir.code.BasicBlock):83 -> b
    2:3:void requestOutgoingRegisters(int):495:496 -> b
    4:4:int argumentOrAllocateRegister(com.android.tools.r8.ir.code.Value,int):507:507 -> b
    5:5:void addNothing(com.android.tools.r8.ir.code.Instruction):560:560 -> b
    6:8:int trimEnd(com.android.tools.r8.ir.code.BasicBlock):810:812 -> b
    9:9:com.android.tools.r8.ir.conversion.DexBuilder$Info getInfo(com.android.tools.r8.ir.code.Instruction):648:648 -> b
    9:9:int trimEnd(com.android.tools.r8.ir.code.BasicBlock):813 -> b
    10:13:int trimEnd(com.android.tools.r8.ir.code.BasicBlock):814:817 -> b
    14:14:com.android.tools.r8.utils.InternalOptions getOptions():856:856 -> b
    1:1:com.android.tools.r8.ir.conversion.DexBuilder$Info getInfo(com.android.tools.r8.ir.code.Instruction):648:648 -> c
    2:2:com.android.tools.r8.ir.regalloc.RegisterAllocator getRegisterAllocator():860:860 -> c
    1:1:boolean isBuildingForComparison():157:157 -> d
com.android.tools.r8.ir.conversion.DexBuilder$FallThroughInfo -> com.android.tools.r8.ir.conversion.w:
    1:1:void <init>(com.android.tools.r8.ir.code.Instruction):1029:1029 -> <init>
    void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List) -> a
    int computeSize(com.android.tools.r8.ir.conversion.DexBuilder) -> a
    1:1:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1058:1058 -> a
    int getSize() -> d
    int maxSize() -> e
    int minSize() -> f
com.android.tools.r8.ir.conversion.DexBuilder$FillArrayDataInfo -> com.android.tools.r8.ir.conversion.x:
    com.android.tools.r8.code.FillArrayData dex -> b
    com.android.tools.r8.ir.code.NewArrayFilledData ir -> a
    1:3:void <init>(com.android.tools.r8.ir.code.NewArrayFilledData,com.android.tools.r8.code.FillArrayData):1504:1506 -> <init>
com.android.tools.r8.ir.conversion.DexBuilder$FixedSizeInfo -> com.android.tools.r8.ir.conversion.y:
    com.android.tools.r8.code.Instruction instruction -> e
    1:2:void <init>(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.code.Instruction):936:937 -> <init>
    1:2:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):957:958 -> a
    3:3:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):963:963 -> a
    4:5:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):968:969 -> a
    1:1:int getSize():942:942 -> d
    1:1:int maxSize():952:952 -> e
    1:1:int minSize():947:947 -> f
com.android.tools.r8.ir.conversion.DexBuilder$GotoInfo -> com.android.tools.r8.ir.conversion.z:
    boolean $assertionsDisabled -> f
    int size -> e
    1:1:void <clinit>():1062:1062 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Goto):1067:1067 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.Goto):1064:1064 -> <init>
    1:1:com.android.tools.r8.ir.code.Goto getJump():1071:1071 -> a
    1:1:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1135 -> a
    2:46:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1136:1180 -> a
    47:51:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1169:1173 -> a
    52:71:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1164:1183 -> a
    72:72:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1094:1094 -> a
    73:73:com.android.tools.r8.ir.code.Goto getJump():1071:1071 -> a
    73:73:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1095 -> a
    74:108:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1096:1130 -> a
    109:109:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1189:1189 -> a
    1:2:int getSize():1076:1077 -> d
    1:1:int maxSize():1088:1088 -> e
    1:1:int minSize():1082:1082 -> f
com.android.tools.r8.ir.conversion.DexBuilder$IfInfo -> com.android.tools.r8.ir.conversion.A$a:
    boolean $assertionsDisabled -> f
    int size -> e
    1:1:void <clinit>():1193:1193 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.If):1198:1198 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.If):1195:1195 -> <init>
    1:1:com.android.tools.r8.ir.code.Instruction getIR():1193:1193 -> a
    2:2:void setMaxOffset(int):1193:1193 -> a
    3:4:int getRegister(int,com.android.tools.r8.ir.conversion.DexBuilder):1202:1203 -> a
    5:5:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1224:1224 -> a
    5:5:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1307 -> a
    6:6:int getMaxOffset():1193:1193 -> a
    6:6:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1225 -> a
    6:6:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1307 -> a
    7:7:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1226:1226 -> a
    7:7:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1307 -> a
    8:8:int getOffset():1193:1193 -> a
    8:8:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1228 -> a
    8:8:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1307 -> a
    9:9:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1228:1228 -> a
    9:9:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1307 -> a
    10:10:int getOffset():1193:1193 -> a
    10:10:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1233 -> a
    10:10:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1307 -> a
    11:11:int getOffset():1193:1193 -> a
    11:11:boolean offsetOutOfRange(com.android.tools.r8.ir.conversion.DexBuilder):1234 -> a
    11:11:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1307 -> a
    12:15:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1308:1311 -> a
    16:52:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1239:1275 -> a
    53:53:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1272:1272 -> a
    54:54:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1269:1269 -> a
    55:55:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1266:1266 -> a
    56:56:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1263:1263 -> a
    57:94:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1260:1297 -> a
    95:95:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1294:1294 -> a
    96:96:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1291:1291 -> a
    97:97:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1288:1288 -> a
    98:98:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1285:1285 -> a
    99:99:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1282:1282 -> a
    100:100:int getOffset():1193:1193 -> a
    100:100:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1301 -> a
    101:102:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1301:1302 -> a
    103:108:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1331:1336 -> a
    1:1:void com.android.tools.r8.ir.conversion.DexBuilder$Info.setMinOffset(int):910:910 -> b
    1:1:void setMinOffset(int):1193 -> b
    2:2:int getMaxOffset():1193:1193 -> b
    3:5:boolean branchesToSelf(com.android.tools.r8.ir.conversion.DexBuilder):1218:1220 -> b
    1:1:int getOffset():1193:1193 -> c
    2:2:void setOffset(int):1193:1193 -> c
    3:6:int[] getRegisters(com.android.tools.r8.ir.conversion.DexBuilder):1207:1210 -> c
    1:1:int getSize():1326:1326 -> d
    int maxSize() -> e
    int minSize() -> f
    1:1:com.android.tools.r8.ir.code.Instruction getIR():1193:1193 -> g
    1:1:com.android.tools.r8.ir.code.If getBranch():1214 -> g
    2:2:com.android.tools.r8.ir.code.If getBranch():1214:1214 -> g
com.android.tools.r8.ir.conversion.DexBuilder$Info -> com.android.tools.r8.ir.conversion.B:
    com.android.tools.r8.ir.code.Instruction ir -> a
    int offset -> b
    int maxOffset -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():864:864 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Instruction):873:873 -> <init>
    2:9:void <init>(com.android.tools.r8.ir.code.Instruction):868:875 -> <init>
    void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List) -> a
    int computeSize(com.android.tools.r8.ir.conversion.DexBuilder) -> a
    boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder) -> a
    1:2:void setMaxOffset(int):920:921 -> a
    3:3:com.android.tools.r8.ir.code.Instruction getIR():925:925 -> a
    1:1:void setMinOffset(int):910:910 -> b
    2:3:int getMaxOffset():915:916 -> b
    1:2:int getOffset():895:896 -> c
    3:4:void setOffset(int):900:901 -> c
    int getSize() -> d
    int maxSize() -> e
    int minSize() -> f
com.android.tools.r8.ir.conversion.DexBuilder$MoveInfo -> com.android.tools.r8.ir.conversion.C:
    boolean $assertionsDisabled -> f
    int size -> e
    1:1:void <clinit>():1340:1340 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Move):1345:1345 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.Move):1342:1342 -> <init>
    1:1:com.android.tools.r8.ir.code.Instruction getIR():1340:1340 -> a
    2:2:void setMaxOffset(int):1340:1340 -> a
    3:3:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1353:1353 -> a
    3:3:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1372 -> a
    4:4:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1357:1357 -> a
    4:4:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1373 -> a
    5:13:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):1375:1383 -> a
    14:17:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1362:1365 -> a
    18:18:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1353:1353 -> a
    18:18:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1366 -> a
    19:19:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1353:1353 -> a
    19:19:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1366 -> a
    20:20:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1357:1357 -> a
    20:20:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1367 -> a
    21:21:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1357:1357 -> a
    21:21:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1367 -> a
    22:23:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1388:1389 -> a
    24:24:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1353:1353 -> a
    24:24:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1390 -> a
    25:25:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1357:1357 -> a
    25:25:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1391 -> a
    26:65:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1393:1432 -> a
    66:73:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1410:1417 -> a
    74:82:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1396:1404 -> a
    83:83:int getOffset():1340:1340 -> a
    83:83:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1434 -> a
    84:85:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1434:1435 -> a
    86:86:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):1406:1406 -> a
    1:1:void com.android.tools.r8.ir.conversion.DexBuilder$Info.setMinOffset(int):910:910 -> b
    1:1:void setMinOffset(int):1340 -> b
    2:2:int getMaxOffset():1340:1340 -> b
    3:3:int destRegister(com.android.tools.r8.ir.conversion.DexBuilder):1357:1357 -> b
    1:1:int getOffset():1340:1340 -> c
    2:2:void setOffset(int):1340:1340 -> c
    3:3:int srcRegister(com.android.tools.r8.ir.conversion.DexBuilder):1353:1353 -> c
    1:2:int getSize():1452:1453 -> d
    1:1:int maxSize():1446:1446 -> e
    1:1:int minSize():1440:1440 -> f
    1:1:com.android.tools.r8.ir.code.Instruction getIR():1340:1340 -> g
    1:1:com.android.tools.r8.ir.code.Move getMove():1349 -> g
    2:2:com.android.tools.r8.ir.code.Move getMove():1349:1349 -> g
com.android.tools.r8.ir.conversion.DexBuilder$MultiFixedSizeInfo -> com.android.tools.r8.ir.conversion.D:
    int size -> f
    com.android.tools.r8.code.Instruction[] instructions -> e
    1:7:void <init>(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.code.Instruction[]):980:986 -> <init>
    1:1:int computeSize(com.android.tools.r8.ir.conversion.DexBuilder):991:991 -> a
    2:6:void addInstructions(com.android.tools.r8.ir.conversion.DexBuilder,java.util.List):996:1000 -> a
    7:8:boolean identicalInstructions(com.android.tools.r8.ir.conversion.DexBuilder$Info,com.android.tools.r8.ir.conversion.DexBuilder):1021:1022 -> a
    1:1:int getSize():1016:1016 -> d
    1:1:int maxSize():1011:1011 -> e
    1:1:int minSize():1006:1006 -> f
com.android.tools.r8.ir.conversion.DexBuilder$SwitchPayloadInfo -> com.android.tools.r8.ir.conversion.E:
    com.android.tools.r8.ir.code.Switch ir -> a
    com.android.tools.r8.code.Format31t dex -> b
    1:3:void <init>(com.android.tools.r8.ir.code.Switch,com.android.tools.r8.code.Format31t):1493:1495 -> <init>
com.android.tools.r8.ir.conversion.DexBuilder$TryItem -> com.android.tools.r8.ir.conversion.F:
    com.android.tools.r8.ir.code.CatchHandlers handlers -> a
    int start -> b
    int end -> c
    1:4:void <init>(com.android.tools.r8.ir.code.CatchHandlers,int,int):1476:1479 -> <init>
    1:1:int compareTo(com.android.tools.r8.ir.conversion.DexBuilder$TryItem):1484:1484 -> a
    1:1:int compareTo(java.lang.Object):1470:1470 -> compareTo
com.android.tools.r8.ir.conversion.DexSourceCode -> com.android.tools.r8.ir.conversion.G:
    boolean $assertionsDisabled -> m
    com.android.tools.r8.ir.code.Position currentPosition -> i
    com.android.tools.r8.graph.DexMethod originalMethod -> l
    com.android.tools.r8.ir.conversion.ArrayFilledDataPayloadResolver arrayFilledDataPayloadResolver -> e
    com.android.tools.r8.ir.code.CanonicalPositions canonicalPositions -> j
    com.android.tools.r8.graph.DexCode code -> a
    com.android.tools.r8.graph.DexCode$Try currentTryRange -> f
    com.android.tools.r8.ir.code.CatchHandlers currentCatchHandlers -> g
    java.util.Map offsetToInstructionIndex -> c
    com.android.tools.r8.code.Instruction currentDexInstruction -> h
    com.android.tools.r8.graph.DexEncodedMethod method -> b
    com.android.tools.r8.ir.conversion.SwitchPayloadResolver switchPayloadResolver -> d
    java.util.List debugEntries -> k
    1:1:void <clinit>():57:57 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):81:81 -> <init>
    2:31:void <init>(com.android.tools.r8.graph.DexCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):63:92 -> <init>
    1:3:com.android.tools.r8.graph.DexDebugEntry getDebugEntryAtOffset(int):260:262 -> a
    4:5:com.android.tools.r8.ir.code.Position getCanonicalPositionAppendCaller(com.android.tools.r8.graph.DexDebugEntry):289:290 -> a
    6:14:com.android.tools.r8.ir.code.Position getCanonicalPositionAppendCaller(com.android.tools.r8.graph.DexDebugEntry):289:297 -> a
    15:15:com.android.tools.r8.ir.code.Position getCanonicalPositionAppendCaller(com.android.tools.r8.graph.DexDebugEntry):292:292 -> a
    16:16:boolean isMoveResult(com.android.tools.r8.code.Instruction):350:350 -> a
    17:26:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexCode$Try):436:445 -> a
    27:28:void lambda$getCurrentCatchHandlers$0(java.util.List,java.util.List,com.android.tools.r8.graph.DexType,java.lang.Integer):442:443 -> a
    29:37:void forEachTryRange(com.android.tools.r8.graph.DexCode$Try,com.android.tools.r8.graph.DexItemFactory,java.util.function.BiConsumer):450:458 -> a
    38:39:java.util.List getTryHandlerOffsets(com.android.tools.r8.graph.DexCode$Try,com.android.tools.r8.graph.DexItemFactory):468:469 -> a
    40:40:void lambda$getTryHandlerOffsets$1(java.util.List,com.android.tools.r8.graph.DexType,java.lang.Integer):469:469 -> a
    1:1:com.android.tools.r8.graph.DexCode$Try getTryForOffset(int):427:427 -> b
    2:2:boolean inTryRange(com.android.tools.r8.graph.DexCode$Try,int):422:422 -> b
    2:2:com.android.tools.r8.graph.DexCode$Try getTryForOffset(int):428 -> b
    1:1:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):201:201 -> buildInstruction
    2:10:void updateCurrentCatchHandlers(int,com.android.tools.r8.graph.DexItemFactory):246:254 -> buildInstruction
    2:10:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):201 -> buildInstruction
    11:21:void updateDebugPosition(int,com.android.tools.r8.ir.conversion.IRBuilder):272:282 -> buildInstruction
    11:21:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):202 -> buildInstruction
    22:23:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):203:204 -> buildInstruction
    1:32:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):139:170 -> buildPrelude
    33:42:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):169:178 -> buildPrelude
    43:51:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):176:184 -> buildPrelude
    1:2:void clear():302:303 -> clear
    1:4:com.android.tools.r8.ir.code.Position getCanonicalDebugPositionAtOffset(int):224:227 -> getCanonicalDebugPositionAtOffset
    1:1:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder):209:209 -> getCurrentCatchHandlers
    1:1:com.android.tools.r8.ir.code.Position getCurrentPosition():232:232 -> getCurrentPosition
    1:4:int getMoveExceptionRegister(int):214:217 -> getMoveExceptionRegister
    1:1:int instructionCount():103:103 -> instructionCount
    1:1:int instructionIndex(int):308:308 -> instructionIndex
    1:1:int instructionOffset(int):313:313 -> instructionOffset
    1:4:void resolveAndBuildNewArrayFilledData(int,int,com.android.tools.r8.ir.conversion.IRBuilder):326:329 -> resolveAndBuildNewArrayFilledData
    5:5:void resolveAndBuildNewArrayFilledData(int,int,com.android.tools.r8.ir.conversion.IRBuilder):326:326 -> resolveAndBuildNewArrayFilledData
    1:2:void resolveAndBuildSwitch(int,int,int,com.android.tools.r8.ir.conversion.IRBuilder):319:320 -> resolveAndBuildSwitch
    3:3:void resolveAndBuildSwitch(int,int,int,com.android.tools.r8.ir.conversion.IRBuilder):319:319 -> resolveAndBuildSwitch
    1:8:void setUp():124:131 -> setUp
    1:33:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):357:389 -> traceInstruction
    34:34:java.util.Set getUniqueTryHandlerOffsets(com.android.tools.r8.graph.DexCode$Try,com.android.tools.r8.graph.DexItemFactory):464:464 -> traceInstruction
    34:34:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):389 -> traceInstruction
    35:40:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):389:394 -> traceInstruction
    41:41:boolean isInvoke(com.android.tools.r8.code.Instruction):333:333 -> traceInstruction
    41:41:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):394 -> traceInstruction
    42:62:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):394:414 -> traceInstruction
    1:1:boolean verifyCurrentInstructionCanThrow():237:237 -> verifyCurrentInstructionCanThrow
    1:1:boolean verifyRegister(int):98:98 -> verifyRegister
com.android.tools.r8.ir.conversion.IRBuilder -> com.android.tools.r8.ir.conversion.IRBuilder:
    java.util.Queue ssaWorklist -> f
    int currentInstructionOffset -> j
    com.android.tools.r8.ir.code.BasicBlock currentBlock -> i
    boolean throwingInstructionInCurrentBlock -> u
    java.util.List impreciseInstructions -> z
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement LONG -> F
    com.android.tools.r8.graph.DexEncodedMethod method -> l
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement INT -> D
    java.util.Set processedSubroutineInstructions -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap offsets -> b
    boolean[] processedInstructions -> d
    int nextBlockNumber -> y
    java.util.LinkedList blocks -> g
    boolean hasImpreciseValues -> A
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement NULL -> H
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap targets -> a
    com.android.tools.r8.ir.conversion.SourceCode source -> t
    boolean hasMonitorInstruction -> C
    com.android.tools.r8.ir.code.BasicBlock entryBlock -> h
    com.android.tools.r8.origin.Origin origin -> o
    boolean $assertionsDisabled -> I
    java.util.Queue traceBlocksWorklist -> c
    com.android.tools.r8.ir.code.Value previousLocalValue -> v
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap uninitializedDebugLocalValues -> x
    java.util.List pendingArgumentInstructions -> s
    com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription prototypeChanges -> p
    com.android.tools.r8.ir.code.ValueNumberGenerator valueNumberGenerator -> k
    java.util.List debugLocalEnds -> w
    com.android.tools.r8.graph.DexEncodedMethod context -> m
    com.android.tools.r8.graph.AppView appView -> n
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement FLOAT -> E
    java.util.ListIterator removedArgumentsIterator -> q
    int argumentCount -> r
    boolean hasConstString -> B
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement DOUBLE -> G
    1:7:void <clinit>():137:143 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.SourceCode,com.android.tools.r8.origin.Origin,com.android.tools.r8.ir.code.ValueNumberGenerator):436:436 -> <init>
    2:86:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.SourceCode,com.android.tools.r8.origin.Origin,com.android.tools.r8.ir.code.ValueNumberGenerator):364:448 -> <init>
    87:90:boolean verifyMethodSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.GraphLense):466:469 -> <init>
    87:90:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.SourceCode,com.android.tools.r8.origin.Origin,com.android.tools.r8.ir.code.ValueNumberGenerator):448 -> <init>
    91:91:boolean verifyMethodSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.GraphLense):468:468 -> <init>
    91:91:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.SourceCode,com.android.tools.r8.origin.Origin,com.android.tools.r8.ir.code.ValueNumberGenerator):448 -> <init>
    92:105:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.SourceCode,com.android.tools.r8.origin.Origin,com.android.tools.r8.ir.code.ValueNumberGenerator):449:462 -> <init>
    1:1:com.android.tools.r8.ir.analysis.type.TypeLatticeElement getTypeLattice(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.type.Nullability):174:174 -> a
    2:3:void addToWorklist(com.android.tools.r8.ir.code.BasicBlock,int):487:488 -> a
    4:22:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):504:522 -> a
    23:25:void markIndexProcessed(int):2330:2332 -> a
    23:25:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):527 -> a
    26:27:void ensureSubroutineProcessedInstructions():2340:2341 -> a
    26:27:void markIndexProcessed(int):2335 -> a
    26:27:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):527 -> a
    28:28:void markIndexProcessed(int):2336:2336 -> a
    28:28:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):527 -> a
    29:48:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):528:547 -> a
    49:49:void setCurrentBlock(com.android.tools.r8.ir.code.BasicBlock):493:493 -> a
    49:49:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):547 -> a
    50:55:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):548:553 -> a
    56:61:void processWorklist():741:746 -> a
    56:61:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):554 -> a
    62:62:void setCurrentBlock(com.android.tools.r8.ir.code.BasicBlock):493:493 -> a
    62:62:void processWorklist():746 -> a
    62:62:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):554 -> a
    63:67:void processWorklist():747:751 -> a
    63:67:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):554 -> a
    68:92:void processMoveExceptionItem(com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem):792:816 -> a
    68:92:void processWorklist():751 -> a
    68:92:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):554 -> a
    93:98:void processMoveExceptionItem(com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem):815:820 -> a
    93:98:void processWorklist():751 -> a
    93:98:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):554 -> a
    99:106:void processWorklist():752:759 -> a
    99:106:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):554 -> a
    107:117:void processWorklist():758:768 -> a
    107:117:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):554 -> a
    118:118:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> a
    118:118:void processWorklist():768 -> a
    118:118:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):554 -> a
    119:128:void processWorklist():772:781 -> a
    119:128:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):554 -> a
    129:132:void closeCurrentBlockWithFallThrough(com.android.tools.r8.ir.code.BasicBlock):2406:2409 -> a
    129:132:void processWorklist():781 -> a
    129:132:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):554 -> a
    133:134:void processWorklist():784:785 -> a
    133:134:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):554 -> a
    135:135:void processWorklist():741:741 -> a
    135:135:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):554 -> a
    136:141:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):557:562 -> a
    142:143:boolean verifyFilledPredecessors():680:681 -> a
    142:143:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):562 -> a
    144:149:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):687:692 -> a
    144:149:boolean verifyFilledPredecessors():681 -> a
    144:149:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):562 -> a
    150:150:int com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.predecessorCount():295:295 -> a
    150:150:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):692 -> a
    150:150:boolean verifyFilledPredecessors():681 -> a
    150:150:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):562 -> a
    151:158:int nonSplitPredecessorCount(com.android.tools.r8.ir.code.BasicBlock):709:716 -> a
    151:158:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):692 -> a
    151:158:boolean verifyFilledPredecessors():681 -> a
    151:158:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):562 -> a
    159:162:boolean trivialGotoBlockPotentiallyWithMoveException(com.android.tools.r8.ir.code.BasicBlock):732:735 -> a
    159:162:int nonSplitPredecessorCount(com.android.tools.r8.ir.code.BasicBlock):716 -> a
    159:162:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):692 -> a
    159:162:boolean verifyFilledPredecessors():681 -> a
    159:162:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):562 -> a
    163:163:boolean trivialGotoBlockPotentiallyWithMoveException(com.android.tools.r8.ir.code.BasicBlock):733:733 -> a
    163:163:int nonSplitPredecessorCount(com.android.tools.r8.ir.code.BasicBlock):716 -> a
    163:163:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):692 -> a
    163:163:boolean verifyFilledPredecessors():681 -> a
    163:163:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):562 -> a
    164:171:int nonSplitPredecessorCount(com.android.tools.r8.ir.code.BasicBlock):720:727 -> a
    164:171:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):692 -> a
    164:171:boolean verifyFilledPredecessors():681 -> a
    164:171:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):562 -> a
    172:178:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):692:698 -> a
    172:178:boolean verifyFilledPredecessors():681 -> a
    172:178:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):562 -> a
    179:179:boolean verifyFilledPredecessors(com.android.tools.r8.ir.code.BasicBlock):695:695 -> a
    179:179:boolean verifyFilledPredecessors():681 -> a
    179:179:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):562 -> a
    180:205:boolean insertDebugPositions():646:671 -> a
    180:205:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):565 -> a
    206:260:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):568:622 -> a
    261:271:com.android.tools.r8.ir.code.IRCode build(com.android.tools.r8.graph.DexEncodedMethod):619:629 -> a
    272:272:void constrainType(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.ValueTypeConstraint):634:634 -> a
    273:276:void addImpreciseInstruction(com.android.tools.r8.ir.code.ImpreciseMemberTypeInstruction):638:641 -> a
    277:277:void resolveAndBuildSwitch(int,int,int):825:825 -> a
    278:279:void add(com.android.tools.r8.ir.code.Instruction):839:840 -> a
    280:280:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> a
    280:280:void add(com.android.tools.r8.ir.code.Instruction):841 -> a
    281:285:void addNonThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):868:872 -> a
    286:286:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> a
    286:286:void addNonThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):872 -> a
    287:287:void addNonThisArgument(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):874:874 -> a
    288:293:void addBooleanNonThisArgument(int):879:884 -> a
    294:294:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> a
    294:294:void addBooleanNonThisArgument(int):884 -> a
    295:295:void addBooleanNonThisArgument(int):886:886 -> a
    296:305:void handleConstantOrUnusedArgument(int,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo):896:905 -> a
    306:310:void addDebugLocalEnd(int,com.android.tools.r8.graph.DebugLocalInfo):943:947 -> a
    311:311:boolean isValidFor(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DebugLocalInfo):919:919 -> a
    311:311:void addDebugLocalEnd(int,com.android.tools.r8.graph.DebugLocalInfo):948 -> a
    312:312:void addDebugLocalEnd(int,com.android.tools.r8.graph.DebugLocalInfo):949:949 -> a
    313:319:void addDebugPosition(com.android.tools.r8.ir.code.Position):954:960 -> a
    320:320:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> a
    320:320:void addDebugPosition(com.android.tools.r8.ir.code.Position):960 -> a
    321:324:void addDebugPosition(com.android.tools.r8.ir.code.Position):962:965 -> a
    325:325:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> a
    325:325:void addDebugPosition(com.android.tools.r8.ir.code.Position):965 -> a
    326:330:void addAdd(com.android.tools.r8.ir.code.NumericType,int,int,int):970:974 -> a
    331:331:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> a
    331:331:void addAdd(com.android.tools.r8.ir.code.NumericType,int,int,int):975 -> a
    332:333:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1009:1010 -> a
    334:355:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):148:169 -> a
    334:355:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1011 -> a
    356:356:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):164:164 -> a
    356:356:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1011 -> a
    357:361:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):158:162 -> a
    357:361:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1011 -> a
    362:362:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):160:160 -> a
    362:362:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1011 -> a
    363:363:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):156:156 -> a
    363:363:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1011 -> a
    364:377:com.android.tools.r8.ir.analysis.type.TypeLatticeElement fromMemberType(com.android.tools.r8.ir.code.MemberType):154:167 -> a
    364:377:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1011 -> a
    378:385:void addArrayGet(com.android.tools.r8.ir.code.MemberType,int,int,int):1012:1019 -> a
    386:390:void addArrayLength(int,int):1023:1027 -> a
    391:397:void addCheckCast(int,com.android.tools.r8.graph.DexType):1042:1048 -> a
    398:403:void addCmp(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.Cmp$Bias,int,int,int):1052:1057 -> a
    404:407:void addConst(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,int,long):1061:1064 -> a
    408:408:void addDoubleConst(int,long):1072:1072 -> a
    409:417:void addConstMethodHandle(int,com.android.tools.r8.graph.DexMethodHandle):1097:1105 -> a
    418:422:void addConstMethodHandle(int,com.android.tools.r8.graph.DexMethodHandle):1104:1108 -> a
    423:423:void addConstMethodHandle(int,com.android.tools.r8.graph.DexMethodHandle):1098:1098 -> a
    424:432:void addConstMethodType(int,com.android.tools.r8.graph.DexProto):1112:1120 -> a
    433:437:void addConstMethodType(int,com.android.tools.r8.graph.DexProto):1119:1123 -> a
    438:438:void addConstMethodType(int,com.android.tools.r8.graph.DexProto):1113:1113 -> a
    439:442:void addConstString(int,com.android.tools.r8.graph.DexString):1133:1136 -> a
    443:449:void addDexItemBasedConstString(int,com.android.tools.r8.graph.DexReference):1140:1146 -> a
    450:453:com.android.tools.r8.ir.code.Monitor addMonitor(com.android.tools.r8.ir.code.Monitor$Type,int):1173:1176 -> a
    454:454:void addMove(com.android.tools.r8.ir.code.ValueType,int,int):1181:1181 -> a
    455:461:void addMove(com.android.tools.r8.ir.code.ValueTypeConstraint,int,int):1185:1191 -> a
    462:462:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> a
    462:462:void addMove(com.android.tools.r8.ir.code.ValueTypeConstraint,int,int):1191 -> a
    463:463:void addMove(com.android.tools.r8.ir.code.ValueTypeConstraint,int,int):1195:1195 -> a
    464:464:void addIf(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,int,int,int,int):1277:1277 -> a
    465:465:void addIf(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,int,int,int,int):1275:1275 -> a
    466:472:void addIf(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueTypeConstraint,int,int,int,int):1292:1298 -> a
    473:473:void addIfZero(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,int,int,int):1306:1306 -> a
    474:474:void addIfZero(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueType,int,int,int):1304:1304 -> a
    475:478:void addIfZero(com.android.tools.r8.ir.code.If$Type,com.android.tools.r8.ir.code.ValueTypeConstraint,int,int,int):1319:1322 -> a
    479:483:void addInstanceGet(int,int,com.android.tools.r8.graph.DexField):1327:1331 -> a
    484:490:void addInstanceGet(int,int,com.android.tools.r8.graph.DexField):1329:1335 -> a
    491:491:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> a
    491:491:void addInstanceGet(int,int,com.android.tools.r8.graph.DexField):1336 -> a
    492:495:void addInstanceOf(int,int,com.android.tools.r8.graph.DexType):1340:1343 -> a
    496:496:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> a
    496:496:void addInstanceOf(int,int,com.android.tools.r8.graph.DexType):1344 -> a
    497:506:void addInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,java.util.List,boolean):1356:1365 -> a
    507:532:void addInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,java.util.List,boolean):1359:1384 -> a
    533:537:void addInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,java.util.List,java.util.List,boolean):1394:1398 -> a
    538:541:void addInvoke(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexProto,java.util.List,java.util.List,boolean):1397:1400 -> a
    542:558:void addInvokeCustomRegisters(com.android.tools.r8.graph.DexCallSite,int,int[]):1406:1422 -> a
    559:576:void addInvokeCustomRange(com.android.tools.r8.graph.DexCallSite,int,int):1427:1444 -> a
    577:581:void addInvokeCustom(com.android.tools.r8.graph.DexCallSite,java.util.List,java.util.List):1449:1453 -> a
    582:585:void addInvokeCustom(com.android.tools.r8.graph.DexCallSite,java.util.List,java.util.List):1452:1455 -> a
    586:609:void addInvokeRegisters(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto,int,int[]):1466:1489 -> a
    610:626:void addInvokeNewArray(com.android.tools.r8.graph.DexType,int,int[]):1493:1509 -> a
    627:651:void addInvokeRange(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProto,int,int):1530:1554 -> a
    652:666:void addInvokeRangeNewArray(com.android.tools.r8.graph.DexType,int,int):1558:1572 -> a
    667:670:void addNeg(com.android.tools.r8.ir.code.NumericType,int,int):1619:1622 -> a
    671:671:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> a
    671:671:void addNeg(com.android.tools.r8.ir.code.NumericType,int,int):1623 -> a
    672:675:void addNewArrayFilledData(int,int,long,short[]):1652:1655 -> a
    676:676:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> a
    676:676:void addNewArrayFilledData(int,int,long,short[]):1656 -> a
    677:680:void addStaticGet(int,com.android.tools.r8.graph.DexField):1692:1695 -> a
    681:687:void addStaticGet(int,com.android.tools.r8.graph.DexField):1693:1699 -> a
    688:688:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> a
    688:688:void addStaticGet(int,com.android.tools.r8.graph.DexField):1700 -> a
    689:738:void addSwitch(int,int[],int,int[]):1732:1781 -> a
    739:743:com.android.tools.r8.ir.code.Switch createSwitch(com.android.tools.r8.ir.code.Value,int[],int,int[]):1787:1791 -> a
    739:743:void addSwitch(int,int[],int,int[]):1782 -> a
    744:744:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2379:2379 -> a
    744:744:com.android.tools.r8.ir.code.Switch createSwitch(com.android.tools.r8.ir.code.Value,int[],int,int[]):1793 -> a
    744:744:void addSwitch(int,int[],int,int[]):1782 -> a
    745:768:com.android.tools.r8.ir.code.Switch createSwitch(com.android.tools.r8.ir.code.Value,int[],int,int[]):1794:1817 -> a
    745:768:void addSwitch(int,int[],int,int[]):1782 -> a
    769:769:void addSwitch(int,int[],int,int[]):1783:1783 -> a
    770:773:void addConversion(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int):1943:1946 -> a
    774:774:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> a
    774:774:void addConversion(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int):1947 -> a
    775:776:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):1987:1988 -> a
    777:796:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2003:2022 -> a
    777:796:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):1991 -> a
    797:800:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2068:2071 -> a
    797:800:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2027 -> a
    797:800:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):1991 -> a
    801:811:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueTypeConstraint.toPrimitiveTypeLattice():162:172 -> a
    801:811:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2072 -> a
    801:811:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2027 -> a
    801:811:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):1991 -> a
    812:812:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueTypeConstraint.toPrimitiveTypeLattice():168:168 -> a
    812:812:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2072 -> a
    812:812:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2027 -> a
    812:812:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):1991 -> a
    813:813:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueTypeConstraint.toPrimitiveTypeLattice():166:166 -> a
    813:813:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2072 -> a
    813:813:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2027 -> a
    813:813:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):1991 -> a
    814:814:com.android.tools.r8.ir.analysis.type.PrimitiveTypeLatticeElement com.android.tools.r8.ir.code.ValueTypeConstraint.toPrimitiveTypeLattice():164:164 -> a
    814:814:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2072 -> a
    814:814:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2027 -> a
    814:814:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):1991 -> a
    815:833:com.android.tools.r8.ir.code.Value getUninitializedDebugLocalValue(int,com.android.tools.r8.ir.code.ValueTypeConstraint):2073:2091 -> a
    815:833:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2027 -> a
    815:833:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):1991 -> a
    834:836:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocalAtBlock(int,com.android.tools.r8.ir.code.BasicBlock):2059:2061 -> a
    834:836:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2029 -> a
    834:836:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):1991 -> a
    837:861:com.android.tools.r8.ir.code.Value readRegisterRecursive(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.Phi$RegisterReadType):2030:2054 -> a
    837:861:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock$EdgeType,com.android.tools.r8.ir.code.Phi$RegisterReadType):1991 -> a
    862:862:com.android.tools.r8.ir.code.Value readNumericRegister(int,com.android.tools.r8.ir.code.NumericType):2096:2096 -> a
    863:866:com.android.tools.r8.ir.code.Value readIntLiteral(long):2116:2119 -> a
    867:869:com.android.tools.r8.ir.code.Value writeRegister(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo,com.android.tools.r8.graph.DebugLocalInfo):2126:2128 -> a
    870:870:com.android.tools.r8.ir.code.Value writeNumericRegister(int,com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2151:2151 -> a
    871:871:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int):2155:2155 -> a
    871:871:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint):1953 -> a
    872:887:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint):1954:1969 -> a
    888:892:com.android.tools.r8.ir.code.Value readRegister(int,com.android.tools.r8.ir.code.ValueTypeConstraint):1967:1971 -> a
    893:893:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int):2155:2155 -> a
    893:893:com.android.tools.r8.ir.code.Value writeRegister(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2133 -> a
    894:907:com.android.tools.r8.ir.code.Value writeRegister(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo):2134:2147 -> a
    908:914:void ensureBlockForThrowingInstruction():2176:2182 -> a
    915:915:int getOffset(com.android.tools.r8.ir.code.BasicBlock):2383:2383 -> a
    915:915:void ensureBlockForThrowingInstruction():2182 -> a
    916:932:void ensureBlockForThrowingInstruction():2183:2199 -> a
    933:933:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.addExceptionalSuccessor(int):291:291 -> a
    933:933:void ensureBlockForThrowingInstruction():2200 -> a
    934:945:void ensureBlockForThrowingInstruction():2201:2212 -> a
    946:946:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> a
    946:946:void ensureBlockForThrowingInstruction():2212 -> a
    947:949:void ensureBlockForThrowingInstruction():2213:2215 -> a
    950:950:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.addNormalPredecessor(int):274:274 -> a
    950:950:void ensureBlockForThrowingInstruction():2216 -> a
    951:951:void ensureBlockForThrowingInstruction():2219:2219 -> a
    952:952:void setCurrentBlock(com.android.tools.r8.ir.code.BasicBlock):493:493 -> a
    952:952:void ensureBlockForThrowingInstruction():2220 -> a
    953:953:void lambda$ensureBlockForThrowingInstruction$2(com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo,java.lang.Integer):2208:2208 -> a
    954:979:void addInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Position):2229:2254 -> a
    980:984:void lambda$addInstruction$3(java.util.List,java.util.Set,com.android.tools.r8.graph.DexType,java.lang.Integer):2243:2247 -> a
    985:991:void lambda$addInstruction$3(java.util.List,java.util.Set,com.android.tools.r8.graph.DexType,java.lang.Integer):2245:2251 -> a
    992:992:boolean isOffsetProcessed(int):2318:2318 -> a
    992:992:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlock(int):2311 -> a
    992:992:void ensureSuccessorBlock(int,int,boolean):2347 -> a
    993:995:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlock(int):2312:2314 -> a
    993:995:void ensureSuccessorBlock(int,int,boolean):2347 -> a
    996:999:int getBlockStartOffset(int):2302:2305 -> a
    996:999:void ensureSuccessorBlock(int,int,boolean):2348 -> a
    1000:1000:void ensureSuccessorBlock(int,int,boolean):2349:2349 -> a
    1001:1001:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.addNormalSuccessor(int):278:278 -> a
    1001:1001:void ensureSuccessorBlock(int,int,boolean):2351 -> a
    1002:1002:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.addNormalPredecessor(int):274:274 -> a
    1002:1002:void ensureSuccessorBlock(int,int,boolean):2352 -> a
    1003:1003:void com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.addExceptionalSuccessor(int):291:291 -> a
    1003:1003:void ensureSuccessorBlock(int,int,boolean):2354 -> a
    1004:1006:void ensureSuccessorBlock(int,int,boolean):2355:2357 -> a
    1007:1007:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2379:2379 -> a
    1007:1007:void addNonTrivialIf(com.android.tools.r8.ir.code.If,int,int):1263 -> a
    1008:1008:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2379:2379 -> a
    1008:1008:void addNonTrivialIf(com.android.tools.r8.ir.code.If,int,int):1264 -> a
    1009:1014:void addNonTrivialIf(com.android.tools.r8.ir.code.If,int,int):1265:1270 -> a
    1015:1015:int getOffset(com.android.tools.r8.ir.code.BasicBlock):2383:2383 -> a
    1016:1019:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2396:2399 -> a
    1020:1020:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2398:2398 -> a
    1021:1023:void generateSplitEdgeBlocks():2413:2415 -> a
    1021:1023:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2400 -> a
    1024:1024:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo getBlockInfo(com.android.tools.r8.ir.code.BasicBlock):2375:2375 -> a
    1024:1024:void generateSplitEdgeBlocks():2415 -> a
    1024:1024:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2400 -> a
    1025:1025:void generateSplitEdgeBlocks():2416:2416 -> a
    1025:1025:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2400 -> a
    1026:1027:boolean com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.hasMoreThanASingleNormalExit():306:307 -> a
    1026:1027:void generateSplitEdgeBlocks():2417 -> a
    1026:1027:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2400 -> a
    1028:1043:void generateSplitEdgeBlocks():2420:2435 -> a
    1028:1043:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2400 -> a
    1044:1052:void generateSplitEdgeBlocks():2432:2440 -> a
    1044:1052:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2400 -> a
    1053:1058:com.android.tools.r8.ir.code.BasicBlock createSplitEdgeBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):2456:2461 -> a
    1053:1058:void generateSplitEdgeBlocks():2440 -> a
    1053:1058:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2400 -> a
    1059:1069:void generateSplitEdgeBlocks():2441:2451 -> a
    1059:1069:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2400 -> a
    1070:1071:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.allSuccessors():299:300 -> a
    1070:1071:void generateSplitEdgeBlocks():2451 -> a
    1070:1071:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2400 -> a
    1072:1073:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection.addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):173:174 -> a
    1072:1073:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.allSuccessors():300 -> a
    1072:1073:void generateSplitEdgeBlocks():2451 -> a
    1072:1073:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2400 -> a
    1074:1074:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.allSuccessors():301:301 -> a
    1074:1074:void generateSplitEdgeBlocks():2451 -> a
    1074:1074:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2400 -> a
    1075:1076:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection.addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):173:174 -> a
    1075:1076:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo.allSuccessors():301 -> a
    1075:1076:void generateSplitEdgeBlocks():2451 -> a
    1075:1076:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2400 -> a
    1077:1077:void generateSplitEdgeBlocks():2451:2451 -> a
    1077:1077:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2400 -> a
    1078:1078:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> a
    1078:1078:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2401 -> a
    1079:1079:void closeCurrentBlock(com.android.tools.r8.ir.code.JumpInstruction):2402:2402 -> a
    1080:1080:boolean isIntegerType(com.android.tools.r8.ir.code.NumericType):2550:2550 -> a
    1:1:void addReturn():1681:1681 -> addReturn
    2:4:void addReturn(com.android.tools.r8.ir.code.Return):1686:1688 -> addReturn
    2:4:void addReturn():1681 -> addReturn
    1:1:void addConstantOrUnusedArgument(int):891:891 -> b
    2:4:void flushArgumentInstructions():910:912 -> b
    5:18:void addDebugLocalStart(int,com.android.tools.r8.graph.DebugLocalInfo):923:936 -> b
    19:21:void addDebugLocalStart(int,com.android.tools.r8.graph.DebugLocalInfo):935:937 -> b
    22:22:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> b
    22:22:void addDebugLocalStart(int,com.android.tools.r8.graph.DebugLocalInfo):938 -> b
    23:28:void addAddLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):979:984 -> b
    29:29:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> b
    29:29:void addAddLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):985 -> b
    30:37:void addArrayPut(com.android.tools.r8.ir.code.MemberType,int,int,int):1031:1038 -> b
    38:38:void addFloatConst(int,long):1080:1080 -> b
    39:44:void addConstClass(int,com.android.tools.r8.graph.DexType):1088:1093 -> b
    45:48:void addInstancePut(int,int,com.android.tools.r8.graph.DexField):1348:1351 -> b
    49:55:void addMultiNewArray(com.android.tools.r8.graph.DexType,int,int[]):1513:1519 -> b
    56:56:boolean lambda$addMoveException$1(com.android.tools.r8.ir.code.BasicBlock):1585:1585 -> b
    57:63:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1627:1633 -> b
    64:67:com.android.tools.r8.ir.code.Value readLiteral(com.android.tools.r8.ir.code.ValueTypeConstraint,long):2100:2103 -> b
    64:67:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1633 -> b
    68:71:com.android.tools.r8.ir.code.Value readLongLiteral(long):2109:2112 -> b
    68:71:com.android.tools.r8.ir.code.Value readLiteral(com.android.tools.r8.ir.code.ValueTypeConstraint,long):2104 -> b
    68:71:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1633 -> b
    72:74:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1634:1636 -> b
    75:75:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> b
    75:75:void addNot(com.android.tools.r8.ir.code.NumericType,int,int):1637 -> b
    76:82:void addNewArrayEmpty(int,int,com.android.tools.r8.graph.DexType):1641:1647 -> b
    83:83:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> b
    83:83:void addNewArrayEmpty(int,int,com.android.tools.r8.graph.DexType):1648 -> b
    84:87:void addStaticPut(int,com.android.tools.r8.graph.DexField):1704:1707 -> b
    88:88:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> b
    89:89:void ensureExceptionalSuccessorBlock(int,int):2365:2365 -> b
    90:90:boolean isNonLongIntegerType(com.android.tools.r8.ir.code.NumericType):2554:2554 -> b
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap getCFG():478:478 -> c
    2:7:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):989:994 -> c
    8:8:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> c
    8:8:void addAnd(com.android.tools.r8.ir.code.NumericType,int,int,int):995 -> c
    9:9:void addIntConst(int,long):1076:1076 -> c
    10:13:void addNewInstance(int,com.android.tools.r8.graph.DexType):1661:1664 -> c
    14:14:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> c
    14:14:void addNewInstance(int,com.android.tools.r8.graph.DexType):1665 -> c
    15:17:com.android.tools.r8.ir.code.Value readRegisterForDebugLocal(int,com.android.tools.r8.graph.DebugLocalInfo):1976:1978 -> c
    18:35:void attachLocalValues(com.android.tools.r8.ir.code.Instruction):2260:2277 -> c
    36:36:void ensureNormalSuccessorBlock(int,int):2361:2361 -> c
    37:37:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2379:2379 -> c
    37:37:void addGoto(int):1241 -> c
    38:41:void addGoto(int):1242:1245 -> c
    1:1:com.android.tools.r8.graph.DexMethod getMethod():482:482 -> d
    2:2:boolean lambda$build$0(com.android.tools.r8.ir.code.Instruction):571:571 -> d
    3:3:void resolveAndBuildNewArrayFilledData(int,int):830:830 -> d
    4:9:void addAndLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):999:1004 -> d
    10:10:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> d
    10:10:void addAndLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1005 -> d
    11:11:void addLongConst(int,long):1068:1068 -> d
    12:17:void addMoveException(int):1584:1589 -> d
    18:23:boolean verifyValueIsMoveException(com.android.tools.r8.ir.code.Value):1593:1598 -> d
    18:23:void addMoveException(int):1589 -> d
    1:5:void addDiv(com.android.tools.r8.ir.code.NumericType,int,int,int):1150:1154 -> e
    6:10:void addDiv(com.android.tools.r8.ir.code.NumericType,int,int,int):1153:1157 -> e
    11:11:void addTrivialIf(int,int):1249:1249 -> e
    12:12:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2379:2379 -> e
    12:12:void addTrivialIf(int,int):1253 -> e
    13:16:void addTrivialIf(int,int):1256:1259 -> e
    17:25:void addMoveResult(int):1604:1612 -> e
    26:31:void addMoveResult(int):1610:1615 -> e
    32:32:com.android.tools.r8.ir.code.ValueNumberGenerator getValueNumberGenerator():2558:2558 -> e
    1:1:boolean isDebugMode():474:474 -> f
    2:2:void addNullConst(int):1084:1084 -> f
    3:8:void addDivLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1161:1166 -> f
    9:13:void addDivLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1165:1169 -> f
    14:14:void checkInvokeArgumentRegisters(int,int):1577:1577 -> f
    1:5:void addMul(com.android.tools.r8.ir.code.NumericType,int,int,int):1199:1203 -> g
    6:6:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> g
    6:6:void addMul(com.android.tools.r8.ir.code.NumericType,int,int,int):1204 -> g
    7:14:void addReturn(int):1669:1676 -> g
    15:17:void addReturn(com.android.tools.r8.ir.code.Return):1686:1688 -> g
    15:17:void addReturn(int):1676 -> g
    18:48:void joinPredecessorsWithIdenticalPhis():2494:2524 -> g
    49:68:void joinPredecessorsWithIdenticalPhis():2523:2542 -> g
    69:113:void joinPredecessorsWithIdenticalPhis():2500:2544 -> g
    1:9:void addThisArgument(int):855:863 -> h
    10:10:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> h
    10:10:void addThisArgument(int):863 -> h
    11:11:void addThisArgument(int):864:864 -> h
    12:17:void addMulLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1208:1213 -> h
    18:18:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> h
    18:18:void addMulLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1214 -> h
    19:20:void closeCurrentBlockGuaranteedNotToNeedEdgeSplitting():2387:2388 -> h
    21:21:void setCurrentBlock(com.android.tools.r8.ir.code.BasicBlock):493:493 -> h
    21:21:void closeCurrentBlockGuaranteedNotToNeedEdgeSplitting():2389 -> h
    22:24:void closeCurrentBlockGuaranteedNotToNeedEdgeSplitting():2390:2392 -> h
    1:6:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo getRemovedArgumentInfo():845:850 -> i
    7:11:void addThrow(int):1821:1825 -> i
    12:12:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> i
    12:12:void addThrow(int):1825 -> i
    13:13:void addThrow(int):1826:1826 -> i
    14:19:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1830:1835 -> i
    20:20:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> i
    20:20:void addOr(com.android.tools.r8.ir.code.NumericType,int,int,int):1836 -> i
    1:3:com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfoForConstStrings():1127:1129 -> j
    4:9:void addOrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1840:1845 -> j
    10:10:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> j
    10:10:void addOrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1846 -> j
    11:12:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2284:2285 -> j
    13:13:boolean isOffsetProcessed(int):2318:2318 -> j
    13:13:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2288 -> j
    14:17:int getBlockStartOffset(int):2302:2305 -> j
    14:17:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2289 -> j
    18:24:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo ensureBlockWithoutEnqueuing(int):2290:2296 -> j
    1:5:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1218:1222 -> k
    6:9:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1221:1224 -> k
    10:10:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> k
    10:10:void addRem(com.android.tools.r8.ir.code.NumericType,int,int,int):1225 -> k
    11:12:void checkRegister(int):2166:2167 -> k
    13:13:void checkRegister(int):2164:2164 -> k
    1:6:void addRemLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1229:1234 -> l
    7:10:void addRemLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1233:1236 -> l
    11:11:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> l
    11:11:void addRemLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1237 -> l
    12:12:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo getBlockInfo(int):2371:2371 -> l
    1:8:void addRsubLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1720:1727 -> m
    9:9:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> m
    9:9:void addRsubLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1728 -> m
    10:10:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):2159:2159 -> m
    1:6:void addShl(com.android.tools.r8.ir.code.NumericType,int,int,int):1850:1855 -> n
    7:7:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> n
    7:7:void addShl(com.android.tools.r8.ir.code.NumericType,int,int,int):1856 -> n
    8:8:com.android.tools.r8.ir.code.BasicBlock getTarget(int):2379:2379 -> n
    1:6:void addShlLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1860:1865 -> o
    7:7:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> o
    7:7:void addShlLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1866 -> o
    8:9:boolean isIndexProcessed(int):2322:2323 -> o
    10:11:void ensureSubroutineProcessedInstructions():2340:2341 -> o
    10:11:boolean isIndexProcessed(int):2325 -> o
    12:12:boolean isIndexProcessed(int):2326:2326 -> o
    1:6:void addShr(com.android.tools.r8.ir.code.NumericType,int,int,int):1870:1875 -> p
    7:7:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> p
    7:7:void addShr(com.android.tools.r8.ir.code.NumericType,int,int,int):1876 -> p
    1:6:void addShrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1880:1885 -> q
    7:7:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> q
    7:7:void addShrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1886 -> q
    1:5:void addSub(com.android.tools.r8.ir.code.NumericType,int,int,int):1711:1715 -> r
    6:6:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> r
    6:6:void addSub(com.android.tools.r8.ir.code.NumericType,int,int,int):1716 -> r
    1:6:void addUshr(com.android.tools.r8.ir.code.NumericType,int,int,int):1890:1895 -> s
    7:7:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> s
    7:7:void addUshr(com.android.tools.r8.ir.code.NumericType,int,int,int):1896 -> s
    1:6:void addUshrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1900:1905 -> t
    7:7:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> t
    7:7:void addUshrLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1906 -> t
    1:7:java.lang.String toString():2563:2569 -> toString
    1:13:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):1910:1922 -> u
    14:14:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> u
    14:14:void addXor(com.android.tools.r8.ir.code.NumericType,int,int,int):1923 -> u
    1:12:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1927:1938 -> v
    13:13:void addInstruction(com.android.tools.r8.ir.code.Instruction):2225:2225 -> v
    13:13:void addXorLiteral(com.android.tools.r8.ir.code.NumericType,int,int,int):1939 -> v
com.android.tools.r8.ir.conversion.IRBuilder$1 -> com.android.tools.r8.ir.conversion.H:
    int[] $SwitchMap$com$android$tools$r8$ir$code$MemberType -> a
    1:1:void <clinit>():148:148 -> <clinit>
com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo -> com.android.tools.r8.ir.conversion.IRBuilder$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet exceptionalPredecessors -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet exceptionalSuccessors -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet normalPredecessors -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet normalSuccessors -> c
    com.android.tools.r8.ir.code.BasicBlock block -> a
    1:6:void <init>():266:271 -> <init>
    1:1:void addExceptionalPredecessor(int):287:287 -> a
    2:2:int predecessorCount():295:295 -> a
    3:4:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):312:313 -> a
    5:6:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet.<init>(java.util.Collection):87:88 -> a
    5:6:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):313 -> a
    7:12:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):313:318 -> a
    13:14:void replaceNormalPredecessor(int,int):282:283 -> a
    13:14:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):319 -> a
    15:16:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):321:322 -> a
    17:18:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet.<init>(java.util.Collection):87:88 -> a
    17:18:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):322 -> a
    19:23:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):322:326 -> a
    24:24:void addExceptionalPredecessor(int):287:287 -> a
    24:24:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):327 -> a
    25:25:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):329:329 -> a
    26:26:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):76:76 -> a
    26:26:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):329 -> a
    27:28:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection.addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):173:174 -> a
    27:28:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet.<init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):77 -> a
    27:28:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):329 -> a
    29:29:com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo split(int,int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):329:329 -> a
    1:1:void addNormalSuccessor(int):278:278 -> b
    1:25:java.lang.String toString():335:359 -> toString
com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem -> com.android.tools.r8.ir.conversion.IRBuilder$b:
    com.android.tools.r8.graph.DexType guard -> d
    int targetOffset -> f
    int sourceOffset -> e
    1:4:void <init>(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexType,int,int):198:201 -> <init>
    1:4:void <init>(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexType,int,int,com.android.tools.r8.ir.conversion.IRBuilder$1):191 -> <init>
    1:1:int access$600(com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem):191:191 -> a
    1:1:com.android.tools.r8.graph.DexType access$700(com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem):191:191 -> b
    1:1:int access$800(com.android.tools.r8.ir.conversion.IRBuilder$MoveExceptionWorklistItem):191:191 -> c
com.android.tools.r8.ir.conversion.IRBuilder$SplitBlockWorklistItem -> com.android.tools.r8.ir.conversion.IRBuilder$c:
    int sourceOffset -> d
    int targetOffset -> e
    com.android.tools.r8.ir.code.Position position -> f
    1:4:void <init>(int,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Position,int,int):216:219 -> <init>
    1:1:int access$200(com.android.tools.r8.ir.conversion.IRBuilder$SplitBlockWorklistItem):205:205 -> a
    1:1:int access$300(com.android.tools.r8.ir.conversion.IRBuilder$SplitBlockWorklistItem):205:205 -> b
    1:1:com.android.tools.r8.ir.code.Position access$500(com.android.tools.r8.ir.conversion.IRBuilder$SplitBlockWorklistItem):205:205 -> c
com.android.tools.r8.ir.conversion.IRBuilder$ValueList -> com.android.tools.r8.ir.conversion.IRBuilder$d:
    java.util.List values -> a
    1:3:void <init>():228:230 -> <init>
    1:3:com.android.tools.r8.ir.conversion.IRBuilder$ValueList fromPhis(java.util.List,int):236:238 -> a
    1:9:boolean equals(java.lang.Object):250:258 -> equals
    1:1:int hashCode():245:245 -> hashCode
com.android.tools.r8.ir.conversion.IRBuilder$WorklistItem -> com.android.tools.r8.ir.conversion.IRBuilder$e:
    int firstInstructionIndex -> b
    boolean $assertionsDisabled -> c
    com.android.tools.r8.ir.code.BasicBlock block -> a
    1:1:void <clinit>():179:179 -> <clinit>
    1:4:void <init>(com.android.tools.r8.ir.code.BasicBlock,int):184:187 -> <init>
    1:4:void <init>(com.android.tools.r8.ir.code.BasicBlock,int,com.android.tools.r8.ir.conversion.IRBuilder$1):179 -> <init>
    1:1:com.android.tools.r8.ir.code.BasicBlock access$100(com.android.tools.r8.ir.conversion.IRBuilder$WorklistItem):179:179 -> a
    1:1:int access$400(com.android.tools.r8.ir.conversion.IRBuilder$WorklistItem):179:179 -> b
com.android.tools.r8.ir.conversion.IRConverter -> com.android.tools.r8.ir.conversion.IRConverter:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.shaking.RootSetBuilder$RootSet rootSet -> b
    com.android.tools.r8.ir.conversion.OptimizationFeedback simpleOptimizationFeedback -> E
    com.android.tools.r8.ir.optimize.classinliner.ClassInliner classInliner -> l
    com.android.tools.r8.ir.optimize.Outliner outliner -> d
    com.android.tools.r8.ir.optimize.DeadCodeRemover deadCodeRemover -> B
    com.android.tools.r8.ir.conversion.OptimizationFeedbackDelayed delayedOptimizationFeedback -> C
    com.android.tools.r8.ir.optimize.NonNullTracker nonNullTracker -> s
    com.android.tools.r8.ir.desugar.TwrCloseResourceRewriter twrCloseResourceRewriter -> i
    com.android.tools.r8.ir.optimize.IdempotentFunctionCallCanonicalizer idempotentFunctionCallCanonicalizer -> A
    com.android.tools.r8.ir.optimize.lambda.LambdaMerger lambdaMerger -> k
    java.util.List onWaveDoneActions -> G
    com.android.tools.r8.ir.optimize.Devirtualizer devirtualizer -> v
    com.android.tools.r8.ir.conversion.OptimizationFeedback ignoreOptimizationFeedback -> D
    com.android.tools.r8.ir.desugar.LambdaRewriter lambdaRewriter -> g
    com.android.tools.r8.utils.CfgPrinter printer -> o
    com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization classInitializerDefaultsOptimization -> e
    com.android.tools.r8.ir.desugar.StringConcatRewriter stringConcatRewriter -> f
    com.android.tools.r8.ir.optimize.string.StringOptimizer stringOptimizer -> x
    com.android.tools.r8.ir.desugar.Java8MethodRewriter java8MethodRewriter -> j
    com.android.tools.r8.ir.optimize.MemberValuePropagation memberValuePropagation -> q
    com.android.tools.r8.utils.InternalOptions options -> n
    com.android.tools.r8.ir.desugar.InterfaceMethodRewriter interfaceMethodRewriter -> h
    com.android.tools.r8.utils.Timing timing -> c
    com.android.tools.r8.ir.conversion.LensCodeRewriter lensCodeRewriter -> r
    com.android.tools.r8.ir.optimize.Inliner inliner -> t
    com.android.tools.r8.graph.DexString highestSortingString -> F
    com.android.tools.r8.ir.analysis.TypeChecker typeChecker -> z
    com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization uninstantiatedTypeOptimization -> y
    com.android.tools.r8.ir.optimize.CodeRewriter codeRewriter -> p
    com.android.tools.r8.naming.IdentifierNameStringMarker identifierNameStringMarker -> u
    boolean $assertionsDisabled -> H
    com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer classStaticizer -> m
    com.android.tools.r8.ir.desugar.CovariantReturnTypeAnnotationTransformer covariantReturnTypeAnnotationTransformer -> w
    1:1:void <clinit>():107:107 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Timing,com.android.tools.r8.utils.CfgPrinter,com.android.tools.r8.shaking.MainDexClasses,com.android.tools.r8.shaking.RootSetBuilder$RootSet):160:160 -> <init>
    2:39:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Timing,com.android.tools.r8.utils.CfgPrinter,com.android.tools.r8.shaking.MainDexClasses,com.android.tools.r8.shaking.RootSetBuilder$RootSet):143:180 -> <init>
    40:40:boolean enableTwrCloseResourceDesugaring():264:264 -> <init>
    40:40:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Timing,com.android.tools.r8.utils.CfgPrinter,com.android.tools.r8.shaking.MainDexClasses,com.android.tools.r8.shaking.RootSetBuilder$RootSet):180 -> <init>
    41:100:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.Timing,com.android.tools.r8.utils.CfgPrinter,com.android.tools.r8.shaking.MainDexClasses,com.android.tools.r8.shaking.RootSetBuilder$RootSet):181:240 -> <init>
    101:101:void <init>(com.android.tools.r8.graph.AppView):253:253 -> <init>
    102:102:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.utils.Timing,com.android.tools.r8.utils.CfgPrinter):260:260 -> <init>
    boolean lambda$materializeInstructionBeforeLongOperationsWorkaround$16(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction) -> a
    1:4:java.util.Set getDesugaredCallSites():244:247 -> a
    5:5:java.util.Set libraryMethodsReturningNonNull(com.android.tools.r8.graph.DexItemFactory):288:288 -> a
    6:13:com.android.tools.r8.graph.DexApplication convertToDex(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):357:364 -> a
    14:16:void synthesizeLambdaClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):304:306 -> a
    14:16:com.android.tools.r8.graph.DexApplication convertToDex(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):366 -> a
    17:17:com.android.tools.r8.graph.DexApplication convertToDex(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):367:367 -> a
    18:19:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):328:329 -> a
    18:19:com.android.tools.r8.graph.DexApplication convertToDex(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):367 -> a
    20:21:void synthesizeTwrCloseResourceUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):337:338 -> a
    20:21:com.android.tools.r8.graph.DexApplication convertToDex(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):368 -> a
    22:23:void synthesizeJava8UtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):344:345 -> a
    22:23:com.android.tools.r8.graph.DexApplication convertToDex(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):369 -> a
    24:25:void processCovariantReturnTypeAnnotations(com.android.tools.r8.graph.DexApplication$Builder):350:351 -> a
    24:25:com.android.tools.r8.graph.DexApplication convertToDex(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):370 -> a
    26:29:com.android.tools.r8.graph.DexApplication convertToDex(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):372:375 -> a
    30:36:void handleSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):379:385 -> a
    37:39:void clearSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):410:412 -> a
    37:39:void handleSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):386 -> a
    40:44:void convertClassesToDex(java.lang.Iterable,java.util.concurrent.ExecutorService):448:452 -> a
    45:47:void lambda$convertMethodsToDex$3(boolean,com.android.tools.r8.graph.DexEncodedMethod):467:469 -> a
    48:48:void lambda$optimize$5(com.android.tools.r8.ir.conversion.OptimizationFeedbackDelayed,com.android.tools.r8.ir.conversion.CallGraph,java.util.function.BiConsumer,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate):530:530 -> a
    49:50:void lambda$optimize$6(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):578:579 -> a
    51:57:void addWaveDoneAction(com.android.tools.r8.utils.Action):630:636 -> a
    58:58:void addWaveDoneAction(com.android.tools.r8.utils.Action):634:634 -> a
    59:59:void addWaveDoneAction(com.android.tools.r8.utils.Action):631:631 -> a
    60:60:void computeReachabilitySensitivity(com.android.tools.r8.graph.DexApplication):644:644 -> a
    61:66:void forEachSelectedOutliningMethod(java.util.concurrent.ExecutorService,java.util.function.BiConsumer):654:659 -> a
    67:84:void forEachSelectedOutliningMethod(java.util.concurrent.ExecutorService,java.util.function.BiConsumer):658:675 -> a
    85:95:java.lang.Object lambda$forEachSelectedOutliningMethod$10(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.BiConsumer):661:671 -> a
    96:96:void clearDexMethodCompilationState(com.android.tools.r8.graph.DexProgramClass):701:701 -> a
    97:100:void optimizeSynthesizedClass(com.android.tools.r8.graph.DexProgramClass,java.util.concurrent.ExecutorService):745:748 -> a
    101:106:void optimizeSynthesizedClasses(java.util.Collection,java.util.concurrent.ExecutorService):754:759 -> a
    107:112:void optimizeSynthesizedMethod(com.android.tools.r8.graph.DexEncodedMethod):763:768 -> a
    113:113:com.android.tools.r8.ir.conversion.CallSiteInformation com.android.tools.r8.ir.conversion.CallSiteInformation.empty():21:21 -> a
    113:113:void optimizeSynthesizedMethod(com.android.tools.r8.graph.DexEncodedMethod):769 -> a
    114:114:void optimizeSynthesizedMethod(com.android.tools.r8.graph.DexEncodedMethod):769:769 -> a
    115:115:void optimizeSynthesizedMethod(com.android.tools.r8.graph.DexEncodedMethod):765:765 -> a
    116:116:java.lang.Object lambda$optimizeSynthesizedMethodsConcurrently$11(com.android.tools.r8.graph.DexEncodedMethod,java.util.Collection):782:782 -> a
    117:117:com.android.tools.r8.ir.conversion.CallSiteInformation com.android.tools.r8.ir.conversion.CallSiteInformation.empty():21:21 -> a
    117:117:java.lang.Object lambda$optimizeSynthesizedMethodsConcurrently$11(com.android.tools.r8.graph.DexEncodedMethod,java.util.Collection):786 -> a
    118:118:java.lang.Object lambda$optimizeSynthesizedMethodsConcurrently$11(com.android.tools.r8.graph.DexEncodedMethod,java.util.Collection):786:786 -> a
    119:119:java.lang.Object lambda$optimizeSynthesizedMethodsConcurrently$11(com.android.tools.r8.graph.DexEncodedMethod,java.util.Collection):782:782 -> a
    120:126:void processMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer):804:810 -> a
    127:127:com.android.tools.r8.ir.optimize.InliningOracle lambda$rewriteCode$12(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation):1032:1032 -> a
    128:138:void computeMayHaveSideEffects(com.android.tools.r8.ir.conversion.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):1187:1197 -> a
    139:139:boolean lambda$computeMayHaveSideEffects$13(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):1195:1195 -> a
    140:141:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.OptimizationFeedback):1203:1204 -> a
    142:146:void finalizeToCf(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.OptimizationFeedback):1223:1227 -> a
    142:146:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.OptimizationFeedback):1205 -> a
    147:147:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.OptimizationFeedback):1207:1207 -> a
    148:158:void finalizeToDex(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.OptimizationFeedback):1232:1242 -> a
    148:158:void finalizeIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.OptimizationFeedback):1208 -> a
    159:173:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1342:1356 -> a
    174:176:boolean isLongMul(com.android.tools.r8.ir.code.Instruction):1402:1404 -> a
    174:176:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1357 -> a
    177:177:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1360:1360 -> a
    178:179:boolean isLongAddOrSub(com.android.tools.r8.ir.code.Instruction):1409:1410 -> a
    178:179:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1361 -> a
    180:181:boolean isFallthoughTarget(com.android.tools.r8.ir.code.BasicBlock):1414:1415 -> a
    180:181:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1364 -> a
    182:183:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1367:1368 -> a
    184:188:boolean isAliasOf(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):1388:1392 -> a
    184:188:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1369 -> a
    189:194:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1370:1375 -> a
    195:206:void ensureThrowingInstructionBefore(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction):1424:1435 -> a
    195:206:void materializeInstructionBeforeLongOperationsWorkaround(com.android.tools.r8.ir.code.IRCode):1376 -> a
    207:207:boolean isNotPseudoInstruction(com.android.tools.r8.ir.code.Instruction):1397:1397 -> a
    208:209:void printPhase(java.lang.String):1467:1468 -> a
    210:228:java.lang.String printMethod(com.android.tools.r8.ir.code.IRCode,java.lang.String,java.lang.String):1473:1491 -> a
    1:6:void updateMainDexListWithSynthesizedClassMap(com.android.tools.r8.graph.DexApplication$Builder):391:396 -> b
    7:18:void updateMainDexListWithSynthesizedClassMap(com.android.tools.r8.graph.DexApplication$Builder):394:405 -> b
    19:28:void convertMethodsToDex(com.android.tools.r8.graph.DexProgramClass):456:465 -> b
    29:35:void convertMethodToDex(com.android.tools.r8.graph.DexEncodedMethod):475:481 -> b
    36:36:com.android.tools.r8.ir.conversion.CallSiteInformation com.android.tools.r8.ir.conversion.CallSiteInformation.empty():21:21 -> b
    36:36:void convertMethodToDex(com.android.tools.r8.graph.DexEncodedMethod):481 -> b
    37:40:void convertMethodToDex(com.android.tools.r8.graph.DexEncodedMethod):481:484 -> b
    41:47:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):500:506 -> b
    48:49:void collectLambdaMergingCandidates(com.android.tools.r8.graph.DexApplication):679:680 -> b
    48:49:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):507 -> b
    50:51:void collectStaticizerCandidates(com.android.tools.r8.graph.DexApplication):318:319 -> b
    50:51:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):508 -> b
    52:85:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):516:549 -> b
    86:87:void staticizeClasses(com.android.tools.r8.ir.conversion.OptimizationFeedback,java.util.concurrent.ExecutorService):312:313 -> b
    86:87:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):550 -> b
    88:91:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):554:557 -> b
    92:94:void synthesizeLambdaClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):304:306 -> b
    92:94:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):558 -> b
    95:96:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):560:561 -> b
    97:98:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):328:329 -> b
    97:98:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):561 -> b
    99:99:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):563:563 -> b
    100:101:void synthesizeTwrCloseResourceUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):337:338 -> b
    100:101:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):564 -> b
    102:103:void synthesizeJava8UtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):344:345 -> b
    102:103:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):565 -> b
    104:106:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):566:568 -> b
    107:108:void finalizeLambdaMerging(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.conversion.OptimizationFeedback,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):690:691 -> b
    107:108:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):569 -> b
    109:119:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):571:581 -> b
    120:125:com.android.tools.r8.graph.DexType computeOutlineClassType():733:738 -> b
    120:125:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):581 -> b
    126:160:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):581:615 -> b
    161:168:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):609:616 -> b
    169:171:void lambda$optimize$7(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):587:589 -> b
    172:172:boolean isInWave():640:640 -> b
    173:176:void optimizeSynthesizedMethodsConcurrently(java.util.Collection,java.util.concurrent.ExecutorService):777:780 -> b
    177:189:void optimizeSynthesizedMethodsConcurrently(java.util.Collection,java.util.concurrent.ExecutorService):779:791 -> b
    190:192:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer):828:830 -> b
    193:206:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer):829:842 -> b
    207:212:void printC1VisualizerHeader(com.android.tools.r8.graph.DexEncodedMethod):1457:1462 -> b
    207:212:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer):849 -> b
    213:245:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer):850:882 -> b
    246:252:void finalizeEmptyThrowingCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.OptimizationFeedback):1213:1219 -> b
    246:252:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer):883 -> b
    253:321:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer):891:959 -> b
    322:338:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer):958:974 -> b
    339:341:void invertConditionalsForTesting(com.android.tools.r8.ir.code.IRCode):815:817 -> b
    339:341:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer):975 -> b
    342:394:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer):978:1030 -> b
    395:462:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer):1022:1089 -> b
    463:494:void computeNonNullParamHints(com.android.tools.r8.ir.conversion.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):1138:1169 -> b
    463:494:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer):1090 -> b
    495:508:void computeNonNullParamHints(com.android.tools.r8.ir.conversion.OptimizationFeedback,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):1168:1181 -> b
    495:508:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer):1090 -> b
    509:545:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer):1093:1129 -> b
    546:551:void rewriteCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.OptimizationFeedback,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.BiConsumer):1128:1133 -> b
    552:557:void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.OptimizationFeedback):1248:1253 -> b
    558:562:void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.OptimizationFeedback):1251:1255 -> b
    563:582:void workaroundForwardingInitializerBug(com.android.tools.r8.ir.code.IRCode):1294:1313 -> b
    583:595:void ensureInstructionBefore(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):1441:1453 -> b
    583:595:void workaroundForwardingInitializerBug(com.android.tools.r8.ir.code.IRCode):1322 -> b
    596:599:boolean lambda$workaroundForwardingInitializerBug$14(com.android.tools.r8.ir.code.Instruction):1314:1317 -> b
    600:601:com.android.tools.r8.graph.DexMethod lambda$materializeInstructionBeforeLongOperationsWorkaround$15(com.android.tools.r8.graph.DexItemFactory):1350:1351 -> b
    602:602:com.android.tools.r8.graph.DexMethod lambda$materializeInstructionBeforeLongOperationsWorkaround$15(com.android.tools.r8.graph.DexItemFactory):1349:1349 -> b
    1:20:void updateSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):418:437 -> c
    21:27:void updateSynthesizedClassMapping(com.android.tools.r8.graph.DexApplication$Builder):436:442 -> c
    28:29:void lambda$computeReachabilitySensitivity$9(com.android.tools.r8.graph.DexProgramClass):645:646 -> c
    30:30:void lambda$computeReachabilitySensitivity$8(com.android.tools.r8.graph.DexEncodedMethod):646:646 -> c
    31:31:void clearDexMethodCompilationState():697:697 -> c
    32:46:com.android.tools.r8.ir.regalloc.RegisterAllocator performRegisterAllocation(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1271:1285 -> c
    boolean lambda$convertMethodToDex$4(com.android.tools.r8.graph.DexEncodedMethod) -> d
    1:7:boolean enableTryWithResourcesDesugaring():268:274 -> d
    8:8:void lambda$convertClassesToDex$2(com.android.tools.r8.graph.DexProgramClass):450:450 -> d
    1:4:java.util.Set libraryMethodsReturningReceiver():278:281 -> e
    5:5:com.android.tools.r8.graph.DexType lambda$updateMainDexListWithSynthesizedClassMap$0(com.android.tools.r8.graph.DexProgramClass):395:395 -> e
    6:10:void updateHighestSortingStrings(com.android.tools.r8.graph.DexEncodedMethod):1259:1263 -> e
    1:2:boolean removeLambdaDeserializationMethods():296:297 -> f
    3:3:com.android.tools.r8.graph.DexType lambda$updateSynthesizedClassMapping$1(com.android.tools.r8.graph.DexProgramClass):434:434 -> f
    1:3:void waveDone():624:626 -> g
    1:1:void waveStart():620:620 -> h
    1:5:com.android.tools.r8.graph.DexApplication optimize(com.android.tools.r8.graph.DexApplication):490:494 -> optimize
    1:4:void replaceCodeForTesting(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):717:720 -> replaceCodeForTesting
com.android.tools.r8.ir.conversion.JarSourceCode -> com.android.tools.r8.ir.conversion.J:
    com.android.tools.r8.ir.code.Position currentPosition -> j
    com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode currentInstruction -> g
    boolean generatingMethodSynchronization -> i
    com.android.tools.r8.ir.code.Position preamblePosition -> l
    com.android.tools.r8.graph.JarApplicationReader application -> a
    com.android.tools.r8.org.objectweb.asm.Type CLASS_TYPE -> r
    com.android.tools.r8.org.objectweb.asm.Type INT_ARRAY_TYPE -> t
    boolean debug -> q
    com.android.tools.r8.org.objectweb.asm.Type METHOD_HANDLE_TYPE -> v
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap canonicalPositions -> k
    java.util.List parameterTypes -> d
    com.android.tools.r8.graph.DexType clazz -> c
    com.android.tools.r8.ir.code.Position callerPosition -> o
    com.android.tools.r8.org.objectweb.asm.tree.MethodNode node -> b
    com.android.tools.r8.graph.DexMethod originalMethod -> n
    int[] NO_TARGETS -> x
    com.android.tools.r8.ir.conversion.JarState state -> f
    boolean hasExitingInstruction -> p
    com.android.tools.r8.ir.code.Position syntheticPosition -> m
    com.android.tools.r8.org.objectweb.asm.Type STRING_TYPE -> s
    com.android.tools.r8.org.objectweb.asm.Type THROWABLE_TYPE -> u
    com.android.tools.r8.org.objectweb.asm.Type METHOD_TYPE_TYPE -> w
    boolean $assertionsDisabled -> z
    com.android.tools.r8.ir.code.Monitor monitorEnter -> h
    com.android.tools.r8.ir.conversion.JarSourceCode$TryCatchBlock EXCEPTIONAL_SYNC_EXIT -> y
    com.android.tools.r8.org.objectweb.asm.util.TraceMethodVisitor printVisitor -> e
    1:103:void <clinit>():77:179 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.org.objectweb.asm.tree.MethodNode,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):212:212 -> <init>
    2:58:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.org.objectweb.asm.tree.MethodNode,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):167:223 -> <init>
    1:1:boolean generateMethodSynchronization():238:238 -> a
    2:4:void lambda$computeBlockEntryJarStates$0(java.util.Queue,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap,java.lang.Integer):450:452 -> a
    5:6:void buildMonitorExit(com.android.tools.r8.ir.conversion.IRBuilder):486:487 -> a
    7:7:int getOffset(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):856:856 -> a
    8:8:int[] getSwitchTargets(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,java.util.List):881:881 -> a
    9:9:int getOffset(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):856:856 -> a
    9:9:int[] getSwitchTargets(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,java.util.List):882 -> a
    10:12:int[] getSwitchTargets(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,java.util.List):882:884 -> a
    13:42:com.android.tools.r8.ir.code.Invoke$Type invokeType(com.android.tools.r8.org.objectweb.asm.tree.MethodInsnNode):1005:1034 -> a
    13:42:void lambda$build$2(com.android.tools.r8.org.objectweb.asm.tree.MethodInsnNode,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder,java.util.List,java.util.List):2607 -> a
    43:43:com.android.tools.r8.ir.code.Invoke$Type invokeType(com.android.tools.r8.org.objectweb.asm.tree.MethodInsnNode):1014:1014 -> a
    43:43:void lambda$build$2(com.android.tools.r8.org.objectweb.asm.tree.MethodInsnNode,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder,java.util.List,java.util.List):2607 -> a
    44:62:com.android.tools.r8.ir.code.Invoke$Type invokeType(com.android.tools.r8.org.objectweb.asm.tree.MethodInsnNode):1012:1030 -> a
    44:62:void lambda$build$2(com.android.tools.r8.org.objectweb.asm.tree.MethodInsnNode,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder,java.util.List,java.util.List):2607 -> a
    63:63:com.android.tools.r8.ir.code.Invoke$Type invokeType(com.android.tools.r8.org.objectweb.asm.tree.MethodInsnNode):1028:1028 -> a
    63:63:void lambda$build$2(com.android.tools.r8.org.objectweb.asm.tree.MethodInsnNode,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder,java.util.List,java.util.List):2607 -> a
    64:67:com.android.tools.r8.ir.code.Invoke$Type invokeType(com.android.tools.r8.org.objectweb.asm.tree.MethodInsnNode):1007:1010 -> a
    64:67:void lambda$build$2(com.android.tools.r8.org.objectweb.asm.tree.MethodInsnNode,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder,java.util.List,java.util.List):2607 -> a
    68:118:void lambda$build$2(com.android.tools.r8.org.objectweb.asm.tree.MethodInsnNode,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder,java.util.List,java.util.List):2610:2660 -> a
    119:119:void lambda$build$2(com.android.tools.r8.org.objectweb.asm.tree.MethodInsnNode,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder,java.util.List,java.util.List):2655:2655 -> a
    120:121:void lambda$build$2(com.android.tools.r8.org.objectweb.asm.tree.MethodInsnNode,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder,java.util.List,java.util.List):2646:2647 -> a
    122:149:void lambda$build$2(com.android.tools.r8.org.objectweb.asm.tree.MethodInsnNode,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder,java.util.List,java.util.List):2638:2665 -> a
    150:154:void lambda$build$2(com.android.tools.r8.org.objectweb.asm.tree.MethodInsnNode,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder,java.util.List,java.util.List):2663:2667 -> a
    155:155:com.android.tools.r8.org.objectweb.asm.Type makeArrayType(com.android.tools.r8.org.objectweb.asm.Type):1039:1039 -> a
    156:156:java.lang.String arrayTypeDesc(int):1061:1061 -> a
    157:157:boolean isCompatibleArrayElementType(int,com.android.tools.r8.org.objectweb.asm.Type):1124:1124 -> a
    158:158:boolean isCompatibleArrayElementType(int,com.android.tools.r8.org.objectweb.asm.Type):1122:1122 -> a
    159:159:boolean isCompatibleArrayElementType(int,com.android.tools.r8.org.objectweb.asm.Type):1119:1119 -> a
    160:161:boolean isCompatibleArrayElementType(int,com.android.tools.r8.org.objectweb.asm.Type):1115:1116 -> a
    162:162:boolean isCompatibleArrayElementType(int,com.android.tools.r8.org.objectweb.asm.Type):1112:1112 -> a
    163:163:boolean isCompatibleArrayElementType(int,com.android.tools.r8.org.objectweb.asm.Type):1109:1109 -> a
    164:167:boolean isCompatibleArrayElementType(int,com.android.tools.r8.org.objectweb.asm.Type):1103:1106 -> a
    168:168:boolean isCompatibleArrayElementType(int,com.android.tools.r8.org.objectweb.asm.Type):1100:1100 -> a
    169:172:void updateStateForDupOneBelowTwo(com.android.tools.r8.ir.conversion.JarState$Slot,com.android.tools.r8.ir.conversion.JarState$Slot,com.android.tools.r8.ir.conversion.JarState$Slot):1612:1615 -> a
    173:175:void updateStateForDupOneBelowOne(com.android.tools.r8.ir.conversion.JarState$Slot,com.android.tools.r8.ir.conversion.JarState$Slot):1619:1621 -> a
    176:184:void updateStateForInvoke(java.lang.String,boolean):1768:1776 -> a
    185:232:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1867:1914 -> a
    233:233:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1911:1911 -> a
    234:235:void build(com.android.tools.r8.org.objectweb.asm.tree.LineNumberNode,com.android.tools.r8.ir.conversion.IRBuilder):2891:2892 -> a
    234:235:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1911 -> a
    236:236:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1908:1908 -> a
    237:237:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1905:1905 -> a
    238:242:void build(com.android.tools.r8.org.objectweb.asm.tree.LookupSwitchInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2820:2824 -> a
    238:242:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1905 -> a
    243:243:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1902:1902 -> a
    244:244:void build(com.android.tools.r8.org.objectweb.asm.tree.TableSwitchInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2816:2816 -> a
    244:244:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1902 -> a
    245:245:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1899:1899 -> a
    246:247:void build(com.android.tools.r8.org.objectweb.asm.tree.IincInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2811:2812 -> a
    246:247:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1899 -> a
    248:248:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1896:1896 -> a
    249:278:void build(com.android.tools.r8.org.objectweb.asm.tree.LdcInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2777:2806 -> a
    249:278:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1896 -> a
    279:279:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1893:1893 -> a
    280:280:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1890:1890 -> a
    281:288:void build(com.android.tools.r8.org.objectweb.asm.tree.JumpInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2725:2732 -> a
    281:288:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1890 -> a
    289:304:void build(com.android.tools.r8.org.objectweb.asm.tree.JumpInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2731:2746 -> a
    289:304:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1890 -> a
    305:327:void build(com.android.tools.r8.org.objectweb.asm.tree.JumpInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2745:2767 -> a
    305:327:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1890 -> a
    328:335:void build(com.android.tools.r8.org.objectweb.asm.tree.JumpInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2757:2764 -> a
    328:335:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1890 -> a
    336:337:void build(com.android.tools.r8.org.objectweb.asm.tree.JumpInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2751:2752 -> a
    336:337:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1890 -> a
    338:338:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1887:1887 -> a
    339:339:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1884:1884 -> a
    340:340:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1881:1881 -> a
    341:363:void build(com.android.tools.r8.org.objectweb.asm.tree.FieldInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2571:2593 -> a
    341:363:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1881 -> a
    364:366:void build(com.android.tools.r8.org.objectweb.asm.tree.FieldInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2587:2589 -> a
    364:366:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1881 -> a
    367:369:void build(com.android.tools.r8.org.objectweb.asm.tree.FieldInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2581:2583 -> a
    367:369:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1881 -> a
    370:370:void build(com.android.tools.r8.org.objectweb.asm.tree.FieldInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2578:2578 -> a
    370:370:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1881 -> a
    371:371:void build(com.android.tools.r8.org.objectweb.asm.tree.FieldInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2575:2575 -> a
    371:371:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1881 -> a
    372:372:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1878:1878 -> a
    373:405:void build(com.android.tools.r8.org.objectweb.asm.tree.TypeInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2534:2566 -> a
    373:405:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1878 -> a
    406:410:void build(com.android.tools.r8.org.objectweb.asm.tree.TypeInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2551:2555 -> a
    406:410:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1878 -> a
    411:415:void build(com.android.tools.r8.org.objectweb.asm.tree.TypeInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2543:2547 -> a
    411:415:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1878 -> a
    416:418:void build(com.android.tools.r8.org.objectweb.asm.tree.TypeInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2537:2539 -> a
    416:418:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1878 -> a
    419:419:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1875:1875 -> a
    420:447:void build(com.android.tools.r8.org.objectweb.asm.tree.VarInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2491:2518 -> a
    420:447:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1875 -> a
    448:448:void build(com.android.tools.r8.org.objectweb.asm.tree.VarInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2512:2512 -> a
    448:448:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1875 -> a
    449:449:void build(com.android.tools.r8.org.objectweb.asm.tree.VarInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2508:2508 -> a
    449:449:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1875 -> a
    450:454:void build(com.android.tools.r8.org.objectweb.asm.tree.VarInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2500:2504 -> a
    450:454:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1875 -> a
    455:488:void build(com.android.tools.r8.org.objectweb.asm.tree.VarInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2496:2529 -> a
    455:488:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1875 -> a
    489:489:void build(com.android.tools.r8.org.objectweb.asm.tree.VarInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2515:2515 -> a
    489:489:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1875 -> a
    490:490:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1872:1872 -> a
    491:508:void build(com.android.tools.r8.org.objectweb.asm.tree.IntInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2469:2486 -> a
    491:508:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1872 -> a
    509:510:void build(com.android.tools.r8.org.objectweb.asm.tree.IntInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2472:2473 -> a
    509:510:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1872 -> a
    511:511:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869:1869 -> a
    512:932:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1929:2349 -> a
    512:932:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    933:934:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1958:1959 -> a
    933:934:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    935:935:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1958:1958 -> a
    935:935:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    936:937:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1953:1954 -> a
    936:937:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    938:938:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1953:1953 -> a
    938:938:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    939:939:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1948:1948 -> a
    939:939:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    940:940:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1944:1944 -> a
    940:940:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    941:1231:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1935:2225 -> a
    941:1231:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1232:1236:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2212:2216 -> a
    1232:1236:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1237:1241:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2203:2207 -> a
    1237:1241:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1242:1253:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2186:2197 -> a
    1242:1253:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1254:1258:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2173:2177 -> a
    1254:1258:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1259:1274:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2150:2165 -> a
    1259:1274:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1275:1284:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2118:2127 -> a
    1275:1284:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1285:1307:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2088:2110 -> a
    1285:1307:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1308:1323:void dupTwoBelowTwo(com.android.tools.r8.ir.conversion.JarState$Slot,com.android.tools.r8.ir.conversion.JarState$Slot,com.android.tools.r8.ir.conversion.JarState$Slot,com.android.tools.r8.ir.conversion.JarState$Slot,com.android.tools.r8.ir.conversion.IRBuilder):2444:2459 -> a
    1308:1323:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2112 -> a
    1308:1323:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1324:1334:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2073:2083 -> a
    1324:1334:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1335:1350:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2053:2068 -> a
    1335:1350:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1351:1361:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2038:2048 -> a
    1351:1361:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1362:1373:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2023:2034 -> a
    1362:1373:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1374:1377:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2015:2018 -> a
    1374:1377:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1378:1381:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2007:2010 -> a
    1378:1381:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1382:1383:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2002:2003 -> a
    1382:1383:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1384:1394:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1988:1998 -> a
    1384:1394:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1395:1693:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1997:2295 -> a
    1395:1693:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1694:1698:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2282:2286 -> a
    1694:1698:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1699:1702:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2274:2277 -> a
    1699:1702:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1703:1703:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2271:2271 -> a
    1703:1703:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1704:1704:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2268:2268 -> a
    1704:1704:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1705:1705:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2265:2265 -> a
    1705:1705:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1706:1706:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2262:2262 -> a
    1706:1706:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1707:1707:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2259:2259 -> a
    1707:1707:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1708:1708:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2256:2256 -> a
    1708:1708:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1709:1709:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2253:2253 -> a
    1709:1709:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1710:1710:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2250:2250 -> a
    1710:1710:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1711:1711:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2247:2247 -> a
    1711:1711:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1712:1712:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2244:2244 -> a
    1712:1712:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1713:1713:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2241:2241 -> a
    1713:1713:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1714:1714:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2238:2238 -> a
    1714:1714:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1715:1715:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2235:2235 -> a
    1715:1715:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1716:1716:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2232:2232 -> a
    1716:1716:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1717:1812:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2229:2324 -> a
    1717:1812:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1813:1814:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2319:2320 -> a
    1813:1814:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1815:1816:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2314:2315 -> a
    1815:1816:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1817:1818:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2309:2310 -> a
    1817:1818:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1819:1820:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2304:2305 -> a
    1819:1820:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1821:1867:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2299:2345 -> a
    1821:1867:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1868:1869:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2339:2340 -> a
    1868:1869:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1870:1871:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2334:2335 -> a
    1870:1871:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1872:1874:void build(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2328:2330 -> a
    1872:1874:void build(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1869 -> a
    1875:1882:boolean isExitingThrow(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):2354:2361 -> a
    1875:1882:void addThrow(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,int,com.android.tools.r8.ir.conversion.IRBuilder):2365 -> a
    1883:1883:void addThrow(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,int,com.android.tools.r8.ir.conversion.IRBuilder):2366:2366 -> a
    1884:1884:int getOffset(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):856:856 -> a
    1884:1884:void addThrow(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,int,com.android.tools.r8.ir.conversion.IRBuilder):2368 -> a
    1885:1903:void addThrow(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,int,com.android.tools.r8.ir.conversion.IRBuilder):2369:2387 -> a
    1904:1909:void addReturn(com.android.tools.r8.org.objectweb.asm.tree.InsnNode,com.android.tools.r8.ir.code.ValueTypeConstraint,int,com.android.tools.r8.ir.conversion.IRBuilder):2392:2397 -> a
    1910:1920:void dupOneBelowTwo(com.android.tools.r8.ir.conversion.JarState$Slot,com.android.tools.r8.ir.conversion.JarState$Slot,com.android.tools.r8.ir.conversion.JarState$Slot,com.android.tools.r8.ir.conversion.IRBuilder):2402:2412 -> a
    1921:1928:void dupOneBelowOne(com.android.tools.r8.ir.conversion.JarState$Slot,com.android.tools.r8.ir.conversion.JarState$Slot,com.android.tools.r8.ir.conversion.IRBuilder):2416:2423 -> a
    1929:1931:void buildConversion(com.android.tools.r8.org.objectweb.asm.Type,com.android.tools.r8.org.objectweb.asm.Type,com.android.tools.r8.ir.conversion.IRBuilder):2463:2465 -> a
    1932:1937:void build(com.android.tools.r8.org.objectweb.asm.tree.MethodInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2599:2604 -> a
    1938:1938:void build(com.android.tools.r8.org.objectweb.asm.tree.MethodInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2601:2601 -> a
    1939:1961:void buildInvoke(java.lang.String,com.android.tools.r8.org.objectweb.asm.Type,boolean,com.android.tools.r8.ir.conversion.IRBuilder,java.util.function.BiConsumer):2680:2702 -> a
    1962:1962:void addArgument(java.util.List,java.util.List,com.android.tools.r8.org.objectweb.asm.Type,com.android.tools.r8.ir.conversion.JarState$Slot):2711:2711 -> a
    1963:1963:boolean com.android.tools.r8.ir.conversion.JarState$Slot.isCompatibleWith(com.android.tools.r8.org.objectweb.asm.Type):158:158 -> a
    1963:1963:void addArgument(java.util.List,java.util.List,com.android.tools.r8.org.objectweb.asm.Type,com.android.tools.r8.ir.conversion.JarState$Slot):2711 -> a
    1964:1966:void addArgument(java.util.List,java.util.List,com.android.tools.r8.org.objectweb.asm.Type,com.android.tools.r8.ir.conversion.JarState$Slot):2711:2713 -> a
    1967:1969:void build(com.android.tools.r8.org.objectweb.asm.tree.InvokeDynamicInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2717:2719 -> a
    1970:1970:void lambda$build$3(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.graph.DexCallSite,java.util.List,java.util.List):2721:2721 -> a
    1971:1971:void buildSwitch(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,java.util.List,int[],com.android.tools.r8.ir.conversion.IRBuilder):2829:2829 -> a
    1972:1972:int getOffset(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):856:856 -> a
    1972:1972:void buildSwitch(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,java.util.List,int[],com.android.tools.r8.ir.conversion.IRBuilder):2830 -> a
    1973:1978:void buildSwitch(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,java.util.List,int[],com.android.tools.r8.ir.conversion.IRBuilder):2831:2836 -> a
    1979:2025:void build(com.android.tools.r8.org.objectweb.asm.tree.MultiANewArrayInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):2841:2887 -> a
    2026:2026:com.android.tools.r8.ir.code.Position lambda$getCanonicalPosition$4(java.lang.Integer):2926:2926 -> a
    2027:2036:boolean isCallToPolymorphicSignatureMethod(java.lang.String,java.lang.String):3027:3036 -> a
    1:23:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):417:439 -> b
    24:71:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1199:1246 -> b
    24:71:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    72:72:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1243:1243 -> b
    72:72:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    73:73:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1240:1240 -> b
    73:73:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    74:76:void updateState(com.android.tools.r8.org.objectweb.asm.tree.MultiANewArrayInsnNode):1850:1852 -> b
    74:76:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1240 -> b
    74:76:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    77:77:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1237:1237 -> b
    77:77:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    78:78:void updateState(com.android.tools.r8.org.objectweb.asm.tree.LookupSwitchInsnNode):1845:1845 -> b
    78:78:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1237 -> b
    78:78:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    79:79:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1234:1234 -> b
    79:79:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    80:80:void updateState(com.android.tools.r8.org.objectweb.asm.tree.TableSwitchInsnNode):1841:1841 -> b
    80:80:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1234 -> b
    80:80:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    81:81:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1231:1231 -> b
    81:81:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    82:82:void updateState(com.android.tools.r8.org.objectweb.asm.tree.IincInsnNode):1837:1837 -> b
    82:82:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1231 -> b
    82:82:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    83:83:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1228:1228 -> b
    83:83:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    84:100:void updateState(com.android.tools.r8.org.objectweb.asm.tree.LdcInsnNode):1816:1832 -> b
    84:100:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1228 -> b
    84:100:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    101:101:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1225:1225 -> b
    101:101:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    102:102:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1222:1222 -> b
    102:102:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    103:128:void updateState(com.android.tools.r8.org.objectweb.asm.tree.JumpInsnNode):1781:1806 -> b
    103:128:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1222 -> b
    103:128:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    129:133:void updateState(com.android.tools.r8.org.objectweb.asm.tree.JumpInsnNode):1799:1803 -> b
    129:133:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1222 -> b
    129:133:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    134:134:void updateState(com.android.tools.r8.org.objectweb.asm.tree.JumpInsnNode):1794:1794 -> b
    134:134:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1222 -> b
    134:134:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    135:135:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1219:1219 -> b
    135:135:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    136:136:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InvokeDynamicInsnNode):1763:1763 -> b
    136:136:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1219 -> b
    136:136:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    137:137:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1216:1216 -> b
    137:137:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    138:138:void updateState(com.android.tools.r8.org.objectweb.asm.tree.MethodInsnNode):1759:1759 -> b
    138:138:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1216 -> b
    138:138:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    139:139:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1213:1213 -> b
    139:139:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    140:159:void updateState(com.android.tools.r8.org.objectweb.asm.tree.FieldInsnNode):1735:1754 -> b
    140:159:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1213 -> b
    140:159:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    160:161:void updateState(com.android.tools.r8.org.objectweb.asm.tree.FieldInsnNode):1749:1750 -> b
    160:161:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1213 -> b
    160:161:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    162:163:void updateState(com.android.tools.r8.org.objectweb.asm.tree.FieldInsnNode):1744:1745 -> b
    162:163:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1213 -> b
    162:163:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    164:164:void updateState(com.android.tools.r8.org.objectweb.asm.tree.FieldInsnNode):1741:1741 -> b
    164:164:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1213 -> b
    164:164:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    165:165:void updateState(com.android.tools.r8.org.objectweb.asm.tree.FieldInsnNode):1738:1738 -> b
    165:165:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1213 -> b
    165:165:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    166:166:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1210:1210 -> b
    166:166:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    167:191:void updateState(com.android.tools.r8.org.objectweb.asm.tree.TypeInsnNode):1705:1729 -> b
    167:191:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1210 -> b
    167:191:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    192:193:void updateState(com.android.tools.r8.org.objectweb.asm.tree.TypeInsnNode):1719:1720 -> b
    192:193:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1210 -> b
    192:193:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    194:196:void updateState(com.android.tools.r8.org.objectweb.asm.tree.TypeInsnNode):1712:1714 -> b
    194:196:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1210 -> b
    194:196:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    197:197:void updateState(com.android.tools.r8.org.objectweb.asm.tree.TypeInsnNode):1708:1708 -> b
    197:197:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1210 -> b
    197:197:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    198:198:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1207:1207 -> b
    198:198:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    199:226:void updateState(com.android.tools.r8.org.objectweb.asm.tree.VarInsnNode):1661:1688 -> b
    199:226:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1207 -> b
    199:226:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    227:227:void updateState(com.android.tools.r8.org.objectweb.asm.tree.VarInsnNode):1682:1682 -> b
    227:227:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1207 -> b
    227:227:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    228:228:void updateState(com.android.tools.r8.org.objectweb.asm.tree.VarInsnNode):1678:1678 -> b
    228:228:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1207 -> b
    228:228:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    229:233:void updateState(com.android.tools.r8.org.objectweb.asm.tree.VarInsnNode):1670:1674 -> b
    229:233:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1207 -> b
    229:233:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    234:267:void updateState(com.android.tools.r8.org.objectweb.asm.tree.VarInsnNode):1666:1699 -> b
    234:267:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1207 -> b
    234:267:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    268:268:void updateState(com.android.tools.r8.org.objectweb.asm.tree.VarInsnNode):1685:1685 -> b
    268:268:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1207 -> b
    268:268:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    269:269:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1204:1204 -> b
    269:269:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    270:284:void updateState(com.android.tools.r8.org.objectweb.asm.tree.IntInsnNode):1642:1656 -> b
    270:284:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1204 -> b
    270:284:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    285:285:void updateState(com.android.tools.r8.org.objectweb.asm.tree.IntInsnNode):1645:1645 -> b
    285:285:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1204 -> b
    285:285:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    286:286:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201:1201 -> b
    286:286:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    287:643:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1251:1607 -> b
    287:643:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    287:643:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    644:644:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1279:1279 -> b
    644:644:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    644:644:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    645:645:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1275:1275 -> b
    645:645:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    645:645:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    646:646:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1270:1270 -> b
    646:646:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    646:646:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    647:647:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1266:1266 -> b
    647:647:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    647:647:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    648:889:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1257:1498 -> b
    648:889:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    648:889:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    890:893:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1487:1490 -> b
    890:893:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    890:893:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    894:897:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1479:1482 -> b
    894:897:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    894:897:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    898:901:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1471:1474 -> b
    898:901:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    898:901:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    902:904:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1460:1462 -> b
    902:904:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    902:904:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    905:908:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1450:1453 -> b
    905:908:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    905:908:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    909:913:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1423:1427 -> b
    909:913:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    909:913:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    914:936:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1393:1415 -> b
    914:936:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    914:936:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    937:942:void updateStateForDupTwoBelowTwo(com.android.tools.r8.ir.conversion.JarState$Slot,com.android.tools.r8.ir.conversion.JarState$Slot,com.android.tools.r8.ir.conversion.JarState$Slot,com.android.tools.r8.ir.conversion.JarState$Slot):1633:1638 -> b
    937:942:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1417 -> b
    937:942:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    937:942:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    943:953:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1378:1388 -> b
    943:953:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    943:953:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    954:966:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1361:1373 -> b
    954:966:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    954:966:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    967:977:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1346:1356 -> b
    967:977:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    967:977:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    978:985:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1335:1342 -> b
    978:985:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    978:985:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    986:988:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1328:1330 -> b
    986:988:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    986:988:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    989:992:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1320:1323 -> b
    989:992:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    989:992:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    993:994:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1315:1316 -> b
    993:994:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    993:994:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    995:1249:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1309:1563 -> b
    995:1249:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    995:1249:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1250:1252:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1554:1556 -> b
    1250:1252:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1250:1252:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1253:1255:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1547:1549 -> b
    1253:1255:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1253:1255:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1256:1256:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1544:1544 -> b
    1256:1256:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1256:1256:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1257:1257:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1541:1541 -> b
    1257:1257:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1257:1257:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1258:1258:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1538:1538 -> b
    1258:1258:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1258:1258:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1259:1259:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1535:1535 -> b
    1259:1259:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1259:1259:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1260:1260:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1532:1532 -> b
    1260:1260:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1260:1260:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1261:1261:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1529:1529 -> b
    1261:1261:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1261:1261:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1262:1262:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1526:1526 -> b
    1262:1262:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1262:1262:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1263:1263:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1523:1523 -> b
    1263:1263:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1263:1263:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1264:1264:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1520:1520 -> b
    1264:1264:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1264:1264:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1265:1265:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1517:1517 -> b
    1265:1265:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1265:1265:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1266:1266:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1514:1514 -> b
    1266:1266:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1266:1266:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1267:1267:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1511:1511 -> b
    1267:1267:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1267:1267:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1268:1268:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1508:1508 -> b
    1268:1268:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1268:1268:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1269:1269:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1505:1505 -> b
    1269:1269:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1269:1269:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1270:1351:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1502:1583 -> b
    1270:1351:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1270:1351:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1352:1352:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1579:1579 -> b
    1352:1352:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1352:1352:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1353:1353:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1575:1575 -> b
    1353:1353:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1353:1353:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1354:1354:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1571:1571 -> b
    1354:1354:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1354:1354:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1355:1391:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1567:1603 -> b
    1355:1391:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1355:1391:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1392:1392:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1599:1599 -> b
    1392:1392:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1392:1392:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1393:1393:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1595:1595 -> b
    1393:1393:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1393:1393:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1394:1395:void updateState(com.android.tools.r8.org.objectweb.asm.tree.InsnNode):1590:1591 -> b
    1394:1395:void updateState(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):1201 -> b
    1394:1395:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):440 -> b
    1396:1411:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):441:456 -> b
    1412:1450:void computeBlockEntryJarStates(com.android.tools.r8.ir.conversion.IRBuilder):426:464 -> b
    1451:1453:void lambda$computeBlockEntryJarStates$1(java.util.Queue,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap,java.lang.Integer):457:459 -> b
    1454:1504:boolean canThrow(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):686:736 -> b
    1505:1528:com.android.tools.r8.ir.code.MemberType memberType(com.android.tools.r8.org.objectweb.asm.Type):952:975 -> b
    1529:1545:com.android.tools.r8.ir.code.MemberType memberType(com.android.tools.r8.org.objectweb.asm.Type):955:971 -> b
    1546:1546:com.android.tools.r8.ir.code.MemberType memberType(com.android.tools.r8.org.objectweb.asm.Type):969:969 -> b
    1547:1547:com.android.tools.r8.ir.code.MemberType memberType(com.android.tools.r8.org.objectweb.asm.Type):967:967 -> b
    1548:1548:com.android.tools.r8.ir.code.MemberType memberType(com.android.tools.r8.org.objectweb.asm.Type):965:965 -> b
    1549:1549:com.android.tools.r8.ir.code.MemberType memberType(com.android.tools.r8.org.objectweb.asm.Type):961:961 -> b
    1550:1554:com.android.tools.r8.ir.code.MemberType memberType(com.android.tools.r8.org.objectweb.asm.Type):959:963 -> b
    1555:1555:com.android.tools.r8.ir.code.MemberType memberType(com.android.tools.r8.org.objectweb.asm.Type):957:957 -> b
    1556:1556:com.android.tools.r8.org.objectweb.asm.Type getArrayElementTypeForOpcode(int):1092:1092 -> b
    1557:1557:com.android.tools.r8.org.objectweb.asm.Type getArrayElementTypeForOpcode(int):1090:1090 -> b
    1558:1558:com.android.tools.r8.org.objectweb.asm.Type getArrayElementTypeForOpcode(int):1087:1087 -> b
    1559:1559:com.android.tools.r8.org.objectweb.asm.Type getArrayElementTypeForOpcode(int):1084:1084 -> b
    1560:1560:com.android.tools.r8.org.objectweb.asm.Type getArrayElementTypeForOpcode(int):1081:1081 -> b
    1561:1561:com.android.tools.r8.org.objectweb.asm.Type getArrayElementTypeForOpcode(int):1078:1078 -> b
    1562:1565:com.android.tools.r8.org.objectweb.asm.Type getArrayElementTypeForOpcode(int):1072:1075 -> b
    1566:1566:com.android.tools.r8.org.objectweb.asm.Type getArrayElementTypeForOpcode(int):1069:1069 -> b
    1567:1571:void updateStateForDupTwoBelowOne(com.android.tools.r8.ir.conversion.JarState$Slot,com.android.tools.r8.ir.conversion.JarState$Slot,com.android.tools.r8.ir.conversion.JarState$Slot):1625:1629 -> b
    1572:1576:void processLocalVariablesAtExit(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.ir.conversion.IRBuilder):1919:1923 -> b
    1577:1589:void dupTwoBelowOne(com.android.tools.r8.ir.conversion.JarState$Slot,com.android.tools.r8.ir.conversion.JarState$Slot,com.android.tools.r8.ir.conversion.JarState$Slot,com.android.tools.r8.ir.conversion.IRBuilder):2427:2439 -> b
    1590:1614:com.android.tools.r8.ir.code.Position getExceptionalExitPosition():2942:2966 -> b
    1:27:void buildBlockTransfer(com.android.tools.r8.ir.conversion.IRBuilder,int,int,boolean):493:519 -> buildBlockTransfer
    28:28:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode getInstruction(int):665:665 -> buildBlockTransfer
    28:28:void buildBlockTransfer(com.android.tools.r8.ir.conversion.IRBuilder,int,int,boolean):519 -> buildBlockTransfer
    29:32:void buildBlockTransfer(com.android.tools.r8.ir.conversion.IRBuilder,int,int,boolean):519:522 -> buildBlockTransfer
    1:6:void buildExceptionalPostlude(com.android.tools.r8.ir.conversion.IRBuilder):477:482 -> buildInstruction
    1:6:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):531 -> buildInstruction
    7:7:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode getInstruction(int):665:665 -> buildInstruction
    7:7:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):534 -> buildInstruction
    8:9:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):535:536 -> buildInstruction
    10:13:boolean verifyExceptionEdgesAreRecorded(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):586:589 -> buildInstruction
    10:13:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):536 -> buildInstruction
    14:14:boolean verifyExceptionEdgesAreRecorded(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):588:588 -> buildInstruction
    14:14:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):536 -> buildInstruction
    15:55:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):542:582 -> buildInstruction
    1:4:void buildPostlude(com.android.tools.r8.ir.conversion.IRBuilder):469:472 -> buildPostlude
    1:4:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):285:288 -> buildPrelude
    5:14:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap recordArgumentTypes(com.android.tools.r8.ir.conversion.IRBuilder):396:405 -> buildPrelude
    5:14:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):291 -> buildPrelude
    15:15:boolean isWide(com.android.tools.r8.org.objectweb.asm.Type):413:413 -> buildPrelude
    15:15:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap recordArgumentTypes(com.android.tools.r8.ir.conversion.IRBuilder):406 -> buildPrelude
    15:15:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):291 -> buildPrelude
    16:16:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap recordArgumentTypes(com.android.tools.r8.ir.conversion.IRBuilder):407:407 -> buildPrelude
    16:16:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):291 -> buildPrelude
    17:17:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):292:292 -> buildPrelude
    18:18:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet.<init>(int):95:95 -> buildPrelude
    18:18:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):292 -> buildPrelude
    19:53:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):293:327 -> buildPrelude
    54:62:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):301:309 -> buildPrelude
    63:79:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):305:321 -> buildPrelude
    80:101:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):317:338 -> buildPrelude
    102:118:void buildArgumentInstructions(com.android.tools.r8.ir.conversion.IRBuilder):376:392 -> buildPrelude
    102:118:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):342 -> buildPrelude
    119:136:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):345:362 -> buildPrelude
    137:137:int actualArgumentCount():247:247 -> buildPrelude
    137:137:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):362 -> buildPrelude
    138:138:int formalParameterCount():243:243 -> buildPrelude
    138:138:int actualArgumentCount():247 -> buildPrelude
    138:138:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):362 -> buildPrelude
    139:139:int formalParameterCount():243:243 -> buildPrelude
    139:139:int actualArgumentCount():247 -> buildPrelude
    139:139:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):362 -> buildPrelude
    140:149:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):362:371 -> buildPrelude
    1:1:int getMoveExceptionRegister():646:646 -> c
    2:18:int[] getTargets(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):860:876 -> c
    19:20:int[] getTargets(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):866:867 -> c
    21:29:int[] getTargets(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):862:870 -> c
    30:54:int[] getJumpTargets(com.android.tools.r8.org.objectweb.asm.tree.JumpInsnNode):890:914 -> c
    30:54:int[] getTargets(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):870 -> c
    55:55:int[] getJumpTargets(com.android.tools.r8.org.objectweb.asm.tree.JumpInsnNode):911:911 -> c
    55:55:int[] getTargets(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):870 -> c
    56:56:int[] getJumpTargets(com.android.tools.r8.org.objectweb.asm.tree.JumpInsnNode):909:909 -> c
    56:56:int[] getTargets(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):870 -> c
    57:57:int[] getJumpTargets(com.android.tools.r8.org.objectweb.asm.tree.JumpInsnNode):907:907 -> c
    57:57:int[] getTargets(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):870 -> c
    58:58:int[] getTargets(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):873:873 -> c
    59:62:int[] getVarTargets(com.android.tools.r8.org.objectweb.asm.tree.VarInsnNode):919:922 -> c
    59:62:int[] getTargets(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):873 -> c
    63:63:int[] getVarTargets(com.android.tools.r8.org.objectweb.asm.tree.VarInsnNode):920:920 -> c
    63:63:int[] getTargets(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):873 -> c
    64:80:com.android.tools.r8.ir.code.NumericType numericType(com.android.tools.r8.org.objectweb.asm.Type):984:1000 -> c
    81:81:com.android.tools.r8.ir.code.NumericType numericType(com.android.tools.r8.org.objectweb.asm.Type):998:998 -> c
    82:84:com.android.tools.r8.ir.code.NumericType numericType(com.android.tools.r8.org.objectweb.asm.Type):994:996 -> c
    85:85:com.android.tools.r8.ir.code.NumericType numericType(com.android.tools.r8.org.objectweb.asm.Type):992:992 -> c
    86:86:com.android.tools.r8.ir.code.NumericType numericType(com.android.tools.r8.org.objectweb.asm.Type):990:990 -> c
    87:89:com.android.tools.r8.ir.code.NumericType numericType(com.android.tools.r8.org.objectweb.asm.Type):986:988 -> c
    90:91:com.android.tools.r8.ir.code.Position getCanonicalPosition(int):2925:2926 -> c
    92:92:com.android.tools.r8.ir.code.Position getCanonicalPosition(int):2925:2925 -> c
    1:1:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode getInstruction(int):665:665 -> d
    2:3:java.util.List getTryHandlers(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):815:816 -> d
    4:4:int getOffset(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):856:856 -> d
    4:4:java.util.List getPotentialTryHandlers(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):793 -> d
    4:4:java.util.List getTryHandlers(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):818 -> d
    5:7:java.util.List getPotentialTryHandlers(int):804:806 -> d
    5:7:java.util.List getPotentialTryHandlers(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):794 -> d
    5:7:java.util.List getTryHandlers(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):818 -> d
    8:9:boolean tryBlockRelevant(com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode,int):798:799 -> d
    8:9:java.util.List getPotentialTryHandlers(int):807 -> d
    8:9:java.util.List getPotentialTryHandlers(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):794 -> d
    8:9:java.util.List getTryHandlers(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):818 -> d
    10:10:java.util.List getPotentialTryHandlers(int):808:808 -> d
    10:10:java.util.List getPotentialTryHandlers(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):794 -> d
    10:10:java.util.List getTryHandlers(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):818 -> d
    11:24:java.util.List getTryHandlers(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):818:831 -> d
    25:26:void updateStateForConversion(com.android.tools.r8.org.objectweb.asm.Type,com.android.tools.r8.org.objectweb.asm.Type):1860:1861 -> d
    27:30:com.android.tools.r8.ir.code.Position getPreamblePosition():2930:2933 -> d
    1:1:boolean isStatic():227:227 -> e
    2:2:boolean isReturn(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):669:669 -> e
    3:22:com.android.tools.r8.ir.code.ValueType valueType(com.android.tools.r8.org.objectweb.asm.Type):928:947 -> e
    23:35:com.android.tools.r8.ir.code.ValueType valueType(com.android.tools.r8.org.objectweb.asm.Type):931:943 -> e
    36:36:com.android.tools.r8.ir.code.ValueType valueType(com.android.tools.r8.org.objectweb.asm.Type):941:941 -> e
    37:37:com.android.tools.r8.ir.code.ValueType valueType(com.android.tools.r8.org.objectweb.asm.Type):939:939 -> e
    38:38:com.android.tools.r8.ir.code.ValueType valueType(com.android.tools.r8.org.objectweb.asm.Type):937:937 -> e
    39:39:com.android.tools.r8.ir.code.If$Type ifType(int):1151:1151 -> e
    40:40:com.android.tools.r8.ir.code.If$Type ifType(int):1149:1149 -> e
    41:41:com.android.tools.r8.ir.code.If$Type ifType(int):1146:1146 -> e
    42:42:com.android.tools.r8.ir.code.If$Type ifType(int):1143:1143 -> e
    43:43:com.android.tools.r8.ir.code.If$Type ifType(int):1140:1140 -> e
    44:44:com.android.tools.r8.ir.code.If$Type ifType(int):1137:1137 -> e
    45:45:com.android.tools.r8.ir.code.If$Type ifType(int):1133:1133 -> e
    1:1:boolean isThrow(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):677:677 -> f
    2:2:com.android.tools.r8.org.objectweb.asm.Type opType(int):1192:1192 -> f
    3:3:com.android.tools.r8.org.objectweb.asm.Type opType(int):1190:1190 -> f
    4:4:com.android.tools.r8.org.objectweb.asm.Type opType(int):1183:1183 -> f
    5:5:com.android.tools.r8.org.objectweb.asm.Type opType(int):1176:1176 -> f
    6:6:com.android.tools.r8.org.objectweb.asm.Type opType(int):1166:1166 -> f
    1:19:com.android.tools.r8.ir.code.Position getCanonicalDebugPositionAtOffset(int):2898:2916 -> getCanonicalDebugPositionAtOffset
    20:21:com.android.tools.r8.ir.code.Position getCanonicalDebugPositionAtOffset(int):2902:2903 -> getCanonicalDebugPositionAtOffset
    22:22:com.android.tools.r8.ir.code.Position getCanonicalDebugPositionAtOffset(int):2902:2902 -> getCanonicalDebugPositionAtOffset
    1:9:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder):626:634 -> getCurrentCatchHandlers
    10:15:java.util.List getTryHandlerGuards(java.util.List):845:850 -> getCurrentCatchHandlers
    10:15:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder):635 -> getCurrentCatchHandlers
    16:16:java.util.List getTryHandlerGuards(java.util.List):847:847 -> getCurrentCatchHandlers
    16:16:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder):635 -> getCurrentCatchHandlers
    17:19:java.util.List getTryHandlerOffsets(java.util.List):837:839 -> getCurrentCatchHandlers
    17:19:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder):636 -> getCurrentCatchHandlers
    20:20:com.android.tools.r8.ir.code.CatchHandlers getCurrentCatchHandlers(com.android.tools.r8.ir.conversion.IRBuilder):636:636 -> getCurrentCatchHandlers
    1:1:com.android.tools.r8.ir.code.Position getCurrentPosition():2921:2921 -> getCurrentPosition
    1:1:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocal(int):616:616 -> getIncomingLocal
    1:1:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocalAtBlock(int,int):611:611 -> getIncomingLocalAtBlock
    1:1:int getMoveExceptionRegister():646:646 -> getMoveExceptionRegister
    1:1:int getMoveExceptionRegister(int):641 -> getMoveExceptionRegister
    1:1:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocal(int):621:621 -> getOutgoingLocal
    1:1:int instructionCount():252:252 -> instructionCount
    1:1:void resolveAndBuildNewArrayFilledData(int,int,com.android.tools.r8.ir.conversion.IRBuilder):604:604 -> resolveAndBuildNewArrayFilledData
    1:1:void resolveAndBuildSwitch(int,int,int,com.android.tools.r8.ir.conversion.IRBuilder):598:598 -> resolveAndBuildSwitch
    1:38:java.lang.String toString():2973:3010 -> toString
    39:46:java.lang.String instructionToString(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):3016:3023 -> toString
    39:46:java.lang.String toString():3010 -> toString
    47:49:java.lang.String toString():3010:3012 -> toString
    1:1:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode getInstruction(int):665:665 -> traceInstruction
    1:1:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):747 -> traceInstruction
    2:39:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):749:786 -> traceInstruction
    1:1:boolean verifyCurrentInstructionCanThrow():651:651 -> verifyCurrentInstructionCanThrow
    1:2:boolean verifyLocalInScope(com.android.tools.r8.graph.DebugLocalInfo):656:657 -> verifyLocalInScope
com.android.tools.r8.ir.conversion.JarSourceCode$1 -> com.android.tools.r8.ir.conversion.I:
com.android.tools.r8.ir.conversion.JarSourceCode$JarStateWorklistItem -> com.android.tools.r8.ir.conversion.J$a:
    com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo blockInfo -> a
    int instructionIndex -> b
    1:3:void <init>(com.android.tools.r8.ir.conversion.IRBuilder$BlockInfo,int):128:130 -> <init>
com.android.tools.r8.ir.conversion.JarSourceCode$TryCatchBlock -> com.android.tools.r8.ir.conversion.K:
    int start -> b
    java.lang.String type -> c
    boolean $assertionsDisabled -> d
    int handler -> a
    1:1:void <clinit>():80:80 -> <clinit>
    1:1:void <init>(int,int,int,java.lang.String,com.android.tools.r8.ir.conversion.JarSourceCode$1):80:80 -> <init>
    2:4:void <init>(com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode,com.android.tools.r8.ir.conversion.JarSourceCode):89:91 -> <init>
    5:5:void <init>(com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode,com.android.tools.r8.ir.conversion.JarSourceCode):89:89 -> <init>
    6:11:void <init>(int,int,int,java.lang.String):95:100 -> <init>
    1:1:int getHandler():116:116 -> a
    1:1:int getStart():108:108 -> b
    1:1:java.lang.String getType():120:120 -> c
    1:1:boolean isCatchAll():104:104 -> d
com.android.tools.r8.ir.conversion.JarState -> com.android.tools.r8.ir.conversion.U:
    com.android.tools.r8.org.objectweb.asm.Type OBJECT_TYPE -> o
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap localsAtOffsetTable -> g
    com.android.tools.r8.org.objectweb.asm.Type REFERENCE_TYPE -> n
    boolean building -> j
    com.android.tools.r8.org.objectweb.asm.Type NULL_TYPE -> q
    com.android.tools.r8.org.objectweb.asm.Type ARRAY_TYPE -> p
    com.android.tools.r8.org.objectweb.asm.Type BYTE_OR_BOOL_TYPE -> r
    int topOfStack -> b
    int localsSize -> c
    boolean $assertionsDisabled -> s
    com.android.tools.r8.ir.conversion.JarState$Local[] locals -> d
    int startOfStack -> a
    java.util.Deque stack -> h
    com.android.tools.r8.ir.conversion.JarState$LocalNodeEquivalence localNodeEquivalence -> e
    java.util.Map targetStates -> i
    java.util.Map canonicalLocalInfo -> f
    java.util.List localsToClose -> m
    java.util.List localsToOpen -> l
    java.util.List writes -> k
    1:13:void <clinit>():35:47 -> <clinit>
    1:1:void <init>(int,java.util.List,com.android.tools.r8.ir.conversion.JarSourceCode,com.android.tools.r8.graph.JarApplicationReader):342:342 -> <init>
    2:143:void <init>(int,java.util.List,com.android.tools.r8.ir.conversion.JarSourceCode,com.android.tools.r8.graph.JarApplicationReader):326:467 -> <init>
    144:167:void <init>(int,java.util.List,com.android.tools.r8.ir.conversion.JarSourceCode,com.android.tools.r8.graph.JarApplicationReader):344:367 -> <init>
    1:4:com.android.tools.r8.graph.DebugLocalInfo createLocalInfo(com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode,com.android.tools.r8.graph.JarApplicationReader):375:378 -> a
    5:24:void populateLocalsAtTable(com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.ir.conversion.JarSourceCode):383:402 -> a
    25:25:void com.android.tools.r8.ir.conversion.JarState$LocalsAtOffset.addStart(com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode,com.android.tools.r8.graph.DebugLocalInfo):107:107 -> a
    25:25:void populateLocalsAtTable(com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.ir.conversion.JarSourceCode):404 -> a
    26:31:void populateLocalsAtTable(com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.ir.conversion.JarSourceCode):409:414 -> a
    32:32:void com.android.tools.r8.ir.conversion.JarState$LocalsAtOffset.addEnd(com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode,com.android.tools.r8.graph.DebugLocalInfo):111:111 -> a
    32:32:void populateLocalsAtTable(com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.ir.conversion.JarSourceCode):416 -> a
    33:34:void populateLocalsAtTable(com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.ir.conversion.JarSourceCode):419:420 -> a
    35:35:void populateLocalsAtTable(com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode,com.android.tools.r8.graph.DebugLocalInfo,com.android.tools.r8.ir.conversion.JarSourceCode):391:391 -> a
    36:39:void beginTransactionSynthetic():482:485 -> a
    40:42:void beginTransactionAtBlockStart(int):497:499 -> a
    43:53:void getLocalsToClose(int):533:543 -> a
    43:53:void beginTransaction(int,boolean):470 -> a
    54:60:void beginTransaction(int,boolean):472:478 -> a
    61:64:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocalAtBlock(int,int):574:577 -> a
    65:73:int getLocalRegister(int,com.android.tools.r8.org.objectweb.asm.Type):602:610 -> a
    74:76:com.android.tools.r8.ir.conversion.JarState$Local setLocalForRegister(int,com.android.tools.r8.org.objectweb.asm.Type,com.android.tools.r8.graph.DebugLocalInfo):655:657 -> a
    77:77:boolean nonNullType(com.android.tools.r8.org.objectweb.asm.Type):711:711 -> a
    78:81:boolean recordStateForTarget(int,com.android.tools.r8.ir.conversion.JarState$Local[],com.android.tools.r8.com.google.common.collect.ImmutableList):795:798 -> a
    82:83:com.android.tools.r8.ir.conversion.JarState$LocalsAtOffset getLocalsAt(int):426:427 -> a
    82:83:boolean recordStateForTarget(int,com.android.tools.r8.ir.conversion.JarState$Local[],com.android.tools.r8.com.google.common.collect.ImmutableList):801 -> a
    84:92:boolean recordStateForTarget(int,com.android.tools.r8.ir.conversion.JarState$Local[],com.android.tools.r8.com.google.common.collect.ImmutableList):802:810 -> a
    93:112:com.android.tools.r8.ir.conversion.JarState$Local[] mergeLocals(com.android.tools.r8.ir.conversion.JarState$Local[],com.android.tools.r8.ir.conversion.JarState$Local[]):848:867 -> a
    93:112:boolean recordStateForTarget(int,com.android.tools.r8.ir.conversion.JarState$Local[],com.android.tools.r8.com.google.common.collect.ImmutableList):810 -> a
    113:113:boolean recordStateForTarget(int,com.android.tools.r8.ir.conversion.JarState$Local[],com.android.tools.r8.com.google.common.collect.ImmutableList):811:811 -> a
    114:128:com.android.tools.r8.com.google.common.collect.ImmutableList mergeStacks(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList):830:844 -> a
    114:128:boolean recordStateForTarget(int,com.android.tools.r8.ir.conversion.JarState$Local[],com.android.tools.r8.com.google.common.collect.ImmutableList):811 -> a
    129:136:boolean recordStateForTarget(int,com.android.tools.r8.ir.conversion.JarState$Local[],com.android.tools.r8.com.google.common.collect.ImmutableList):812:819 -> a
    137:137:boolean isRefinement(com.android.tools.r8.org.objectweb.asm.Type,com.android.tools.r8.org.objectweb.asm.Type):824:824 -> a
    138:151:java.lang.String localsToString(java.util.Collection):910:923 -> a
    152:152:java.lang.String com.android.tools.r8.org.objectweb.asm.Type.toString():904:904 -> a
    152:152:java.lang.String localsToString(java.util.Collection):925 -> a
    153:157:java.lang.String localsToString(java.util.Collection):925:929 -> a
    1:10:void closeLocals():549:558 -> b
    1:10:void endTransaction():489 -> b
    11:12:void applyWrites():503:504 -> b
    11:12:void endTransaction():490 -> b
    13:15:void applyWriteLocal(int,com.android.tools.r8.org.objectweb.asm.Type):680:682 -> b
    13:15:void applyWrites():504 -> b
    13:15:void endTransaction():490 -> b
    16:16:boolean com.android.tools.r8.ir.conversion.JarState$Slot.isCompatibleWith(com.android.tools.r8.org.objectweb.asm.Type):158:158 -> b
    16:16:void applyWriteLocal(int,com.android.tools.r8.org.objectweb.asm.Type):682 -> b
    16:16:void applyWrites():504 -> b
    16:16:void endTransaction():490 -> b
    17:22:void applyWriteLocal(int,com.android.tools.r8.org.objectweb.asm.Type):683:688 -> b
    17:22:void applyWrites():504 -> b
    17:22:void endTransaction():490 -> b
    23:24:boolean typeEquals(com.android.tools.r8.org.objectweb.asm.Type,com.android.tools.r8.org.objectweb.asm.Type):695:696 -> b
    23:24:void applyWriteLocal(int,com.android.tools.r8.org.objectweb.asm.Type):688 -> b
    23:24:void applyWrites():504 -> b
    23:24:void endTransaction():490 -> b
    25:25:void applyWriteLocal(int,com.android.tools.r8.org.objectweb.asm.Type):689:689 -> b
    25:25:void applyWrites():504 -> b
    25:25:void endTransaction():490 -> b
    26:26:com.android.tools.r8.ir.conversion.JarState$Local setLocal(int,com.android.tools.r8.org.objectweb.asm.Type,com.android.tools.r8.graph.DebugLocalInfo):651:651 -> b
    26:26:void applyWriteLocal(int,com.android.tools.r8.org.objectweb.asm.Type):690 -> b
    26:26:void applyWrites():504 -> b
    26:26:void endTransaction():490 -> b
    27:27:void applyWrites():506:506 -> b
    27:27:void endTransaction():490 -> b
    28:29:void openLocals():525:526 -> b
    28:29:void endTransaction():491 -> b
    30:39:void openLocal(com.android.tools.r8.ir.conversion.JarState$Local):662:671 -> b
    30:39:void openLocals():527 -> b
    30:39:void endTransaction():491 -> b
    40:41:void openLocal(com.android.tools.r8.ir.conversion.JarState$Local):667:668 -> b
    40:41:void openLocals():527 -> b
    40:41:void endTransaction():491 -> b
    42:42:void openLocals():529:529 -> b
    42:42:void endTransaction():491 -> b
    43:45:com.android.tools.r8.ir.conversion.JarState$LocalChangeAtOffset getLocalChange(int,int):567:569 -> b
    46:46:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocalInfoForRegister(int):614:614 -> b
    47:47:com.android.tools.r8.ir.conversion.JarState$Local getLocalForRegister(int):643:643 -> b
    47:47:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocalInfoForRegister(int):617 -> b
    48:48:com.android.tools.r8.graph.DebugLocalInfo getIncomingLocalInfoForRegister(int):618:618 -> b
    49:50:com.android.tools.r8.ir.conversion.JarState$Slot pop(com.android.tools.r8.org.objectweb.asm.Type):747:748 -> b
    51:51:boolean com.android.tools.r8.ir.conversion.JarState$Slot.isCompatibleWith(com.android.tools.r8.org.objectweb.asm.Type):158:158 -> b
    51:51:com.android.tools.r8.ir.conversion.JarState$Slot pop(com.android.tools.r8.org.objectweb.asm.Type):748 -> b
    52:53:com.android.tools.r8.ir.conversion.JarState$Slot pop(com.android.tools.r8.org.objectweb.asm.Type):748:749 -> b
    54:55:com.android.tools.r8.ir.conversion.JarState$Slot[] popReverse(int,com.android.tools.r8.org.objectweb.asm.Type):762:763 -> b
    56:57:boolean verifySlots(com.android.tools.r8.ir.conversion.JarState$Slot[],com.android.tools.r8.org.objectweb.asm.Type):876:877 -> b
    56:57:com.android.tools.r8.ir.conversion.JarState$Slot[] popReverse(int,com.android.tools.r8.org.objectweb.asm.Type):763 -> b
    58:58:boolean com.android.tools.r8.ir.conversion.JarState$Slot.isCompatibleWith(com.android.tools.r8.org.objectweb.asm.Type):158:158 -> b
    58:58:boolean verifySlots(com.android.tools.r8.ir.conversion.JarState$Slot[],com.android.tools.r8.org.objectweb.asm.Type):877 -> b
    58:58:com.android.tools.r8.ir.conversion.JarState$Slot[] popReverse(int,com.android.tools.r8.org.objectweb.asm.Type):763 -> b
    59:59:boolean verifySlots(com.android.tools.r8.ir.conversion.JarState$Slot[],com.android.tools.r8.org.objectweb.asm.Type):877:877 -> b
    59:59:com.android.tools.r8.ir.conversion.JarState$Slot[] popReverse(int,com.android.tools.r8.org.objectweb.asm.Type):763 -> b
    60:63:java.lang.String stackToString(java.util.Collection):890:893 -> b
    64:64:java.lang.String com.android.tools.r8.org.objectweb.asm.Type.toString():904:904 -> b
    64:64:java.lang.String stackToString(java.util.Collection):895 -> b
    65:76:java.lang.String stackToString(java.util.Collection):895:906 -> b
    1:7:com.android.tools.r8.com.google.common.collect.ImmutableList getLocals():592:598 -> c
    8:20:com.android.tools.r8.graph.DebugLocalInfo getOutgoingLocalInfoForRegister(int):622:634 -> c
    21:21:com.android.tools.r8.ir.conversion.JarState$Local getLocal(int,com.android.tools.r8.org.objectweb.asm.Type):647:647 -> c
    21:21:com.android.tools.r8.ir.conversion.JarState$Slot readLocal(int,com.android.tools.r8.org.objectweb.asm.Type):700 -> c
    22:23:com.android.tools.r8.ir.conversion.JarState$Slot readLocal(int,com.android.tools.r8.org.objectweb.asm.Type):701:702 -> c
    24:24:boolean com.android.tools.r8.ir.conversion.JarState$Slot.isCompatibleWith(com.android.tools.r8.org.objectweb.asm.Type):158:158 -> c
    24:24:com.android.tools.r8.ir.conversion.JarState$Slot readLocal(int,com.android.tools.r8.org.objectweb.asm.Type):702 -> c
    25:28:com.android.tools.r8.ir.conversion.JarState$Slot readLocal(int,com.android.tools.r8.org.objectweb.asm.Type):703:706 -> c
    29:29:boolean com.android.tools.r8.ir.conversion.JarState$Slot.isCompatibleWith(com.android.tools.r8.org.objectweb.asm.Type):158:158 -> c
    29:29:com.android.tools.r8.ir.conversion.JarState$Slot readLocal(int,com.android.tools.r8.org.objectweb.asm.Type):706 -> c
    30:31:com.android.tools.r8.ir.conversion.JarState$Slot readLocal(int,com.android.tools.r8.org.objectweb.asm.Type):706:707 -> c
    32:37:int push(com.android.tools.r8.org.objectweb.asm.Type):717:722 -> c
    1:1:java.util.List getLocalsToClose():584:584 -> d
    2:3:int writeLocal(int,com.android.tools.r8.org.objectweb.asm.Type):675:676 -> d
    4:4:boolean hasState(int):770:770 -> d
    5:14:java.lang.String prettyType(com.android.tools.r8.org.objectweb.asm.Type):933:942 -> d
    15:15:java.lang.String prettyType(com.android.tools.r8.org.objectweb.asm.Type):940:940 -> d
    1:1:java.util.List getLocalsToOpen():588:588 -> e
    2:2:com.android.tools.r8.ir.conversion.JarState$Local getLocal(int,com.android.tools.r8.org.objectweb.asm.Type):647:647 -> e
    3:5:com.android.tools.r8.ir.conversion.JarState$Slot[] popReverse(int):754:756 -> e
    1:1:com.android.tools.r8.ir.conversion.JarState$Slot peek():727:727 -> f
    2:5:boolean recordStateForExceptionalTarget(int):788:791 -> f
    6:6:boolean recordStateForExceptionalTarget(int):788:788 -> f
    1:6:com.android.tools.r8.ir.conversion.JarState$Slot pop():737:742 -> g
    7:7:boolean recordStateForTarget(int):784:784 -> g
    1:28:void setBuilding():431:458 -> h
    29:35:void restoreState(int):774:780 -> h
    1:1:com.android.tools.r8.ir.conversion.JarState$Local getLocalForRegister(int):643:643 -> i
    1:2:com.android.tools.r8.ir.conversion.JarState$LocalsAtOffset getLocalsAtOffset(int):562:563 -> j
    1:11:void getLocalsToOpen(int):510:520 -> k
    1:1:java.lang.String toString():886:886 -> toString
com.android.tools.r8.ir.conversion.JarState$1 -> com.android.tools.r8.ir.conversion.L:
com.android.tools.r8.ir.conversion.JarState$Local -> com.android.tools.r8.ir.conversion.M:
    com.android.tools.r8.graph.DebugLocalInfo info -> b
    com.android.tools.r8.ir.conversion.JarState$Slot slot -> a
    1:3:void <init>(com.android.tools.r8.ir.conversion.JarState$Slot,com.android.tools.r8.graph.DebugLocalInfo):239:241 -> <init>
com.android.tools.r8.ir.conversion.JarState$LocalChangeAtOffset -> com.android.tools.r8.ir.conversion.N:
    com.android.tools.r8.ir.conversion.JarState state -> c
    com.android.tools.r8.ir.conversion.JarState$LocalsAtOffset atExit -> a
    com.android.tools.r8.ir.conversion.JarState$LocalsAtOffset atEntry -> b
    1:4:void <init>(com.android.tools.r8.ir.conversion.JarState$LocalsAtOffset,com.android.tools.r8.ir.conversion.JarState$LocalsAtOffset,com.android.tools.r8.ir.conversion.JarState):268:271 -> <init>
    1:4:void <init>(com.android.tools.r8.ir.conversion.JarState$LocalsAtOffset,com.android.tools.r8.ir.conversion.JarState$LocalsAtOffset,com.android.tools.r8.ir.conversion.JarState,com.android.tools.r8.ir.conversion.JarState$1):262 -> <init>
    1:5:java.util.List getLocalsToClose():286:290 -> a
    1:5:java.util.List getLocalsToOpen():297:301 -> b
    1:5:java.util.List getLocalsToPreserve():275:279 -> c
com.android.tools.r8.ir.conversion.JarState$LocalNodeEquivalence -> com.android.tools.r8.ir.conversion.O:
    1:1:void <init>():50:50 -> <init>
    1:1:void <init>(com.android.tools.r8.ir.conversion.JarState$1):50 -> <init>
    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):50:50 -> a
    2:6:boolean doEquivalent(com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode,com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode):54:58 -> a
    2:6:boolean doEquivalent(java.lang.Object,java.lang.Object):50 -> a
    7:7:int doHash(java.lang.Object):50:50 -> a
    8:10:int doHash(com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode):63:65 -> a
    8:10:int doHash(java.lang.Object):50 -> a
com.android.tools.r8.ir.conversion.JarState$LocalNodeInfo -> com.android.tools.r8.ir.conversion.P:
    com.android.tools.r8.org.objectweb.asm.Type type -> a
    com.android.tools.r8.graph.DebugLocalInfo info -> c
    com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode node -> b
    1:4:void <init>(com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode,com.android.tools.r8.graph.DebugLocalInfo):75:78 -> <init>
com.android.tools.r8.ir.conversion.JarState$LocalsAtOffset -> com.android.tools.r8.ir.conversion.Q:
    java.util.List starts -> b
    java.util.List live -> a
    java.util.List ends -> c
    boolean $assertionsDisabled -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap liveInfosCache -> d
    com.android.tools.r8.ir.conversion.JarState$LocalsAtOffset EMPTY -> e
    1:9:void <clinit>():83:91 -> <clinit>
    1:1:void <init>():93:93 -> <init>
    2:9:void <init>():89:96 -> <init>
    10:10:void <init>(com.android.tools.r8.ir.conversion.JarState$LocalsAtOffset):99:99 -> <init>
    11:25:void <init>(com.android.tools.r8.ir.conversion.JarState$LocalsAtOffset):89:103 -> <init>
    1:2:void addLive(com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode,com.android.tools.r8.graph.DebugLocalInfo):115:116 -> a
    3:18:boolean isLive(com.android.tools.r8.ir.conversion.JarState$LocalNodeInfo):120:135 -> a
com.android.tools.r8.ir.conversion.JarState$Slot -> com.android.tools.r8.ir.conversion.S:
    com.android.tools.r8.org.objectweb.asm.Type type -> b
    boolean $assertionsDisabled -> c
    int register -> a
    1:1:void <clinit>():140:140 -> <clinit>
    1:6:void <init>(int,com.android.tools.r8.org.objectweb.asm.Type):149:154 -> <init>
    boolean isIntCompatible(int) -> a
    1:2:com.android.tools.r8.org.objectweb.asm.Type getArrayElementType():166:167 -> a
    3:5:com.android.tools.r8.org.objectweb.asm.Type getArrayElementType(com.android.tools.r8.org.objectweb.asm.Type):204:206 -> a
    3:5:com.android.tools.r8.org.objectweb.asm.Type getArrayElementType():170 -> a
    6:6:boolean isCategory1(com.android.tools.r8.org.objectweb.asm.Type):174:174 -> a
    7:17:boolean isCompatible(com.android.tools.r8.org.objectweb.asm.Type,com.android.tools.r8.org.objectweb.asm.Type):178:188 -> a
    18:29:boolean isReferenceCompatible(com.android.tools.r8.org.objectweb.asm.Type,com.android.tools.r8.org.objectweb.asm.Type):214:225 -> a
    18:29:boolean isCompatible(com.android.tools.r8.org.objectweb.asm.Type,com.android.tools.r8.org.objectweb.asm.Type):189 -> a
    30:37:boolean isCompatible(com.android.tools.r8.org.objectweb.asm.Type,com.android.tools.r8.org.objectweb.asm.Type):193:200 -> a
    1:1:boolean isCompatibleWith(com.android.tools.r8.org.objectweb.asm.Type):158:158 -> b
    2:2:boolean isCategory1():162:162 -> b
    1:1:java.lang.String toString():146:146 -> toString
com.android.tools.r8.ir.conversion.JarState$Snapshot -> com.android.tools.r8.ir.conversion.T:
    com.android.tools.r8.ir.conversion.JarState$Local[] locals -> a
    com.android.tools.r8.com.google.common.collect.ImmutableList stack -> b
    1:3:void <init>(com.android.tools.r8.ir.conversion.JarState$Local[],com.android.tools.r8.com.google.common.collect.ImmutableList):250:252 -> <init>
    1:2:java.lang.String toString():257:258 -> toString
com.android.tools.r8.ir.conversion.LensCodeRewriter -> com.android.tools.r8.ir.conversion.V:
    java.util.Map protoFixupCache -> b
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():70:70 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):76:76 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.AppView):74:77 -> <init>
    1:5:com.android.tools.r8.ir.code.Value makeOutValue(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode,java.util.Set):81:85 -> a
    6:14:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):94:102 -> a
    15:35:boolean unlinkDeadCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):433:453 -> a
    15:35:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):104 -> a
    36:56:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):107:127 -> a
    57:61:java.util.List rewriteBootstrapArgs(java.util.List,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):460:464 -> a
    57:61:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):128 -> a
    62:64:com.android.tools.r8.graph.DexValue$DexValueMethodHandle rewriteDexValueMethodHandle(com.android.tools.r8.graph.DexValue$DexValueMethodHandle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):489:491 -> a
    62:64:java.util.List rewriteBootstrapArgs(java.util.List,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):464 -> a
    62:64:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):128 -> a
    65:81:java.util.List rewriteBootstrapArgs(java.util.List,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):465:481 -> a
    65:81:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):128 -> a
    82:125:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):129:172 -> a
    126:141:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):167:182 -> a
    142:175:void checkInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeDirect):388:421 -> a
    142:175:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):182 -> a
    176:176:void checkInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeDirect):412:412 -> a
    176:176:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):182 -> a
    177:177:void checkInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.InvokeDirect):411:411 -> a
    177:177:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):182 -> a
    178:185:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):184:191 -> a
    186:214:com.android.tools.r8.graph.DexMethod rebindVirtualInvokeToMostSpecific(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):567:595 -> a
    186:214:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):190 -> a
    215:251:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):193:229 -> a
    252:373:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):228:349 -> a
    374:405:void rewrite(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):345:376 -> a
    406:450:com.android.tools.r8.graph.DexMethodHandle rewriteDexMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):496:540 -> a
    451:456:com.android.tools.r8.graph.DexValue$DexValueMethodType rewriteDexMethodType(com.android.tools.r8.graph.DexValue$DexValueMethodType):547:552 -> a
    457:457:boolean canInvokeTargetWithInvokeVirtual(com.android.tools.r8.graph.DexEncodedMethod):599:599 -> a
    458:475:boolean hasAccessToInvokeTargetFromContext(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):603:620 -> a
com.android.tools.r8.ir.conversion.OptimizationFeedback -> com.android.tools.r8.ir.conversion.W:
    void markCheckNullReceiverBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> a
    void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget) -> a
    void methodReturnsArgument(com.android.tools.r8.graph.DexEncodedMethod,int) -> a
    void methodReturnsConstantNumber(com.android.tools.r8.graph.DexEncodedMethod,long) -> a
    void methodReturnsConstantString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexString) -> a
    void setClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility) -> a
    void setInitializerEnablingJavaAssertions(com.android.tools.r8.graph.DexEncodedMethod) -> a
    void setNonNullParamOrThrow(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet) -> a
    void setParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.ParameterUsagesInfo) -> a
    void setTrivialInitializer(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer) -> a
    void markTriggerClassInitBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> b
    void methodMayNotHaveSideEffects(com.android.tools.r8.graph.DexEncodedMethod) -> b
    void setNonNullParamOnNormalExits(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet) -> b
    void methodNeverReturnsNormally(com.android.tools.r8.graph.DexEncodedMethod) -> c
    void methodNeverReturnsNull(com.android.tools.r8.graph.DexEncodedMethod) -> d
    void markUseIdentifierNameString(com.android.tools.r8.graph.DexEncodedMethod) -> e
com.android.tools.r8.ir.conversion.OptimizationFeedbackDelayed -> com.android.tools.r8.ir.conversion.X:
    java.util.Map optimizationInfos -> a
    java.util.Map processed -> b
    1:6:void <init>():19:24 -> <init>
    1:1:void methodReturnsArgument(com.android.tools.r8.graph.DexEncodedMethod,int):39:39 -> a
    2:2:void methodReturnsConstantNumber(com.android.tools.r8.graph.DexEncodedMethod,long):44:44 -> a
    3:3:void methodReturnsConstantString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexString):49:49 -> a
    4:4:void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):69:69 -> a
    5:5:void markCheckNullReceiverBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean):80:80 -> a
    6:6:void setClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility):92:92 -> a
    7:7:void setTrivialInitializer(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer):97:97 -> a
    8:8:void setInitializerEnablingJavaAssertions(com.android.tools.r8.graph.DexEncodedMethod):102:102 -> a
    9:9:void setParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.ParameterUsagesInfo):108:108 -> a
    10:10:void setNonNullParamOrThrow(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet):113:113 -> a
    11:12:void updateVisibleOptimizationInfo():125:126 -> a
    13:19:void updateVisibleOptimizationInfo():125:131 -> a
    20:20:boolean lambda$updateVisibleOptimizationInfo$0(java.util.Map$Entry):126:126 -> a
    1:1:void methodMayNotHaveSideEffects(com.android.tools.r8.graph.DexEncodedMethod):64:64 -> b
    2:2:void markTriggerClassInitBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean):86:86 -> b
    3:3:void setNonNullParamOnNormalExits(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet):118:118 -> b
    4:4:boolean lambda$updateVisibleOptimizationInfo$1(java.util.Map$Entry):127:127 -> b
    1:1:void methodNeverReturnsNormally(com.android.tools.r8.graph.DexEncodedMethod):59:59 -> c
    1:1:void methodNeverReturnsNull(com.android.tools.r8.graph.DexEncodedMethod):54:54 -> d
    1:1:void markUseIdentifierNameString(com.android.tools.r8.graph.DexEncodedMethod):74:74 -> e
    1:6:com.android.tools.r8.graph.UpdatableOptimizationInfo getOptimizationInfoForUpdating(com.android.tools.r8.graph.DexEncodedMethod):28:33 -> f
com.android.tools.r8.ir.conversion.OptimizationFeedbackIgnore -> com.android.tools.r8.ir.conversion.Y:
    1:1:void <init>():15:15 -> <init>
    void markCheckNullReceiverBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> a
    void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget) -> a
    void methodReturnsArgument(com.android.tools.r8.graph.DexEncodedMethod,int) -> a
    void methodReturnsConstantNumber(com.android.tools.r8.graph.DexEncodedMethod,long) -> a
    void methodReturnsConstantString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexString) -> a
    void setClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility) -> a
    void setInitializerEnablingJavaAssertions(com.android.tools.r8.graph.DexEncodedMethod) -> a
    void setNonNullParamOrThrow(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet) -> a
    void setParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.ParameterUsagesInfo) -> a
    void setTrivialInitializer(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer) -> a
    void markTriggerClassInitBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> b
    void methodMayNotHaveSideEffects(com.android.tools.r8.graph.DexEncodedMethod) -> b
    void setNonNullParamOnNormalExits(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet) -> b
    void methodNeverReturnsNormally(com.android.tools.r8.graph.DexEncodedMethod) -> c
    void methodNeverReturnsNull(com.android.tools.r8.graph.DexEncodedMethod) -> d
    void markUseIdentifierNameString(com.android.tools.r8.graph.DexEncodedMethod) -> e
com.android.tools.r8.ir.conversion.OptimizationFeedbackSimple -> com.android.tools.r8.ir.conversion.Z:
    1:1:void <init>():15:15 -> <init>
    void markCheckNullReceiverBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> a
    void methodReturnsArgument(com.android.tools.r8.graph.DexEncodedMethod,int) -> a
    void methodReturnsConstantNumber(com.android.tools.r8.graph.DexEncodedMethod,long) -> a
    void methodReturnsConstantString(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexString) -> a
    void setClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility) -> a
    void setNonNullParamOrThrow(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet) -> a
    void setParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.ParameterUsagesInfo) -> a
    void setTrivialInitializer(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer) -> a
    1:1:void markProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):50:50 -> a
    2:2:void setInitializerEnablingJavaAssertions(com.android.tools.r8.graph.DexEncodedMethod):81:81 -> a
    void markTriggerClassInitBeforeAnySideEffect(com.android.tools.r8.graph.DexEncodedMethod,boolean) -> b
    void methodMayNotHaveSideEffects(com.android.tools.r8.graph.DexEncodedMethod) -> b
    void setNonNullParamOnNormalExits(com.android.tools.r8.graph.DexEncodedMethod,java.util.BitSet) -> b
    void methodNeverReturnsNormally(com.android.tools.r8.graph.DexEncodedMethod) -> c
    void methodNeverReturnsNull(com.android.tools.r8.graph.DexEncodedMethod) -> d
    1:1:void markUseIdentifierNameString(com.android.tools.r8.graph.DexEncodedMethod):55:55 -> e
com.android.tools.r8.ir.conversion.SwitchPayloadResolver -> com.android.tools.r8.ir.conversion.ba:
    java.util.Map unresolvedPayload -> a
    java.util.Map payloadToData -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():16:16 -> <clinit>
    1:17:void <init>():16:32 -> <init>
    1:15:void resolve(com.android.tools.r8.code.SwitchPayload):45:59 -> a
    16:17:int[] absoluteTargets(com.android.tools.r8.code.Instruction):63:64 -> a
    18:18:int[] absoluteTargets(int):68:68 -> a
    19:19:void clear():84:84 -> a
    1:6:void addPayloadUser(com.android.tools.r8.code.Instruction):35:40 -> b
    7:7:int[] getKeys(int):72:72 -> b
com.android.tools.r8.ir.conversion.SwitchPayloadResolver$PayloadData -> com.android.tools.r8.ir.conversion.aa:
    int[] absoluteTargets -> b
    int[] keys -> c
    int userOffset -> a
    1:1:void <init>(int):26:26 -> <init>
    2:7:void <init>(int):22:27 -> <init>
com.android.tools.r8.ir.conversion.TypeConstraintResolver -> com.android.tools.r8.ir.conversion.ca:
    java.util.Map unificationParents -> c
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.conversion.IRBuilder builder -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():53:53 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRBuilder):59:59 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRBuilder):57:61 -> <init>
    1:1:com.android.tools.r8.ir.code.ValueTypeConstraint constraintForType(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):66:66 -> a
    2:24:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):70:92 -> a
    25:25:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):90:90 -> a
    26:26:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):88:88 -> a
    27:27:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):86:86 -> a
    28:40:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):72:84 -> a
    41:41:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):82:82 -> a
    42:42:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):80:80 -> a
    43:43:com.android.tools.r8.ir.analysis.type.TypeLatticeElement typeForConstraint(com.android.tools.r8.ir.code.ValueTypeConstraint):78:78 -> a
    44:70:java.util.List resolveRoundOne(com.android.tools.r8.ir.code.IRCode):112:138 -> a
    44:70:void resolve(java.util.List,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):102 -> a
    71:71:void resolve(java.util.List,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):105:105 -> a
    72:86:void resolveRoundTwo(com.android.tools.r8.ir.code.IRCode,java.util.List,java.util.List):146:160 -> a
    72:86:void resolve(java.util.List,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):108 -> a
    87:87:void resolveRoundTwo(com.android.tools.r8.ir.code.IRCode,java.util.List,java.util.List):155:155 -> a
    87:87:void resolve(java.util.List,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):108 -> a
    88:92:java.util.ArrayList constrainValues(boolean,java.util.List):167:171 -> a
    93:107:void constrainArrayMemberType(com.android.tools.r8.ir.code.MemberType,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value,java.util.function.Consumer):179:193 -> a
    108:108:void merge(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):197:197 -> a
    109:111:void link(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):253:255 -> a
    109:111:void merge(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):197 -> a
    112:112:com.android.tools.r8.ir.code.ValueTypeConstraint constraintForType(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):66:66 -> a
    112:112:void link(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):256 -> a
    112:112:void merge(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):197 -> a
    113:128:void link(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):257:272 -> a
    113:128:void merge(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):197 -> a
    129:139:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):201:211 -> a
    140:140:boolean verifyNoConstrainedUses(com.android.tools.r8.ir.code.Value):219:219 -> a
    140:140:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):211 -> a
    141:141:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):212:212 -> a
    142:145:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):205:208 -> a
    146:146:boolean verifyNoConstrainedUses(com.android.tools.r8.ir.code.Value):219:219 -> a
    146:146:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):208 -> a
    147:147:com.android.tools.r8.ir.code.ValueTypeConstraint getCanonicalTypeConstraint(com.android.tools.r8.ir.code.Value,boolean):209:209 -> a
    148:160:boolean verifyNoConstrainedUses(com.android.tools.r8.ir.code.Value,java.util.Set):223:235 -> a
    161:170:boolean verifyNoConstrainedUses(com.android.tools.r8.ir.code.Value,java.util.Set):233:242 -> a
    171:173:com.android.tools.r8.ir.code.Value canonical(com.android.tools.r8.ir.code.Value):280:282 -> a
com.android.tools.r8.ir.desugar.AccessorMethodSourceCode -> com.android.tools.r8.ir.desugar.a:
    boolean $assertionsDisabled -> q
    1:1:void <clinit>():21:21 -> <clinit>
    1:6:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.Position):24:29 -> <init>
    1:12:com.android.tools.r8.ir.code.Invoke$Type inferInvokeType():72:83 -> a
    1:12:void lambda$prepareInstructions$1(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):117 -> a
    13:13:com.android.tools.r8.ir.code.Invoke$Type inferInvokeType():81:81 -> a
    13:13:void lambda$prepareInstructions$1(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):117 -> a
    14:14:com.android.tools.r8.ir.code.Invoke$Type inferInvokeType():79:79 -> a
    14:14:void lambda$prepareInstructions$1(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):117 -> a
    15:17:com.android.tools.r8.ir.code.Invoke$Type inferInvokeType():74:76 -> a
    15:17:void lambda$prepareInstructions$1(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):117 -> a
    18:18:void lambda$prepareInstructions$1(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):117:117 -> a
    19:19:void lambda$prepareInstructions$1(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):116:116 -> a
    20:20:void lambda$prepareInstructions$0(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder):100:100 -> a
    21:21:void lambda$prepareInstructions$2(java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):129:129 -> a
    22:22:void lambda$prepareInstructions$3(int,com.android.tools.r8.ir.conversion.IRBuilder):133:133 -> a
    1:1:void lambda$prepareInstructions$4(int,com.android.tools.r8.ir.conversion.IRBuilder):134:134 -> b
    1:46:void prepareInstructions():89:134 -> f
    1:21:boolean checkSignatures():33:53 -> j
    1:1:boolean delegatingToConstructor():68:68 -> k
com.android.tools.r8.ir.desugar.ClassProcessor -> com.android.tools.r8.ir.desugar.b:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> b
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set processedClasses -> d
    com.android.tools.r8.ir.desugar.InterfaceMethodRewriter rewriter -> c
    boolean $assertionsDisabled -> f
    java.util.Map createdMethods -> e
    1:1:void <clinit>():30:30 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter):40:40 -> <init>
    2:9:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter):36:43 -> <init>
    1:1:java.util.Set getForwardMethods():47:47 -> a
    2:27:void process(com.android.tools.r8.graph.DexClass):51:76 -> a
    28:34:void process(com.android.tools.r8.graph.DexClass):73:79 -> a
    35:122:java.util.List collectMethodsToImplement(com.android.tools.r8.graph.DexClass):138:225 -> a
    35:122:void process(com.android.tools.r8.graph.DexClass):88 -> a
    123:135:void process(com.android.tools.r8.graph.DexClass):89:101 -> a
    136:147:com.android.tools.r8.graph.DexEncodedMethod addForwardingMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):105:116 -> a
    148:156:com.android.tools.r8.ir.conversion.SourceCode lambda$addForwardingMethod$0(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Position):123:131 -> a
    157:176:void hideCandidates(java.util.List,java.util.List,java.util.List):235:254 -> a
com.android.tools.r8.ir.desugar.CovariantReturnTypeAnnotationTransformer -> com.android.tools.r8.ir.desugar.c:
    com.android.tools.r8.graph.DexItemFactory factory -> b
    com.android.tools.r8.ir.conversion.IRConverter converter -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():50:50 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexItemFactory):54:56 -> <init>
    1:3:void process(com.android.tools.r8.graph.DexApplication$Builder):61:63 -> a
    4:6:void buildCovariantReturnTypeMethodsForClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):109:111 -> a
    4:6:void process(com.android.tools.r8.graph.DexApplication$Builder):65 -> a
    7:7:void buildCovariantReturnTypeMethodsForMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,java.util.List):131:131 -> a
    7:7:void buildCovariantReturnTypeMethodsForClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):112 -> a
    7:7:void process(com.android.tools.r8.graph.DexApplication$Builder):65 -> a
    8:11:java.util.Set getCovariantReturnTypes(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):185:188 -> a
    8:11:void buildCovariantReturnTypeMethodsForMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,java.util.List):132 -> a
    8:11:void buildCovariantReturnTypeMethodsForClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):112 -> a
    8:11:void process(com.android.tools.r8.graph.DexApplication$Builder):65 -> a
    12:15:void buildCovariantReturnTypeMethodsForMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,java.util.List):132:135 -> a
    12:15:void buildCovariantReturnTypeMethodsForClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):112 -> a
    12:15:void process(com.android.tools.r8.graph.DexApplication$Builder):65 -> a
    16:23:void process(com.android.tools.r8.graph.DexApplication$Builder):67:74 -> a
    24:24:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):84:84 -> a
    25:26:boolean hasVirtualMethodWithSignature(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):256:257 -> a
    25:26:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):85 -> a
    27:31:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):86:90 -> a
    32:44:void updateClass(com.android.tools.r8.graph.DexClass,java.util.List,java.util.List):87:99 -> a
    45:46:boolean methodHasCovariantReturnTypeAnnotation(com.android.tools.r8.graph.DexEncodedMethod):118:119 -> a
    47:73:com.android.tools.r8.graph.DexEncodedMethod buildCovariantReturnTypeMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):146:172 -> a
    74:74:boolean lambda$buildCovariantReturnTypeMethod$1(com.android.tools.r8.graph.DexAnnotation):157:157 -> a
    75:75:com.android.tools.r8.ir.conversion.SourceCode lambda$buildCovariantReturnTypeMethod$2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Position):161:161 -> a
    76:91:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):200:215 -> a
    92:96:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):207:211 -> a
    97:123:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):208:234 -> a
    124:128:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):222:226 -> a
    129:152:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):223:246 -> a
    153:153:void getCovariantReturnTypesFromAnnotation(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedAnnotation,java.util.Set):243:243 -> a
    154:154:boolean isCovariantReturnTypeAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation):251:251 -> a
    1:1:boolean lambda$updateClass$0(com.android.tools.r8.graph.DexAnnotation):96:96 -> b
com.android.tools.r8.ir.desugar.DefaultMethodsHelper -> com.android.tools.r8.ir.desugar.f:
    java.util.Set candidates -> a
    java.util.Set hidden -> b
    1:5:void <init>():19:23 -> <init>
    1:2:void merge(com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection):62:63 -> a
    3:8:void hideMatches(com.android.tools.r8.graph.DexMethod):67:72 -> a
    9:9:void addDefaultMethod(com.android.tools.r8.graph.DexEncodedMethod):78:78 -> a
    10:43:java.util.List createCandidatesList():83:116 -> a
    1:8:java.util.List createFullList():123:130 -> b
    1:3:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection wrapInCollection():136:138 -> c
com.android.tools.r8.ir.desugar.DefaultMethodsHelper$1 -> com.android.tools.r8.ir.desugar.d:
com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection -> com.android.tools.r8.ir.desugar.e:
    java.util.List hidden -> b
    java.util.List live -> a
    com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection EMPTY -> c
    1:2:void <clinit>():31:32 -> <clinit>
    1:3:void <init>(java.util.List,java.util.List):39:41 -> <init>
    4:6:void <init>(java.util.List,java.util.List):39:41 -> <init>
    4:6:void <init>(java.util.List,java.util.List,com.android.tools.r8.ir.desugar.DefaultMethodsHelper$1):30 -> <init>
    1:1:java.util.List access$000(com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection):30:30 -> a
    2:4:com.android.tools.r8.graph.DexMethod getSingleCandidate(com.android.tools.r8.graph.DexMethod):48:50 -> a
    1:1:java.util.List access$100(com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection):30:30 -> b
com.android.tools.r8.ir.desugar.InterfaceMethodRewriter -> com.android.tools.r8.ir.desugar.h:
    java.util.Set reportedMissing -> h
    com.android.tools.r8.graph.DexItemFactory factory -> d
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> i
    java.util.Set synthesizedMethods -> e
    java.util.concurrent.ConcurrentMap requiredDispatchClasses -> g
    com.android.tools.r8.utils.InternalOptions options -> c
    java.util.Map cache -> f
    com.android.tools.r8.ir.conversion.IRConverter converter -> b
    1:1:void <clinit>():73:73 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):116:116 -> <init>
    2:35:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):88:121 -> <init>
    1:56:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):127:182 -> a
    57:57:com.android.tools.r8.graph.DexMethod staticAsMethodOfDispatchClass(com.android.tools.r8.graph.DexMethod):336:336 -> a
    57:57:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):183 -> a
    58:58:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):184:184 -> a
    59:67:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):182:190 -> a
    68:68:com.android.tools.r8.graph.DexMethod staticAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):331:331 -> a
    68:68:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):191 -> a
    69:69:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):192:192 -> a
    70:98:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):190:218 -> a
    99:100:com.android.tools.r8.graph.DexMethod amendDefaultMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):361:362 -> a
    99:100:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):218 -> a
    101:101:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):219:219 -> a
    102:102:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):368:368 -> a
    102:102:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):220 -> a
    103:103:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):221:221 -> a
    104:143:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):219:258 -> a
    144:144:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):368:368 -> a
    144:144:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):259 -> a
    145:145:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):260:260 -> a
    146:155:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):258:267 -> a
    156:156:com.android.tools.r8.graph.DexMethod privateAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):374:374 -> a
    156:156:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):268 -> a
    157:157:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):269:269 -> a
    158:158:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):267:267 -> a
    159:161:void rewriteMethodReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):240:242 -> a
    162:162:java.util.Set lambda$rewriteMethodReferences$0(com.android.tools.r8.graph.DexLibraryClass):186:186 -> a
    163:172:void reportStaticInterfaceMethodHandle(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethodHandle):278:287 -> a
    173:177:com.android.tools.r8.graph.DexType getCompanionClassType(com.android.tools.r8.graph.DexType):294:298 -> a
    178:186:com.android.tools.r8.graph.DexMethod instanceAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,java.lang.String):346:354 -> a
    187:187:com.android.tools.r8.graph.DexMethod instanceAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod,java.lang.String):352:352 -> a
    188:188:com.android.tools.r8.graph.DexMethod defaultAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):368:368 -> a
    189:189:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):388:388 -> a
    190:196:java.util.Set processClasses(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor):439:445 -> a
    190:196:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):388 -> a
    197:203:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):388:394 -> a
    204:217:java.util.Map processInterfaces(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor):422:435 -> a
    204:217:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):395 -> a
    218:222:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):395:399 -> a
    223:223:boolean isInMainDexList(com.android.tools.r8.graph.DexType):325:325 -> a
    223:223:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):399 -> a
    224:228:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):399:403 -> a
    229:231:void clear():410:412 -> a
    229:231:void desugarInterfaceMethods(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,java.util.concurrent.ExecutorService):406 -> a
    232:233:boolean shouldProcess(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor,boolean):417:418 -> a
    234:248:boolean isDefaultMethod(com.android.tools.r8.graph.DexEncodedMethod):449:463 -> a
    249:249:boolean isDefaultMethod(com.android.tools.r8.graph.DexEncodedMethod):456:456 -> a
    250:264:void warnMissingType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):493:507 -> a
    265:265:void warnMissingType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):506:506 -> a
    266:266:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):523:523 -> a
    267:268:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):536:537 -> a
    267:268:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):527 -> a
    269:286:void warnMissingInterface(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):471:488 -> a
    269:286:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):539 -> a
    269:286:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):527 -> a
    287:287:void warnMissingInterface(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):487:487 -> a
    287:287:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):539 -> a
    287:287:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):527 -> a
    288:322:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):540:574 -> a
    288:322:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):527 -> a
    323:323:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):528:528 -> a
    324:326:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection createInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):544:546 -> a
    324:326:com.android.tools.r8.ir.desugar.DefaultMethodsHelper$Collection getOrCreateInterfaceInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):527 -> a
    1:5:com.android.tools.r8.graph.DexType getDispatchClassType(com.android.tools.r8.graph.DexType):303:307 -> b
    6:6:com.android.tools.r8.graph.DexMethod privateAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):374:374 -> b
    1:1:boolean hasDispatchClassSuffix(com.android.tools.r8.graph.DexType):341:341 -> c
    2:2:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):511:511 -> c
    3:3:boolean isCompanionClassType(com.android.tools.r8.graph.DexType):312:312 -> c
    3:3:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):512 -> c
    4:4:com.android.tools.r8.graph.DexType getInterfaceClassType(com.android.tools.r8.graph.DexType):317:317 -> c
    4:4:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):513 -> c
    5:5:boolean isCompanionClassType(com.android.tools.r8.graph.DexType):312:312 -> c
    5:5:com.android.tools.r8.graph.DexType getInterfaceClassType(com.android.tools.r8.graph.DexType):317 -> c
    5:5:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):513 -> c
    6:9:com.android.tools.r8.graph.DexType getInterfaceClassType(com.android.tools.r8.graph.DexType):317:320 -> c
    6:9:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):513 -> c
    10:12:com.android.tools.r8.graph.DexType getInterfaceClassType(com.android.tools.r8.graph.DexType):319:321 -> c
    10:12:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):513 -> c
    13:14:com.android.tools.r8.origin.Origin getMethodOrigin(com.android.tools.r8.graph.DexMethod):515:516 -> c
com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor -> com.android.tools.r8.ir.desugar.g:
    com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor ExcludeDexResources -> b
    com.android.tools.r8.ir.desugar.InterfaceMethodRewriter$Flavor IncludeAllResources -> a
    1:5:void <clinit>():109:113 -> <clinit>
    6:6:void <clinit>():105:105 -> <clinit>
    1:1:void <init>(java.lang.String,int):105:105 -> <init>
com.android.tools.r8.ir.desugar.InterfaceProcessor -> com.android.tools.r8.ir.desugar.i:
    java.util.Map syntheticClasses -> c
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.desugar.InterfaceMethodRewriter rewriter -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():51:51 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter):59:59 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.InterfaceMethodRewriter):57:61 -> <init>
    1:9:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):65:73 -> a
    10:21:boolean canMoveToCompanionClass(com.android.tools.r8.graph.DexEncodedMethod):283:294 -> a
    10:21:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):74 -> a
    22:36:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):80:94 -> a
    37:47:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):93:103 -> a
    48:49:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):84:85 -> a
    50:51:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):75:76 -> a
    52:77:boolean interfaceMethodRemovalChangesApi(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass):307:332 -> a
    52:77:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):107 -> a
    78:97:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):108:127 -> a
    98:101:boolean isStaticMethod(com.android.tools.r8.graph.DexEncodedMethod):340:343 -> a
    98:101:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):128 -> a
    102:105:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):129:132 -> a
    106:106:com.android.tools.r8.graph.DexMethod com.android.tools.r8.ir.desugar.InterfaceMethodRewriter.staticAsMethodOfCompanionClass(com.android.tools.r8.graph.DexMethod):331:331 -> a
    106:106:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):132 -> a
    107:108:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):133:134 -> a
    109:129:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):133:153 -> a
    130:135:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):152:157 -> a
    136:151:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):147:162 -> a
    152:152:boolean isStaticMethod(com.android.tools.r8.graph.DexEncodedMethod):341:341 -> a
    152:152:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):128 -> a
    153:190:void process(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.GraphLense$Builder):166:203 -> a
    191:215:java.util.List process(com.android.tools.r8.graph.DexLibraryClass,java.util.Set):207:231 -> a
    216:216:com.android.tools.r8.graph.DexMethod com.android.tools.r8.ir.desugar.InterfaceMethodRewriter.staticAsMethodOfDispatchClass(com.android.tools.r8.graph.DexMethod):336:336 -> a
    216:216:java.util.List process(com.android.tools.r8.graph.DexLibraryClass,java.util.Set):231 -> a
    217:236:java.util.List process(com.android.tools.r8.graph.DexLibraryClass,java.util.Set):232:251 -> a
    237:291:java.util.List process(com.android.tools.r8.graph.DexLibraryClass,java.util.Set):224:278 -> a
    292:292:com.android.tools.r8.ir.conversion.SourceCode lambda$process$0(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):241:241 -> a
com.android.tools.r8.ir.desugar.Java8MethodRewriter -> com.android.tools.r8.ir.desugar.Java8MethodRewriter:
    com.android.tools.r8.graph.DexItemFactory factory -> d
    com.android.tools.r8.graph.AppView appView -> b
    boolean $assertionsDisabled -> g
    java.util.Set holders -> a
    java.util.Map methodGenerators -> f
    com.android.tools.r8.ir.conversion.IRConverter converter -> c
    com.android.tools.r8.ir.desugar.Java8MethodRewriter$RewritableMethods rewritableMethods -> e
    1:1:void <clinit>():46:46 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):58:58 -> <init>
    2:15:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):49:62 -> <init>
    1:9:void desugar(com.android.tools.r8.ir.code.IRCode):66:74 -> a
    10:12:com.android.tools.r8.ir.desugar.Java8MethodRewriter$RewritableMethods$MethodGenerator getMethodGeneratorOrNull(com.android.tools.r8.graph.DexMethod):155:157 -> a
    10:12:void desugar(com.android.tools.r8.ir.code.IRCode):74 -> a
    13:15:void desugar(com.android.tools.r8.ir.code.IRCode):78:80 -> a
    16:20:void desugar(com.android.tools.r8.ir.code.IRCode):78:82 -> a
    21:21:boolean hasJava8MethodRewritePrefix(com.android.tools.r8.graph.DexType):96:96 -> a
    22:28:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):102:108 -> a
    29:31:java.util.Collection findSynthesizedFrom(com.android.tools.r8.graph.DexApplication$Builder,com.android.tools.r8.graph.DexType):87:89 -> a
    29:31:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):110 -> a
    32:71:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):111:150 -> a
    72:72:boolean lambda$synthesizeUtilityClass$0(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.DexProgramClass):147:147 -> a
com.android.tools.r8.ir.desugar.Java8MethodRewriter$BooleanMethods -> com.android.tools.r8.ir.desugar.Java8MethodRewriter$BooleanMethods:
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,java.lang.String):324:324 -> <init>
    1:1:com.android.tools.r8.ir.desugar.Java8MethodRewriter$BooleanMethods hashCodeCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):328:328 -> hashCodeCode
    1:1:int hashCodeImpl(boolean):344:344 -> hashCodeImpl
    1:1:com.android.tools.r8.ir.desugar.Java8MethodRewriter$BooleanMethods logicalAndCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):332:332 -> logicalAndCode
    1:1:com.android.tools.r8.ir.desugar.Java8MethodRewriter$BooleanMethods logicalOrCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):336:336 -> logicalOrCode
    1:1:com.android.tools.r8.ir.desugar.Java8MethodRewriter$BooleanMethods logicalXorCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):340:340 -> logicalXorCode
com.android.tools.r8.ir.desugar.Java8MethodRewriter$ByteMethods -> com.android.tools.r8.ir.desugar.Java8MethodRewriter$ByteMethods:
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,java.lang.String):163:163 -> <init>
    1:1:com.android.tools.r8.ir.desugar.Java8MethodRewriter$ByteMethods hashCodeCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):167:167 -> hashCodeCode
    1:1:int hashCodeImpl(byte):171:171 -> hashCodeImpl
com.android.tools.r8.ir.desugar.Java8MethodRewriter$DoubleMethods -> com.android.tools.r8.ir.desugar.Java8MethodRewriter$DoubleMethods:
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,java.lang.String):230:230 -> <init>
    1:1:com.android.tools.r8.ir.desugar.Java8MethodRewriter$DoubleMethods hashCodeCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):234:234 -> hashCodeCode
    1:1:int hashCodeImpl(double):254:254 -> hashCodeImpl
    1:1:com.android.tools.r8.ir.desugar.Java8MethodRewriter$DoubleMethods isFiniteCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):250:250 -> isFiniteCode
    1:2:boolean isFiniteImpl(double):270:271 -> isFiniteImpl
    1:1:com.android.tools.r8.ir.desugar.Java8MethodRewriter$DoubleMethods maxCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):238:238 -> maxCode
    1:1:double maxImpl(double,double):258:258 -> maxImpl
    1:1:com.android.tools.r8.ir.desugar.Java8MethodRewriter$DoubleMethods minCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):242:242 -> minCode
    1:1:double minImpl(double,double):262:262 -> minImpl
    1:1:com.android.tools.r8.ir.desugar.Java8MethodRewriter$DoubleMethods sumCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):246:246 -> sumCode
com.android.tools.r8.ir.desugar.Java8MethodRewriter$FloatMethods -> com.android.tools.r8.ir.desugar.Java8MethodRewriter$FloatMethods:
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,java.lang.String):277:277 -> <init>
    1:1:com.android.tools.r8.ir.desugar.Java8MethodRewriter$FloatMethods hashCodeCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):281:281 -> hashCodeCode
    1:1:int hashCodeImpl(float):301:301 -> hashCodeImpl
    1:1:com.android.tools.r8.ir.desugar.Java8MethodRewriter$FloatMethods isFiniteCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):297:297 -> isFiniteCode
    1:2:boolean isFiniteImpl(float):317:318 -> isFiniteImpl
    1:1:com.android.tools.r8.ir.desugar.Java8MethodRewriter$FloatMethods maxCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):285:285 -> maxCode
    1:1:float maxImpl(float,float):305:305 -> maxImpl
    1:1:com.android.tools.r8.ir.desugar.Java8MethodRewriter$FloatMethods minCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):289:289 -> minCode
    1:1:float minImpl(float,float):309:309 -> minImpl
    1:1:com.android.tools.r8.ir.desugar.Java8MethodRewriter$FloatMethods sumCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):293:293 -> sumCode
com.android.tools.r8.ir.desugar.Java8MethodRewriter$IntegerMethods -> com.android.tools.r8.ir.desugar.Java8MethodRewriter$IntegerMethods:
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,java.lang.String):192:192 -> <init>
    1:1:com.android.tools.r8.ir.desugar.Java8MethodRewriter$IntegerMethods hashCodeCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):196:196 -> hashCodeCode
    1:1:int hashCodeImpl(int):212:212 -> hashCodeImpl
    1:1:com.android.tools.r8.ir.desugar.Java8MethodRewriter$IntegerMethods maxCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):200:200 -> maxCode
    1:1:int maxImpl(int,int):216:216 -> maxImpl
    1:1:com.android.tools.r8.ir.desugar.Java8MethodRewriter$IntegerMethods minCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):204:204 -> minCode
    1:1:int minImpl(int,int):220:220 -> minImpl
    1:1:com.android.tools.r8.ir.desugar.Java8MethodRewriter$IntegerMethods sumCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):208:208 -> sumCode
com.android.tools.r8.ir.desugar.Java8MethodRewriter$RewritableMethods -> com.android.tools.r8.ir.desugar.Java8MethodRewriter$a:
    java.util.Map rewritable -> a
    1:137:void <init>(com.android.tools.r8.graph.DexItemFactory):365:501 -> <init>
    1:1:java.util.Map addOrGetClass(com.android.tools.r8.graph.DexString):505:505 -> a
    2:2:java.util.Map addOrGetMethod(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString):510:510 -> a
    3:7:com.android.tools.r8.ir.desugar.Java8MethodRewriter$RewritableMethods$MethodGenerator getGenerator(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto):514:518 -> a
    1:1:java.util.Map lambda$addOrGetClass$0(com.android.tools.r8.graph.DexString):505:505 -> b
    1:1:java.util.Map lambda$addOrGetMethod$1(com.android.tools.r8.graph.DexString):510:510 -> c
com.android.tools.r8.ir.desugar.Java8MethodRewriter$RewritableMethods$MethodGenerator -> com.android.tools.r8.ir.desugar.j:
    com.android.tools.r8.graph.DexString clazz -> b
    com.android.tools.r8.graph.DexString method -> c
    com.android.tools.r8.graph.DexProto proto -> d
    java.util.function.BiFunction generator -> a
    com.android.tools.r8.graph.DexMethod dexMethod -> e
    1:5:void <init>(java.util.function.BiFunction,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto):533:537 -> <init>
    1:8:com.android.tools.r8.graph.DexMethod generateMethod(com.android.tools.r8.graph.DexItemFactory):541:548 -> a
    9:9:com.android.tools.r8.ir.synthetic.TemplateMethodCode generateTemplateMethod(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):552:552 -> a
com.android.tools.r8.ir.desugar.Java8MethodRewriter$ShortMethods -> com.android.tools.r8.ir.desugar.Java8MethodRewriter$ShortMethods:
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,java.lang.String):178:178 -> <init>
    1:1:com.android.tools.r8.ir.desugar.Java8MethodRewriter$ShortMethods hashCodeCode(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):182:182 -> hashCodeCode
    1:1:int hashCodeImpl(short):186:186 -> hashCodeImpl
com.android.tools.r8.ir.desugar.LambdaBridgeMethodSourceCode -> com.android.tools.r8.ir.desugar.k:
    com.android.tools.r8.graph.DexMethod mainMethod -> q
    1:1:void com.android.tools.r8.ir.desugar.SynthesizedLambdaSourceCode.<init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):29:29 -> <init>
    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):23 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):24:24 -> <init>
    1:1:void lambda$prepareInstructions$0(java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):51:51 -> a
    2:2:void lambda$prepareInstructions$1(int,com.android.tools.r8.ir.conversion.IRBuilder):65:65 -> a
    1:1:void lambda$prepareInstructions$2(int,com.android.tools.r8.ir.conversion.IRBuilder):66:66 -> b
    1:17:void prepareInstructions():29:45 -> f
    18:40:void prepareInstructions():44:66 -> f
com.android.tools.r8.ir.desugar.LambdaClass -> com.android.tools.r8.ir.desugar.l:
    java.util.concurrent.atomic.AtomicBoolean addToMainDexList -> h
    com.android.tools.r8.graph.DexField instanceField -> f
    com.android.tools.r8.ir.desugar.LambdaClass$Target target -> g
    boolean $assertionsDisabled -> k
    java.util.function.Supplier lazyDexClass -> j
    com.android.tools.r8.ir.desugar.LambdaRewriter rewriter -> a
    com.android.tools.r8.graph.DexType type -> b
    com.android.tools.r8.ir.desugar.LambdaDescriptor descriptor -> c
    com.android.tools.r8.graph.DexMethod classConstructor -> e
    com.android.tools.r8.graph.DexMethod constructor -> d
    java.util.Collection synthesizedFrom -> i
    1:1:void <clinit>():59:59 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):74:74 -> <init>
    2:20:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):68:86 -> <init>
    21:21:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):307:307 -> <init>
    21:21:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):89 -> <init>
    22:61:com.android.tools.r8.ir.desugar.LambdaClass$Target createLambdaImplMethodTarget(com.android.tools.r8.graph.DexType):330:369 -> <init>
    22:61:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):308 -> <init>
    22:61:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):89 -> <init>
    62:62:com.android.tools.r8.ir.desugar.LambdaClass$Target createLambdaImplMethodTarget(com.android.tools.r8.graph.DexType):368:368 -> <init>
    62:62:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):308 -> <init>
    62:62:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):89 -> <init>
    63:63:com.android.tools.r8.ir.desugar.LambdaClass$Target createLambdaImplMethodTarget(com.android.tools.r8.graph.DexType):367:367 -> <init>
    63:63:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):308 -> <init>
    63:63:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):89 -> <init>
    64:77:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):312:325 -> <init>
    64:77:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):89 -> <init>
    78:78:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):314:314 -> <init>
    78:78:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):89 -> <init>
    79:81:com.android.tools.r8.ir.desugar.LambdaClass$Target createInterfaceMethodTarget(com.android.tools.r8.graph.DexType):445:447 -> <init>
    79:81:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):316 -> <init>
    79:81:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):89 -> <init>
    82:99:com.android.tools.r8.ir.desugar.LambdaClass$Target createConstructorTarget(com.android.tools.r8.graph.DexType):422:439 -> <init>
    82:99:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):318 -> <init>
    82:99:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):89 -> <init>
    100:102:com.android.tools.r8.ir.desugar.LambdaClass$Target createConstructorTarget(com.android.tools.r8.graph.DexType):438:440 -> <init>
    100:102:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):318 -> <init>
    100:102:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):89 -> <init>
    103:104:com.android.tools.r8.ir.desugar.LambdaClass$Target createInstanceMethodTarget(com.android.tools.r8.graph.DexType):376:377 -> <init>
    103:104:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):323 -> <init>
    103:104:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):89 -> <init>
    105:126:com.android.tools.r8.ir.desugar.LambdaClass$Target createInstanceMethodTarget(com.android.tools.r8.graph.DexType):376:397 -> <init>
    105:126:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):323 -> <init>
    105:126:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):89 -> <init>
    127:130:com.android.tools.r8.ir.desugar.LambdaClass$Target createInstanceMethodTarget(com.android.tools.r8.graph.DexType):396:399 -> <init>
    127:130:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):323 -> <init>
    127:130:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):89 -> <init>
    131:141:com.android.tools.r8.ir.desugar.LambdaClass$Target createStaticMethodTarget(com.android.tools.r8.graph.DexType):405:415 -> <init>
    131:141:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):320 -> <init>
    131:141:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):89 -> <init>
    142:144:com.android.tools.r8.ir.desugar.LambdaClass$Target createStaticMethodTarget(com.android.tools.r8.graph.DexType):414:416 -> <init>
    142:144:com.android.tools.r8.ir.desugar.LambdaClass$Target createTarget(com.android.tools.r8.graph.DexType):320 -> <init>
    142:144:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):89 -> <init>
    145:154:void <init>(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):89:98 -> <init>
    1:21:com.android.tools.r8.graph.DexType createLambdaClassType(com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.desugar.LambdaDescriptor):104:124 -> a
    22:22:com.android.tools.r8.graph.DexProgramClass getLambdaClass():128:128 -> a
    23:24:com.android.tools.r8.graph.DexField getCaptureField(int):168:169 -> a
    25:25:com.android.tools.r8.graph.DexField getCaptureField(int):168:168 -> a
    26:33:void addSynthesizedFrom(com.android.tools.r8.graph.DexProgramClass):177:184 -> a
    34:62:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeVirtualMethods(com.android.tools.r8.graph.DexMethod):189:217 -> a
    63:63:com.android.tools.r8.ir.conversion.SourceCode lambda$synthesizeVirtualMethods$0(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):202:202 -> a
    64:64:com.android.tools.r8.ir.conversion.SourceCode lambda$synthesizeVirtualMethods$1(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):220:220 -> a
    65:65:com.android.tools.r8.ir.conversion.SourceCode lambda$synthesizeDirectMethods$2(com.android.tools.r8.ir.code.Position):242:242 -> a
    1:1:boolean isStateless():173:173 -> b
    2:2:boolean com.android.tools.r8.ir.desugar.LambdaDescriptor.isStateless():162:162 -> b
    2:2:boolean isStateless():173 -> b
    3:3:com.android.tools.r8.ir.conversion.SourceCode lambda$synthesizeDirectMethods$3(com.android.tools.r8.ir.code.Position):254:254 -> b
    1:1:com.android.tools.r8.graph.DexString generateUniqueLambdaMethodName():451:451 -> c
    1:25:com.android.tools.r8.graph.DexEncodedMethod[] synthesizeDirectMethods():228:252 -> d
    1:11:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():132:142 -> e
    12:15:com.android.tools.r8.graph.DexTypeList buildInterfaces():298:301 -> e
    12:15:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():145 -> e
    16:20:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():145:149 -> e
    21:36:com.android.tools.r8.graph.DexEncodedField[] synthesizeStaticFields():276:291 -> e
    21:36:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():150 -> e
    37:45:com.android.tools.r8.graph.DexEncodedField[] synthesizeInstanceFields():261:269 -> e
    37:45:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():151 -> e
    46:57:com.android.tools.r8.graph.DexProgramClass synthesizeLambdaClass():152:163 -> e
com.android.tools.r8.ir.desugar.LambdaClass$ClassMethodWithAccessorTarget -> com.android.tools.r8.ir.desugar.l$a:
    boolean $assertionsDisabled -> f
    com.android.tools.r8.ir.desugar.LambdaClass this$0 -> e
    1:1:void <clinit>():609:609 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod):611:612 -> <init>
    1:1:boolean ensureAccessibility():618:618 -> a
    2:2:com.android.tools.r8.graph.DexProgramClass com.android.tools.r8.ir.desugar.LambdaClass$Target.programDefinitionFor(com.android.tools.r8.graph.DexType):478:478 -> a
    2:2:boolean ensureAccessibility():618 -> a
    3:26:boolean ensureAccessibility():619:642 -> a
    27:27:boolean ensureAccessibility():640:640 -> a
    28:28:com.android.tools.r8.ir.conversion.SourceCode lambda$ensureAccessibility$0(com.android.tools.r8.ir.code.Position):635:635 -> a
com.android.tools.r8.ir.desugar.LambdaClass$InstanceLambdaImplTarget -> com.android.tools.r8.ir.desugar.m:
    com.android.tools.r8.ir.desugar.LambdaClass this$0 -> e
    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod):568:569 -> <init>
    1:24:boolean ensureAccessibility():576:599 -> a
com.android.tools.r8.ir.desugar.LambdaClass$InterfaceLambdaImplTarget -> com.android.tools.r8.ir.desugar.n:
    boolean $assertionsDisabled -> f
    com.android.tools.r8.ir.desugar.LambdaClass this$0 -> e
    1:1:void <clinit>():517:517 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod):519:520 -> <init>
    1:28:boolean ensureAccessibility():527:554 -> a
    29:36:boolean ensureAccessibility():553:560 -> a
com.android.tools.r8.ir.desugar.LambdaClass$NoAccessorMethodTarget -> com.android.tools.r8.ir.desugar.o:
    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.Invoke$Type):486:486 -> <init>
    boolean ensureAccessibility() -> a
com.android.tools.r8.ir.desugar.LambdaClass$StaticLambdaImplTarget -> com.android.tools.r8.ir.desugar.p:
    boolean $assertionsDisabled -> f
    com.android.tools.r8.ir.desugar.LambdaClass this$0 -> e
    1:1:void <clinit>():496:496 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass):498:499 -> <init>
    1:5:boolean ensureAccessibility():505:509 -> a
com.android.tools.r8.ir.desugar.LambdaClass$Target -> com.android.tools.r8.ir.desugar.q:
    com.android.tools.r8.ir.code.Invoke$Type invokeType -> b
    com.android.tools.r8.ir.desugar.LambdaClass this$0 -> c
    com.android.tools.r8.graph.DexMethod callTarget -> a
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():458:458 -> <clinit>
    1:5:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):463:467 -> <init>
    boolean ensureAccessibility() -> a
    1:1:com.android.tools.r8.graph.DexClass definitionFor(com.android.tools.r8.graph.DexType):474:474 -> a
com.android.tools.r8.ir.desugar.LambdaClassConstructorSourceCode -> com.android.tools.r8.ir.desugar.r:
    boolean $assertionsDisabled -> q
    1:1:void <clinit>():15:15 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.Position):18:19 -> <init>
    1:1:void lambda$prepareInstructions$0(int,com.android.tools.r8.ir.conversion.IRBuilder):26:26 -> a
    1:6:void lambda$prepareInstructions$1(int,com.android.tools.r8.ir.conversion.IRBuilder):29:34 -> b
    7:7:void lambda$prepareInstructions$1(int,com.android.tools.r8.ir.conversion.IRBuilder):29:29 -> b
    1:1:void lambda$prepareInstructions$2(int,com.android.tools.r8.ir.conversion.IRBuilder):38:38 -> c
    1:17:void prepareInstructions():25:41 -> f
com.android.tools.r8.ir.desugar.LambdaConstructorSourceCode -> com.android.tools.r8.ir.desugar.s:
    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.Position):19:19 -> <init>
    1:5:void lambda$prepareInstructions$0(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder):28:32 -> a
    6:6:void lambda$prepareInstructions$0(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder):28:28 -> a
    7:7:void lambda$prepareInstructions$1(int,com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.conversion.IRBuilder):42:42 -> a
    1:8:boolean equals(java.lang.Object):61:68 -> equals
    1:23:void prepareInstructions():25:47 -> f
    1:2:int hashCode():55:56 -> hashCode
com.android.tools.r8.ir.desugar.LambdaDescriptor -> com.android.tools.r8.ir.desugar.t:
    java.util.Set bridges -> g
    com.android.tools.r8.graph.DexString name -> b
    com.android.tools.r8.ir.desugar.LambdaDescriptor MATCH_FAILED -> j
    com.android.tools.r8.graph.DexProto erasedProto -> c
    java.util.List interfaces -> f
    com.android.tools.r8.graph.DexProto enforcedProto -> d
    boolean $assertionsDisabled -> k
    com.android.tools.r8.graph.DexMethodHandle implHandle -> e
    java.lang.String uniqueId -> a
    com.android.tools.r8.graph.DexTypeList captures -> h
    com.android.tools.r8.graph.DexEncodedMethod targetMethod -> i
    1:8:void <clinit>():27:34 -> <clinit>
    1:1:void <init>():49:49 -> <init>
    2:16:void <init>():42:56 -> <init>
    17:17:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList):61:61 -> <init>
    18:54:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList):42:78 -> <init>
    55:89:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfo):93:127 -> <init>
    55:89:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList):79 -> <init>
    90:91:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfo):121:122 -> <init>
    90:91:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList):79 -> <init>
    92:93:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfo):115:116 -> <init>
    92:93:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList):79 -> <init>
    94:101:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfo):97:104 -> <init>
    94:101:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList):79 -> <init>
    102:102:boolean isPublicizedInstanceMethod(com.android.tools.r8.graph.DexEncodedMethod):143:143 -> <init>
    102:102:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfo):104 -> <init>
    102:102:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList):79 -> <init>
    103:112:com.android.tools.r8.graph.DexEncodedMethod lookupTargetMethod(com.android.tools.r8.graph.AppInfo):101:110 -> <init>
    103:112:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList):79 -> <init>
    113:113:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexTypeList):79:79 -> <init>
    1:2:boolean isInstanceMethod(com.android.tools.r8.graph.DexEncodedMethod):132:133 -> a
    3:4:boolean delegatesToLambdaImplMethod():156:157 -> a
    5:32:boolean needsAccessor(com.android.tools.r8.graph.DexType):167:194 -> a
    33:55:boolean needsAccessor(com.android.tools.r8.graph.DexType):193:215 -> a
    56:59:boolean needsAccessor(com.android.tools.r8.graph.DexType):214:217 -> a
    60:61:void lambda$infer$0(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):294:295 -> a
    62:66:java.util.List getInterfaces(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfo):346:350 -> a
    67:73:java.lang.Object getBootstrapArgument(java.util.List,int,java.lang.Class):355:361 -> a
    74:74:java.lang.Object getBootstrapArgument(java.util.List,int,java.lang.Class):356:356 -> a
    75:83:boolean isSameOrDerived(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):390:398 -> a
    84:87:boolean isSameOrDerived(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):397:400 -> a
    1:2:boolean isPrivateInstanceMethod(com.android.tools.r8.graph.DexEncodedMethod):137:138 -> b
    3:3:com.android.tools.r8.graph.MethodAccessFlags getAccessibility():147:147 -> b
    4:4:boolean targetFoundInClass(com.android.tools.r8.graph.DexType):151:151 -> b
    5:34:com.android.tools.r8.ir.desugar.LambdaDescriptor infer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfo):236:265 -> b
    35:45:boolean isEnforcedSignatureValid(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexProto):368:378 -> b
    35:45:com.android.tools.r8.ir.desugar.LambdaDescriptor infer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfo):265 -> b
    46:63:com.android.tools.r8.ir.desugar.LambdaDescriptor infer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfo):273:290 -> b
    64:94:void extractAltMetafactory(com.android.tools.r8.graph.DexItemFactory,java.util.List,java.util.function.Consumer,java.util.function.Consumer):311:341 -> b
    64:94:com.android.tools.r8.ir.desugar.LambdaDescriptor infer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfo):290 -> b
    95:96:com.android.tools.r8.ir.desugar.LambdaDescriptor infer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfo):267:268 -> b
    1:4:com.android.tools.r8.graph.DexType getImplReceiverType():85:88 -> c
    5:6:com.android.tools.r8.ir.desugar.LambdaDescriptor tryInfer(com.android.tools.r8.graph.DexCallSite,com.android.tools.r8.graph.AppInfo):225:226 -> c
com.android.tools.r8.ir.desugar.LambdaMainMethodSourceCode -> com.android.tools.r8.ir.desugar.u:
    boolean $assertionsDisabled -> q
    1:1:void <clinit>():25:25 -> <clinit>
    1:1:void com.android.tools.r8.ir.desugar.SynthesizedLambdaSourceCode.<init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):29:29 -> <init>
    1:1:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):28 -> <init>
    1:12:com.android.tools.r8.graph.DexType getBoxedForPrimitiveType(com.android.tools.r8.graph.DexType):61:72 -> a
    13:13:com.android.tools.r8.graph.DexType getBoxedForPrimitiveType(com.android.tools.r8.graph.DexType):70:70 -> a
    14:46:boolean isSameOrAdaptableTo(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):82:114 -> a
    47:47:com.android.tools.r8.graph.DexType getPrimitiveFromBoxed(com.android.tools.r8.graph.DexType):57:57 -> a
    47:47:boolean isSameOrAdaptableTo(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):121 -> a
    48:57:boolean isSameOrAdaptableTo(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):122:131 -> a
    58:58:boolean isSameOrAdaptableTo(byte,byte):156:156 -> a
    59:59:void lambda$prepareInstructions$0(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.conversion.IRBuilder):199:199 -> a
    60:60:void lambda$prepareInstructions$1(int,com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.conversion.IRBuilder):215:215 -> a
    61:61:void lambda$prepareInstructions$2(com.android.tools.r8.ir.desugar.LambdaClass$Target,com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):229:229 -> a
    62:67:int prepareReturnValue(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):261:266 -> a
    68:85:int adjustType(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,boolean):289:306 -> a
    86:86:com.android.tools.r8.graph.DexType getPrimitiveFromBoxed(com.android.tools.r8.graph.DexType):57:57 -> a
    86:86:int adjustType(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,boolean):308 -> a
    87:128:int adjustType(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,boolean):310:351 -> a
    129:129:void lambda$addPrimitiveWideningConversion$7(com.android.tools.r8.ir.code.NumericType,int,int,com.android.tools.r8.ir.conversion.IRBuilder):372:372 -> a
    130:130:void lambda$addPrimitiveWideningConversion$10(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int,com.android.tools.r8.ir.conversion.IRBuilder):405:405 -> a
    131:131:int castToBoxedType(int,com.android.tools.r8.graph.DexType):473:473 -> a
    132:132:void lambda$addPrimitiveBoxing$14(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):488:488 -> a
    133:133:void lambda$addPrimitiveBoxing$15(int,com.android.tools.r8.ir.conversion.IRBuilder):497:497 -> a
    1:1:void lambda$adjustType$6(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.conversion.IRBuilder):345:345 -> b
    2:2:void lambda$addPrimitiveWideningConversion$8(com.android.tools.r8.ir.code.NumericType,int,int,com.android.tools.r8.ir.conversion.IRBuilder):387:387 -> b
    3:3:void lambda$addPrimitiveWideningConversion$9(com.android.tools.r8.ir.code.NumericType,com.android.tools.r8.ir.code.NumericType,int,int,com.android.tools.r8.ir.conversion.IRBuilder):397:397 -> b
    4:4:void lambda$addPrimitiveUnboxing$11(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):458:458 -> b
    5:5:void lambda$addPrimitiveUnboxing$12(int,com.android.tools.r8.ir.conversion.IRBuilder):468:468 -> b
    6:24:int addPrimitiveBoxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):479:497 -> b
    1:1:void lambda$prepareInstructions$3(int,com.android.tools.r8.ir.conversion.IRBuilder):245:245 -> c
    2:2:int addPrimitiveUnboxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):452:452 -> c
    3:31:com.android.tools.r8.graph.DexMethod getUnboxMethod(byte,com.android.tools.r8.graph.DexType):419:447 -> c
    3:31:int addPrimitiveUnboxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):452 -> c
    32:48:com.android.tools.r8.graph.DexMethod getUnboxMethod(byte,com.android.tools.r8.graph.DexType):423:439 -> c
    32:48:int addPrimitiveUnboxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):452 -> c
    49:59:com.android.tools.r8.graph.DexMethod getUnboxMethod(byte,com.android.tools.r8.graph.DexType):435:445 -> c
    49:59:int addPrimitiveUnboxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):452 -> c
    60:61:com.android.tools.r8.graph.DexMethod getUnboxMethod(byte,com.android.tools.r8.graph.DexType):432:433 -> c
    60:61:int addPrimitiveUnboxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):452 -> c
    62:63:com.android.tools.r8.graph.DexMethod getUnboxMethod(byte,com.android.tools.r8.graph.DexType):426:427 -> c
    62:63:int addPrimitiveUnboxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):452 -> c
    64:78:int addPrimitiveUnboxing(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):454:468 -> c
    79:79:void lambda$castToBoxedType$13(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.conversion.IRBuilder):473:473 -> c
    1:1:void lambda$prepareInstructions$4(int,com.android.tools.r8.ir.conversion.IRBuilder):249:249 -> d
    2:52:int addPrimitiveWideningConversion(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):355:405 -> d
    53:58:int addPrimitiveWideningConversion(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):392:397 -> d
    59:63:int addPrimitiveWideningConversion(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):383:387 -> d
    64:64:int addPrimitiveWideningConversion(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):377:377 -> d
    65:112:int addPrimitiveWideningConversion(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):368:415 -> d
    1:1:void lambda$prepareInstructions$5(int,com.android.tools.r8.ir.conversion.IRBuilder):252:252 -> e
    1:28:void prepareInstructions():162:189 -> f
    29:46:boolean checkSignatures(com.android.tools.r8.graph.DexType[],com.android.tools.r8.graph.DexType[],com.android.tools.r8.graph.DexType,java.util.List,com.android.tools.r8.graph.DexType):34:51 -> f
    29:46:void prepareInstructions():187 -> f
    47:78:void prepareInstructions():192:223 -> f
    79:80:int prepareParameterValue(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):279:280 -> f
    79:80:void prepareInstructions():222 -> f
    81:111:void prepareInstructions():222:252 -> f
com.android.tools.r8.ir.desugar.LambdaRewriter -> com.android.tools.r8.ir.desugar.v:
    com.android.tools.r8.graph.DexItemFactory factory -> c
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.graph.DexString constructorName -> e
    boolean $assertionsDisabled -> k
    com.android.tools.r8.graph.DexString classConstructorName -> f
    com.android.tools.r8.graph.DexString instanceFieldName -> g
    java.util.Map knownCallSites -> i
    java.util.Map knownLambdaClasses -> j
    com.android.tools.r8.com.google.common.collect.BiMap methodMapping -> h
    com.android.tools.r8.graph.DexMethod objectInitMethod -> d
    com.android.tools.r8.ir.conversion.IRConverter converter -> b
    1:1:void <clinit>():49:49 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):85:85 -> <init>
    2:30:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):67:95 -> <init>
    1:10:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):104:113 -> a
    11:15:com.android.tools.r8.ir.desugar.LambdaDescriptor inferLambdaDescriptor(com.android.tools.r8.graph.DexCallSite):212:216 -> a
    11:15:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):112 -> a
    16:16:com.android.tools.r8.ir.desugar.LambdaDescriptor inferLambdaDescriptor(com.android.tools.r8.graph.DexCallSite):215:215 -> a
    16:16:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):112 -> a
    17:17:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):114:114 -> a
    18:25:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):226:233 -> a
    18:25:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):119 -> a
    26:26:boolean isInMainDexList(com.android.tools.r8.graph.DexType):220:220 -> a
    26:26:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):234 -> a
    26:26:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):119 -> a
    27:27:com.android.tools.r8.ir.desugar.LambdaClass getOrCreateLambdaClass(com.android.tools.r8.ir.desugar.LambdaDescriptor,com.android.tools.r8.graph.DexType):235:235 -> a
    27:27:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):119 -> a
    28:28:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):120:120 -> a
    29:44:void patchInstruction(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator):261:276 -> a
    29:44:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):125 -> a
    45:95:void patchInstruction(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator):275:325 -> a
    45:95:void desugarLambdas(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):125 -> a
    96:107:boolean removeLambdaDeserializationMethods(java.lang.Iterable):133:144 -> a
    108:114:void adjustAccessibility():163:169 -> a
    115:115:void adjustAccessibility():168:168 -> a
    116:117:com.android.tools.r8.graph.DexProgramClass getLambdaClass(com.android.tools.r8.graph.DexType):178:179 -> a
    118:126:void synthesizeLambdaClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):185:193 -> a
    127:127:void synthesizeLambdaClasses(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):191:191 -> a
    128:130:java.lang.Object getKnown(java.util.Map,java.lang.Object):241:243 -> a
    131:138:java.lang.Object putIfAbsent(java.util.Map,java.lang.Object,java.lang.Object):247:254 -> a
    1:1:boolean hasLambdaClassPrefix(com.android.tools.r8.graph.DexType):82:82 -> b
    2:4:java.util.Set getDesugaredCallSites():198:200 -> b
com.android.tools.r8.ir.desugar.LambdaRewriterGraphLense -> com.android.tools.r8.ir.desugar.w:
    boolean $assertionsDisabled -> k
    1:1:void <clinit>():15:15 -> <clinit>
    1:5:void <init>(com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexItemFactory):20:24 -> <init>
    6:6:void <init>(com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexItemFactory):19:19 -> <init>
    1:3:com.android.tools.r8.ir.code.Invoke$Type mapInvocationType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):31:33 -> b
com.android.tools.r8.ir.desugar.StringConcatRewriter -> com.android.tools.r8.ir.desugar.B:
    com.android.tools.r8.graph.DexItemFactory factory -> b
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.graph.DexMethod defaultAppendMethod -> h
    com.android.tools.r8.graph.DexMethod stringBuilderToString -> f
    com.android.tools.r8.graph.DexMethod stringBuilderInit -> e
    com.android.tools.r8.graph.DexMethod makeConcatWithConstants -> d
    com.android.tools.r8.graph.DexMethod makeConcat -> c
    java.util.Map paramTypeToAppendMethod -> g
    1:1:void <init>(com.android.tools.r8.graph.AppView):63:63 -> <init>
    2:16:void <init>(com.android.tools.r8.graph.AppView):60:74 -> <init>
    17:24:void <init>(com.android.tools.r8.graph.AppView):72:79 -> <init>
    25:32:void <init>(com.android.tools.r8.graph.AppView):76:83 -> <init>
    33:39:void <init>(com.android.tools.r8.graph.AppView):81:87 -> <init>
    40:47:void <init>(com.android.tools.r8.graph.AppView):85:92 -> <init>
    48:51:void <init>(com.android.tools.r8.graph.AppView):91:94 -> <init>
    52:55:void <init>(com.android.tools.r8.graph.AppView):93:96 -> <init>
    56:59:void <init>(com.android.tools.r8.graph.AppView):95:98 -> <init>
    60:63:void <init>(com.android.tools.r8.graph.AppView):97:100 -> <init>
    64:67:void <init>(com.android.tools.r8.graph.AppView):99:102 -> <init>
    68:71:void <init>(com.android.tools.r8.graph.AppView):101:104 -> <init>
    72:75:void <init>(com.android.tools.r8.graph.AppView):103:106 -> <init>
    76:79:void <init>(com.android.tools.r8.graph.AppView):105:108 -> <init>
    80:83:void <init>(com.android.tools.r8.graph.AppView):107:110 -> <init>
    84:84:void <init>(com.android.tools.r8.graph.AppView):109:109 -> <init>
    1:1:com.android.tools.r8.graph.DexItemFactory access$100(com.android.tools.r8.ir.desugar.StringConcatRewriter):40:40 -> a
    2:25:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):118:141 -> a
    26:41:void rewriteMakeConcat(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):156:171 -> a
    26:41:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):142 -> a
    42:47:void rewriteMakeConcat(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):170:175 -> a
    42:47:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):142 -> a
    48:49:void rewriteMakeConcat(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):163:164 -> a
    48:49:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):142 -> a
    50:50:void rewriteMakeConcat(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):163:163 -> a
    50:50:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):142 -> a
    51:51:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):143:143 -> a
    52:101:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):191:240 -> a
    52:101:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):144 -> a
    102:102:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):239:239 -> a
    102:102:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):144 -> a
    103:117:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):237:251 -> a
    103:117:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):144 -> a
    118:119:java.lang.String convertToString(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexValue):277:278 -> a
    118:119:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):251 -> a
    118:119:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):144 -> a
    120:120:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):251:251 -> a
    120:120:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):144 -> a
    121:122:java.lang.String convertToString(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexValue):280:281 -> a
    121:122:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):251 -> a
    121:122:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):144 -> a
    123:123:java.lang.String convertToString(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexValue):280:280 -> a
    123:123:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):251 -> a
    123:123:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):144 -> a
    124:152:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):245:273 -> a
    124:152:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):144 -> a
    153:154:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):263:264 -> a
    153:154:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):144 -> a
    155:155:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):263:263 -> a
    155:155:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):144 -> a
    156:156:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):259:259 -> a
    156:156:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):144 -> a
    157:157:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):218:218 -> a
    157:157:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):144 -> a
    158:158:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):206:206 -> a
    158:158:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):144 -> a
    159:160:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):200:201 -> a
    159:160:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):144 -> a
    161:161:void rewriteMakeConcatWithConstants(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeCustom):200:200 -> a
    161:161:void desugarStringConcats(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.IRCode):144 -> a
    162:164:com.android.tools.r8.errors.CompilationError error(com.android.tools.r8.graph.DexMethod,java.lang.String):457:459 -> a
    1:1:com.android.tools.r8.graph.DexMethod access$200(com.android.tools.r8.ir.desugar.StringConcatRewriter):40:40 -> b
    1:1:com.android.tools.r8.graph.DexMethod access$300(com.android.tools.r8.ir.desugar.StringConcatRewriter):40:40 -> c
com.android.tools.r8.ir.desugar.StringConcatRewriter$1 -> com.android.tools.r8.ir.desugar.x:
com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder -> com.android.tools.r8.ir.desugar.A:
    java.util.ListIterator blocks -> c
    com.android.tools.r8.ir.code.BasicBlock currentBlock -> f
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> i
    com.android.tools.r8.ir.code.Instruction invokeCustom -> e
    com.android.tools.r8.ir.code.IRCode code -> b
    com.android.tools.r8.ir.code.InstructionListIterator instructions -> d
    java.util.List chunks -> g
    com.android.tools.r8.ir.desugar.StringConcatRewriter this$0 -> h
    1:1:void <clinit>():284:284 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.desugar.StringConcatRewriter,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator):297:297 -> <init>
    1:1:void <init>(com.android.tools.r8.ir.desugar.StringConcatRewriter,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.desugar.StringConcatRewriter$1):284 -> <init>
    2:16:void <init>(com.android.tools.r8.ir.desugar.StringConcatRewriter,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator):291:305 -> <init>
    2:16:void <init>(com.android.tools.r8.ir.desugar.StringConcatRewriter,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.desugar.StringConcatRewriter$1):284 -> <init>
    1:1:void access$400(com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder,com.android.tools.r8.ir.code.Instruction):284:284 -> a
    2:2:com.android.tools.r8.graph.AppView access$500(com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder):284:284 -> a
    3:4:void appendInstruction(com.android.tools.r8.ir.code.Instruction):309:310 -> a
    5:5:void addChunk(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexMethod):314:314 -> a
    6:6:void addChunk(java.lang.String,com.android.tools.r8.graph.DexMethod):318:318 -> a
    7:17:void desugar():339:349 -> a
    18:22:void desugar():348:352 -> a
    23:25:void com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder$Chunk.addAppendCall(com.android.tools.r8.ir.code.Value):414:416 -> a
    23:25:void desugar():353 -> a
    26:26:void com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder$Chunk.addAppendCall(com.android.tools.r8.ir.code.Value):414:414 -> a
    26:26:void desugar():353 -> a
    27:41:void desugar():357:371 -> a
    42:72:void desugar():370:400 -> a
    1:1:com.android.tools.r8.ir.code.IRCode access$600(com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder):284:284 -> b
com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder$ArgumentChunk -> com.android.tools.r8.ir.desugar.y:
    com.android.tools.r8.ir.code.Value value -> c
    1:2:void <init>(com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexMethod):424:425 -> <init>
    1:1:com.android.tools.r8.ir.code.Value getOrCreateValue():430:430 -> a
com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder$Chunk -> com.android.tools.r8.ir.desugar.z:
    com.android.tools.r8.graph.DexMethod method -> a
    com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder this$1 -> b
    1:2:void <init>(com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder,com.android.tools.r8.graph.DexMethod):407:408 -> <init>
    com.android.tools.r8.ir.code.Value getOrCreateValue() -> a
com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder$ConstantChunk -> com.android.tools.r8.ir.desugar.A$a:
    com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder this$1 -> d
    java.lang.String str -> c
    1:3:void <init>(com.android.tools.r8.ir.desugar.StringConcatRewriter$ConcatBuilder,java.lang.String,com.android.tools.r8.graph.DexMethod):437:439 -> <init>
    1:7:com.android.tools.r8.ir.code.Value getOrCreateValue():444:450 -> a
    8:8:com.android.tools.r8.ir.code.Value getOrCreateValue():446:446 -> a
com.android.tools.r8.ir.desugar.SynthesizedLambdaSourceCode -> com.android.tools.r8.ir.desugar.C:
    com.android.tools.r8.graph.DexMethod currentMethod -> n
    boolean $assertionsDisabled -> p
    com.android.tools.r8.ir.desugar.LambdaClass lambda -> o
    1:1:void <clinit>():15:15 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position,com.android.tools.r8.graph.DexType):22:24 -> <init>
    4:4:void <init>(com.android.tools.r8.ir.desugar.LambdaClass,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):29:29 -> <init>
    1:2:int enforceParameterType(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):51:52 -> a
    3:3:void lambda$enforceParameterType$0(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.conversion.IRBuilder):52:52 -> a
    1:3:com.android.tools.r8.graph.DexType[] captures():37:39 -> g
    1:1:com.android.tools.r8.ir.desugar.LambdaDescriptor descriptor():33:33 -> h
    1:1:com.android.tools.r8.graph.DexItemFactory factory():43:43 -> i
    1:1:java.lang.String toString():59:59 -> toString
com.android.tools.r8.ir.desugar.TwrCloseResourceRewriter -> com.android.tools.r8.ir.desugar.TwrCloseResourceRewriter:
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set referencingClasses -> d
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.DexMethod twrCloseResourceMethod -> c
    com.android.tools.r8.ir.conversion.IRConverter converter -> b
    1:1:void <clinit>():51:51 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):63:63 -> <init>
    2:14:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):61:73 -> <init>
    1:18:void rewriteMethodCode(com.android.tools.r8.ir.code.IRCode):79:96 -> a
    19:23:void rewriteMethodCode(com.android.tools.r8.ir.code.IRCode):95:99 -> a
    24:36:boolean isSynthesizedCloseResourceMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.AppView):105:117 -> a
    37:76:void synthesizeUtilityClass(com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.InternalOptions):124:163 -> a
    77:77:boolean lambda$synthesizeUtilityClass$0(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.DexProgramClass):160:160 -> a
com.android.tools.r8.ir.desugar.TwrCloseResourceRewriter$CloseResourceMethodCode -> com.android.tools.r8.ir.desugar.TwrCloseResourceRewriter$CloseResourceMethodCode:
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod):171:171 -> <init>
    1:13:void closeResourceImpl(java.lang.Throwable,java.lang.Object):198:210 -> closeResourceImpl
    14:14:void closeResourceImpl(java.lang.Throwable,java.lang.Object):208:208 -> closeResourceImpl
    15:26:void closeResourceImpl(java.lang.Throwable,java.lang.Object):205:216 -> closeResourceImpl
com.android.tools.r8.ir.optimize.BasicBlockInstructionsEquivalence -> com.android.tools.r8.ir.optimize.a:
    com.android.tools.r8.ir.regalloc.RegisterAllocator allocator -> a
    int[] hashes -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():16:16 -> <clinit>
    1:4:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):22:25 -> <init>
    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):16:16 -> a
    2:25:boolean hasIdenticalInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):29:52 -> a
    2:25:boolean doEquivalent(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):70 -> a
    2:25:boolean doEquivalent(java.lang.Object,java.lang.Object):16 -> a
    26:30:boolean verifyAllSuccessors(java.util.List,java.util.List):57:61 -> a
    26:30:boolean hasIdenticalInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):52 -> a
    26:30:boolean doEquivalent(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):70 -> a
    26:30:boolean doEquivalent(java.lang.Object,java.lang.Object):16 -> a
    31:31:boolean hasIdenticalInstructions(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):52:52 -> a
    31:31:boolean doEquivalent(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):70 -> a
    31:31:boolean doEquivalent(java.lang.Object,java.lang.Object):16 -> a
    32:32:int doHash(java.lang.Object):16:16 -> a
    33:39:int doHash(com.android.tools.r8.ir.code.BasicBlock):79:85 -> a
    33:39:int doHash(java.lang.Object):16 -> a
    40:40:void clearComputedHash(com.android.tools.r8.ir.code.BasicBlock):74:74 -> a
    1:12:int computeHash(com.android.tools.r8.ir.code.BasicBlock):90:101 -> b
com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization -> com.android.tools.r8.ir.optimize.b:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> c
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$WaveDoneAction waveDoneAction -> d
    boolean $assertionsDisabled -> e
    com.android.tools.r8.ir.conversion.IRConverter converter -> b
    1:1:void <clinit>():61:61 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):101:101 -> <init>
    2:8:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):98:104 -> <init>
    1:1:com.android.tools.r8.graph.AppView access$000(com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization):61:61 -> a
    2:14:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):108:120 -> a
    15:59:java.util.Collection computeUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):320:364 -> a
    15:59:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):122 -> a
    60:64:boolean isClassNameConstantOf(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.StaticPut):405:409 -> a
    60:64:java.util.Collection computeUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):366 -> a
    60:64:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):122 -> a
    65:94:java.util.Collection computeUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):368:397 -> a
    65:94:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):122 -> a
    95:102:java.util.Collection computeUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):392:399 -> a
    95:102:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):122 -> a
    103:115:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):125:137 -> a
    116:137:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):252:273 -> a
    116:137:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):137 -> a
    138:175:com.android.tools.r8.graph.DexValue getDexStringValueForInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):277:314 -> a
    138:175:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):273 -> a
    138:175:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):137 -> a
    176:176:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):137:137 -> a
    177:177:com.android.tools.r8.graph.DexValue getDexStringValueForInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):314:314 -> a
    177:177:com.android.tools.r8.graph.DexValue getDexStringValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):273 -> a
    177:177:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):137 -> a
    178:203:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):138:163 -> a
    204:312:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):139:247 -> a
    313:313:java.util.Collection computeUnnecessaryStaticPuts(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.Set):397:397 -> a
    313:313:void optimize(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):122 -> a
    314:314:com.android.tools.r8.graph.DexField lambda$optimize$0(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.graph.DexField):214:214 -> a
    315:316:void lambda$optimize$1():236:237 -> a
    317:325:boolean isClassNameConstantOf(com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Instruction):415:423 -> a
com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization$WaveDoneAction -> com.android.tools.r8.ir.optimize.b$a:
    java.util.Map fieldsWithStaticValues -> a
    com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization this$0 -> c
    java.util.Set noLongerWrittenFields -> b
    1:3:void <init>(com.android.tools.r8.ir.optimize.ClassInitializerDefaultsOptimization,java.util.Map,java.util.Set):70:72 -> <init>
    1:2:void join(java.util.Map,java.util.Set):78:79 -> a
    1:3:void execute():85:87 -> execute
    4:8:void execute():86:90 -> execute
com.android.tools.r8.ir.optimize.CodeRewriter -> com.android.tools.r8.ir.optimize.CodeRewriter:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> c
    com.android.tools.r8.graph.AppView appView -> b
    java.util.Set libraryMethodsReturningReceiver -> d
    boolean $assertionsDisabled -> f
    com.android.tools.r8.utils.InternalOptions options -> e
    com.android.tools.r8.ir.conversion.IRConverter converter -> a
    1:1:void <clinit>():141:141 -> <clinit>
    1:6:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter,java.util.Set):164:169 -> <init>
    boolean lambda$computeConstantArrayValues$11(com.android.tools.r8.ir.code.NewArrayEmpty,com.android.tools.r8.ir.code.Instruction) -> a
    1:2:boolean isFallthroughBlock(com.android.tools.r8.ir.code.BasicBlock):195:196 -> a
    3:26:void collapseTrivialGoto(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,java.util.List):207:230 -> a
    27:36:void unlinkTrivialGotoBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):235:244 -> a
    37:65:void disableDex2OatInliningForSelfRecursiveMethods(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):297:325 -> a
    66:102:void convertSwitchToSwitchAndIfs(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Switch,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):473:509 -> a
    103:104:java.lang.Object com.android.tools.r8.ir.optimize.CodeRewriter$InstructionBuilder.setBlockNumber(int):341:342 -> a
    103:104:void convertSwitchToSwitchAndIfs(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Switch,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):510 -> a
    105:119:void convertSwitchToSwitchAndIfs(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Switch,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):511:525 -> a
    120:121:java.lang.Object com.android.tools.r8.ir.optimize.CodeRewriter$InstructionBuilder.setBlockNumber(int):341:342 -> a
    120:121:void convertSwitchToSwitchAndIfs(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Switch,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):526 -> a
    122:131:void convertSwitchToSwitchAndIfs(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Switch,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):527:536 -> a
    132:145:com.android.tools.r8.ir.optimize.CodeRewriter$Interval combineOrAddInterval(java.util.List,com.android.tools.r8.ir.optimize.CodeRewriter$Interval,com.android.tools.r8.ir.optimize.CodeRewriter$Interval):584:597 -> a
    146:146:com.android.tools.r8.ir.optimize.CodeRewriter$Interval combineOrAddInterval(java.util.List,com.android.tools.r8.ir.optimize.CodeRewriter$Interval,com.android.tools.r8.ir.optimize.CodeRewriter$Interval):594:594 -> a
    147:158:void tryAddToBiggestSavings(java.util.Set,java.util.PriorityQueue,com.android.tools.r8.ir.optimize.CodeRewriter$Interval,int):607:618 -> a
    159:166:int sizeForKeysWrittenAsIfs(com.android.tools.r8.ir.code.ValueType,java.util.Collection):623:630 -> a
    167:167:int codeUnitMargin():637:637 -> a
    168:168:int lambda$rewriteSwitch$1(com.android.tools.r8.utils.InternalOutputMode,com.android.tools.r8.ir.optimize.CodeRewriter$Interval,com.android.tools.r8.ir.optimize.CodeRewriter$Interval):774:774 -> a
    169:172:void identifyInvokeSemanticsForInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.OptimizationFeedback):1017:1020 -> a
    173:179:void identifyInvokeSemanticsForInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.OptimizationFeedback):1019:1025 -> a
    180:180:void identifyInvokeSemanticsForInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.OptimizationFeedback):1024:1024 -> a
    181:234:void identifyClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.OptimizationFeedback):1041:1094 -> a
    235:279:void identifyClassInlinerEligibility(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.OptimizationFeedback):1069:1113 -> a
    280:342:com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer computeClassInitializerInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass):1269:1331 -> a
    343:343:boolean checksNullBeforeSideEffect(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView):1363:1363 -> a
    344:348:com.android.tools.r8.ir.optimize.CodeRewriter$InstructionEffect lambda$checksNullBeforeSideEffect$3(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):1366:1370 -> a
    349:364:boolean isKotlinNullCheck(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView):1428:1443 -> a
    349:364:com.android.tools.r8.ir.optimize.CodeRewriter$InstructionEffect lambda$checksNullBeforeSideEffect$3(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):1372 -> a
    365:386:com.android.tools.r8.ir.optimize.CodeRewriter$InstructionEffect lambda$checksNullBeforeSideEffect$3(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):1373:1394 -> a
    387:392:com.android.tools.r8.ir.optimize.CodeRewriter$InstructionEffect lambda$checksNullBeforeSideEffect$3(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):1393:1398 -> a
    393:400:boolean isInstantiationOfNullPointerException(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.graph.DexItemFactory):1462:1469 -> a
    393:400:com.android.tools.r8.ir.optimize.CodeRewriter$InstructionEffect lambda$checksNullBeforeSideEffect$3(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):1398 -> a
    401:421:com.android.tools.r8.ir.optimize.CodeRewriter$InstructionEffect lambda$checksNullBeforeSideEffect$3(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):1399:1419 -> a
    422:424:boolean isNullCheck(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value):1451:1453 -> a
    425:425:boolean triggersClassInitializationBeforeSideEffect(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):1483:1483 -> a
    426:441:com.android.tools.r8.ir.optimize.CodeRewriter$InstructionEffect lambda$triggersClassInitializationBeforeSideEffect$4(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):1486:1501 -> a
    442:501:boolean alwaysTriggerExpectedEffectBeforeAnythingElse(com.android.tools.r8.ir.code.IRCode,java.util.function.BiFunction):1513:1572 -> a
    502:542:boolean alwaysTriggerExpectedEffectBeforeAnythingElse(com.android.tools.r8.ir.code.IRCode,java.util.function.BiFunction):1532:1572 -> a
    543:556:boolean alwaysTriggerExpectedEffectBeforeAnythingElse(com.android.tools.r8.ir.code.IRCode,java.util.function.BiFunction):1559:1572 -> a
    557:557:boolean checkArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1580:1580 -> a
    558:558:boolean checkArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1579:1579 -> a
    559:565:com.android.tools.r8.graph.DexType getArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1590:1596 -> a
    559:565:boolean checkArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1583 -> a
    566:566:boolean checkArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1583:1583 -> a
    567:571:boolean checkArgumentType(com.android.tools.r8.ir.code.InvokeMethod,int):1582:1586 -> a
    572:609:void disableAssertions(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.OptimizationFeedback):1729:1766 -> a
    610:621:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode,boolean):1850:1861 -> a
    622:652:boolean removeInstanceOfInstructionIfTrivial(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.IRCode):1965:1995 -> a
    622:652:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode,boolean):1861 -> a
    653:669:boolean removeInstanceOfInstructionIfTrivial(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.IRCode):1994:2010 -> a
    653:669:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode,boolean):1861 -> a
    670:670:boolean removeInstanceOfInstructionIfTrivial(com.android.tools.r8.ir.code.InstanceOf,com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.IRCode):2004:2004 -> a
    670:670:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode,boolean):1861 -> a
    671:673:void removeTrivialCheckCastAndInstanceOfInstructions(com.android.tools.r8.ir.code.IRCode,boolean):1873:1875 -> a
    674:733:boolean removeCheckCastInstructionIfTrivial(com.android.tools.r8.ir.code.CheckCast,com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.IRCode):1881:1940 -> a
    734:734:boolean lambda$removeCheckCastInstructionIfTrivial$5(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction):1905:1905 -> a
    735:747:boolean isTypeInaccessibleInCurrentContext(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):1945:1957 -> a
    748:753:boolean isNeverInstantiatedDirectlyOrIndirectly(com.android.tools.r8.graph.DexType):2017:2022 -> a
    754:764:void removeOrReplaceByDebugLocalWrite(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):2027:2037 -> a
    765:766:boolean lambda$shortenLiveRanges$7(com.android.tools.r8.ir.code.ConstInstruction):2207:2208 -> a
    767:821:void shortenLiveRangesInsideBlock(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.com.google.common.base.Supplier,java.util.Map,java.util.function.Predicate):2272:2326 -> a
    822:833:void insertConstantInBlock(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.BasicBlock):2331:2342 -> a
    834:837:boolean lambda$insertConstantInBlock$10(com.android.tools.r8.ir.code.Instruction,boolean,com.android.tools.r8.ir.code.Instruction):2336:2339 -> a
    838:885:com.android.tools.r8.ir.code.ConstInstruction[] computeConstantArrayValues(com.android.tools.r8.ir.code.NewArrayEmpty,com.android.tools.r8.ir.code.BasicBlock,int):2377:2424 -> a
    886:891:boolean isCSEInstructionCandidate(com.android.tools.r8.ir.code.Instruction):2752:2757 -> a
    892:892:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2774:2774 -> a
    893:900:boolean hasCSECandidate(com.android.tools.r8.ir.code.IRCode,int):2761:2768 -> a
    893:900:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2775 -> a
    901:917:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2777:2793 -> a
    918:927:boolean shareCatchHandlers(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):2739:2748 -> a
    918:927:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2794 -> a
    928:943:void commonSubexpressionElimination(com.android.tools.r8.ir.code.IRCode):2795:2810 -> a
    944:945:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,com.android.tools.r8.ir.code.BasicBlock):2941:2942 -> a
    946:946:void simplifyIfWithKnownCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,int):2946:2946 -> a
    947:951:void rewriteIfToGoto(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.If,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):3355:3359 -> a
    952:967:void rewriteLongCompareAndRequireNonNull(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):3410:3425 -> a
    968:984:void rewriteLongCompareAndRequireNonNull(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.utils.InternalOptions):3423:3439 -> a
    985:1008:void removeUnneededMovesOnExitingPaths(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3450:3473 -> a
    1009:1043:java.util.Set computeUnneededMoves(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.DebugLocalsChange,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3510:3544 -> a
    1009:1043:void removeUnneededMovesOnExitingPaths(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3477 -> a
    1044:1066:void removeUnneededMovesOnExitingPaths(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):3478:3500 -> a
    1067:1076:void updateDebugLocalsRegisterMap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):3555:3564 -> a
    1077:1077:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3617:3617 -> a
    1078:1087:boolean isSubtypeOfThrowable(com.android.tools.r8.graph.DexType):3623:3632 -> a
    1078:1087:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3619 -> a
    1088:1088:boolean isSubtypeOfThrowable(com.android.tools.r8.graph.DexType):3629:3629 -> a
    1088:1088:boolean matchesMethodOfThrowable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3619 -> a
    1089:1094:com.android.tools.r8.ir.code.Value addConstString(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstructionListIterator,java.lang.String):3638:3643 -> a
    1095:1115:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3653:3673 -> a
    1116:1125:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3672:3681 -> a
    1126:1187:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3679:3740 -> a
    1188:1203:void logArgumentTypes(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):3739:3754 -> a
    1204:1210:void recursiveAddOperands(com.android.tools.r8.ir.code.Phi,java.util.Set,java.util.Set):3796:3802 -> a
    1:1:boolean lambda$removedTrivialGotos$0(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):185:185 -> b
    2:2:void lambda$removeSwitchMaps$2(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value):906:906 -> b
    3:7:void identifyParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.OptimizationFeedback):1140:1144 -> b
    8:14:com.android.tools.r8.graph.ParameterUsagesInfo$ParameterUsage collectParameterUsages(int,com.android.tools.r8.ir.code.Value):1156:1162 -> b
    8:14:void identifyParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.OptimizationFeedback):1147 -> b
    15:18:void identifyParameterUsages(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.OptimizationFeedback):1149:1152 -> b
    19:20:boolean isClassDesiredAssertionStatusInvoke(com.android.tools.r8.ir.code.Instruction):1773:1774 -> b
    21:22:com.android.tools.r8.ir.code.Value blockWithAssertionsDisabledFieldPut(com.android.tools.r8.ir.code.BasicBlock):1798:1799 -> b
    23:24:boolean isAssertionsDisabledFieldPut(com.android.tools.r8.ir.code.Instruction):1779:1780 -> b
    23:24:com.android.tools.r8.ir.code.Value blockWithAssertionsDisabledFieldPut(com.android.tools.r8.ir.code.BasicBlock):1801 -> b
    25:25:com.android.tools.r8.ir.code.Value blockWithAssertionsDisabledFieldPut(com.android.tools.r8.ir.code.BasicBlock):1801:1801 -> b
    26:26:boolean lambda$shortenLiveRanges$8(com.android.tools.r8.ir.code.ConstInstruction):2216:2216 -> b
    27:37:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode):3758:3768 -> b
    38:48:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3782:3792 -> b
    38:48:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode):3768 -> b
    49:49:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode):3769:3769 -> b
    50:75:void replaceTrivialNewInstancePhis(com.android.tools.r8.ir.code.Value):3815:3840 -> b
    50:75:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode):3769 -> b
    76:80:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode):3770:3774 -> b
    81:81:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode):3771:3771 -> b
    82:82:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3790:3790 -> b
    82:82:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode):3768 -> b
    83:83:com.android.tools.r8.ir.code.NewInstance findNewInstance(com.android.tools.r8.ir.code.Phi):3786:3786 -> b
    83:83:void ensureDirectStringNewToInit(com.android.tools.r8.ir.code.IRCode):3768 -> b
    84:86:com.android.tools.r8.graph.DexMethod lambda$workaroundNumberConversionRegisterAllocationBug$15():3903:3905 -> b
    87:87:com.android.tools.r8.graph.DexMethod lambda$workaroundNumberConversionRegisterAllocationBug$15():3903:3903 -> b
    1:40:void identifyReturnsArgument(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.OptimizationFeedback):969:1008 -> c
    41:41:boolean isNotDebugInstruction(com.android.tools.r8.ir.code.Instruction):1784:1784 -> c
    42:48:com.android.tools.r8.ir.code.Value blockWithSingleConstNumberAndGoto(com.android.tools.r8.ir.code.BasicBlock):1788:1794 -> c
    49:107:void processMethodsNeverReturningNormally(com.android.tools.r8.ir.code.IRCode):3158:3216 -> c
    1:15:void collapseTrivialGotos(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):926:940 -> collapseTrivialGotos
    16:34:void collapseIfTrueTarget(com.android.tools.r8.ir.code.BasicBlock):250:268 -> collapseTrivialGotos
    16:34:void collapseTrivialGotos(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):941 -> collapseTrivialGotos
    35:35:void collapseTrivialGotos(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):943:943 -> collapseTrivialGotos
    36:49:void collapseNonFallthroughSwitchTargets(com.android.tools.r8.ir.code.BasicBlock):274:287 -> collapseTrivialGotos
    36:49:void collapseTrivialGotos(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):944 -> collapseTrivialGotos
    50:66:void collapseTrivialGotos(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):948:964 -> collapseTrivialGotos
    1:9:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):874:882 -> d
    10:48:com.android.tools.r8.ir.optimize.SwitchUtils$EnumSwitchInfo com.android.tools.r8.ir.optimize.SwitchUtils.analyzeSwitchOverEnum(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.AppView):62:100 -> d
    10:48:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):882 -> d
    49:77:void removeSwitchMaps(com.android.tools.r8.ir.code.IRCode):884:912 -> d
    78:93:void identifyTrivialInitializer(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.OptimizationFeedback):1119:1134 -> d
    94:173:com.android.tools.r8.graph.DexEncodedMethod$TrivialInitializer computeInstanceInitializerInfo(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexClass,java.util.function.Function):1180:1259 -> d
    94:173:void identifyTrivialInitializer(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.OptimizationFeedback):1134 -> d
    174:174:void identifyTrivialInitializer(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.OptimizationFeedback):1135:1135 -> d
    175:175:void identifyTrivialInitializer(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.OptimizationFeedback):1132:1132 -> d
    176:199:boolean isBlockSupportedBySimplifyKnownBooleanCondition(com.android.tools.r8.ir.code.BasicBlock):3321:3344 -> d
    200:200:boolean lambda$logArgumentTypes$14(com.android.tools.r8.ir.code.Instruction):3662:3662 -> d
    1:78:void rewriteMoveResult(com.android.tools.r8.ir.code.IRCode):1601:1678 -> e
    79:79:java.util.List lambda$shortenLiveRangesInsideBlock$9(com.android.tools.r8.ir.code.BasicBlock):2320:2320 -> e
    1:100:void rewriteSwitch(com.android.tools.r8.ir.code.IRCode):732:831 -> f
    101:187:int findIfsForCandidates(java.util.List,com.android.tools.r8.ir.code.Switch,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):641:727 -> f
    101:187:void rewriteSwitch(com.android.tools.r8.ir.code.IRCode):832 -> f
    188:207:void rewriteSwitch(com.android.tools.r8.ir.code.IRCode):835:854 -> f
    1:40:void rewriteThrowableAddAndGetSuppressed(com.android.tools.r8.ir.code.IRCode):3574:3613 -> g
    1:59:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):2193:2251 -> h
    60:86:void shortenLiveRanges(com.android.tools.r8.ir.code.IRCode):2236:2262 -> h
    1:12:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):2454:2465 -> i
    13:29:boolean allowNewFilledArrayConstruction(com.android.tools.r8.ir.code.Instruction):2430:2446 -> i
    13:29:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):2466 -> i
    30:46:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):2469:2485 -> i
    47:64:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):2484:2501 -> i
    65:81:short[] computeArrayFilledData(com.android.tools.r8.ir.code.ConstInstruction[],int,int):2350:2366 -> i
    65:81:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):2502 -> i
    82:124:void simplifyArrayConstruction(com.android.tools.r8.ir.code.IRCode):2506:2548 -> i
    1:6:void simplifyDebugLocals(com.android.tools.r8.ir.code.IRCode):2590:2595 -> j
    7:24:void removeDebugWriteOfPhi(com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.DebugLocalWrite):2634:2651 -> j
    7:24:void simplifyDebugLocals(com.android.tools.r8.ir.code.IRCode):2595 -> j
    25:35:void simplifyDebugLocals(com.android.tools.r8.ir.code.IRCode):2600:2610 -> j
    36:60:boolean hasLocalOrLineChangeBetween(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexString):2557:2581 -> j
    36:60:void simplifyDebugLocals(com.android.tools.r8.ir.code.IRCode):2612 -> j
    61:74:void simplifyDebugLocals(com.android.tools.r8.ir.code.IRCode):2613:2626 -> j
    75:75:boolean hasLocalOrLineChangeBetween(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexString):2586:2586 -> j
    75:75:void simplifyDebugLocals(com.android.tools.r8.ir.code.IRCode):2612 -> j
    1:6:void simplifyIf(com.android.tools.r8.ir.code.IRCode):2814:2819 -> k
    7:23:boolean flipIfBranchesIfNeeded(com.android.tools.r8.ir.code.BasicBlock):3389:3405 -> k
    7:23:void simplifyIf(com.android.tools.r8.ir.code.IRCode):2820 -> k
    24:43:void rewriteIfWithConstZero(com.android.tools.r8.ir.code.BasicBlock):3363:3382 -> k
    24:43:void simplifyIf(com.android.tools.r8.ir.code.IRCode):2821 -> k
    44:105:boolean simplifyKnownBooleanCondition(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):3250:3311 -> k
    44:105:void simplifyIf(com.android.tools.r8.ir.code.IRCode):2823 -> k
    106:156:void simplifyIf(com.android.tools.r8.ir.code.IRCode):2828:2878 -> k
    157:158:void simplifyIf(com.android.tools.r8.ir.code.IRCode):2870:2871 -> k
    159:205:void simplifyIf(com.android.tools.r8.ir.code.IRCode):2862:2908 -> k
    206:243:void simplifyIf(com.android.tools.r8.ir.code.IRCode):2898:2935 -> k
    1:26:void splitRangeInvokeConstants(com.android.tools.r8.ir.code.IRCode):2050:2075 -> l
    1:4:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):2089:2092 -> m
    5:8:boolean shouldBeLitInstruction(com.android.tools.r8.ir.code.Instruction):2129:2132 -> m
    5:8:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):2093 -> m
    9:17:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop):2147:2155 -> m
    9:17:boolean shouldBeLitInstruction(com.android.tools.r8.ir.code.Instruction):2133 -> m
    9:17:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):2093 -> m
    18:18:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> m
    18:18:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop):2155 -> m
    18:18:boolean shouldBeLitInstruction(com.android.tools.r8.ir.code.Instruction):2133 -> m
    18:18:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):2093 -> m
    19:21:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop):2155:2157 -> m
    19:21:boolean shouldBeLitInstruction(com.android.tools.r8.ir.code.Instruction):2133 -> m
    19:21:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):2093 -> m
    22:29:boolean hasPath(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):2178:2185 -> m
    22:29:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop):2158 -> m
    22:29:boolean shouldBeLitInstruction(com.android.tools.r8.ir.code.Instruction):2133 -> m
    22:29:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):2093 -> m
    30:31:boolean canBe2AddrInstruction(com.android.tools.r8.ir.code.Binop):2163:2164 -> m
    30:31:boolean shouldBeLitInstruction(com.android.tools.r8.ir.code.Instruction):2133 -> m
    30:31:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):2093 -> m
    32:52:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):2094:2114 -> m
    53:71:void useDedicatedConstantForLitInstruction(com.android.tools.r8.ir.code.IRCode):2102:2120 -> m
    1:14:void workaroundExceptionTargetingLoopHeaderBug(com.android.tools.r8.ir.code.IRCode):3959:3972 -> n
    1:46:void workaroundNumberConversionRegisterAllocationBug(com.android.tools.r8.ir.code.IRCode):3902:3947 -> o
    1:37:boolean hasJavacClinitAssertionCode(com.android.tools.r8.ir.code.IRCode):1805:1841 -> p
    1:1:com.android.tools.r8.ir.code.DominatorTree lambda$shortenLiveRanges$6(com.android.tools.r8.ir.code.IRCode):2194:2194 -> q
    1:13:boolean removedTrivialGotos(com.android.tools.r8.ir.code.IRCode):173:185 -> r
    14:20:boolean removedTrivialGotos(com.android.tools.r8.ir.code.IRCode):182:188 -> r
com.android.tools.r8.ir.optimize.CodeRewriter$1 -> com.android.tools.r8.ir.optimize.c:
    int[] $SwitchMap$com$android$tools$r8$ir$code$If$Type -> a
    1:1:void <clinit>():2856:2856 -> <clinit>
com.android.tools.r8.ir.optimize.CodeRewriter$CSEExpressionEquivalence -> com.android.tools.r8.ir.optimize.CodeRewriter$a:
    com.android.tools.r8.ir.code.IRCode code -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():2655:2655 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.IRCode):2659:2660 -> <init>
    1:2:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.CodeRewriter$1):2655 -> <init>
    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):2655:2655 -> a
    2:21:boolean doEquivalent(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):2668:2687 -> a
    2:21:boolean doEquivalent(java.lang.Object,java.lang.Object):2655 -> a
    22:22:int doHash(java.lang.Object):2655:2655 -> a
    23:37:int doHash(com.android.tools.r8.ir.code.Instruction):2698:2712 -> a
    23:37:int doHash(java.lang.Object):2655 -> a
    38:43:boolean identicalValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):2719:2724 -> a
    44:48:int getHashCode(com.android.tools.r8.ir.code.Value):2730:2734 -> a
com.android.tools.r8.ir.optimize.CodeRewriter$IfBuilder -> com.android.tools.r8.ir.optimize.CodeRewriter$b:
    com.android.tools.r8.ir.code.BasicBlock fallthrough -> g
    com.android.tools.r8.ir.code.BasicBlock target -> f
    com.android.tools.r8.ir.code.Value left -> d
    com.android.tools.r8.ir.code.IRCode code -> c
    boolean $assertionsDisabled -> h
    int right -> e
    1:1:void <clinit>():406:406 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.code.Position,com.android.tools.r8.ir.code.IRCode):414:415 -> <init>
    java.lang.Object self() -> a
    1:1:com.android.tools.r8.ir.optimize.CodeRewriter$IfBuilder setLeft(com.android.tools.r8.ir.code.Value):424:424 -> a
    2:2:com.android.tools.r8.ir.optimize.CodeRewriter$IfBuilder setRight(int):429:429 -> a
    3:3:com.android.tools.r8.ir.optimize.CodeRewriter$IfBuilder setFallthrough(com.android.tools.r8.ir.code.BasicBlock):439:439 -> a
    1:1:com.android.tools.r8.ir.optimize.CodeRewriter$IfBuilder setTarget(com.android.tools.r8.ir.code.BasicBlock):434:434 -> b
    2:10:com.android.tools.r8.ir.code.BasicBlock build():444:452 -> b
    11:15:com.android.tools.r8.ir.code.BasicBlock com.android.tools.r8.ir.code.BasicBlock.createIfBlock(int,com.android.tools.r8.ir.code.If,com.android.tools.r8.ir.code.Instruction):1291:1295 -> b
    11:15:com.android.tools.r8.ir.code.BasicBlock build():452 -> b
    16:21:com.android.tools.r8.ir.code.BasicBlock build():454:459 -> b
com.android.tools.r8.ir.optimize.CodeRewriter$InstanceOfResult -> com.android.tools.r8.ir.optimize.CodeRewriter$c:
    com.android.tools.r8.ir.optimize.CodeRewriter$InstanceOfResult FALSE -> c
    com.android.tools.r8.ir.optimize.CodeRewriter$InstanceOfResult TRUE -> b
    com.android.tools.r8.ir.optimize.CodeRewriter$InstanceOfResult UNKNOWN -> a
    1:3:void <clinit>():144:146 -> <clinit>
    4:4:void <clinit>():143:143 -> <clinit>
    1:1:void <init>(java.lang.String,int):143:143 -> <init>
com.android.tools.r8.ir.optimize.CodeRewriter$InstructionBuilder -> com.android.tools.r8.ir.optimize.CodeRewriter$d:
    com.android.tools.r8.ir.code.Position position -> b
    int blockNumber -> a
    1:2:void <init>(com.android.tools.r8.ir.code.Position):334:335 -> <init>
    java.lang.Object self() -> a
com.android.tools.r8.ir.optimize.CodeRewriter$InstructionEffect -> com.android.tools.r8.ir.optimize.CodeRewriter$e:
    com.android.tools.r8.ir.optimize.CodeRewriter$InstructionEffect NO_EFFECT -> d
    com.android.tools.r8.ir.optimize.CodeRewriter$InstructionEffect DESIRED_EFFECT -> a
    com.android.tools.r8.ir.optimize.CodeRewriter$InstructionEffect OTHER_EFFECT -> c
    com.android.tools.r8.ir.optimize.CodeRewriter$InstructionEffect CONDITIONAL_EFFECT -> b
    1:4:void <clinit>():1349:1352 -> <clinit>
    5:5:void <clinit>():1348:1348 -> <clinit>
    1:1:void <init>(java.lang.String,int):1348:1348 -> <init>
com.android.tools.r8.ir.optimize.CodeRewriter$Interval -> com.android.tools.r8.ir.optimize.CodeRewriter$f:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList keys -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():539:539 -> <clinit>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList[]):543:543 -> <init>
    2:8:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList[]):541:547 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList access$000(com.android.tools.r8.ir.optimize.CodeRewriter$Interval):539:539 -> a
    2:2:long estimatedSize(com.android.tools.r8.utils.InternalOutputMode):575:575 -> a
    1:1:int getMax():556:556 -> b
    1:1:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):565 -> b
    2:2:int getMin():552:552 -> b
    2:2:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):565 -> b
    3:3:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):566:566 -> b
    4:4:int com.android.tools.r8.ir.code.Switch.baseSparseSize(com.android.tools.r8.utils.InternalOutputMode):108:108 -> b
    4:4:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):569 -> b
    5:5:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):569:569 -> b
    6:6:int com.android.tools.r8.ir.code.Switch.basePackedSize(com.android.tools.r8.utils.InternalOutputMode):97:97 -> b
    6:6:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):570 -> b
    7:7:long packedSavings(com.android.tools.r8.utils.InternalOutputMode):570:570 -> b
    8:8:void addInterval(com.android.tools.r8.ir.optimize.CodeRewriter$Interval):560:560 -> b
    9:9:int getMax():556:556 -> b
    9:9:void addInterval(com.android.tools.r8.ir.optimize.CodeRewriter$Interval):560 -> b
    10:10:int getMin():552:552 -> b
    10:10:void addInterval(com.android.tools.r8.ir.optimize.CodeRewriter$Interval):560 -> b
    11:12:void addInterval(com.android.tools.r8.ir.optimize.CodeRewriter$Interval):560:561 -> b
com.android.tools.r8.ir.optimize.CodeRewriter$SCC -> com.android.tools.r8.ir.optimize.CodeRewriter$g:
    java.util.Deque unassignedStack -> d
    java.util.Set unassignedSet -> c
    java.util.List components -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap discoverTime -> b
    java.util.Deque preorderStack -> e
    boolean $assertionsDisabled -> g
    int currentTime -> a
    1:1:void <clinit>():3847:3847 -> <clinit>
    1:8:void <init>():3847:3854 -> <init>
    1:8:void <init>(com.android.tools.r8.ir.optimize.CodeRewriter$1):3847 -> <init>
    1:3:java.util.List computeSCC(com.android.tools.r8.ir.code.Value):3857:3859 -> a
    1:33:void dfs(com.android.tools.r8.ir.code.Value):3863:3895 -> b
com.android.tools.r8.ir.optimize.CodeRewriter$SwitchBuilder -> com.android.tools.r8.ir.optimize.CodeRewriter$h:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap keyToTarget -> d
    com.android.tools.r8.ir.code.BasicBlock fallthrough -> e
    com.android.tools.r8.ir.code.Value value -> c
    1:1:void <init>(com.android.tools.r8.ir.code.Position):352:352 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.code.Position):348:348 -> <init>
    java.lang.Object self() -> a
    1:1:com.android.tools.r8.ir.optimize.CodeRewriter$SwitchBuilder setValue(com.android.tools.r8.ir.code.Value):361:361 -> a
    2:2:com.android.tools.r8.ir.optimize.CodeRewriter$SwitchBuilder addKeyAndTarget(int,com.android.tools.r8.ir.code.BasicBlock):366:366 -> a
    3:3:com.android.tools.r8.ir.optimize.CodeRewriter$SwitchBuilder setFallthrough(com.android.tools.r8.ir.code.BasicBlock):371:371 -> a
    4:4:java.lang.Integer lambda$build$0(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap,com.android.tools.r8.ir.code.BasicBlock):389:389 -> a
    1:22:com.android.tools.r8.ir.code.BasicBlock build():377:398 -> b
    23:26:com.android.tools.r8.ir.code.BasicBlock com.android.tools.r8.ir.code.BasicBlock.createSwitchBlock(int,com.android.tools.r8.ir.code.Switch):1300:1303 -> b
    23:26:com.android.tools.r8.ir.code.BasicBlock build():398 -> b
    27:27:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.keySet():87:87 -> b
    27:27:com.android.tools.r8.ir.code.BasicBlock build():399 -> b
    28:29:com.android.tools.r8.ir.code.BasicBlock build():399:400 -> b
    30:30:java.lang.Integer lambda$build$1(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap,com.android.tools.r8.ir.code.BasicBlock):395:395 -> b
com.android.tools.r8.ir.optimize.ConstantCanonicalizer -> com.android.tools.r8.ir.optimize.e:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():26:26 -> <clinit>
    1:48:void canonicalize(com.android.tools.r8.ir.code.IRCode):31:78 -> a
    49:50:boolean constantUsedByInvokeRange(com.android.tools.r8.ir.code.ConstInstruction):166:167 -> a
    49:50:void canonicalize(com.android.tools.r8.ir.code.IRCode):78 -> a
    51:51:void canonicalize(com.android.tools.r8.ir.code.IRCode):82:82 -> a
    52:93:void canonicalize(com.android.tools.r8.ir.code.IRCode):81:122 -> a
    94:94:java.util.List lambda$canonicalize$0(com.android.tools.r8.ir.code.ConstInstruction):82:82 -> a
    95:95:boolean lambda$canonicalize$1(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):100:100 -> a
    96:96:int lambda$canonicalize$2(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):101:101 -> a
    97:107:void lambda$canonicalize$3(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Position,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):104:114 -> a
    108:119:void insertCanonicalizedConstant(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.ConstInstruction):127:138 -> a
    108:119:void lambda$canonicalize$3(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Position,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):115 -> a
    120:121:void lambda$canonicalize$3(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Position,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):116:117 -> a
    122:122:boolean lambda$findFirstNonNonePosition$4(com.android.tools.r8.ir.code.Instruction):144:144 -> a
    1:16:com.android.tools.r8.ir.code.Position findFirstNonNonePosition(com.android.tools.r8.ir.code.IRCode):142:157 -> b
com.android.tools.r8.ir.optimize.ConstantCanonicalizer$1 -> com.android.tools.r8.ir.optimize.d:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():33:33 -> <clinit>
    1:1:void <init>():33:33 -> <init>
    1:1:boolean equals(java.lang.Object,java.lang.Object):33:33 -> a
    2:5:boolean equals(com.android.tools.r8.ir.code.ConstInstruction,com.android.tools.r8.ir.code.ConstInstruction):47:50 -> a
    2:5:boolean equals(java.lang.Object,java.lang.Object):33 -> a
    6:6:int hashCode(java.lang.Object):33:33 -> a
    7:12:int hashCode(com.android.tools.r8.ir.code.ConstInstruction):36:41 -> a
    7:12:int hashCode(java.lang.Object):33 -> a
com.android.tools.r8.ir.optimize.DeadCodeRemover -> com.android.tools.r8.ir.optimize.f:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.optimize.CodeRewriter codeRewriter -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():25:25 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter):30:32 -> <init>
    1:8:void run(com.android.tools.r8.ir.code.IRCode):36:43 -> a
    9:22:void removeDeadInstructions(java.util.Queue,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):90:103 -> a
    9:22:void run(com.android.tools.r8.ir.code.IRCode):44 -> a
    23:27:void updateWorklist(java.util.Queue,com.android.tools.r8.ir.code.Instruction):67:71 -> a
    23:27:void removeDeadInstructions(java.util.Queue,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):106 -> a
    23:27:void run(com.android.tools.r8.ir.code.IRCode):44 -> a
    28:30:void removeDeadInstructions(java.util.Queue,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):110:112 -> a
    28:30:void run(com.android.tools.r8.ir.code.IRCode):44 -> a
    31:38:void removeDeadPhis(java.util.Queue,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock):76:83 -> a
    31:38:void run(com.android.tools.r8.ir.code.IRCode):45 -> a
    39:45:void run(com.android.tools.r8.ir.code.IRCode):43:49 -> a
    46:52:void updateWorklist(java.util.Queue,com.android.tools.r8.ir.code.Value):55:61 -> a
    1:4:boolean removeUnneededCatchHandlers(com.android.tools.r8.ir.code.IRCode):118:121 -> b
    5:39:java.util.Collection getDeadCatchHandlers(com.android.tools.r8.ir.code.BasicBlock):150:184 -> b
    5:39:boolean removeUnneededCatchHandlers(com.android.tools.r8.ir.code.IRCode):122 -> b
    40:59:boolean removeUnneededCatchHandlers(com.android.tools.r8.ir.code.IRCode):123:142 -> b
com.android.tools.r8.ir.optimize.DefaultInliningOracle -> com.android.tools.r8.ir.optimize.g:
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> i
    com.android.tools.r8.ir.code.IRCode code -> d
    int instructionAllowance -> h
    com.android.tools.r8.ir.optimize.Inliner inliner -> b
    int inliningInstructionLimit -> g
    com.android.tools.r8.graph.DexEncodedMethod method -> c
    com.android.tools.r8.ir.conversion.CallSiteInformation callSiteInformation -> e
    java.util.function.Predicate isProcessedConcurrently -> f
    1:1:void <clinit>():34:34 -> <clinit>
    1:10:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.Inliner,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.conversion.CallSiteInformation,java.util.function.Predicate,int,int):54:63 -> <init>
    com.android.tools.r8.ir.optimize.Inliner$InlineAction computeForInvokePolymorphic(com.android.tools.r8.ir.code.InvokePolymorphic,com.android.tools.r8.graph.DexType) -> a
    com.android.tools.r8.graph.DexType getReceiverTypeIfKnown(com.android.tools.r8.ir.code.InvokeMethod) -> a
    1:14:com.android.tools.r8.graph.DexEncodedMethod validateCandidate(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexType):74:87 -> a
    15:31:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.graph.DexEncodedMethod):97:113 -> a
    32:33:com.android.tools.r8.ir.optimize.Inliner$Reason computeInliningReason(com.android.tools.r8.graph.DexEncodedMethod):100:101 -> a
    34:108:boolean passesInliningConstraints(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason):159:233 -> a
    109:120:int computeInstructionLimit(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):266:277 -> a
    109:120:boolean passesInliningConstraints(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason):234 -> a
    121:139:boolean passesInliningConstraints(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason):235:253 -> a
    140:140:boolean passesInliningConstraints(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.Inliner$Reason):252:252 -> a
    141:177:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeForInvokeWithReceiver(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,com.android.tools.r8.graph.DexType):289:325 -> a
    178:194:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeForInvokeStatic(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis):333:349 -> a
    195:215:boolean canInlineStaticInvoke(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis):128:148 -> a
    195:215:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeForInvokeStatic(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis):349 -> a
    216:223:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeForInvokeStatic(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis):356:363 -> a
    224:228:void ensureMethodProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):378:382 -> a
    229:230:boolean isValidTarget(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):389:390 -> a
    231:231:boolean stillHasBudget():395:395 -> a
    232:271:boolean willExceedBudget(com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason,com.android.tools.r8.ir.code.BasicBlock):400:439 -> a
    272:272:void markInlined(com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason):445:445 -> a
    273:291:void updateTypeInformationIfNeeded(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock):451:469 -> a
    void finish() -> b
    1:2:boolean isDoubleInliningTarget(com.android.tools.r8.graph.DexEncodedMethod):153:154 -> b
com.android.tools.r8.ir.optimize.Devirtualizer -> com.android.tools.r8.ir.optimize.h:
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():36:36 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.AppView):40:41 -> <init>
    1:57:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):45:101 -> a
    58:106:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):100:148 -> a
    107:174:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):147:214 -> a
    175:188:void devirtualizeInvokeInterface(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType):213:226 -> a
com.android.tools.r8.ir.optimize.EnumOrdinalMapCollector -> com.android.tools.r8.ir.optimize.i:
    java.util.Map ordinalsMaps -> b
    com.android.tools.r8.graph.AppView appView -> a
    1:1:void <init>(com.android.tools.r8.graph.AppView):36:36 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.AppView):34:37 -> <init>
    1:1:com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness run():41:41 -> a
    2:43:void processClasses(com.android.tools.r8.graph.DexProgramClass):52:93 -> a
    2:43:com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness run():42 -> a
    44:47:com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness run() -> a
com.android.tools.r8.ir.optimize.ForcedInliningOracle -> com.android.tools.r8.ir.optimize.j:
    java.util.Map invokesToInline -> b
    com.android.tools.r8.graph.DexEncodedMethod method -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():22:22 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.DexEncodedMethod,java.util.Map):27:29 -> <init>
    com.android.tools.r8.ir.optimize.Inliner$InlineAction computeForInvokePolymorphic(com.android.tools.r8.ir.code.InvokePolymorphic,com.android.tools.r8.graph.DexType) -> a
    void ensureMethodProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode) -> a
    boolean isValidTarget(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode) -> a
    void markInlined(com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason) -> a
    boolean stillHasBudget() -> a
    void updateTypeInformationIfNeeded(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock) -> a
    boolean willExceedBudget(com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason,com.android.tools.r8.ir.code.BasicBlock) -> a
    1:1:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeForInvokeWithReceiver(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,com.android.tools.r8.graph.DexType):39:39 -> a
    2:2:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeForInvokeStatic(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis):47:47 -> a
    3:6:com.android.tools.r8.graph.DexType getReceiverTypeIfKnown(com.android.tools.r8.ir.code.InvokeMethod):100:103 -> a
    void finish() -> b
    1:11:com.android.tools.r8.ir.optimize.Inliner$InlineAction computeForInvoke(com.android.tools.r8.ir.code.InvokeMethod):51:61 -> b
com.android.tools.r8.ir.optimize.IdempotentFunctionCallCanonicalizer -> com.android.tools.r8.ir.optimize.l:
    java.util.Set idempotentMethods -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():48:48 -> <clinit>
    1:8:void <init>(com.android.tools.r8.graph.DexItemFactory):53:60 -> <init>
    9:20:void <init>(com.android.tools.r8.graph.DexItemFactory):59:70 -> <init>
    1:60:void canonicalize(com.android.tools.r8.ir.code.IRCode):74:133 -> a
    61:61:java.util.HashMap com.android.tools.r8.com.google.common.collect.Maps.newHashMap():283:283 -> a
    61:61:void canonicalize(com.android.tools.r8.ir.code.IRCode):138 -> a
    62:104:void canonicalize(com.android.tools.r8.ir.code.IRCode):140:182 -> a
    105:105:java.util.List lambda$canonicalize$0(com.android.tools.r8.ir.code.InvokeMethod):128:128 -> a
    106:106:boolean lambda$canonicalize$1(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):142:142 -> a
    107:107:int lambda$canonicalize$2(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):143:143 -> a
    108:110:void lambda$canonicalize$3(com.android.tools.r8.ir.code.IRCode,java.util.Map,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):146:148 -> a
    111:119:void lambda$canonicalize$3(com.android.tools.r8.ir.code.IRCode,java.util.Map,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):147:155 -> a
    120:120:void lambda$canonicalize$3(com.android.tools.r8.ir.code.IRCode,java.util.Map,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):150:150 -> a
    121:135:void insertCanonicalizedInvoke(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Invoke):186:200 -> a
    121:135:void lambda$canonicalize$3(com.android.tools.r8.ir.code.IRCode,java.util.Map,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):156 -> a
    136:137:void lambda$canonicalize$3(com.android.tools.r8.ir.code.IRCode,java.util.Map,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):157:158 -> a
com.android.tools.r8.ir.optimize.IdempotentFunctionCallCanonicalizer$1 -> com.android.tools.r8.ir.optimize.k:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():76:76 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.optimize.IdempotentFunctionCallCanonicalizer):76:76 -> <init>
    1:1:boolean equals(java.lang.Object,java.lang.Object):76:76 -> a
    2:6:boolean equals(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.InvokeMethod):84:88 -> a
    2:6:boolean equals(java.lang.Object,java.lang.Object):76 -> a
    7:7:int hashCode(java.lang.Object):76:76 -> a
    8:8:int hashCode(com.android.tools.r8.ir.code.InvokeMethod):79:79 -> a
    8:8:int hashCode(java.lang.Object):76 -> a
com.android.tools.r8.ir.optimize.Inliner -> com.android.tools.r8.ir.optimize.Inliner:
    java.util.Set blackList -> g
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set doubleInlineCallers -> d
    java.util.Set doubleInlineSelectedTargets -> e
    boolean $assertionsDisabled -> h
    com.android.tools.r8.shaking.MainDexClasses mainDexClasses -> b
    java.util.Map doubleInlineeCandidates -> f
    boolean applyDoubleInlining -> c
    1:1:void <clinit>():50:50 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.MainDexClasses):63:63 -> <init>
    2:11:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.MainDexClasses):56:65 -> <init>
    12:13:void fillInBlackList():70:71 -> <init>
    12:13:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.MainDexClasses):66 -> <init>
    1:3:boolean isBlackListed(com.android.tools.r8.graph.DexMethod):75:77 -> a
    4:10:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):91:97 -> a
    11:13:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget instructionAllowedForInlining(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.InliningConstraints,com.android.tools.r8.graph.DexType):83:85 -> a
    11:13:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):98 -> a
    14:19:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget computeInliningConstraint(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):99:104 -> a
    20:30:boolean isVisibleWithFlags(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags):119:129 -> a
    31:32:boolean isDoubleInliningTarget(com.android.tools.r8.ir.conversion.CallSiteInformation,com.android.tools.r8.graph.DexEncodedMethod):134:135 -> a
    33:47:com.android.tools.r8.graph.DexEncodedMethod doubleInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):140:154 -> a
    48:55:void processDoubleInlineCallers(com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.conversion.OptimizationFeedback):164:171 -> a
    56:69:void processDoubleInlineCallers(com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.conversion.OptimizationFeedback):170:183 -> a
    70:74:java.lang.Object lambda$processDoubleInlineCallers$0(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.OptimizationFeedback):173:177 -> a
    75:81:java.lang.Object lambda$processDoubleInlineCallers$0(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.OptimizationFeedback):173:179 -> a
    82:83:int numberOfInstructions(com.android.tools.r8.ir.code.IRCode):448:449 -> a
    84:142:boolean legalConstructorInline(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.IRCode):466:524 -> a
    143:144:void performForcedInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.Map):547:548 -> a
    145:153:void performInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation):556:564 -> a
    154:161:void performInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation):558:565 -> a
    162:162:com.android.tools.r8.ir.optimize.DefaultInliningOracle createDefaultOracle(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate,com.android.tools.r8.ir.conversion.CallSiteInformation,int,int):575:575 -> a
    163:191:void performInliningImpl(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):588:616 -> a
    192:196:void performInliningImpl(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):614:618 -> a
    197:202:com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason com.android.tools.r8.ir.optimize.Inliner$InlineAction.buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.Position):426:431 -> a
    197:202:void performInliningImpl(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):619 -> a
    203:213:void performInliningImpl(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):621:631 -> a
    214:223:com.android.tools.r8.graph.DexType getDowncastTypeIfNeeded(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod):667:676 -> a
    214:223:void performInliningImpl(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):634 -> a
    224:249:void performInliningImpl(com.android.tools.r8.ir.optimize.InliningStrategy,com.android.tools.r8.ir.optimize.InliningOracle,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):637:662 -> a
    1:6:boolean hasInliningAccess(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):110:115 -> b
com.android.tools.r8.ir.optimize.Inliner$Constraint -> com.android.tools.r8.ir.optimize.Inliner$Constraint:
    com.android.tools.r8.ir.optimize.Inliner$Constraint ALWAYS -> c
    com.android.tools.r8.ir.optimize.Inliner$Constraint NEVER -> b
    boolean $assertionsDisabled -> e
    com.android.tools.r8.ir.optimize.Inliner$Constraint[] $VALUES -> d
    int value -> a
    1:7:void <clinit>():193:199 -> <clinit>
    8:26:void <clinit>():193:211 -> <clinit>
    1:2:void <init>(java.lang.String,int,int):203:204 -> <init>
    1:1:com.android.tools.r8.ir.optimize.Inliner$Constraint[] values():193:193 -> a
    1:1:boolean isSet(int):215:215 -> b
com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget -> com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget:
    com.android.tools.r8.ir.optimize.Inliner$Constraint constraint -> a
    com.android.tools.r8.graph.DexType targetHolder -> b
    boolean $assertionsDisabled -> c
    1:9:void <clinit>():233:241 -> <clinit>
    1:4:void <init>(com.android.tools.r8.ir.optimize.Inliner$Constraint):243:246 -> <init>
    5:9:void <init>(com.android.tools.r8.ir.optimize.Inliner$Constraint,com.android.tools.r8.graph.DexType):249:253 -> <init>
    1:17:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget deriveConstraint(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.DexDefinitionSupplier):279:295 -> a
    18:20:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget classIsVisible(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinitionSupplier):301:303 -> a
    21:32:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget classIsVisible(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexDefinitionSupplier):302:313 -> a
    1:5:boolean equals(java.lang.Object):266:270 -> equals
    1:4:int hashCode():258:261 -> hashCode
    1:68:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget meet(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget,com.android.tools.r8.graph.DexDefinitionSupplier):318:385 -> meet
com.android.tools.r8.ir.optimize.Inliner$InlineAction -> com.android.tools.r8.ir.optimize.Inliner$a:
    com.android.tools.r8.graph.DexEncodedMethod target -> a
    com.android.tools.r8.ir.optimize.Inliner$Reason reason -> b
    1:4:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.optimize.Inliner$Reason):414:417 -> <init>
com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason -> com.android.tools.r8.ir.optimize.Inliner$b:
    com.android.tools.r8.ir.optimize.Inliner$Reason reason -> a
    com.android.tools.r8.ir.code.IRCode code -> b
    1:3:void <init>(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.Inliner$Reason):440:442 -> <init>
com.android.tools.r8.ir.optimize.Inliner$InliningInfo -> com.android.tools.r8.ir.optimize.m:
    com.android.tools.r8.graph.DexEncodedMethod target -> a
    com.android.tools.r8.graph.DexType receiverType -> b
    1:3:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):536:538 -> <init>
com.android.tools.r8.ir.optimize.Inliner$Reason -> com.android.tools.r8.ir.optimize.Inliner$Reason:
    com.android.tools.r8.ir.optimize.Inliner$Reason DUAL_CALLER -> c
    com.android.tools.r8.ir.optimize.Inliner$Reason SIMPLE -> d
    com.android.tools.r8.ir.optimize.Inliner$Reason ALWAYS -> a
    com.android.tools.r8.ir.optimize.Inliner$Reason SINGLE_CALLER -> b
    1:5:void <clinit>():396:400 -> <clinit>
    6:6:void <clinit>():395:395 -> <clinit>
    1:1:void <init>(java.lang.String,int):395:395 -> <init>
    1:1:boolean mustBeInlined():404:404 -> a
com.android.tools.r8.ir.optimize.InliningConstraints -> com.android.tools.r8.ir.optimize.n:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.graph.GraphLense graphLense -> c
    boolean allowStaticInterfaceMethodCalls -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():24:24 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense):42:42 -> <init>
    2:20:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense):28:46 -> <init>
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forThrow():257:257 -> A
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forUnop():261:261 -> B
    1:1:void disallowStaticInterfaceMethodCalls():50:50 -> a
    2:2:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forCheckCast(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):78:78 -> a
    3:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInstanceGet(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):110:112 -> a
    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInstanceGet(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):111:111 -> a
    7:23:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):126:142 -> a
    24:24:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):140:140 -> a
    25:25:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):138:138 -> a
    26:26:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):136:136 -> a
    27:27:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):134:134 -> a
    28:28:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):132:132 -> a
    29:29:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):130:130 -> a
    30:30:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexType):128:128 -> a
    31:33:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):151:153 -> a
    34:34:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):152:152 -> a
    35:51:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forFieldInstruction(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexType):271:287 -> a
    52:65:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forFieldInstruction(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexType):285:298 -> a
    66:89:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forSingleTargetInvoke(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):303:326 -> a
    90:135:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forVirtualInvoke(com.android.tools.r8.graph.DexMethod,java.util.Collection,com.android.tools.r8.graph.DexType):331:376 -> a
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forAlwaysMaterializingUser():54:54 -> b
    2:2:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forConstClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):82:82 -> b
    3:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInstancePut(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):120:122 -> b
    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInstancePut(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):121:121 -> b
    7:9:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):157:159 -> b
    10:10:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):158:158 -> b
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forArgument():58:58 -> c
    2:2:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInstanceOf(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):116:116 -> c
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokePolymorphic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):171:171 -> c
    4:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forStaticGet(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):237:239 -> c
    7:7:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forStaticGet(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):238:238 -> c
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forArrayGet():62:62 -> d
    2:2:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeMultiNewArray(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):163:163 -> d
    3:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):175:177 -> d
    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):176:176 -> d
    7:9:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forStaticPut(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):243:245 -> d
    10:10:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forStaticPut(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):244:244 -> d
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forArrayLength():66:66 -> e
    2:2:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeNewArray(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):167:167 -> e
    3:3:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeSuper(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):182:182 -> e
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forArrayPut():70:70 -> f
    2:4:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):186:188 -> f
    5:5:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):187:187 -> f
    6:6:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forNewArrayEmpty(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):213:213 -> f
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forBinop():74:74 -> g
    2:2:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forNewInstance(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):221:221 -> g
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forConstInstruction():86:86 -> h
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forConstMethodHandle():265:265 -> i
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forDebugLocalRead():90:90 -> j
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forDebugLocalsChange():94:94 -> k
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forDebugPosition():98:98 -> l
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forDup():102:102 -> m
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forDup2():106:106 -> n
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forInvokeCustom():147:147 -> o
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forJumpInstruction():192:192 -> p
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forLoad():196:196 -> q
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forMonitor():201:201 -> r
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forMove():205:205 -> s
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forMoveException():209:209 -> t
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forNewArrayFilledData():217:217 -> u
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forNonNull():225:225 -> v
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forPop():229:229 -> w
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forReturn():233:233 -> x
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forStore():249:249 -> y
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget forSwap():253:253 -> z
com.android.tools.r8.ir.optimize.InliningOracle -> com.android.tools.r8.ir.optimize.o:
    com.android.tools.r8.ir.optimize.Inliner$InlineAction computeForInvokePolymorphic(com.android.tools.r8.ir.code.InvokePolymorphic,com.android.tools.r8.graph.DexType) -> a
    com.android.tools.r8.ir.optimize.Inliner$InlineAction computeForInvokeStatic(com.android.tools.r8.ir.code.InvokeStatic,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.analysis.ClassInitializationAnalysis) -> a
    com.android.tools.r8.ir.optimize.Inliner$InlineAction computeForInvokeWithReceiver(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,com.android.tools.r8.graph.DexType) -> a
    void finish() -> b
com.android.tools.r8.ir.optimize.InliningStrategy -> com.android.tools.r8.ir.optimize.p:
    void ensureMethodProcessed(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode) -> a
    com.android.tools.r8.graph.DexType getReceiverTypeIfKnown(com.android.tools.r8.ir.code.InvokeMethod) -> a
    boolean isValidTarget(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode) -> a
    void markInlined(com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason) -> a
    boolean stillHasBudget() -> a
    void updateTypeInformationIfNeeded(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock) -> a
    boolean willExceedBudget(com.android.tools.r8.ir.optimize.Inliner$InlineeWithReason,com.android.tools.r8.ir.code.BasicBlock) -> a
com.android.tools.r8.ir.optimize.InstructionEquivalence -> com.android.tools.r8.ir.optimize.q:
    com.android.tools.r8.ir.regalloc.RegisterAllocator allocator -> a
    1:2:void <init>(com.android.tools.r8.ir.regalloc.RegisterAllocator):14:15 -> <init>
    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):11:11 -> a
    2:2:int doHash(java.lang.Object):11:11 -> a
    3:12:int doHash(com.android.tools.r8.ir.code.Instruction):27:36 -> a
    3:12:int doHash(java.lang.Object):11 -> a
    13:14:boolean doEquivalent(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):20:21 -> a
com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool -> com.android.tools.r8.ir.optimize.r:
    java.util.Set interfaces -> c
    java.util.Set subTypes -> d
    java.util.Set memberPool -> e
    com.android.tools.r8.com.google.common.base.Equivalence equivalence -> a
    com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool superType -> b
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():144:144 -> <clinit>
    1:1:void <init>(com.android.tools.r8.com.google.common.base.Equivalence):151:151 -> <init>
    2:7:void <init>(com.android.tools.r8.com.google.common.base.Equivalence):147:152 -> <init>
    1:2:void linkInterface(com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):166:167 -> a
    3:3:void seen(java.lang.Object):171:171 -> a
    4:4:boolean hasSeen(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):184:184 -> a
    5:5:boolean lambda$hasSeenDownwardRecursive$1(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):203:203 -> a
    1:2:void linkSubtype(com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):161:162 -> b
    3:3:boolean hasSeenDirectly(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):192:192 -> b
    4:4:boolean lambda$hasSeenUpwardRecursive$0(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):198:198 -> b
    1:2:void linkSupertype(com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool):156:157 -> c
    3:4:void seen(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):175:176 -> c
    1:2:boolean hasSeenDownwardRecursive(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):202:203 -> d
    1:3:boolean hasSeenUpwardRecursive(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):196:198 -> e
com.android.tools.r8.ir.optimize.MemberValuePropagation -> com.android.tools.r8.ir.optimize.u:
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():43:43 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.AppView):64:65 -> <init>
    1:8:com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup lookupMemberRule(com.android.tools.r8.graph.DexDefinition):72:79 -> a
    9:12:com.android.tools.r8.ir.code.ConstNumber createConstNumberReplacement(com.android.tools.r8.ir.code.IRCode,long,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):116:119 -> a
    13:15:com.android.tools.r8.ir.code.ConstNumber createConstNumberReplacement(com.android.tools.r8.ir.code.IRCode,long,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):118:120 -> a
    16:16:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):155:155 -> a
    17:20:com.android.tools.r8.ir.code.Instruction constantReplacementFromProguardRule(com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):88:91 -> a
    17:20:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):155 -> a
    21:28:com.android.tools.r8.ir.code.Instruction constantReplacementFromProguardRule(com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):90:97 -> a
    21:28:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):155 -> a
    29:40:com.android.tools.r8.ir.code.Instruction constantReplacementFromProguardRule(com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction):96:107 -> a
    29:40:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):155 -> a
    41:41:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):158:158 -> a
    42:44:void setValueRangeFromProguardRule(com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.ir.code.Value):142:144 -> a
    42:44:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):158 -> a
    45:58:boolean tryConstantReplacementFromProguard(com.android.tools.r8.ir.code.IRCode,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup):161:174 -> a
    59:68:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,java.util.function.Predicate):346:355 -> a
    69:114:void rewriteInvokeMethodWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):187:232 -> a
    69:114:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,java.util.function.Predicate):354 -> a
    115:122:void rewriteInvokeMethodWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):231:238 -> a
    115:122:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,java.util.function.Predicate):354 -> a
    123:127:com.android.tools.r8.ir.code.ConstString createConstStringReplacement(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexString,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):128:132 -> a
    123:127:void rewriteInvokeMethodWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):237 -> a
    123:127:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,java.util.function.Predicate):354 -> a
    128:136:com.android.tools.r8.ir.code.ConstString createConstStringReplacement(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexString,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.graph.DebugLocalInfo):129:137 -> a
    128:136:void rewriteInvokeMethodWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):237 -> a
    128:136:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,java.util.function.Predicate):354 -> a
    137:145:void rewriteInvokeMethodWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.InvokeMethod):241:249 -> a
    137:145:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,java.util.function.Predicate):354 -> a
    146:155:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,java.util.function.Predicate):356:365 -> a
    156:209:void rewriteStaticGetWithConstantValues(com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate,java.util.Set,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.StaticGet):261:314 -> a
    156:209:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,java.util.function.Predicate):359 -> a
    210:210:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,java.util.function.Predicate):357:357 -> a
    211:223:void rewritePutWithConstantValues(com.android.tools.r8.ir.code.InstructionIterator,com.android.tools.r8.ir.code.FieldInstruction):323:335 -> a
    211:223:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,java.util.function.Predicate):357 -> a
    224:227:void rewriteWithConstantValues(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexType,java.util.function.Predicate):369:372 -> a
com.android.tools.r8.ir.optimize.MemberValuePropagation$ProguardMemberRuleLookup -> com.android.tools.r8.ir.optimize.s:
    com.android.tools.r8.shaking.ProguardMemberRule rule -> b
    com.android.tools.r8.ir.optimize.MemberValuePropagation$RuleType type -> a
    1:3:void <init>(com.android.tools.r8.ir.optimize.MemberValuePropagation$RuleType,com.android.tools.r8.shaking.ProguardMemberRule):58:60 -> <init>
com.android.tools.r8.ir.optimize.MemberValuePropagation$RuleType -> com.android.tools.r8.ir.optimize.t:
    com.android.tools.r8.ir.optimize.MemberValuePropagation$RuleType ASSUME_VALUES -> c
    com.android.tools.r8.ir.optimize.MemberValuePropagation$RuleType NONE -> a
    com.android.tools.r8.ir.optimize.MemberValuePropagation$RuleType ASSUME_NO_SIDE_EFFECTS -> b
    1:3:void <clinit>():48:50 -> <clinit>
    4:4:void <clinit>():47:47 -> <clinit>
    1:1:void <init>(java.lang.String,int):47:47 -> <init>
com.android.tools.r8.ir.optimize.MethodPoolCollection -> com.android.tools.r8.ir.optimize.v:
    java.util.Map com.android.tools.r8.ir.optimize.MemberPoolCollection.memberPools -> c
    com.android.tools.r8.graph.DexApplication com.android.tools.r8.ir.optimize.MemberPoolCollection.application -> b
    com.android.tools.r8.com.google.common.base.Equivalence com.android.tools.r8.ir.optimize.MemberPoolCollection.equivalence -> a
    boolean com.android.tools.r8.ir.optimize.MemberPoolCollection.$assertionsDisabled -> d
    1:1:void com.android.tools.r8.ir.optimize.MemberPoolCollection.<clinit>():29:29 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexApplication):27:27 -> <init>
    2:2:void com.android.tools.r8.ir.optimize.MemberPoolCollection.<init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.com.google.common.base.Equivalence):35:35 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexApplication):27 -> <init>
    3:7:void com.android.tools.r8.ir.optimize.MemberPoolCollection.<init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.com.google.common.base.Equivalence):33:37 -> <init>
    3:7:void <init>(com.android.tools.r8.graph.DexApplication):27 -> <init>
    com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool com.android.tools.r8.ir.optimize.MemberPoolCollection.buildForHierarchy(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing) -> a
    1:1:java.lang.Runnable computeMemberPoolForClass(com.android.tools.r8.graph.DexClass):32:32 -> a
    2:3:void lambda$computeMemberPoolForClass$1(com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool,com.android.tools.r8.graph.DexEncodedMethod):38:39 -> a
    4:11:void com.android.tools.r8.ir.optimize.MemberPoolCollection.buildAll(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):41:48 -> a
    4:11:void com.android.tools.r8.ir.optimize.MemberPoolCollection.buildAll(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):0 -> a
    12:17:boolean com.android.tools.r8.ir.optimize.MemberPoolCollection.markIfNotSeen(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Descriptor):77:82 -> a
    12:17:boolean com.android.tools.r8.ir.optimize.MemberPoolCollection.markIfNotSeen(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Descriptor):0 -> a
    18:19:void com.android.tools.r8.ir.optimize.MemberPoolCollection.submitAll(java.lang.Iterable,java.util.List,java.util.concurrent.ExecutorService):90:91 -> a
    20:34:java.util.Set com.android.tools.r8.ir.optimize.MemberPoolCollection.getAllSubTypesExclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):123:137 -> a
    35:35:void com.android.tools.r8.ir.optimize.MemberPoolCollection.lambda$getAllSubTypesExclusive$0(java.util.Deque,com.android.tools.r8.graph.DexType):126:126 -> a
    36:36:void com.android.tools.r8.ir.optimize.MemberPoolCollection.addNonNull(java.util.Collection,java.lang.Object):209:209 -> a
    1:5:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool com.android.tools.r8.ir.optimize.MemberPoolCollection.buildForHierarchy(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):54:58 -> b
    6:13:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool com.android.tools.r8.ir.optimize.MemberPoolCollection.buildForHierarchy(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):57:64 -> b
    14:14:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool com.android.tools.r8.ir.optimize.MemberPoolCollection.buildForHierarchy(com.android.tools.r8.graph.DexClass,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):62:62 -> b
    15:15:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool com.android.tools.r8.ir.optimize.MemberPoolCollection.get(com.android.tools.r8.graph.DexClass):72:72 -> b
    15:15:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool com.android.tools.r8.ir.optimize.MemberPoolCollection.get(com.android.tools.r8.graph.DexClass):0 -> b
    16:16:boolean com.android.tools.r8.ir.optimize.MemberPoolCollection.hasPool(com.android.tools.r8.graph.DexClass):68:68 -> b
    16:16:boolean com.android.tools.r8.ir.optimize.MemberPoolCollection.hasPool(com.android.tools.r8.graph.DexClass):0 -> b
    16:16:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool com.android.tools.r8.ir.optimize.MemberPoolCollection.get(com.android.tools.r8.graph.DexClass):72 -> b
    16:16:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool com.android.tools.r8.ir.optimize.MemberPoolCollection.get(com.android.tools.r8.graph.DexClass):0 -> b
    17:18:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool com.android.tools.r8.ir.optimize.MemberPoolCollection.get(com.android.tools.r8.graph.DexClass):72:73 -> b
    17:18:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool com.android.tools.r8.ir.optimize.MemberPoolCollection.get(com.android.tools.r8.graph.DexClass):0 -> b
    19:32:java.util.Set com.android.tools.r8.ir.optimize.MemberPoolCollection.getAllSuperTypesInclusive(com.android.tools.r8.graph.DexClass,java.util.function.Predicate):100:113 -> b
    33:33:void com.android.tools.r8.ir.optimize.MemberPoolCollection.lambda$getAllSubTypesExclusive$1(java.util.Deque,com.android.tools.r8.graph.DexType):128:128 -> b
    1:1:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool lambda$computeMemberPoolForClass$0(com.android.tools.r8.graph.DexClass):34:34 -> c
    2:2:void com.android.tools.r8.ir.optimize.MemberPoolCollection.lambda$getAllSubTypesExclusive$2(java.util.Deque,com.android.tools.r8.graph.DexType):136:136 -> c
    1:1:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool lambda$computeMemberPoolForClass$2(com.android.tools.r8.graph.DexClass):46:46 -> d
    2:2:void com.android.tools.r8.ir.optimize.MemberPoolCollection.lambda$getAllSubTypesExclusive$3(java.util.Deque,com.android.tools.r8.graph.DexType):138:138 -> d
    1:1:com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool lambda$computeMemberPoolForClass$3(com.android.tools.r8.graph.DexClass):56:56 -> e
    1:25:void lambda$computeMemberPoolForClass$4(com.android.tools.r8.graph.DexClass):33:57 -> f
com.android.tools.r8.ir.optimize.MoveEliminator -> com.android.tools.r8.ir.optimize.w:
    java.util.HashSet activeMoves -> a
    com.android.tools.r8.ir.regalloc.RegisterAllocator allocator -> b
    1:1:void <init>(com.android.tools.r8.ir.regalloc.RegisterAllocator):16:16 -> <init>
    2:6:void <init>(com.android.tools.r8.ir.regalloc.RegisterAllocator):13:17 -> <init>
    1:12:boolean shouldBeEliminated(com.android.tools.r8.ir.code.Instruction):21:32 -> a
    13:51:boolean shouldBeEliminated(com.android.tools.r8.ir.code.Instruction):31:69 -> a
    52:56:boolean lambda$shouldBeEliminated$0(com.android.tools.r8.ir.code.Value,int,com.android.tools.r8.ir.code.Move):54:58 -> a
com.android.tools.r8.ir.optimize.NonNullTracker -> com.android.tools.r8.ir.optimize.NonNullTracker:
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set libraryMethodsReturningNonNull -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():42:42 -> <clinit>
    1:3:void <init>(com.android.tools.r8.graph.AppView,java.util.Set):49:51 -> <init>
    boolean lambda$addNonNull$0(com.android.tools.r8.ir.code.BasicBlock) -> a
    boolean lambda$addNonNullForValues$1(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction) -> a
    1:17:void addNonNullInPart(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):90:106 -> a
    18:30:void addNonNullInPart(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):105:117 -> a
    31:44:com.android.tools.r8.ir.code.Value getNonNullInput(com.android.tools.r8.ir.code.Instruction):66:79 -> a
    31:44:void addNonNullInPart(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):118 -> a
    45:46:void addNonNullInPart(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):119:120 -> a
    47:47:com.android.tools.r8.ir.code.Value getNonNullInput(com.android.tools.r8.ir.code.Instruction):81:81 -> a
    47:47:void addNonNullInPart(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):118 -> a
    48:56:void addNonNullInPart(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):123:131 -> a
    57:152:void addNonNullInPart(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):130:225 -> a
    153:170:void addNonNullInPart(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,java.util.function.Predicate):224:241 -> a
    171:234:void addNonNullForValues(com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,java.util.Set,java.util.Set):266:329 -> a
    235:250:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList findDominatedPredecessorIndexesInPhi(com.android.tools.r8.ir.code.Phi,com.android.tools.r8.ir.code.Value,java.util.Set):337:352 -> a
    251:260:boolean isNonNullCandidate(com.android.tools.r8.ir.code.Value):361:370 -> a
    261:292:void computeNonNullParamOnNormalExits(com.android.tools.r8.ir.conversion.OptimizationFeedback,com.android.tools.r8.ir.code.IRCode):374:405 -> a
    293:338:boolean isNormalExitDominated(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.DominatorTree,java.util.Set):427:472 -> a
    293:338:void computeNonNullParamOnNormalExits(com.android.tools.r8.ir.conversion.OptimizationFeedback,com.android.tools.r8.ir.code.IRCode):406 -> a
    339:344:void computeNonNullParamOnNormalExits(com.android.tools.r8.ir.conversion.OptimizationFeedback,com.android.tools.r8.ir.code.IRCode):412:417 -> a
    1:1:void addNonNull(com.android.tools.r8.ir.code.IRCode):85:85 -> addNonNull
    1:47:void cleanupNonNull(com.android.tools.r8.ir.code.IRCode):477:523 -> cleanupNonNull
    1:7:boolean throwsOnNullInput(com.android.tools.r8.ir.code.Instruction):56:62 -> throwsOnNullInput
com.android.tools.r8.ir.optimize.Outliner -> com.android.tools.r8.ir.optimize.x:
    java.util.List candidateMethodLists -> a
    java.util.Map outlineSites -> c
    java.util.Map generatedOutlines -> d
    com.android.tools.r8.graph.AppView appView -> e
    boolean $assertionsDisabled -> g
    java.util.Set methodsSelectedForOutlining -> b
    com.android.tools.r8.ir.optimize.InliningConstraints inliningConstraints -> f
    1:1:void <clinit>():104:104 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):1202:1202 -> <init>
    2:1099:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):107:1204 -> <init>
    1:1:com.android.tools.r8.graph.AppView access$000(com.android.tools.r8.ir.optimize.Outliner):104:104 -> a
    2:4:void lambda$identifyCandidateMethods$0(java.util.Map,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1215:1217 -> a
    5:10:java.util.List selectOutlines():1307:1312 -> a
    5:10:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1252 -> a
    11:19:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1253:1261 -> a
    20:20:com.android.tools.r8.graph.DexMethod com.android.tools.r8.ir.optimize.Outliner$Outline.buildMethod(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString):577:577 -> a
    20:20:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1262 -> a
    21:60:com.android.tools.r8.graph.DexProgramClass buildOutlinerClass(com.android.tools.r8.graph.DexType):1263:1302 -> a
    61:67:void applyOutliningCandidate(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1319:1325 -> a
    68:69:boolean checkAllOutlineSitesFoundAgain():1330:1331 -> a
    1:1:com.android.tools.r8.ir.optimize.InliningConstraints access$100(com.android.tools.r8.ir.optimize.Outliner):104:104 -> b
    2:4:void identifyOutlineSites(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod):1223:1225 -> b
    5:5:java.util.Set getMethodsSelectedForOutlining():1245:1245 -> b
    void noProcessing(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedMethod) -> c
    1:1:java.util.List access$200(com.android.tools.r8.ir.optimize.Outliner):104:104 -> c
    2:4:java.util.function.BiConsumer identifyCandidateMethods():1212:1214 -> c
    1:1:java.util.Map access$300(com.android.tools.r8.ir.optimize.Outliner):104:104 -> d
    2:8:boolean selectMethodsForOutlining():1230:1236 -> d
    9:15:boolean selectMethodsForOutlining():1235:1241 -> d
    1:1:java.util.Map access$400(com.android.tools.r8.ir.optimize.Outliner):104:104 -> e
com.android.tools.r8.ir.optimize.Outliner$BinOpOutlineInstruction -> com.android.tools.r8.ir.optimize.x$a:
    com.android.tools.r8.ir.code.NumericType numericType -> c
    1:2:void <init>(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType,com.android.tools.r8.ir.code.NumericType):207:208 -> <init>
    java.lang.String getDetailsString() -> a
    1:3:com.android.tools.r8.ir.optimize.Outliner$BinOpOutlineInstruction fromInstruction(com.android.tools.r8.ir.code.Binop):212:214 -> a
    4:4:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):233:233 -> a
    5:5:int com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction.compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):183:183 -> a
    5:5:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):234 -> a
    6:11:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):236:241 -> a
    12:21:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):266:275 -> a
    22:46:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):274:298 -> a
    47:47:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):295:295 -> a
    48:48:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):292:292 -> a
    49:52:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):286:289 -> a
    53:70:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):283:300 -> a
    1:1:java.lang.String getInstructionName():251:251 -> b
    boolean hasOutValue() -> c
    int numberOfInputs() -> d
    1:5:boolean equals(java.lang.Object):224:228 -> equals
    1:1:int hashCode():219:219 -> hashCode
com.android.tools.r8.ir.optimize.Outliner$InvokeOutlineInstruction -> com.android.tools.r8.ir.optimize.x$b:
    com.android.tools.r8.ir.code.Invoke$Type invokeType -> d
    com.android.tools.r8.graph.DexProto proto -> f
    boolean hasOutValue -> e
    boolean hasReceiver -> g
    boolean $assertionsDisabled -> h
    com.android.tools.r8.graph.DexMethod method -> c
    1:1:void <clinit>():369:369 -> <clinit>
    1:7:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,boolean,com.android.tools.r8.ir.code.ValueType[],com.android.tools.r8.graph.DexProto):382:388 -> <init>
    1:11:com.android.tools.r8.ir.optimize.Outliner$InvokeOutlineInstruction fromInstruction(com.android.tools.r8.ir.code.InvokeMethod):392:402 -> a
    12:12:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):428:428 -> a
    13:13:int com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction.compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):183:183 -> a
    13:13:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):429 -> a
    14:33:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):431:450 -> a
    34:37:boolean equals(java.lang.Object):420:423 -> a
    34:37:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):450 -> a
    38:38:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):450:450 -> a
    39:39:java.lang.String getDetailsString():456:456 -> a
    40:40:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):485:485 -> a
    41:41:int numberOfInputs():471:471 -> a
    41:41:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):485 -> a
    42:42:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):485:485 -> a
    43:43:int numberOfInputs():471:471 -> a
    43:43:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):486 -> a
    44:46:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):487:489 -> a
    47:52:com.android.tools.r8.ir.code.ValueTypeConstraint getArgumentConstraint(int):475:480 -> a
    47:52:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):491 -> a
    53:64:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):491:502 -> a
    1:1:java.lang.String getInstructionName():461:461 -> b
    1:1:boolean hasOutValue():466:466 -> c
    1:1:int numberOfInputs():471:471 -> d
    1:8:boolean equals(java.lang.Object):416:423 -> equals
    1:5:int hashCode():407:411 -> hashCode
com.android.tools.r8.ir.optimize.Outliner$NewInstanceOutlineInstruction -> com.android.tools.r8.ir.optimize.x$c:
    com.android.tools.r8.graph.DexType clazz -> c
    1:2:void <init>(com.android.tools.r8.graph.DexType):309:310 -> <init>
    1:1:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):330:330 -> a
    2:2:int com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction.compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):183:183 -> a
    2:2:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):331 -> a
    3:4:int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction):333:334 -> a
    5:5:java.lang.String getDetailsString():339:339 -> a
    6:11:int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int):359:364 -> a
    1:1:java.lang.String getInstructionName():344:344 -> b
    boolean hasOutValue() -> c
    int numberOfInputs() -> d
    1:5:boolean equals(java.lang.Object):315:319 -> equals
    1:1:int hashCode():325:325 -> hashCode
com.android.tools.r8.ir.optimize.Outliner$Outline -> com.android.tools.r8.ir.optimize.x$d:
    java.util.List argumentMap -> b
    java.util.List argumentTypes -> a
    com.android.tools.r8.graph.DexProto proto -> e
    com.android.tools.r8.ir.optimize.Outliner this$0 -> f
    java.util.List templateInstructions -> c
    com.android.tools.r8.graph.DexType returnType -> d
    boolean $assertionsDisabled -> g
    1:1:void <clinit>():529:529 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.optimize.Outliner,java.util.List,java.util.List,java.util.List,com.android.tools.r8.graph.DexType,int,int):546:546 -> <init>
    2:27:void <init>(com.android.tools.r8.ir.optimize.Outliner,java.util.List,java.util.List,java.util.List,com.android.tools.r8.graph.DexType,int,int):533:558 -> <init>
    28:28:void <init>(com.android.tools.r8.ir.optimize.Outliner,java.util.List,java.util.List,java.util.List,com.android.tools.r8.graph.DexType,int,int):554:554 -> <init>
    1:1:int argumentCount():564:564 -> a
    1:5:com.android.tools.r8.graph.DexProto buildProto():568:572 -> b
    1:1:int compareTo(java.lang.Object):529:529 -> compareTo
    2:38:int compareTo(com.android.tools.r8.ir.optimize.Outliner$Outline):623:659 -> compareTo
    2:38:int compareTo(java.lang.Object):529 -> compareTo
    1:16:boolean equals(java.lang.Object):582:597 -> equals
    1:6:int hashCode():605:610 -> hashCode
    1:37:java.lang.String toString():666:702 -> toString
com.android.tools.r8.ir.optimize.Outliner$OutlineCode -> com.android.tools.r8.ir.optimize.y:
    com.android.tools.r8.ir.optimize.Outliner this$0 -> c
    com.android.tools.r8.ir.optimize.Outliner$Outline outline -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():1485:1485 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.ir.optimize.Outliner$Outline):1489:1490 -> <init>
    1:1:boolean computeEquals(java.lang.Object):1539:1539 -> b
    1:3:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):1517:1519 -> buildIR
    4:4:void com.android.tools.r8.ir.conversion.IRBuilder.<init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.SourceCode,com.android.tools.r8.origin.Origin):428:428 -> buildIR
    4:4:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):1519 -> buildIR
    5:5:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):1519:1519 -> buildIR
    1:1:int computeHashCode():1534:1534 -> d
    2:7:int com.android.tools.r8.ir.optimize.Outliner$Outline.hashCode():605:610 -> d
    2:7:int computeHashCode():1534 -> d
    1:1:void registerCodeReferences(com.android.tools.r8.graph.UseRegistry):1529:1529 -> registerCodeReferences
    1:1:java.lang.String toString():1524:1524 -> toString
    2:38:java.lang.String com.android.tools.r8.ir.optimize.Outliner$Outline.toString():666:702 -> toString
    2:38:java.lang.String toString():1524 -> toString
com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction -> com.android.tools.r8.ir.optimize.A:
    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType type -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():120:120 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType):162:163 -> <init>
    int compareTo(com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction) -> a
    int createInstruction(com.android.tools.r8.ir.conversion.IRBuilder,com.android.tools.r8.ir.optimize.Outliner$Outline,int) -> a
    java.lang.String getDetailsString() -> a
    1:8:com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction fromInstruction(com.android.tools.r8.ir.code.Instruction):167:174 -> a
    java.lang.String getInstructionName() -> b
    boolean hasOutValue() -> c
    int numberOfInputs() -> d
    1:1:int hashCode():179:179 -> hashCode
com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType -> com.android.tools.r8.ir.optimize.z:
    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType[] $VALUES -> h
    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType ADD -> a
    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType SUB -> b
    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType MUL -> c
    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType DIV -> d
    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType REM -> e
    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType INVOKE -> f
    com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType NEW -> g
    1:7:void <clinit>():126:132 -> <clinit>
    8:8:void <clinit>():125:125 -> <clinit>
    1:1:void <init>(java.lang.String,int):125:125 -> <init>
    1:22:com.android.tools.r8.ir.optimize.Outliner$OutlineInstruction$OutlineInstructionType fromInstruction(com.android.tools.r8.ir.code.Instruction):135:156 -> a
com.android.tools.r8.ir.optimize.Outliner$OutlineMethodIdentifier -> com.android.tools.r8.ir.optimize.B:
    java.util.Map candidateMap -> q
    com.android.tools.r8.ir.optimize.Outliner this$0 -> r
    1:3:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock,java.util.Map):1077:1079 -> <init>
    1:3:void handle(int,int,com.android.tools.r8.ir.optimize.Outliner$Outline):1084:1086 -> a
    4:5:java.util.List addOutlineMethodList(com.android.tools.r8.ir.optimize.Outliner$Outline):1090:1091 -> a
com.android.tools.r8.ir.optimize.Outliner$OutlineRewriter -> com.android.tools.r8.ir.optimize.C:
    java.util.ListIterator blocksIterator -> r
    java.util.List toRemove -> s
    com.android.tools.r8.ir.code.IRCode code -> q
    boolean $assertionsDisabled -> v
    com.android.tools.r8.ir.optimize.Outliner this$0 -> u
    int argumentsMapIndex -> t
    1:1:void <clinit>():1111:1111 -> <clinit>
    1:5:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.ListIterator,com.android.tools.r8.ir.code.BasicBlock,java.util.List):1120:1124 -> <init>
    1:60:void handle(int,int,com.android.tools.r8.ir.optimize.Outliner$Outline):1129:1188 -> a
    61:63:boolean removeMethodFromOutlineList(com.android.tools.r8.ir.optimize.Outliner$Outline):1195:1197 -> a
com.android.tools.r8.ir.optimize.Outliner$OutlineSiteIdentifier -> com.android.tools.r8.ir.optimize.D:
    com.android.tools.r8.ir.optimize.Outliner this$0 -> q
    1:2:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock):1098:1099 -> <init>
    1:3:void handle(int,int,com.android.tools.r8.ir.optimize.Outliner$Outline):1104:1106 -> a
    4:4:java.util.List lambda$handle$0(com.android.tools.r8.ir.optimize.Outliner$Outline):1105:1105 -> a
com.android.tools.r8.ir.optimize.Outliner$OutlineSourceCode -> com.android.tools.r8.ir.optimize.E:
    com.android.tools.r8.ir.optimize.Outliner this$0 -> d
    com.android.tools.r8.ir.code.Position position -> b
    com.android.tools.r8.ir.optimize.Outliner$Outline outline -> a
    int argumentMapIndex -> c
    1:1:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.ir.optimize.Outliner$Outline,com.android.tools.r8.graph.DexMethod):1346:1346 -> <init>
    2:6:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.ir.optimize.Outliner$Outline,com.android.tools.r8.graph.DexMethod):1344:1348 -> <init>
    1:1:void buildBlockTransfer(com.android.tools.r8.ir.conversion.IRBuilder,int,int,boolean):1409:1409 -> buildBlockTransfer
    1:14:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):1420:1433 -> buildInstruction
    1:6:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):1398:1403 -> buildPrelude
    1:1:com.android.tools.r8.ir.code.Position getCanonicalDebugPositionAtOffset(int):1460:1460 -> getCanonicalDebugPositionAtOffset
    1:1:com.android.tools.r8.ir.code.Position getCurrentPosition():1465:1465 -> getCurrentPosition
    1:1:int getMoveExceptionRegister(int):1455:1455 -> getMoveExceptionRegister
    1:1:int instructionCount():1353:1353 -> instructionCount
    1:1:void resolveAndBuildNewArrayFilledData(int,int,com.android.tools.r8.ir.conversion.IRBuilder):1445:1445 -> resolveAndBuildNewArrayFilledData
    1:1:void resolveAndBuildSwitch(int,int,int,com.android.tools.r8.ir.conversion.IRBuilder):1439:1439 -> resolveAndBuildSwitch
    1:1:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):1384:1384 -> traceInstruction
com.android.tools.r8.ir.optimize.Outliner$OutlineSpotter -> com.android.tools.r8.ir.optimize.x$e:
    int pendingNewInstanceIndex -> n
    com.android.tools.r8.graph.DexType returnType -> k
    boolean $assertionsDisabled -> p
    int returnValueUsersLeft -> m
    com.android.tools.r8.graph.DexEncodedMethod method -> a
    int argumentRegisters -> j
    int actualInstructions -> f
    int start -> d
    int index -> e
    com.android.tools.r8.ir.code.Value returnValue -> l
    java.util.List instructionArrayCache -> c
    java.util.List argumentsMap -> i
    java.util.List argumentTypes -> h
    java.util.List arguments -> g
    com.android.tools.r8.ir.code.BasicBlock block -> b
    com.android.tools.r8.ir.optimize.Outliner this$0 -> o
    1:1:void <clinit>():710:710 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock):729:729 -> <init>
    2:19:void <init>(com.android.tools.r8.ir.optimize.Outliner,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.BasicBlock):715:732 -> <init>
    void handle(int,int,com.android.tools.r8.ir.optimize.Outliner$Outline) -> a
    1:4:java.util.List getInstructionArray():736:739 -> a
    5:10:java.util.List orderedInValues(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value):761:766 -> a
    11:23:com.android.tools.r8.graph.DexType argumentTypeFromInvoke(com.android.tools.r8.ir.code.InvokeMethod,int):903:915 -> a
    24:31:void updateReturnValueState(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):999:1006 -> a
    32:67:void candidate(int,int):1014:1049 -> a
    68:78:void reset(int):1054:1064 -> a
    1:1:void invalidateInstructionArray():744:744 -> b
    1:5:void process():750:754 -> c
    6:9:void processInstruction(com.android.tools.r8.ir.code.Instruction):777:780 -> c
    6:9:void process():754 -> c
    10:93:boolean canIncludeInstruction(com.android.tools.r8.ir.code.Instruction):814:897 -> c
    10:93:void processInstruction(com.android.tools.r8.ir.code.Instruction):788 -> c
    10:93:void process():754 -> c
    94:94:void processInstruction(com.android.tools.r8.ir.code.Instruction):792:792 -> c
    94:94:void process():754 -> c
    95:119:void includeInstruction(com.android.tools.r8.ir.code.Instruction):920:944 -> c
    95:119:void processInstruction(com.android.tools.r8.ir.code.Instruction):795 -> c
    95:119:void process():754 -> c
    120:156:void includeInstruction(com.android.tools.r8.ir.code.Instruction):942:978 -> c
    120:156:void processInstruction(com.android.tools.r8.ir.code.Instruction):795 -> c
    120:156:void process():754 -> c
    157:160:void includeInstruction(com.android.tools.r8.ir.code.Instruction):977:980 -> c
    157:160:void processInstruction(com.android.tools.r8.ir.code.Instruction):795 -> c
    157:160:void process():754 -> c
    161:197:void includeInstruction(com.android.tools.r8.ir.code.Instruction):953:989 -> c
    161:197:void processInstruction(com.android.tools.r8.ir.code.Instruction):795 -> c
    161:197:void process():754 -> c
    198:204:void includeInstruction(com.android.tools.r8.ir.code.Instruction):987:993 -> c
    198:204:void processInstruction(com.android.tools.r8.ir.code.Instruction):795 -> c
    198:204:void process():754 -> c
    205:205:void includeInstruction(com.android.tools.r8.ir.code.Instruction):991:991 -> c
    205:205:void processInstruction(com.android.tools.r8.ir.code.Instruction):795 -> c
    205:205:void process():754 -> c
    206:216:void processInstruction(com.android.tools.r8.ir.code.Instruction):797:807 -> c
    206:216:void process():754 -> c
com.android.tools.r8.ir.optimize.PeepholeOptimizer -> com.android.tools.r8.ir.optimize.PeepholeOptimizer:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():35:35 -> <clinit>
    1:3:boolean lambda$shareIdenticalBlockPrefix$0(com.android.tools.r8.ir.regalloc.RegisterAllocator,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction,int,com.android.tools.r8.ir.code.Value):129:131 -> a
    4:33:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):198:227 -> a
    34:43:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):226:235 -> a
    44:59:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):234:249 -> a
    60:71:int sharedSuffixSize(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.regalloc.RegisterAllocator):372:383 -> a
    60:71:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):251 -> a
    72:81:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):251:260 -> a
    82:84:com.android.tools.r8.ir.code.BasicBlock createAndInsertBlockForSuffix(int,int,java.util.List,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.regalloc.RegisterAllocator):289:291 -> a
    82:84:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):262 -> a
    85:146:com.android.tools.r8.ir.code.BasicBlock createAndInsertBlockForSuffix(int,int,java.util.List,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.regalloc.RegisterAllocator):290:351 -> a
    85:146:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):262 -> a
    147:159:void shareIdenticalBlockSuffix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator,int):268:280 -> a
    160:160:java.util.List lambda$shareIdenticalBlockSuffix$1(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):227:227 -> a
    161:168:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap localsAtBlockExit(com.android.tools.r8.ir.code.BasicBlock):357:364 -> a
    169:190:void removeIdenticalPredecessorBlocks(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):396:417 -> a
    191:209:void removeIdenticalPredecessorBlocks(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):416:434 -> a
    210:212:void removeWideConstantCovering(java.util.Map,int):508:510 -> a
    1:26:void shareIdenticalBlockPrefix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):49:74 -> b
    27:140:void shareIdenticalBlockPrefix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):73:186 -> b
    141:251:void shareIdenticalBlockPrefix(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.RegisterAllocator):82:192 -> b
    252:252:java.util.List lambda$shareIdenticalBlockSuffix$2(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):235:235 -> b
    1:1:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):40:40 -> optimize
    2:17:void removeRedundantInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):452:467 -> optimize
    2:17:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):41 -> optimize
    18:23:boolean constantSpilledAtDefinition(com.android.tools.r8.ir.code.ConstNumber):515:520 -> optimize
    18:23:void removeRedundantInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):467 -> optimize
    18:23:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):41 -> optimize
    24:53:void removeRedundantInstructions(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):470:499 -> optimize
    24:53:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):41 -> optimize
    54:56:void optimize(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):42:44 -> optimize
com.android.tools.r8.ir.optimize.PhiOptimizations -> com.android.tools.r8.ir.optimize.F:
    1:1:void <init>():21:21 -> <init>
    1:6:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):112:117 -> a
    1:6:boolean optimize(com.android.tools.r8.ir.code.IRCode):24 -> a
    7:8:boolean predecessorsHaveNormalFlow(com.android.tools.r8.ir.code.BasicBlock):28:29 -> a
    7:8:boolean tryMovePhiToStack(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Phi,java.util.Set):138 -> a
    7:8:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):118 -> a
    7:8:boolean optimize(com.android.tools.r8.ir.code.IRCode):24 -> a
    9:13:boolean singleUseOfPhiAndOperands(com.android.tools.r8.ir.code.Phi):37:41 -> a
    9:13:boolean tryMovePhiToStack(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Phi,java.util.Set):138 -> a
    9:13:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):118 -> a
    9:13:boolean optimize(com.android.tools.r8.ir.code.IRCode):24 -> a
    14:15:boolean tryMovePhiToStack(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Phi,java.util.Set):141:142 -> a
    14:15:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):118 -> a
    14:15:boolean optimize(com.android.tools.r8.ir.code.IRCode):24 -> a
    16:30:int getRelativeStackHeightForInstruction(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):58:72 -> a
    16:30:boolean tryMovePhiToStack(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Phi,java.util.Set):145 -> a
    16:30:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):118 -> a
    16:30:boolean optimize(com.android.tools.r8.ir.code.IRCode):24 -> a
    31:38:boolean tryMovePhiToStack(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Phi,java.util.Set):148:155 -> a
    31:38:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):118 -> a
    31:38:boolean optimize(com.android.tools.r8.ir.code.IRCode):24 -> a
    39:50:int getStackHeightAtInstructionBackwards(com.android.tools.r8.ir.code.Instruction):88:99 -> a
    39:50:boolean tryMovePhiToStack(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Phi,java.util.Set):155 -> a
    39:50:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):118 -> a
    39:50:boolean optimize(com.android.tools.r8.ir.code.IRCode):24 -> a
    51:64:boolean tryMovePhiToStack(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Phi,java.util.Set):160:173 -> a
    51:64:boolean tryMovePhisToStack(com.android.tools.r8.ir.code.IRCode):118 -> a
    51:64:boolean optimize(com.android.tools.r8.ir.code.IRCode):24 -> a
com.android.tools.r8.ir.optimize.RedundantFieldLoadElimination -> com.android.tools.r8.ir.optimize.I:
    java.util.HashMap activeStaticFields -> h
    com.android.tools.r8.graph.AppView appView -> a
    java.util.HashMap activeInstanceFields -> g
    boolean $assertionsDisabled -> i
    com.android.tools.r8.ir.code.DominatorTree dominatorTree -> d
    com.android.tools.r8.ir.code.IRCode code -> c
    com.android.tools.r8.graph.DexEncodedMethod method -> b
    java.util.HashMap activeStaticFieldsAtEntry -> f
    java.util.HashMap activeInstanceFieldsAtEntry -> e
    1:1:void <clinit>():31:31 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):49:49 -> <init>
    2:16:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):39:53 -> <init>
    1:6:boolean couldBeVolatile(com.android.tools.r8.graph.DexField):81:86 -> a
    7:24:void run():90:107 -> a
    25:26:void killAllActiveFields():169:170 -> a
    25:26:void run():108 -> a
    27:51:void run():110:134 -> a
    52:87:void run():105:140 -> a
    88:89:void killAllActiveFields():169:170 -> a
    88:89:void run():141 -> a
    90:97:void propagateActiveFieldsFrom(com.android.tools.r8.ir.code.BasicBlock):150:157 -> a
    90:97:void run():144 -> a
    98:104:void killActiveFieldsForExceptionalExit(com.android.tools.r8.ir.code.FieldInstruction):211:217 -> a
    98:104:void propagateActiveFieldsFrom(com.android.tools.r8.ir.code.BasicBlock):157 -> a
    98:104:void run():144 -> a
    105:108:void propagateActiveFieldsFrom(com.android.tools.r8.ir.code.BasicBlock):160:163 -> a
    105:108:void run():144 -> a
    109:109:void run():146:146 -> a
    110:137:void killActiveFields(com.android.tools.r8.ir.code.FieldInstruction):174:201 -> a
    138:138:void lambda$killActiveFields$0(com.android.tools.r8.ir.optimize.RedundantFieldLoadElimination$FieldAndObject):184:184 -> a
    139:141:void eliminateRedundantRead(com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction):223:225 -> a
com.android.tools.r8.ir.optimize.RedundantFieldLoadElimination$1 -> com.android.tools.r8.ir.optimize.G:
com.android.tools.r8.ir.optimize.RedundantFieldLoadElimination$FieldAndObject -> com.android.tools.r8.ir.optimize.H:
    com.android.tools.r8.graph.DexField field -> a
    com.android.tools.r8.ir.code.Value object -> b
    1:3:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.Value):60:62 -> <init>
    1:3:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.optimize.RedundantFieldLoadElimination$1):56 -> <init>
    1:1:com.android.tools.r8.graph.DexField access$100(com.android.tools.r8.ir.optimize.RedundantFieldLoadElimination$FieldAndObject):56:56 -> a
    1:5:boolean equals(java.lang.Object):72:76 -> equals
    1:1:int hashCode():67:67 -> hashCode
com.android.tools.r8.ir.optimize.ReflectionOptimizer -> com.android.tools.r8.ir.optimize.L:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():30:30 -> <clinit>
    1:54:void rewriteGetClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):80:133 -> a
    55:56:com.android.tools.r8.ir.analysis.type.ClassTypeLatticeElement com.android.tools.r8.ir.analysis.type.TypeLatticeElement.classClassType(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.ir.analysis.type.Nullability):302:303 -> a
    55:56:void rewriteGetClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):133 -> a
    57:62:void rewriteGetClass(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):134:139 -> a
    63:63:com.android.tools.r8.graph.DexString computeClassName(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo,com.android.tools.r8.graph.DexItemFactory):148:148 -> a
    64:64:com.android.tools.r8.graph.DexString computeClassName(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo,com.android.tools.r8.graph.DexItemFactory):147:147 -> a
    65:65:com.android.tools.r8.graph.DexString computeClassName(java.lang.String,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo$ClassNameComputationOption,com.android.tools.r8.graph.DexItemFactory):160:160 -> a
    66:101:com.android.tools.r8.graph.DexString computeClassName(java.lang.String,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo$ClassNameComputationOption,com.android.tools.r8.graph.DexItemFactory,int):170:205 -> a
    102:111:com.android.tools.r8.graph.DexString computeClassName(java.lang.String,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo$ClassNameComputationOption,com.android.tools.r8.graph.DexItemFactory,int):192:201 -> a
    112:113:java.lang.String com.android.tools.r8.utils.DescriptorUtils.getCanonicalNameFromDescriptor(java.lang.String):237:238 -> a
    112:113:com.android.tools.r8.graph.DexString computeClassName(java.lang.String,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo$ClassNameComputationOption,com.android.tools.r8.graph.DexItemFactory,int):186 -> a
    114:114:com.android.tools.r8.graph.DexString computeClassName(java.lang.String,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo$ClassNameComputationOption,com.android.tools.r8.graph.DexItemFactory,int):188:188 -> a
    115:115:com.android.tools.r8.graph.DexString computeClassName(java.lang.String,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo$ClassNameComputationOption,com.android.tools.r8.graph.DexItemFactory,int):179:179 -> a
    116:152:com.android.tools.r8.graph.DexString computeClassName(java.lang.String,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo$ClassNameComputationOption,com.android.tools.r8.graph.DexItemFactory,int):172:208 -> a
com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo -> com.android.tools.r8.ir.optimize.K:
    int arrayDepth -> b
    com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo DEFAULT_INSTANCE -> c
    com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo$ClassNameComputationOption classNameComputationOption -> a
    1:1:void <clinit>():49:49 -> <clinit>
    1:3:void <init>(com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo$ClassNameComputationOption,int):60:62 -> <init>
    1:3:void <init>(com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo$ClassNameComputationOption):56 -> <init>
    4:6:void <init>(com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo$ClassNameComputationOption,int):60:62 -> <init>
    1:1:boolean needsToComputeClassName():70:70 -> a
    1:1:boolean needsToRegisterTypeReference():74:74 -> b
    1:1:com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo none():66:66 -> c
com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo$ClassNameComputationOption -> com.android.tools.r8.ir.optimize.J:
    com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo$ClassNameComputationOption SIMPLE_NAME -> e
    com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo$ClassNameComputationOption[] $VALUES -> f
    com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo$ClassNameComputationOption NAME -> b
    com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo$ClassNameComputationOption NONE -> a
    com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo$ClassNameComputationOption CANONICAL_NAME -> d
    com.android.tools.r8.ir.optimize.ReflectionOptimizer$ClassNameComputationInfo$ClassNameComputationOption TYPE_NAME -> c
    1:5:void <clinit>():34:38 -> <clinit>
    6:6:void <clinit>():33:33 -> <clinit>
    1:1:void <init>(java.lang.String,int):33:33 -> <init>
    1:1:boolean needsToComputeClassName():41:41 -> a
    1:1:boolean needsToRegisterTypeReference():45:45 -> b
com.android.tools.r8.ir.optimize.SwitchMapCollector -> com.android.tools.r8.ir.optimize.M:
    com.android.tools.r8.graph.DexString switchMapPrefix -> b
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Map switchMaps -> d
    com.android.tools.r8.graph.DexType intArrayType -> c
    1:1:void <init>(com.android.tools.r8.graph.AppView):68:68 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.AppView):66:71 -> <init>
    1:7:com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness run():75:81 -> a
    8:15:void processClasses(com.android.tools.r8.graph.DexProgramClass):86:93 -> a
    16:16:void lambda$processClasses$0(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexEncodedField):93:93 -> a
    17:57:void extractSwitchMap(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.ir.code.IRCode):98:138 -> a
    58:58:boolean lambda$extractSwitchMap$1(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.Instruction):102:102 -> a
    59:61:boolean maybeIsSwitchMap(com.android.tools.r8.graph.DexEncodedField):143:145 -> a
com.android.tools.r8.ir.optimize.SwitchUtils$1 -> com.android.tools.r8.ir.optimize.N:
com.android.tools.r8.ir.optimize.SwitchUtils$EnumSwitchInfo -> com.android.tools.r8.ir.optimize.O:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap ordinalsMap -> e
    com.android.tools.r8.ir.code.Instruction arrayGet -> b
    com.android.tools.r8.ir.code.Instruction staticGet -> c
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap indexMap -> d
    com.android.tools.r8.ir.code.Instruction ordinalInvoke -> a
    1:7:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):34:40 -> <init>
    1:7:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap,com.android.tools.r8.ir.optimize.SwitchUtils$1):22 -> <init>
com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization -> com.android.tools.r8.ir.optimize.Q:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> b
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.utils.InternalOptions options -> c
    int numberOfInvokesWithNullReceiver -> f
    boolean $assertionsDisabled -> g
    int numberOfInstanceGetOrInstancePutWithNullReceiver -> d
    int numberOfInvokesWithNullArgument -> e
    1:1:void <clinit>():63:63 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions):117:117 -> <init>
    2:10:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions):112:120 -> <init>
    1:16:com.android.tools.r8.graph.GraphLense run(com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):125:140 -> a
    17:150:com.android.tools.r8.graph.GraphLense run(com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):138:271 -> a
    151:151:com.android.tools.r8.graph.GraphLense run(com.android.tools.r8.ir.optimize.MethodPoolCollection,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):135:135 -> a
    152:198:void lambda$run$2(com.android.tools.r8.ir.optimize.MethodPoolCollection,com.android.tools.r8.utils.MethodSignatureEquivalence,com.android.tools.r8.com.google.common.collect.BiMap,java.util.Map,java.util.Map,com.android.tools.r8.graph.DexProgramClass):142:188 -> a
    199:271:void lambda$run$2(com.android.tools.r8.ir.optimize.MethodPoolCollection,com.android.tools.r8.utils.MethodSignatureEquivalence,com.android.tools.r8.com.google.common.collect.BiMap,java.util.Map,java.util.Map,com.android.tools.r8.graph.DexProgramClass):187:259 -> a
    272:272:boolean lambda$run$0(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType):225:225 -> a
    273:273:java.util.Set lambda$run$1(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):257:257 -> a
    274:280:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription getPrototypeChanges(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):276:282 -> a
    281:281:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription getPrototypeChanges(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):278:278 -> a
    282:315:com.android.tools.r8.graph.DexMethod getNewMethodSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription):315:348 -> a
    316:316:com.android.tools.r8.graph.DexMethod getNewMethodSignature(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription):347:347 -> a
    317:337:void rewrite(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):352:372 -> a
    338:339:void rewriteStaticFieldInstruction(com.android.tools.r8.ir.code.FieldInstruction,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,java.util.Set):440:441 -> a
    338:339:void rewrite(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):371 -> a
    340:340:void rewrite(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):365:365 -> a
    341:358:void rewriteInstanceFieldInstruction(com.android.tools.r8.ir.code.FieldInstruction,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,java.util.Set):412:429 -> a
    341:358:void rewrite(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):364 -> a
    359:361:void rewrite(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):378:380 -> a
    362:385:void rewriteInvoke(com.android.tools.r8.ir.code.InvokeMethod,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,java.util.Set):506:529 -> a
    362:385:void rewrite(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):379 -> a
    386:389:void rewrite(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):388:391 -> a
    390:418:void rewriteFieldInstruction(com.android.tools.r8.ir.code.FieldInstruction,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,java.util.Set):451:479 -> a
    419:436:void rewriteFieldInstruction(com.android.tools.r8.ir.code.FieldInstruction,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,java.util.Set):478:495 -> a
    437:472:void replaceCurrentInstructionWithThrowNull(com.android.tools.r8.ir.code.Instruction,java.util.ListIterator,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.IRCode,java.util.Set):542:577 -> a
    473:482:void lambda$replaceCurrentInstructionWithThrowNull$3(java.util.Set,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.BasicBlock):579:588 -> a
    483:492:boolean isAlwaysNull(com.android.tools.r8.ir.code.Value):595:604 -> a
    493:497:boolean isAlwaysNull(com.android.tools.r8.graph.DexType):610:614 -> a
    1:12:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo getRemovedArgumentsInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):287:298 -> b
    13:13:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo$Builder com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentInfo.builder():117:117 -> b
    13:13:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo getRemovedArgumentsInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):301 -> b
    14:17:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo getRemovedArgumentsInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):302:305 -> b
    18:28:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo getRemovedArgumentsInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy):300:310 -> b
com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy -> com.android.tools.r8.ir.optimize.P:
    com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy ALLOW_ARGUMENT_REMOVAL -> a
    com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$Strategy DISALLOW_ARGUMENT_REMOVAL -> b
    1:2:void <clinit>():66:67 -> <clinit>
    3:3:void <clinit>():65:65 -> <clinit>
    1:1:void <init>(java.lang.String,int):65:65 -> <init>
com.android.tools.r8.ir.optimize.UninstantiatedTypeOptimization$UninstantiatedTypeOptimizationGraphLense -> com.android.tools.r8.ir.optimize.Q$a:
    boolean $assertionsDisabled -> l
    java.util.Map removedArgumentsInfoPerMethod -> k
    1:1:void <clinit>():70:70 -> <clinit>
    1:7:void <init>(com.android.tools.r8.com.google.common.collect.BiMap,java.util.Map,com.android.tools.r8.graph.AppView):79:85 -> <init>
    8:16:void <init>(com.android.tools.r8.com.google.common.collect.BiMap,java.util.Map,com.android.tools.r8.graph.AppView):78:86 -> <init>
    1:12:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):91:102 -> f
com.android.tools.r8.ir.optimize.UnusedArgumentsCollector -> com.android.tools.r8.ir.optimize.U:
    java.util.Map removedArguments -> c
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.com.google.common.collect.BiMap methodMapping -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():41:41 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):84:84 -> <init>
    2:42:void <init>(com.android.tools.r8.graph.AppView):45:85 -> <init>
    1:1:com.android.tools.r8.graph.AppView access$000(com.android.tools.r8.ir.optimize.UnusedArgumentsCollector):41:41 -> a
    2:8:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService):89:95 -> a
    9:29:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService):89:109 -> a
    30:30:void lambda$runnableForClass$0(com.android.tools.r8.graph.DexProgramClass):182:182 -> a
    1:7:void processClass(com.android.tools.r8.graph.DexProgramClass):186:192 -> b
    8:39:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo collectUnusedArguments(com.android.tools.r8.graph.DexEncodedMethod):206:237 -> b
    8:39:void processClass(com.android.tools.r8.graph.DexProgramClass):193 -> b
    40:47:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo collectUnusedArguments(com.android.tools.r8.graph.DexEncodedMethod):233:240 -> b
    40:47:void processClass(com.android.tools.r8.graph.DexProgramClass):193 -> b
    48:54:void processClass(com.android.tools.r8.graph.DexProgramClass):194:200 -> b
    1:1:java.lang.Runnable runnableForClass(com.android.tools.r8.graph.DexProgramClass):182:182 -> c
com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$1 -> com.android.tools.r8.ir.optimize.S:
com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$CollectUsedArguments -> com.android.tools.r8.ir.optimize.T:
    java.util.BitSet used -> a
    1:3:void <init>():246:248 -> <init>
    1:3:void <init>(com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$1):246 -> <init>
    1:1:java.util.BitSet getUsedArguments():251:251 -> a
    2:2:boolean register(int):256:256 -> a
com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$UnusedArgumentsGraphLense -> com.android.tools.r8.ir.optimize.U$a:
    java.util.Map removedArguments -> k
    1:9:void <init>(java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexItemFactory,java.util.Map):61:69 -> <init>
    1:6:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):75:80 -> f
com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$UsedSignatures -> com.android.tools.r8.ir.optimize.U$b:
    com.android.tools.r8.ir.optimize.UnusedArgumentsCollector this$0 -> c
    com.android.tools.r8.utils.MethodSignatureEquivalence equivalence -> a
    java.util.Set usedSignatures -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():112:112 -> <clinit>
    1:4:void <init>(com.android.tools.r8.ir.optimize.UnusedArgumentsCollector):112:115 -> <init>
    1:4:void <init>(com.android.tools.r8.ir.optimize.UnusedArgumentsCollector,com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$1):112 -> <init>
    1:19:com.android.tools.r8.graph.DexProto protoWithRemovedArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):119:137 -> a
    1:19:com.android.tools.r8.graph.DexEncodedMethod removeArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):157 -> a
    20:29:com.android.tools.r8.graph.DexEncodedMethod removeArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):163:172 -> a
    30:30:boolean isMethodSignatureAvailable(com.android.tools.r8.graph.DexMethod):141:141 -> a
    30:30:com.android.tools.r8.graph.DexEncodedMethod removeArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):174 -> a
    31:31:com.android.tools.r8.graph.DexEncodedMethod removeArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):175:175 -> a
    32:33:void markSignatureAsNoLongerUsed(com.android.tools.r8.graph.DexMethod):149:150 -> a
    32:33:com.android.tools.r8.graph.DexEncodedMethod removeArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):175 -> a
    34:34:void markSignatureAsUsed(com.android.tools.r8.graph.DexMethod):145:145 -> a
    34:34:com.android.tools.r8.graph.DexEncodedMethod removeArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):176 -> a
    35:35:com.android.tools.r8.graph.DexEncodedMethod removeArguments(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription$RemovedArgumentsInfo):177:177 -> a
    36:36:void markSignatureAsUsed(com.android.tools.r8.graph.DexMethod):145:145 -> a
    36:36:void access$200(com.android.tools.r8.ir.optimize.UnusedArgumentsCollector$UsedSignatures,com.android.tools.r8.graph.DexMethod):112 -> a
com.android.tools.r8.ir.optimize.classinliner.ClassInliner -> com.android.tools.r8.ir.optimize.a.a:
    java.util.concurrent.ConcurrentHashMap knownClasses -> b
    com.android.tools.r8.ir.desugar.LambdaRewriter lambdaRewriter -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():28:28 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.LambdaRewriter):34:34 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.LambdaRewriter):32:36 -> <init>
    1:54:void processMethodCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.string.StringOptimizer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):128:181 -> a
    55:95:void processMethodCode(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.CodeRewriter,com.android.tools.r8.ir.optimize.string.StringOptimizer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,java.util.function.Predicate,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Supplier):158:198 -> a
    96:96:boolean lambda$processMethodCode$0(com.android.tools.r8.ir.code.Instruction):129:129 -> a
    97:97:boolean isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):204:204 -> a
    97:97:boolean lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):149 -> a
    98:115:boolean computeClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):220:237 -> a
    98:115:boolean isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):206 -> a
    98:115:boolean lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):149 -> a
    116:121:boolean isClassEligible(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):206:211 -> a
    116:121:boolean lambda$processMethodCode$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):149 -> a
com.android.tools.r8.ir.optimize.classinliner.FieldValueHelper -> com.android.tools.r8.ir.optimize.a.b:
    com.android.tools.r8.ir.code.Instruction root -> c
    com.android.tools.r8.graph.AppView appView -> d
    com.android.tools.r8.ir.code.Value defaultValue -> e
    com.android.tools.r8.graph.DexField field -> a
    boolean $assertionsDisabled -> h
    com.android.tools.r8.ir.code.IRCode code -> b
    java.util.Map ins -> f
    java.util.Map outs -> g
    1:1:void <clinit>():29:29 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.AppView):40:40 -> <init>
    2:11:void <init>(com.android.tools.r8.graph.DexField,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.AppView):35:44 -> <init>
    1:8:void replaceValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Value):48:55 -> a
    9:11:com.android.tools.r8.ir.code.Value getValueForFieldRead(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):61:63 -> a
    12:43:com.android.tools.r8.ir.code.Value getOrCreateInValue(com.android.tools.r8.ir.code.BasicBlock):84:115 -> a
    1:13:com.android.tools.r8.ir.code.Value getOrCreateOutValue(com.android.tools.r8.ir.code.BasicBlock):67:79 -> b
    14:48:com.android.tools.r8.ir.code.Value getValueDefinedInTheBlock(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.Instruction):121:155 -> b
com.android.tools.r8.ir.optimize.classinliner.InlineCandidateProcessor -> com.android.tools.r8.ir.optimize.a.c:
    int estimatedCombinedSizeForInlining -> o
    com.android.tools.r8.com.google.common.collect.ImmutableSet ALLOWED_ZERO_TEST_TYPES -> p
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.graph.DexType eligibleClass -> i
    com.android.tools.r8.ir.optimize.Inliner inliner -> c
    java.util.Map extraMethodCalls -> m
    boolean isDesugaredLambda -> k
    com.android.tools.r8.graph.DexClass eligibleClassDefinition -> j
    boolean $assertionsDisabled -> q
    com.android.tools.r8.ir.code.Instruction root -> g
    com.android.tools.r8.ir.code.Value eligibleInstance -> h
    com.android.tools.r8.ir.desugar.LambdaRewriter lambdaRewriter -> b
    java.util.function.Predicate isClassEligible -> d
    java.util.function.Predicate isProcessedConcurrently -> e
    java.util.Map methodCallsOnInstance -> l
    java.util.List unusedArguments -> n
    com.android.tools.r8.graph.DexEncodedMethod method -> f
    1:3:void <clinit>():57:59 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Predicate,java.util.function.Predicate,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):90:90 -> <init>
    2:25:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.desugar.LambdaRewriter,com.android.tools.r8.ir.optimize.Inliner,java.util.function.Predicate,java.util.function.Predicate,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):74:97 -> <init>
    1:1:int getEstimatedCombinedSizeForInlining():101:101 -> a
    2:24:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):244:266 -> a
    25:37:com.android.tools.r8.graph.DexEncodedMethod findSingleTarget(com.android.tools.r8.ir.code.InvokeMethod):880:892 -> a
    25:37:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):267 -> a
    38:52:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):268:282 -> a
    53:95:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleConstructorCall(com.android.tools.r8.ir.code.InvokeDirect,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Supplier):527:569 -> a
    53:95:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):282 -> a
    96:117:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):284:305 -> a
    118:137:boolean isExtraMethodCallEligible(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Supplier):727:746 -> a
    118:137:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):306 -> a
    138:147:boolean isEligibleParameterUsages(com.android.tools.r8.ir.code.InvokeMethod,java.util.List,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Supplier):774:783 -> a
    138:147:boolean isExtraMethodCallEligible(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Supplier):749 -> a
    138:147:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):306 -> a
    148:159:boolean isExtraMethodCallEligible(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Supplier):753:764 -> a
    148:159:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):306 -> a
    160:163:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):315:318 -> a
    164:166:com.android.tools.r8.ir.code.InstructionOrPhi areInstanceUsersEligible(java.util.function.Supplier):255:257 -> a
    167:180:void replaceUsagesAsUnusedArgument(com.android.tools.r8.ir.code.IRCode):378:391 -> a
    167:180:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):343 -> a
    181:185:boolean forceInlineExtraMethodInvocations(com.android.tools.r8.ir.code.IRCode):395:399 -> a
    181:185:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):345 -> a
    186:204:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):348:366 -> a
    205:208:boolean forceInlineDirectMethodInvocations(com.android.tools.r8.ir.code.IRCode):404:407 -> a
    205:208:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):369 -> a
    209:254:void removeMiscUsages(com.android.tools.r8.ir.code.IRCode):414:459 -> a
    209:254:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):370 -> a
    255:271:void removeFieldReads(com.android.tools.r8.ir.code.IRCode):465:481 -> a
    255:271:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):371 -> a
    272:287:void removeFieldWrites():506:521 -> a
    272:287:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):372 -> a
    288:290:void removeFieldWrites():515:517 -> a
    288:290:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):372 -> a
    291:293:void removeFieldWrites():508:510 -> a
    291:293:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):372 -> a
    294:294:boolean processInlining(com.android.tools.r8.ir.code.IRCode,java.util.function.Supplier):373:373 -> a
    295:299:void replaceFieldRead(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstanceGet,java.util.Map):489:493 -> a
    300:310:void replaceFieldRead(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.InstanceGet,java.util.Map):492:502 -> a
    311:311:com.android.tools.r8.ir.optimize.classinliner.FieldValueHelper lambda$replaceFieldRead$0(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.DexField):493:493 -> a
    312:342:boolean isEligibleInvokeWithAllUsersAsReceivers(com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility,com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set):584:614 -> a
    312:342:boolean lambda$isEligibleDirectVirtualMethodCall$1(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility):631 -> a
    343:349:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleDirectVirtualMethodCall(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):623:629 -> a
    350:350:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleDirectVirtualMethodCall(com.android.tools.r8.ir.code.InvokeMethodWithReceiver,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):627:627 -> a
    351:353:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleIndirectVirtualMethodCall(com.android.tools.r8.graph.DexMethod):635:637 -> a
    354:354:boolean lambda$isEligibleIndirectVirtualMethodCall$2(com.android.tools.r8.graph.DexEncodedMethod$ClassInlinerEligibility):638:638 -> a
    355:391:com.android.tools.r8.ir.optimize.Inliner$InliningInfo isEligibleVirtualMethodCall(boolean,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate):648:684 -> a
    392:403:boolean isExtraMethodCall(com.android.tools.r8.ir.code.InvokeMethod):688:699 -> a
    404:434:boolean isEligibleParameterUsage(com.android.tools.r8.graph.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):796:826 -> a
    435:440:boolean isTrivialInitializer(com.android.tools.r8.graph.DexMethod):848:853 -> a
    435:440:boolean isEligibleParameterUsage(com.android.tools.r8.graph.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):827 -> a
    441:458:boolean isEligibleParameterUsage(com.android.tools.r8.graph.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):822:839 -> a
    459:459:boolean isEligibleParameterUsage(com.android.tools.r8.graph.ParameterUsagesInfo$ParameterUsage,com.android.tools.r8.ir.code.InvokeMethod,java.util.function.Supplier):838:838 -> a
    460:472:boolean isEligibleSingleTarget(com.android.tools.r8.graph.DexEncodedMethod):899:911 -> a
    473:473:void lambda$removeInstruction$3(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value):925:925 -> a
    474:475:void removeInstruction(com.android.tools.r8.ir.code.Instruction):925:926 -> a
    1:94:boolean isClassAndUsageEligible():140:233 -> b
    95:108:boolean exemptFromInstructionLimit(com.android.tools.r8.graph.DexEncodedMethod):857:870 -> b
    95:108:void markSizeForInlining(com.android.tools.r8.graph.DexEncodedMethod):874 -> b
    109:109:void markSizeForInlining(com.android.tools.r8.graph.DexEncodedMethod):875:875 -> b
    1:19:boolean isInstanceEligible():107:125 -> c
com.android.tools.r8.ir.optimize.lambda.CaptureSignature -> com.android.tools.r8.ir.optimize.lambda.CaptureSignature:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList SINGLE_LIST -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList EMPTY_LIST -> a
    boolean $assertionsDisabled -> c
    1:3:void <clinit>():36:38 -> <clinit>
    1:15:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList getReverseCaptureMapping(com.android.tools.r8.graph.DexType[]):49:63 -> a
    16:20:boolean verifyMapping(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):152:156 -> a
    16:20:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList getReverseCaptureMapping(com.android.tools.r8.graph.DexType[]):63 -> a
    21:21:int lambda$getReverseCaptureMapping$0(com.android.tools.r8.graph.DexType[],java.lang.Integer):62:62 -> a
    22:42:com.android.tools.r8.graph.DexType fieldType(com.android.tools.r8.graph.DexItemFactory,java.lang.String,int):69:89 -> a
    43:47:com.android.tools.r8.graph.DexType fieldType(com.android.tools.r8.graph.DexItemFactory,java.lang.String,int):73:77 -> a
    48:62:com.android.tools.r8.graph.DexType fieldType(com.android.tools.r8.graph.DexItemFactory,java.lang.String,int):71:85 -> a
    63:69:com.android.tools.r8.graph.DexType fieldType(com.android.tools.r8.graph.DexItemFactory,java.lang.String,int):81:87 -> a
    70:70:com.android.tools.r8.graph.DexType fieldType(com.android.tools.r8.graph.DexItemFactory,java.lang.String,int):79:79 -> a
    71:71:com.android.tools.r8.graph.DexType fieldType(com.android.tools.r8.graph.DexItemFactory,java.lang.String,int):75:75 -> a
    72:80:java.lang.String getCaptureSignature(int,java.util.function.IntFunction):98:106 -> a
    81:81:com.android.tools.r8.graph.DexType lambda$getCaptureSignature$1(java.util.List,int):111:111 -> a
    82:82:java.lang.String getCaptureSignature(com.android.tools.r8.graph.DexTypeList):116:116 -> a
    83:83:com.android.tools.r8.graph.DexType lambda$getCaptureSignature$2(com.android.tools.r8.graph.DexTypeList,int):116:116 -> a
    84:109:int mapFieldIntoCaptureIndex(java.lang.String,java.util.List,com.android.tools.r8.graph.DexField):123:148 -> a
    1:1:java.lang.String getCaptureSignature(java.util.List):111:111 -> getCaptureSignature
com.android.tools.r8.ir.optimize.lambda.CodeProcessor -> com.android.tools.r8.ir.optimize.lambda.c:
    com.android.tools.r8.graph.DexItemFactory factory -> b
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy NoOp -> j
    boolean $assertionsDisabled -> k
    com.android.tools.r8.ir.code.IRCode code -> g
    com.android.tools.r8.ir.code.InstructionListIterator instructions -> i
    java.util.function.Function strategyProvider -> d
    com.android.tools.r8.kotlin.Kotlin kotlin -> c
    com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor lambdaChecker -> e
    java.util.ListIterator blocks -> h
    com.android.tools.r8.graph.DexEncodedMethod method -> f
    1:33:void <clinit>():45:77 -> <clinit>
    1:9:void <init>(com.android.tools.r8.graph.AppView,java.util.function.Function,com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):167:175 -> <init>
    void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InstanceGet) -> a
    void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InstancePut) -> a
    void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InvokeMethod) -> a
    void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.NewInstance) -> a
    void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.StaticGet) -> a
    void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.StaticPut) -> a
    1:2:com.android.tools.r8.ir.code.InstructionListIterator instructions():179:180 -> a
    1:5:void processCode():184:188 -> b
    6:7:void onInstruction(com.android.tools.r8.ir.code.Instruction):194:195 -> b
    6:7:void processCode():188 -> b
    8:37:void handle(com.android.tools.r8.ir.code.Invoke):220:249 -> b
    8:37:void onInstruction(com.android.tools.r8.ir.code.Instruction):195 -> b
    8:37:void processCode():188 -> b
    38:39:void onInstruction(com.android.tools.r8.ir.code.Instruction):196:197 -> b
    38:39:void processCode():188 -> b
    40:44:void handle(com.android.tools.r8.ir.code.NewInstance):253:257 -> b
    40:44:void onInstruction(com.android.tools.r8.ir.code.Instruction):197 -> b
    40:44:void processCode():188 -> b
    45:46:void onInstruction(com.android.tools.r8.ir.code.Instruction):198:199 -> b
    45:46:void processCode():188 -> b
    47:47:void handle(com.android.tools.r8.ir.code.CheckCast):263:263 -> b
    47:47:void onInstruction(com.android.tools.r8.ir.code.Instruction):199 -> b
    47:47:void processCode():188 -> b
    48:49:void onInstruction(com.android.tools.r8.ir.code.Instruction):200:201 -> b
    48:49:void processCode():188 -> b
    50:50:void handle(com.android.tools.r8.ir.code.NewArrayEmpty):267:267 -> b
    50:50:void onInstruction(com.android.tools.r8.ir.code.Instruction):201 -> b
    50:50:void processCode():188 -> b
    51:52:void onInstruction(com.android.tools.r8.ir.code.Instruction):202:203 -> b
    51:52:void processCode():188 -> b
    53:53:void handle(com.android.tools.r8.ir.code.ConstClass):271:271 -> b
    53:53:void onInstruction(com.android.tools.r8.ir.code.Instruction):203 -> b
    53:53:void processCode():188 -> b
    54:55:void onInstruction(com.android.tools.r8.ir.code.Instruction):204:205 -> b
    54:55:void processCode():188 -> b
    56:56:void handle(com.android.tools.r8.ir.code.ConstMethodType):275:275 -> b
    56:56:void onInstruction(com.android.tools.r8.ir.code.Instruction):205 -> b
    56:56:void processCode():188 -> b
    57:58:void onInstruction(com.android.tools.r8.ir.code.Instruction):206:207 -> b
    57:58:void processCode():188 -> b
    59:59:void handle(com.android.tools.r8.ir.code.ConstMethodHandle):279:279 -> b
    59:59:void onInstruction(com.android.tools.r8.ir.code.Instruction):207 -> b
    59:59:void processCode():188 -> b
    60:61:void onInstruction(com.android.tools.r8.ir.code.Instruction):208:209 -> b
    60:61:void processCode():188 -> b
    62:75:void handle(com.android.tools.r8.ir.code.InstanceGet):283:296 -> b
    62:75:void onInstruction(com.android.tools.r8.ir.code.Instruction):209 -> b
    62:75:void processCode():188 -> b
    76:77:void onInstruction(com.android.tools.r8.ir.code.Instruction):210:211 -> b
    76:77:void processCode():188 -> b
    78:91:void handle(com.android.tools.r8.ir.code.InstancePut):300:313 -> b
    78:91:void onInstruction(com.android.tools.r8.ir.code.Instruction):211 -> b
    78:91:void processCode():188 -> b
    92:93:void onInstruction(com.android.tools.r8.ir.code.Instruction):212:213 -> b
    92:93:void processCode():188 -> b
    94:103:void handle(com.android.tools.r8.ir.code.StaticGet):317:326 -> b
    94:103:void onInstruction(com.android.tools.r8.ir.code.Instruction):213 -> b
    94:103:void processCode():188 -> b
    104:105:void onInstruction(com.android.tools.r8.ir.code.Instruction):214:215 -> b
    104:105:void processCode():188 -> b
    106:115:void handle(com.android.tools.r8.ir.code.StaticPut):331:340 -> b
    106:115:void onInstruction(com.android.tools.r8.ir.code.Instruction):215 -> b
    106:115:void processCode():188 -> b
com.android.tools.r8.ir.optimize.lambda.CodeProcessor$1 -> com.android.tools.r8.ir.optimize.lambda.a:
    1:1:void <init>():77:77 -> <init>
    boolean isValidInvoke(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod) -> a
    boolean isValidNewInstance(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.NewInstance) -> a
    boolean isValidStaticFieldWrite(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> a
    1:1:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InstancePut):125:125 -> a
    2:2:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InstanceGet):130:130 -> a
    3:3:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.StaticPut):135:135 -> a
    4:4:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.StaticGet):140:140 -> a
    boolean isValidStaticFieldRead(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> b
    1:1:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.NewInstance):115:115 -> b
    2:2:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod):120:120 -> b
    boolean isValidInstanceFieldRead(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> c
    boolean isValidInstanceFieldWrite(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> d
com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy -> com.android.tools.r8.ir.optimize.lambda.b:
    boolean isValidInvoke(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod) -> a
    boolean isValidNewInstance(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.NewInstance) -> a
    boolean isValidStaticFieldWrite(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> a
    void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InstanceGet) -> a
    void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InstancePut) -> a
    void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.StaticGet) -> a
    void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.StaticPut) -> a
    boolean isValidStaticFieldRead(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> b
    void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod) -> b
    void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.NewInstance) -> b
    boolean isValidInstanceFieldRead(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> c
    boolean isValidInstanceFieldWrite(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField) -> d
com.android.tools.r8.ir.optimize.lambda.LambdaGroup -> com.android.tools.r8.ir.optimize.lambda.f:
    java.util.Map lambdas -> c
    com.android.tools.r8.ir.optimize.lambda.LambdaGroupId id -> a
    com.android.tools.r8.graph.DexType classType -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():39:39 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaGroupId):63:63 -> <init>
    2:15:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaGroupId):51:64 -> <init>
    com.android.tools.r8.ir.optimize.lambda.LambdaGroupClassBuilder getBuilder(com.android.tools.r8.graph.DexItemFactory) -> a
    com.android.tools.r8.utils.ThrowingConsumer lambdaClassValidator(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.AppInfoWithSubtyping) -> a
    1:3:void forEachLambda(java.util.function.Consumer):77:79 -> a
    4:6:boolean anyLambda(java.util.function.Predicate):84:86 -> a
    7:8:boolean shouldAddToMainDex(com.android.tools.r8.graph.AppView):96:97 -> a
    9:9:boolean containsLambda(com.android.tools.r8.graph.DexType):105:105 -> a
    10:11:void add(com.android.tools.r8.graph.DexProgramClass):131:132 -> a
    12:24:void compact():141:153 -> a
    25:27:boolean verifyLambdaIds(boolean):200:202 -> a
    com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy getCodeStrategy() -> b
    1:2:java.util.List lambdaCaptureFields(com.android.tools.r8.graph.DexType):114:115 -> b
    3:7:com.android.tools.r8.graph.DexProgramClass synthesizeClass(com.android.tools.r8.graph.DexItemFactory):167:171 -> b
    8:21:java.lang.String createHash(java.util.List):179:192 -> b
    8:21:com.android.tools.r8.graph.DexProgramClass synthesizeClass(com.android.tools.r8.graph.DexItemFactory):171 -> b
    22:22:com.android.tools.r8.graph.DexProgramClass synthesizeClass(com.android.tools.r8.graph.DexItemFactory):171:171 -> b
    23:25:com.android.tools.r8.graph.DexProgramClass synthesizeClass(com.android.tools.r8.graph.DexItemFactory):170:172 -> b
    26:26:java.lang.String createHash(java.util.List):194:194 -> b
    26:26:com.android.tools.r8.graph.DexProgramClass synthesizeClass(com.android.tools.r8.graph.DexItemFactory):171 -> b
    1:2:com.android.tools.r8.graph.DexType getGroupClassType():68:69 -> c
    3:4:int lambdaId(com.android.tools.r8.graph.DexType):109:110 -> c
    java.lang.String getGroupSuffix() -> d
    1:4:com.android.tools.r8.graph.DexEncodedField lambdaSingletonField(com.android.tools.r8.graph.DexType):119:122 -> d
    java.lang.String getTypePackage() -> e
    1:2:void remove(com.android.tools.r8.graph.DexType):136:137 -> e
    1:1:boolean isTrivial():127:127 -> f
    1:1:int size():73:73 -> g
com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo -> com.android.tools.r8.ir.optimize.lambda.d:
    com.android.tools.r8.graph.DexProgramClass clazz -> b
    int id -> a
    1:3:void <init>(int,com.android.tools.r8.graph.DexProgramClass):57:59 -> <init>
com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError -> com.android.tools.r8.ir.optimize.lambda.e:
    boolean reportable -> a
    1:2:void <init>(java.lang.String,boolean):215:216 -> <init>
    1:2:void <init>(java.lang.String):211 -> <init>
    3:4:void <init>(java.lang.String,boolean):215:216 -> <init>
com.android.tools.r8.ir.optimize.lambda.LambdaGroupClassBuilder -> com.android.tools.r8.ir.optimize.lambda.g:
    com.android.tools.r8.graph.DexItemFactory factory -> b
    com.android.tools.r8.ir.optimize.lambda.LambdaGroup group -> a
    java.lang.String origin -> c
    1:4:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaGroup,com.android.tools.r8.graph.DexItemFactory,java.lang.String):27:30 -> <init>
    com.android.tools.r8.graph.ClassAccessFlags buildAccessFlags() -> a
    com.android.tools.r8.graph.DexAnnotationSet buildAnnotations() -> b
    com.android.tools.r8.graph.DexEncodedMethod[] buildDirectMethods() -> c
    com.android.tools.r8.graph.EnclosingMethodAttribute buildEnclosingMethodAttribute() -> d
    java.util.List buildInnerClasses() -> e
    com.android.tools.r8.graph.DexEncodedField[] buildInstanceFields() -> f
    com.android.tools.r8.graph.DexTypeList buildInterfaces() -> g
    com.android.tools.r8.graph.DexEncodedField[] buildStaticFields() -> h
    com.android.tools.r8.graph.DexEncodedMethod[] buildVirtualMethods() -> i
    com.android.tools.r8.graph.DexType getSuperClassType() -> j
    1:19:com.android.tools.r8.graph.DexProgramClass synthesizeClass():34:52 -> k
com.android.tools.r8.ir.optimize.lambda.LambdaGroupId -> com.android.tools.r8.ir.optimize.lambda.h:
    com.android.tools.r8.ir.optimize.lambda.LambdaGroup createGroup() -> a
com.android.tools.r8.ir.optimize.lambda.LambdaMerger -> com.android.tools.r8.ir.optimize.lambda.l:
    java.util.Map lambdas -> a
    java.util.Map groups -> b
    com.android.tools.r8.kotlin.Kotlin kotlin -> g
    java.util.Set invalidatedLambdas -> c
    com.android.tools.r8.graph.DexItemFactory factory -> f
    java.util.Set methodsToReprocess -> d
    boolean $assertionsDisabled -> l
    com.android.tools.r8.graph.AppView appView -> e
    com.android.tools.r8.DiagnosticsHandler reporter -> h
    com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor lambdaInvalidator -> j
    com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor lambdaChecker -> k
    java.util.function.BiFunction strategyFactory -> i
    1:1:void <clinit>():78:78 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):115:115 -> <init>
    2:44:void <init>(com.android.tools.r8.graph.AppView):81:123 -> <init>
    1:1:com.android.tools.r8.graph.AppView access$000(com.android.tools.r8.ir.optimize.lambda.LambdaMerger):78:78 -> a
    2:2:void access$200(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod):78:78 -> a
    3:3:com.android.tools.r8.ir.optimize.lambda.LambdaGroup getLambdaGroup(com.android.tools.r8.graph.DexType):138:138 -> a
    4:37:void collectGroupCandidates(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView):151:184 -> a
    38:38:boolean lambda$collectGroupCandidates$1(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexProgramClass):152:152 -> a
    39:39:int lambda$collectGroupCandidates$3(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):159:159 -> a
    40:41:void processMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):195:196 -> a
    42:53:void applyLambdaClassMapping(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.ir.conversion.OptimizationFeedback,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):207:218 -> a
    54:74:java.util.Map finalizeLambdaGroups(com.android.tools.r8.graph.AppInfoWithSubtyping):287:307 -> a
    54:74:void applyLambdaClassMapping(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.ir.conversion.OptimizationFeedback,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):223 -> a
    75:99:void applyLambdaClassMapping(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.ir.conversion.OptimizationFeedback,com.android.tools.r8.graph.DexApplication$Builder,java.util.concurrent.ExecutorService):226:250 -> a
    100:100:void lambda$applyLambdaClassMapping$7(com.android.tools.r8.graph.DexEncodedMethod):243:243 -> a
    101:105:void analyzeReferencesInProgramClasses(com.android.tools.r8.graph.DexApplication,java.util.concurrent.ExecutorService):255:259 -> a
    106:125:void analyzeLambdaClassesStructure(com.android.tools.r8.graph.AppInfoWithSubtyping,java.util.concurrent.ExecutorService):264:283 -> a
    126:126:void lambda$analyzeLambdaClassesStructure$10(java.util.List,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.ThrowingConsumer,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):269:269 -> a
    127:132:void lambda$analyzeLambdaClassesStructure$9(com.android.tools.r8.utils.ThrowingConsumer,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):271:276 -> a
    133:138:void lambda$analyzeLambdaClassesStructure$9(com.android.tools.r8.utils.ThrowingConsumer,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):274:279 -> a
    139:145:void removeTrivialLambdaGroups():313:319 -> a
    146:146:void lambda$removeTrivialLambdaGroups$11(com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):319:319 -> a
    147:157:void rewriteLambdaReferences(com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.conversion.OptimizationFeedback):327:337 -> a
    158:171:void rewriteLambdaReferences(com.android.tools.r8.ir.conversion.IRConverter,java.util.concurrent.ExecutorService,com.android.tools.r8.ir.conversion.OptimizationFeedback):336:349 -> a
    172:176:java.lang.Object lambda$rewriteLambdaReferences$13(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.OptimizationFeedback,java.util.Set):339:343 -> a
    177:183:java.lang.Object lambda$rewriteLambdaReferences$13(com.android.tools.r8.ir.conversion.IRConverter,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.OptimizationFeedback,java.util.Set):339:345 -> a
    184:208:void analyzeClass(com.android.tools.r8.graph.DexProgramClass):353:377 -> a
    184:208:void lambda$analyzeReferencesInProgramClasses$8(com.android.tools.r8.graph.DexProgramClass):257 -> a
    209:210:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy strategyProvider(com.android.tools.r8.graph.DexType):382:383 -> a
    209:210:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy access$300(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexType):78 -> a
    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor access$100(com.android.tools.r8.ir.optimize.lambda.LambdaMerger):78:78 -> b
    2:2:void invalidateLambda(com.android.tools.r8.graph.DexType):130:130 -> b
    3:5:boolean lambda$collectGroupCandidates$2(com.android.tools.r8.graph.DexProgramClass):155:157 -> b
    6:6:boolean com.android.tools.r8.kotlin.KotlinSyntheticClass.isLambda():56:56 -> b
    6:6:boolean lambda$collectGroupCandidates$2(com.android.tools.r8.graph.DexProgramClass):157 -> b
    7:8:boolean lambda$collectGroupCandidates$2(com.android.tools.r8.graph.DexProgramClass):157:158 -> b
    9:21:void lambda$collectGroupCandidates$4(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexProgramClass):163:175 -> b
    22:22:void lambda$collectGroupCandidates$4(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexProgramClass):170:170 -> b
    23:23:com.android.tools.r8.ir.optimize.lambda.CodeProcessor lambda$applyLambdaClassMapping$6(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):226:226 -> b
    24:24:com.android.tools.r8.graph.DexEncodedMethod lambda$rewriteLambdaReferences$12(com.android.tools.r8.graph.DexEncodedMethod):332:332 -> b
    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor access$400(com.android.tools.r8.ir.optimize.lambda.LambdaMerger):78:78 -> c
    2:2:boolean isMergeableLambda(com.android.tools.r8.graph.DexType):134:134 -> c
    3:3:void queueForProcessing(com.android.tools.r8.graph.DexEncodedMethod):142:142 -> c
    4:4:com.android.tools.r8.ir.optimize.lambda.CodeProcessor lambda$collectGroupCandidates$5(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):184:184 -> c
    1:1:void lambda$new$0(com.android.tools.r8.graph.DexType):125:125 -> d
com.android.tools.r8.ir.optimize.lambda.LambdaMerger$1 -> com.android.tools.r8.ir.optimize.lambda.i:
com.android.tools.r8.ir.optimize.lambda.LambdaMerger$AnalysisStrategy -> com.android.tools.r8.ir.optimize.lambda.j:
    com.android.tools.r8.ir.optimize.lambda.LambdaMerger this$0 -> l
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.lambda.LambdaMerger$1):386:386 -> <init>
    2:6:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):387:391 -> <init>
    7:7:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):388:388 -> <init>
    1:1:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy lambda$new$0(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexType):390:390 -> a
    2:2:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InvokeMethod):398:398 -> a
    3:3:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.NewInstance):403:403 -> a
    4:4:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InstancePut):408:408 -> a
    5:5:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InstanceGet):413:413 -> a
    6:6:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.StaticPut):418:418 -> a
    7:7:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.StaticGet):423:423 -> a
com.android.tools.r8.ir.optimize.lambda.LambdaMerger$ApplyStrategy -> com.android.tools.r8.ir.optimize.lambda.k:
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.optimize.lambda.LambdaMerger$1):427:427 -> <init>
    2:4:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):430:432 -> <init>
    5:5:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):429:429 -> <init>
    1:1:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy lambda$new$0(com.android.tools.r8.ir.optimize.lambda.LambdaMerger,com.android.tools.r8.graph.DexType):431:431 -> a
    2:2:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InvokeMethod):439:439 -> a
    3:3:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.NewInstance):444:444 -> a
    4:4:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InstancePut):449:449 -> a
    5:5:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.InstanceGet):454:454 -> a
    6:6:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.StaticPut):459:459 -> a
    7:7:void process(com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy,com.android.tools.r8.ir.code.StaticGet):464:464 -> a
com.android.tools.r8.ir.optimize.lambda.LambdaTypeVisitor -> com.android.tools.r8.ir.optimize.lambda.m:
    java.util.function.Consumer onLambdaType -> c
    java.util.function.Predicate isLambdaType -> b
    boolean $assertionsDisabled -> d
    com.android.tools.r8.graph.DexItemFactory factory -> a
    1:1:void <clinit>():31:31 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.DexItemFactory,java.util.function.Predicate,java.util.function.Consumer):37:40 -> <init>
    1:4:void accept(com.android.tools.r8.graph.DexCallSite):44:47 -> a
    5:28:void accept(com.android.tools.r8.graph.DexValue):52:75 -> a
    29:33:void accept(com.android.tools.r8.graph.DexMethodHandle):80:84 -> a
    34:36:void accept(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType):89:91 -> a
    37:40:void accept(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):96:99 -> a
    41:42:void accept(com.android.tools.r8.graph.DexProto):103:104 -> a
    43:44:void accept(com.android.tools.r8.graph.DexTypeList):108:109 -> a
    45:46:void accept(com.android.tools.r8.graph.DexAnnotationSet):114:115 -> a
    47:47:void accept(com.android.tools.r8.graph.ParameterAnnotationsList):120:120 -> a
    48:48:void accept(com.android.tools.r8.graph.DexAnnotation):124:124 -> a
    49:50:void accept(com.android.tools.r8.graph.DexEncodedAnnotation):128:129 -> a
    49:50:void accept(com.android.tools.r8.graph.DexAnnotation):124 -> a
    51:51:void accept(com.android.tools.r8.graph.DexAnnotationElement):135:135 -> a
    51:51:void accept(com.android.tools.r8.graph.DexEncodedAnnotation):130 -> a
    51:51:void accept(com.android.tools.r8.graph.DexAnnotation):124 -> a
    52:60:void accept(com.android.tools.r8.graph.DexType):142:150 -> a
com.android.tools.r8.ir.optimize.lambda.kotlin.ClassInitializerSourceCode -> com.android.tools.r8.ir.optimize.lambda.a.a:
    com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup group -> o
    boolean $assertionsDisabled -> p
    com.android.tools.r8.graph.DexItemFactory factory -> n
    1:1:void <clinit>():20:20 -> <clinit>
    1:5:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup,com.android.tools.r8.ir.code.Position):26:30 -> <init>
    1:15:void lambda$prepareInstructions$4(int,com.android.tools.r8.graph.DexType,int,com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):46:60 -> a
    16:16:void lambda$prepareInstructions$0(int,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.conversion.IRBuilder):49:49 -> a
    17:17:void lambda$prepareInstructions$1(int,int,com.android.tools.r8.ir.conversion.IRBuilder):50:50 -> a
    18:18:void lambda$prepareInstructions$2(com.android.tools.r8.graph.DexMethod,java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):53:53 -> a
    1:1:void lambda$prepareInstructions$3(int,int,com.android.tools.r8.ir.conversion.IRBuilder):62:62 -> b
    1:3:void prepareInstructions():35:37 -> f
    4:35:void prepareInstructions():36:67 -> f
com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup -> com.android.tools.r8.ir.optimize.lambda.a.d:
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$GroupId):106:106 -> <init>
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$GroupId,com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$1):104 -> <init>
    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaGroupClassBuilder getBuilder(com.android.tools.r8.graph.DexItemFactory):111:111 -> a
    2:2:com.android.tools.r8.utils.ThrowingConsumer lambdaClassValidator(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.AppInfoWithSubtyping):117:117 -> a
    java.lang.String getGroupSuffix() -> d
com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$1 -> com.android.tools.r8.ir.optimize.lambda.a.b:
com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$ClassBuilder -> com.android.tools.r8.ir.optimize.lambda.a.c:
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup,com.android.tools.r8.graph.DexItemFactory,java.lang.String):180:180 -> <init>
    1:4:com.android.tools.r8.ir.synthetic.SyntheticSourceCode createInstanceInitializerSourceCode(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):191:194 -> a
    5:5:com.android.tools.r8.graph.DexField lambda$createInstanceInitializerSourceCode$0(int):195:195 -> a
    1:1:com.android.tools.r8.graph.DexType getSuperClassType():185:185 -> j
com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$ClassValidator -> com.android.tools.r8.ir.optimize.lambda.a.d$a:
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.AppInfoWithSubtyping):152:152 -> <init>
    1:1:int getInstanceInitializerSize(java.util.List):157:157 -> a
    2:9:int validateInstanceInitializerEpilogue(com.android.tools.r8.code.Instruction[],int):164:171 -> a
    10:10:int validateInstanceInitializerEpilogue(com.android.tools.r8.code.Instruction[],int):167:167 -> a
com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$GroupId -> com.android.tools.r8.ir.optimize.lambda.a.e:
    1:1:void <init>(java.lang.String,com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.graph.EnclosingMethodAttribute):130:130 -> <init>
    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaGroup createGroup():145:145 -> a
    java.lang.String getLambdaKindDescriptor() -> b
    1:1:boolean equals(java.lang.Object):135:135 -> equals
com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroup$InstanceInitializerSourceCode -> com.android.tools.r8.ir.optimize.lambda.a.d$b:
    com.android.tools.r8.graph.DexMethod objectInitializer -> p
    1:2:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField,java.util.function.IntFunction,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):213:214 -> <init>
    1:6:void lambda$prepareSuperConstructorCall$0(int,com.android.tools.r8.ir.conversion.IRBuilder):221:226 -> b
    7:7:void lambda$prepareSuperConstructorCall$0(int,com.android.tools.r8.ir.conversion.IRBuilder):221:221 -> b
    1:1:void prepareSuperConstructorCall(int):219:219 -> c
com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroupIdFactory -> com.android.tools.r8.ir.optimize.lambda.a.f:
    com.android.tools.r8.ir.optimize.lambda.kotlin.JStyleLambdaGroupIdFactory INSTANCE -> b
    boolean $assertionsDisabled -> c
    1:2:void <clinit>():16:17 -> <clinit>
    1:1:void <init>():16:16 -> <init>
    1:6:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):22:27 -> b
    7:7:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):48:48 -> b
    7:7:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):31 -> b
    8:19:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):56:67 -> b
    8:19:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    20:29:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):34:43 -> b
    30:31:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):60:61 -> b
    30:31:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    32:32:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):57:57 -> b
    32:32:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    33:33:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):49:49 -> b
    33:33:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):31 -> b
com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup -> com.android.tools.r8.ir.optimize.lambda.a.l:
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$GroupId):112:112 -> <init>
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$GroupId,com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$1):110 -> <init>
    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaGroupClassBuilder getBuilder(com.android.tools.r8.graph.DexItemFactory):117:117 -> a
    2:2:com.android.tools.r8.utils.ThrowingConsumer lambdaClassValidator(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.AppInfoWithSubtyping):123:123 -> a
    java.lang.String getGroupSuffix() -> d
com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$1 -> com.android.tools.r8.ir.optimize.lambda.a.g:
com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$ClassBuilder -> com.android.tools.r8.ir.optimize.lambda.a.h:
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup,com.android.tools.r8.graph.DexItemFactory,java.lang.String):191:191 -> <init>
    1:7:com.android.tools.r8.ir.synthetic.SyntheticSourceCode createInstanceInitializerSourceCode(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):202:208 -> a
    8:8:com.android.tools.r8.graph.DexField lambda$createInstanceInitializerSourceCode$0(int):206:206 -> a
    1:1:com.android.tools.r8.graph.DexType getSuperClassType():196:196 -> j
com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$ClassValidator -> com.android.tools.r8.ir.optimize.lambda.a.i:
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.AppInfoWithSubtyping):158:158 -> <init>
    1:1:int getInstanceInitializerSize(java.util.List):163:163 -> a
    2:14:int validateInstanceInitializerEpilogue(com.android.tools.r8.code.Instruction[],int):170:182 -> a
    15:15:int validateInstanceInitializerEpilogue(com.android.tools.r8.code.Instruction[],int):178:178 -> a
com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$GroupId -> com.android.tools.r8.ir.optimize.lambda.a.j:
    1:1:void <init>(java.lang.String,com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.graph.EnclosingMethodAttribute):136:136 -> <init>
    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaGroup createGroup():151:151 -> a
    java.lang.String getLambdaKindDescriptor() -> b
    1:1:boolean equals(java.lang.Object):141:141 -> equals
com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroup$InstanceInitializerSourceCode -> com.android.tools.r8.ir.optimize.lambda.a.k:
    int arity -> p
    com.android.tools.r8.graph.DexMethod lambdaInitializer -> q
    1:4:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField,java.util.function.IntFunction,com.android.tools.r8.graph.DexMethod,int,com.android.tools.r8.ir.code.Position):227:230 -> <init>
    5:5:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField,java.util.function.IntFunction,com.android.tools.r8.graph.DexMethod,int,com.android.tools.r8.ir.code.Position):229:229 -> <init>
    1:1:void lambda$prepareSuperConstructorCall$0(int,com.android.tools.r8.ir.conversion.IRBuilder):236:236 -> b
    2:7:void lambda$prepareSuperConstructorCall$1(int,int,com.android.tools.r8.ir.conversion.IRBuilder):239:244 -> b
    8:8:void lambda$prepareSuperConstructorCall$1(int,int,com.android.tools.r8.ir.conversion.IRBuilder):239:239 -> b
    1:3:void prepareSuperConstructorCall(int):235:237 -> c
com.android.tools.r8.ir.optimize.lambda.kotlin.KStyleLambdaGroupIdFactory -> com.android.tools.r8.ir.optimize.lambda.a.m:
    com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupIdFactory INSTANCE -> b
    boolean $assertionsDisabled -> c
    1:2:void <clinit>():16:17 -> <clinit>
    1:1:void <init>():16:16 -> <init>
    1:6:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):22:27 -> b
    7:7:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):48:48 -> b
    7:7:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):31 -> b
    8:16:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):56:64 -> b
    8:16:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    17:26:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):34:43 -> b
    27:27:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):65:65 -> b
    27:27:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    28:29:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):60:61 -> b
    28:29:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    30:30:com.android.tools.r8.graph.DexType validateInterfaces(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):57:57 -> b
    30:30:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):32 -> b
    31:31:void validateSuperclass(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):49:49 -> b
    31:31:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):31 -> b
com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinInstanceInitializerSourceCode -> com.android.tools.r8.ir.optimize.lambda.a.n:
    com.android.tools.r8.graph.DexField idField -> n
    java.util.function.IntFunction fieldGenerator -> o
    1:3:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField,java.util.function.IntFunction,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):25:27 -> <init>
    1:1:void lambda$prepareInstructions$0(int,com.android.tools.r8.ir.conversion.IRBuilder):35:35 -> a
    2:2:void lambda$prepareInstructions$1(int,int,com.android.tools.r8.ir.conversion.IRBuilder):42:42 -> a
    3:3:void lambda$prepareInstructions$1(int,int,com.android.tools.r8.ir.conversion.IRBuilder):41:41 -> a
    void prepareSuperConstructorCall(int) -> c
    1:17:void prepareInstructions():32:48 -> f
com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaClassValidator -> com.android.tools.r8.ir.optimize.lambda.a.o:
    com.android.tools.r8.graph.AppInfoWithSubtyping appInfo -> c
    com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup group -> b
    com.android.tools.r8.kotlin.Kotlin kotlin -> a
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():45:45 -> <clinit>
    1:4:void <init>(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup,com.android.tools.r8.graph.AppInfoWithSubtyping):57:60 -> <init>
    int getInstanceInitializerSize(java.util.List) -> a
    int validateInstanceInitializerEpilogue(com.android.tools.r8.code.Instruction[],int) -> a
    1:1:com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaStructureError structureError(java.lang.String):65:65 -> a
    1:1:void accept(java.lang.Object):45:45 -> accept
    2:20:void accept(com.android.tools.r8.graph.DexClass):70:88 -> accept
    2:20:void accept(java.lang.Object):45 -> accept
    21:32:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):220:231 -> accept
    21:32:void accept(com.android.tools.r8.graph.DexClass):88 -> accept
    21:32:void accept(java.lang.Object):45 -> accept
    33:35:boolean isLambdaInitializerMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexMethod):250:252 -> accept
    33:35:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):231 -> accept
    33:35:void accept(com.android.tools.r8.graph.DexClass):88 -> accept
    33:35:void accept(java.lang.Object):45 -> accept
    36:37:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):234:235 -> accept
    36:37:void accept(com.android.tools.r8.graph.DexClass):88 -> accept
    36:37:void accept(java.lang.Object):45 -> accept
    38:38:boolean isLambdaSingletonField(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexField):244:244 -> accept
    38:38:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):235 -> accept
    38:38:void accept(com.android.tools.r8.graph.DexClass):88 -> accept
    38:38:void accept(java.lang.Object):45 -> accept
    39:40:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):238:239 -> accept
    39:40:void accept(com.android.tools.r8.graph.DexClass):88 -> accept
    39:40:void accept(java.lang.Object):45 -> accept
    41:41:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):236:236 -> accept
    41:41:void accept(com.android.tools.r8.graph.DexClass):88 -> accept
    41:41:void accept(java.lang.Object):45 -> accept
    42:42:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):232:232 -> accept
    42:42:void accept(com.android.tools.r8.graph.DexClass):88 -> accept
    42:42:void accept(java.lang.Object):45 -> accept
    43:43:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):227:227 -> accept
    43:43:void accept(com.android.tools.r8.graph.DexClass):88 -> accept
    43:43:void accept(java.lang.Object):45 -> accept
    44:44:void validateStatelessLambdaClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):223:223 -> accept
    44:44:void accept(com.android.tools.r8.graph.DexClass):88 -> accept
    44:44:void accept(java.lang.Object):45 -> accept
    45:45:void accept(com.android.tools.r8.graph.DexClass):86:86 -> accept
    45:45:void accept(java.lang.Object):45 -> accept
    46:59:void accept(com.android.tools.r8.graph.DexClass):83:96 -> accept
    46:59:void accept(java.lang.Object):45 -> accept
    60:64:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):129:133 -> accept
    60:64:void accept(com.android.tools.r8.graph.DexClass):96 -> accept
    60:64:void accept(java.lang.Object):45 -> accept
    65:127:int validateInstanceInitializerParameterMapping(java.util.List,com.android.tools.r8.code.Instruction[],int):149:211 -> accept
    65:127:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):139 -> accept
    65:127:void accept(com.android.tools.r8.graph.DexClass):96 -> accept
    65:127:void accept(java.lang.Object):45 -> accept
    128:182:int validateInstanceInitializerParameterMapping(java.util.List,com.android.tools.r8.code.Instruction[],int):152:206 -> accept
    128:182:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):139 -> accept
    128:182:void accept(com.android.tools.r8.graph.DexClass):96 -> accept
    128:182:void accept(java.lang.Object):45 -> accept
    183:195:int validateInstanceInitializerParameterMapping(java.util.List,com.android.tools.r8.code.Instruction[],int):185:197 -> accept
    183:195:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):139 -> accept
    183:195:void accept(com.android.tools.r8.graph.DexClass):96 -> accept
    183:195:void accept(java.lang.Object):45 -> accept
    196:199:int validateInstanceInitializerParameterMapping(java.util.List,com.android.tools.r8.code.Instruction[],int):176:179 -> accept
    196:199:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):139 -> accept
    196:199:void accept(com.android.tools.r8.graph.DexClass):96 -> accept
    196:199:void accept(java.lang.Object):45 -> accept
    200:203:int validateInstanceInitializerParameterMapping(java.util.List,com.android.tools.r8.code.Instruction[],int):160:163 -> accept
    200:203:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):139 -> accept
    200:203:void accept(com.android.tools.r8.graph.DexClass):96 -> accept
    200:203:void accept(java.lang.Object):45 -> accept
    204:205:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):142:143 -> accept
    204:205:void accept(com.android.tools.r8.graph.DexClass):96 -> accept
    204:205:void accept(java.lang.Object):45 -> accept
    206:206:void validateInstanceInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.Code):134:134 -> accept
    206:206:void accept(com.android.tools.r8.graph.DexClass):96 -> accept
    206:206:void accept(java.lang.Object):45 -> accept
    207:226:void accept(com.android.tools.r8.graph.DexClass):94:113 -> accept
    207:226:void accept(java.lang.Object):45 -> accept
    227:231:void accept(com.android.tools.r8.graph.DexClass):112:116 -> accept
    227:231:void accept(java.lang.Object):45 -> accept
    232:232:void accept(com.android.tools.r8.graph.DexClass):71:71 -> accept
    232:232:void accept(java.lang.Object):45 -> accept
com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaConstants -> com.android.tools.r8.ir.optimize.lambda.a.p:
    com.android.tools.r8.graph.FieldAccessFlags CAPTURE_FIELD_FLAGS -> j
    com.android.tools.r8.graph.FieldAccessFlags SINGLETON_FIELD_FLAGS -> i
    com.android.tools.r8.graph.MethodAccessFlags CLASS_INITIALIZER_FLAGS -> c
    com.android.tools.r8.graph.MethodAccessFlags CONSTRUCTOR_FLAGS -> d
    com.android.tools.r8.graph.MethodAccessFlags CONSTRUCTOR_FLAGS_RELAXED -> e
    com.android.tools.r8.graph.FieldAccessFlags CAPTURE_FIELD_FLAGS_RELAXED -> k
    com.android.tools.r8.graph.ClassAccessFlags LAMBDA_CLASS_FLAGS -> a
    com.android.tools.r8.graph.MethodAccessFlags MAIN_METHOD_FLAGS -> f
    com.android.tools.r8.graph.ClassAccessFlags PUBLIC_LAMBDA_CLASS_FLAGS -> b
    com.android.tools.r8.graph.MethodAccessFlags BRIDGE_METHOD_FLAGS -> g
    com.android.tools.r8.graph.MethodAccessFlags BRIDGE_METHOD_FLAGS_FIXED -> h
    1:38:void <clinit>():15:52 -> <clinit>
com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup -> com.android.tools.r8.ir.optimize.lambda.a.q:
    com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy strategy -> e
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():19:19 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaGroupId):23:23 -> <init>
    2:2:void <init>(com.android.tools.r8.ir.optimize.lambda.LambdaGroupId):20:20 -> <init>
    1:1:boolean lambda$hasAnySingletons$0(com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):36:36 -> a
    2:2:int mapFieldIntoCaptureIndex(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):72:72 -> a
    3:3:int mapFieldIntoCaptureIndex(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):71:71 -> a
    4:6:com.android.tools.r8.graph.DexField getCaptureField(com.android.tools.r8.graph.DexItemFactory,int):76:78 -> a
    7:7:com.android.tools.r8.graph.DexField getCaptureField(com.android.tools.r8.graph.DexItemFactory,int):77:77 -> a
    1:2:com.android.tools.r8.graph.DexField getSingletonInstanceField(com.android.tools.r8.graph.DexItemFactory,int):46:47 -> b
    3:3:com.android.tools.r8.graph.DexField getSingletonInstanceField(com.android.tools.r8.graph.DexItemFactory,int):46:46 -> b
    4:4:com.android.tools.r8.ir.optimize.lambda.CodeProcessor$Strategy getCodeStrategy():83:83 -> b
    1:7:com.android.tools.r8.graph.DexProto createConstructorProto(com.android.tools.r8.graph.DexItemFactory):57:63 -> c
    1:1:com.android.tools.r8.graph.DexField getLambdaIdField(com.android.tools.r8.graph.DexItemFactory):67:67 -> d
    1:2:java.lang.String getTypePackage():52:53 -> e
    1:2:boolean isSingletonLambda(com.android.tools.r8.graph.DexType):40:41 -> f
    1:2:boolean hasAnySingletons():35:36 -> h
    1:1:com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId id():27:27 -> i
    1:1:boolean isStateless():31:31 -> j
com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupClassBuilder -> com.android.tools.r8.ir.optimize.lambda.a.r:
    com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId id -> d
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():36:36 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup,com.android.tools.r8.graph.DexItemFactory,java.lang.String):42:43 -> <init>
    com.android.tools.r8.ir.synthetic.SyntheticSourceCode createInstanceInitializerSourceCode(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position) -> a
    1:1:com.android.tools.r8.graph.ClassAccessFlags buildAccessFlags():52:52 -> a
    2:6:com.android.tools.r8.ir.conversion.SourceCode lambda$buildVirtualMethods$0(com.android.tools.r8.graph.DexMethod,java.util.List,com.android.tools.r8.ir.code.Position):125:129 -> a
    7:14:void lambda$collectVirtualMethods$3(java.util.Map,int,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):146:153 -> a
    15:15:java.util.Map lambda$collectVirtualMethods$1(com.android.tools.r8.graph.DexString):149:149 -> a
    16:16:java.util.List lambda$collectVirtualMethods$2(int,com.android.tools.r8.graph.DexProto):151:151 -> a
    17:17:com.android.tools.r8.ir.conversion.SourceCode lambda$buildDirectMethods$5(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):198:198 -> a
    18:20:void lambda$buildStaticFields$6(java.util.List,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):230:232 -> a
    21:21:void lambda$buildStaticFields$6(java.util.List,com.android.tools.r8.ir.optimize.lambda.LambdaGroup$LambdaInfo):231:231 -> a
    1:5:com.android.tools.r8.graph.DexAnnotationSet buildAnnotations():74:78 -> b
    6:6:com.android.tools.r8.ir.conversion.SourceCode lambda$buildDirectMethods$4(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):180:180 -> b
    1:25:com.android.tools.r8.graph.DexEncodedMethod[] buildDirectMethods():164:188 -> c
    26:35:com.android.tools.r8.graph.DexEncodedMethod[] buildDirectMethods():186:195 -> c
    1:1:com.android.tools.r8.graph.EnclosingMethodAttribute buildEnclosingMethodAttribute():58:58 -> d
    1:1:java.util.List buildInnerClasses():64:64 -> e
    2:2:boolean com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId.hasInnerClassAttribute():71:71 -> e
    2:2:java.util.List buildInnerClasses():64 -> e
    3:5:java.util.List buildInnerClasses():65:67 -> e
    6:6:java.util.List buildInnerClasses():66:66 -> e
    1:10:com.android.tools.r8.graph.DexEncodedField[] buildInstanceFields():207:216 -> f
    1:1:com.android.tools.r8.graph.DexTypeList buildInterfaces():241:241 -> g
    1:13:com.android.tools.r8.graph.DexEncodedField[] buildStaticFields():224:236 -> h
    1:33:com.android.tools.r8.graph.DexEncodedMethod[] buildVirtualMethods():90:122 -> i
    34:52:com.android.tools.r8.graph.DexEncodedMethod[] buildVirtualMethods():117:135 -> i
    1:3:java.util.Map collectVirtualMethods():143:145 -> l
com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupCodeStrategy -> com.android.tools.r8.ir.optimize.lambda.a.s:
    com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup group -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():37:37 -> <clinit>
    1:2:void <init>(com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroup):40:41 -> <init>
    1:7:boolean isValidStaticFieldWrite(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField):51:57 -> a
    8:8:boolean isValidNewInstance(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.NewInstance):89:89 -> a
    9:9:boolean isValidInvoke(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod):94:94 -> a
    10:12:boolean isValidVirtualCall(com.android.tools.r8.ir.code.InvokeMethod):111:113 -> a
    13:13:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InstancePut):146:146 -> a
    14:22:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InstanceGet):151:159 -> a
    23:23:com.android.tools.r8.graph.DexField mapCaptureField(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexField):268:268 -> a
    23:23:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InstanceGet):160 -> a
    24:44:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InstanceGet):160:180 -> a
    45:45:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.StaticPut):188:188 -> a
    46:51:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.StaticGet):194:199 -> a
    52:52:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.StaticGet):198:198 -> a
    53:56:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.StaticGet):197:200 -> a
    57:57:com.android.tools.r8.graph.DexField mapSingletonInstanceField(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexField):273:273 -> a
    57:57:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.StaticGet):200 -> a
    58:58:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.StaticGet):200:200 -> a
    59:59:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.StaticGet):195:195 -> a
    60:63:com.android.tools.r8.ir.code.Value createValueForType(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexType):232:235 -> a
    64:64:com.android.tools.r8.ir.code.Value createValueForType(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexType):234:234 -> a
    1:4:boolean isValidStaticFieldRead(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField):63:66 -> b
    5:10:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.NewInstance):118:123 -> b
    11:11:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.NewInstance):122:122 -> b
    12:15:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.NewInstance):121:124 -> b
    16:18:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod):129:131 -> b
    19:33:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):210:224 -> b
    19:33:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod):131 -> b
    34:37:com.android.tools.r8.graph.DexMethod mapInitializerMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod):255:258 -> b
    34:37:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):224 -> b
    34:37:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod):131 -> b
    38:38:com.android.tools.r8.graph.DexMethod mapInitializerMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod):257:257 -> b
    38:38:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):224 -> b
    38:38:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod):131 -> b
    39:39:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):225:225 -> b
    39:39:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod):131 -> b
    40:48:java.util.List mapInitializerArgs(com.android.tools.r8.ir.code.Value,java.util.List,com.android.tools.r8.graph.DexProto):240:248 -> b
    40:48:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):225 -> b
    40:48:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod):131 -> b
    49:49:void patchInitializer(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeDirect):226:226 -> b
    49:49:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod):131 -> b
    50:52:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod):134:136 -> b
    53:53:com.android.tools.r8.graph.DexMethod mapVirtualMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod):263:263 -> b
    53:53:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod):137 -> b
    54:55:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod):137:138 -> b
    56:56:void patch(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod):136:136 -> b
    1:1:boolean isValidInstanceFieldRead(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField):81:81 -> c
    2:11:boolean isValidInitializerCall(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.ir.code.InvokeMethod):98:107 -> c
    1:5:boolean isValidInstanceFieldWrite(com.android.tools.r8.ir.optimize.lambda.CodeProcessor,com.android.tools.r8.graph.DexField):72:76 -> d
com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId -> com.android.tools.r8.ir.optimize.lambda.a.t:
    com.android.tools.r8.graph.DexProto mainMethodProto -> g
    com.android.tools.r8.graph.ParameterAnnotationsList mainMethodParamAnnotations -> i
    int innerClassAccess -> k
    com.android.tools.r8.graph.DexString mainMethodName -> f
    boolean $assertionsDisabled -> l
    com.android.tools.r8.graph.DexType iface -> c
    com.android.tools.r8.graph.EnclosingMethodAttribute enclosing -> j
    java.lang.String capture -> b
    java.lang.String signature -> e
    com.android.tools.r8.graph.DexAnnotationSet mainMethodAnnotations -> h
    int hash -> a
    java.lang.String pkg -> d
    1:1:void <clinit>():18:18 -> <clinit>
    1:13:void <init>(java.lang.String,com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.graph.EnclosingMethodAttribute):54:66 -> <init>
    14:23:int computeHashCode():80:89 -> <init>
    14:23:void <init>(java.lang.String,com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.graph.EnclosingMethodAttribute):67 -> <init>
    24:24:void <init>(java.lang.String,com.android.tools.r8.graph.DexType,java.lang.String,java.lang.String,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.graph.EnclosingMethodAttribute):67:67 -> <init>
    1:12:boolean computeEquals(com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupId):97:108 -> a
    java.lang.String getLambdaKindDescriptor() -> b
    1:1:int hashCode():76:76 -> hashCode
    1:21:java.lang.String toString():113:133 -> toString
com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaGroupIdFactory -> com.android.tools.r8.ir.optimize.lambda.a.u:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():22:22 -> <clinit>
    1:1:void <init>():23:23 -> <init>
    1:7:com.android.tools.r8.ir.optimize.lambda.LambdaGroupId create(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions):36:42 -> a
    8:13:boolean hasValidAnnotations(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):91:96 -> a
    14:17:java.lang.String validateInstanceFields(com.android.tools.r8.graph.DexClass,boolean):154:157 -> a
    18:22:java.lang.String validateInstanceFields(com.android.tools.r8.graph.DexClass,boolean):156:160 -> a
    23:31:void validateDirectMethods(com.android.tools.r8.graph.DexClass):164:172 -> a
    32:36:void validateDirectMethods(com.android.tools.r8.graph.DexClass):170:174 -> a
    37:67:void validateDirectMethods(com.android.tools.r8.graph.DexClass):168:198 -> a
    68:84:void validateDirectMethods(com.android.tools.r8.graph.DexClass):185:201 -> a
    85:86:void validateDirectMethods(com.android.tools.r8.graph.DexClass):176:177 -> a
    87:93:void checkDirectMethodAnnotations(com.android.tools.r8.graph.DexEncodedMethod):207:213 -> a
    94:95:void checkDirectMethodAnnotations(com.android.tools.r8.graph.DexEncodedMethod):208:209 -> a
    96:98:void checkFieldAnnotations(com.android.tools.r8.graph.DexEncodedField):218:220 -> a
    99:99:void checkAccessFlags(java.lang.String,com.android.tools.r8.graph.AccessFlags,com.android.tools.r8.graph.AccessFlags[]):227:227 -> a
    100:105:void checkAccessFlags(java.lang.String,int,com.android.tools.r8.graph.AccessFlags[]):233:238 -> a
    com.android.tools.r8.ir.optimize.lambda.LambdaGroupId validateAndCreate(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.utils.InternalOptions) -> b
    1:6:com.android.tools.r8.graph.InnerClassAttribute validateInnerClasses(com.android.tools.r8.graph.DexClass):76:81 -> b
    7:26:java.lang.String validateAnnotations(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):107:126 -> b
    1:16:com.android.tools.r8.graph.DexEncodedMethod validateVirtualMethods(com.android.tools.r8.graph.DexClass):55:70 -> c
    17:30:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):131:144 -> c
    31:31:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):141:141 -> c
    32:43:void validateStaticFields(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):137:148 -> c
com.android.tools.r8.ir.optimize.lambda.kotlin.KotlinLambdaVirtualMethodSourceCode -> com.android.tools.r8.ir.optimize.lambda.a.v:
    java.util.List implMethods -> p
    com.android.tools.r8.graph.DexItemFactory factory -> n
    com.android.tools.r8.graph.DexField idField -> o
    1:4:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexField,java.util.List,com.android.tools.r8.ir.code.Position):33:36 -> <init>
    1:1:void lambda$prepareInstructions$0(int,com.android.tools.r8.ir.conversion.IRBuilder):58:58 -> a
    2:2:void lambda$prepareInstructions$1(int,int[],int[],int[],com.android.tools.r8.ir.conversion.IRBuilder):67:67 -> a
    3:3:boolean lambda$prepareInstructions$2(int,int[],int[],com.android.tools.r8.ir.conversion.IRBuilder):68:68 -> a
    4:7:boolean com.android.tools.r8.ir.synthetic.SyntheticSourceCode.endsSwitch(com.android.tools.r8.ir.conversion.IRBuilder,int,int,int[]):278:281 -> a
    4:7:boolean lambda$prepareInstructions$2(int,int[],int[],com.android.tools.r8.ir.conversion.IRBuilder):68 -> a
    8:15:void lambda$prepareInstructions$5(java.util.List,int,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.IRBuilder):90:97 -> a
    1:1:void lambda$prepareInstructions$3(int,com.android.tools.r8.ir.conversion.IRBuilder):73:73 -> b
    1:1:void lambda$prepareInstructions$4(int,com.android.tools.r8.ir.conversion.IRBuilder):74:74 -> c
    1:1:void lambda$prepareInstructions$6(int,com.android.tools.r8.ir.conversion.IRBuilder):103:103 -> d
    1:1:void lambda$prepareInstructions$7(int,com.android.tools.r8.ir.conversion.IRBuilder):104:104 -> e
    1:66:void prepareInstructions():41:106 -> f
com.android.tools.r8.ir.optimize.peepholes.BasicBlockMuncher -> com.android.tools.r8.ir.optimize.b.a:
    1:1:java.util.List nonDestructivePeepholes():18:18 -> a
    1:1:void optimize(com.android.tools.r8.ir.code.IRCode):33 -> a
    2:2:void optimize(com.android.tools.r8.ir.code.IRCode):33:33 -> a
    3:3:java.util.List destructivePeepholes():24:24 -> a
    3:3:void optimize(com.android.tools.r8.ir.code.IRCode):34 -> a
    4:4:void optimize(com.android.tools.r8.ir.code.IRCode):34:34 -> a
    5:29:void runPeepholes(com.android.tools.r8.ir.code.IRCode,java.util.List):38:62 -> a
com.android.tools.r8.ir.optimize.peepholes.BasicBlockPeephole -> com.android.tools.r8.ir.optimize.b.b:
    boolean match(com.android.tools.r8.ir.code.InstructionListIterator) -> a
    boolean resetAfterMatch() -> a
com.android.tools.r8.ir.optimize.peepholes.DupDupDupPeephole -> com.android.tools.r8.ir.optimize.b.c:
    com.android.tools.r8.ir.optimize.peepholes.Point dup3Exp -> c
    com.android.tools.r8.ir.optimize.peepholes.Point dup2Exp -> b
    com.android.tools.r8.ir.optimize.peepholes.Point dup1Exp -> a
    com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout layout -> d
    1:10:void <init>():28:37 -> <init>
    boolean resetAfterMatch() -> a
    1:1:boolean lambda$new$0(com.android.tools.r8.ir.code.Instruction):31:31 -> a
    2:39:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):41:78 -> a
    1:1:boolean lambda$new$1(com.android.tools.r8.ir.code.Instruction):33:33 -> b
    1:1:boolean lambda$new$2(com.android.tools.r8.ir.code.Instruction):35:35 -> c
com.android.tools.r8.ir.optimize.peepholes.LoadLoadDupPeephole -> com.android.tools.r8.ir.optimize.b.d:
    com.android.tools.r8.ir.optimize.peepholes.Point firstLoadExp -> b
    com.android.tools.r8.ir.optimize.peepholes.Point lastLoadExp -> a
    com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout layout -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():30:30 -> <clinit>
    1:8:void <init>():30:37 -> <init>
    boolean resetAfterMatch() -> a
    1:24:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):41:64 -> a
com.android.tools.r8.ir.optimize.peepholes.Match -> com.android.tools.r8.ir.optimize.b.e:
    java.util.List instructions -> a
    1:3:void <init>(com.android.tools.r8.ir.optimize.peepholes.PeepholeExpression[],java.util.List):14:16 -> <init>
com.android.tools.r8.ir.optimize.peepholes.MoveLoadUpPeephole -> com.android.tools.r8.ir.optimize.b.f:
    com.android.tools.r8.ir.optimize.peepholes.Point firstLoad -> d
    com.android.tools.r8.ir.code.Instruction insertPosition -> c
    com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout layout -> f
    boolean $assertionsDisabled -> g
    com.android.tools.r8.ir.optimize.peepholes.Wildcard canMoveOver -> e
    com.android.tools.r8.ir.code.Value local -> a
    int stackHeight -> b
    1:1:void <clinit>():33:33 -> <clinit>
    1:34:void <init>():33:66 -> <init>
    boolean resetAfterMatch() -> a
    1:2:boolean lambda$new$0(com.android.tools.r8.ir.code.Instruction):42:43 -> a
    3:6:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):70:73 -> a
    7:30:boolean isPotentionalIncInstruction(com.android.tools.r8.ir.code.InstructionListIterator):102:125 -> a
    7:30:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):73 -> a
    31:31:boolean isPotentionalIncInstruction(com.android.tools.r8.ir.code.InstructionListIterator):120:120 -> a
    31:31:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):73 -> a
    32:32:boolean isPotentionalIncInstruction(com.android.tools.r8.ir.code.InstructionListIterator):115:115 -> a
    32:32:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):73 -> a
    33:52:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):76:95 -> a
    1:10:boolean lambda$new$1(com.android.tools.r8.ir.code.Instruction):51:60 -> b
com.android.tools.r8.ir.optimize.peepholes.PeepholeExpression -> com.android.tools.r8.ir.optimize.b.g:
    java.util.function.Predicate getPredicate() -> a
    int getMin() -> b
    int getMax() -> c
com.android.tools.r8.ir.optimize.peepholes.PeepholeHelper -> com.android.tools.r8.ir.optimize.b.h:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():14:14 -> <clinit>
    1:1:java.util.function.Predicate withoutLocalInfo(java.util.function.Predicate):17:17 -> a
    2:4:boolean lambda$withoutLocalInfo$0(java.util.function.Predicate,com.android.tools.r8.ir.code.Instruction):18:20 -> a
    5:5:void resetNext(com.android.tools.r8.ir.code.InstructionListIterator,int):25:25 -> a
    6:7:int numberOfValuesConsumedFromStack(com.android.tools.r8.ir.code.Instruction):47:48 -> a
    8:22:void moveInstructionsUpToCurrentPosition(com.android.tools.r8.ir.code.InstructionListIterator,java.util.List):57:71 -> a
    23:23:boolean lambda$moveInstructionsUpToCurrentPosition$1(java.util.List,com.android.tools.r8.ir.code.Instruction):64:64 -> a
    1:1:void resetPrevious(com.android.tools.r8.ir.code.InstructionListIterator,int):31:31 -> b
    2:5:int numberOfValuesPutOnStack(com.android.tools.r8.ir.code.Instruction):36:39 -> b
    6:6:boolean lambda$moveInstructionsUpToCurrentPosition$2(java.util.List,com.android.tools.r8.ir.code.Instruction):70:70 -> b
com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout -> com.android.tools.r8.ir.optimize.b.i:
    com.android.tools.r8.ir.optimize.peepholes.PeepholeExpression[] expressions -> b
    java.util.List instructions -> a
    boolean backwards -> c
    1:8:void <init>(boolean,com.android.tools.r8.ir.optimize.peepholes.PeepholeExpression[]):18:25 -> <init>
    1:1:com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout lookBackward(com.android.tools.r8.ir.optimize.peepholes.PeepholeExpression[]):33:33 -> a
    2:5:com.android.tools.r8.ir.optimize.peepholes.Match test(com.android.tools.r8.ir.code.InstructionListIterator):37:40 -> a
    6:42:com.android.tools.r8.ir.optimize.peepholes.Match testDirection(java.util.function.Supplier,java.util.function.Supplier,java.lang.Runnable):48:84 -> a
    1:1:com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout lookForward(com.android.tools.r8.ir.optimize.peepholes.PeepholeExpression[]):29:29 -> b
    2:2:java.lang.Boolean lambda$test$0(com.android.tools.r8.ir.code.InstructionListIterator):38:38 -> b
    1:1:com.android.tools.r8.ir.code.Instruction lambda$test$1(com.android.tools.r8.ir.code.InstructionListIterator):38:38 -> c
    1:1:void lambda$test$2(com.android.tools.r8.ir.code.InstructionListIterator):38:38 -> d
    1:1:java.lang.Boolean lambda$test$3(com.android.tools.r8.ir.code.InstructionListIterator):40:40 -> e
    1:1:com.android.tools.r8.ir.code.Instruction lambda$test$4(com.android.tools.r8.ir.code.InstructionListIterator):40:40 -> f
    1:1:void lambda$test$5(com.android.tools.r8.ir.code.InstructionListIterator):40:40 -> g
com.android.tools.r8.ir.optimize.peepholes.Point -> com.android.tools.r8.ir.optimize.b.j:
    java.util.function.Predicate predicate -> a
    int index -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():10:10 -> <clinit>
    1:1:void <init>(java.util.function.Predicate):15:15 -> <init>
    2:5:void <init>(java.util.function.Predicate):13:16 -> <init>
    1:1:java.util.function.Predicate getPredicate():21:21 -> a
    2:2:com.android.tools.r8.ir.code.Instruction get(com.android.tools.r8.ir.optimize.peepholes.Match):41:41 -> a
    int getMin() -> b
    int getMax() -> c
    1:2:void setIndex(int):36:37 -> setIndex
com.android.tools.r8.ir.optimize.peepholes.StoreLoadPeephole -> com.android.tools.r8.ir.optimize.b.k:
    com.android.tools.r8.ir.optimize.peepholes.Point loadExp -> b
    com.android.tools.r8.ir.optimize.peepholes.Point storeExp -> a
    com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout layout -> c
    1:6:void <init>():22:27 -> <init>
    boolean resetAfterMatch() -> a
    1:18:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):31:48 -> a
com.android.tools.r8.ir.optimize.peepholes.StoreLoadToDupStorePeephole -> com.android.tools.r8.ir.optimize.b.l:
    com.android.tools.r8.ir.optimize.peepholes.Point loadExp -> b
    com.android.tools.r8.ir.optimize.peepholes.Point storeExp -> a
    com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout layout -> d
    boolean $assertionsDisabled -> e
    com.android.tools.r8.ir.optimize.peepholes.Wildcard dupsExp -> c
    1:1:void <clinit>():33:33 -> <clinit>
    1:7:void <init>():33:39 -> <init>
    boolean lambda$match$1(com.android.tools.r8.ir.code.Load,com.android.tools.r8.ir.code.Instruction) -> a
    boolean resetAfterMatch() -> a
    1:1:boolean lambda$new$0(com.android.tools.r8.ir.code.Instruction):37:37 -> a
    2:39:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):43:80 -> a
com.android.tools.r8.ir.optimize.peepholes.StoreSequenceLoadPeephole -> com.android.tools.r8.ir.optimize.b.m:
    com.android.tools.r8.ir.optimize.peepholes.Point storeExp -> c
    com.android.tools.r8.ir.code.Store store -> a
    com.android.tools.r8.ir.optimize.peepholes.PeepholeLayout layout -> f
    com.android.tools.r8.ir.optimize.peepholes.Point loadExp -> e
    com.android.tools.r8.ir.optimize.peepholes.Wildcard seqExp -> d
    int stackHeight -> b
    1:48:void <init>():34:81 -> <init>
    boolean lambda$match$3(com.android.tools.r8.ir.code.Load,com.android.tools.r8.ir.code.Instruction) -> a
    boolean resetAfterMatch() -> a
    1:8:boolean lambda$new$0(com.android.tools.r8.ir.code.Instruction):42:49 -> a
    9:50:boolean match(com.android.tools.r8.ir.code.InstructionListIterator):85:126 -> a
    1:10:boolean lambda$new$1(com.android.tools.r8.ir.code.Instruction):56:65 -> b
    1:4:boolean lambda$new$2(com.android.tools.r8.ir.code.Instruction):72:75 -> c
com.android.tools.r8.ir.optimize.peepholes.Wildcard -> com.android.tools.r8.ir.optimize.b.n:
    java.util.function.Predicate predicate -> a
    int index -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():11:11 -> <clinit>
    1:1:void <init>(java.util.function.Predicate):16:16 -> <init>
    2:5:void <init>(java.util.function.Predicate):14:17 -> <init>
    1:1:java.util.function.Predicate getPredicate():22:22 -> a
    2:2:java.util.List get(com.android.tools.r8.ir.optimize.peepholes.Match):42:42 -> a
    int getMin() -> b
    int getMax() -> c
    1:2:void setIndex(int):37:38 -> setIndex
com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer -> com.android.tools.r8.ir.optimize.c.e:
    com.android.tools.r8.graph.DexItemFactory factory -> b
    com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$Phase phase -> d
    java.util.concurrent.ConcurrentHashMap candidates -> f
    com.android.tools.r8.graph.AppView appView -> a
    java.util.function.BiConsumer fixupStrategy -> e
    boolean $assertionsDisabled -> g
    com.android.tools.r8.ir.conversion.IRConverter converter -> c
    1:1:void <clinit>():47:47 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):106:106 -> <init>
    2:54:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.conversion.IRConverter):57:109 -> <init>
    1:65:void collectCandidates(com.android.tools.r8.graph.DexApplication):116:180 -> a
    66:100:void lambda$collectCandidates$0(java.util.Map,java.util.Set,com.android.tools.r8.graph.DexProgramClass):125:159 -> a
    101:105:void lambda$collectCandidates$1(java.util.Set,java.util.Map,com.android.tools.r8.graph.DexProgramClass):165:169 -> a
    106:111:boolean isPinned(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):184:189 -> a
    106:111:void lambda$collectCandidates$1(java.util.Set,java.util.Map,com.android.tools.r8.graph.DexProgramClass):170 -> a
    112:115:void lambda$collectCandidates$1(java.util.Set,java.util.Map,com.android.tools.r8.graph.DexProgramClass):171:174 -> a
    116:129:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):219:232 -> a
    130:150:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):231:251 -> a
    151:159:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):337:345 -> a
    151:159:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):252 -> a
    160:160:boolean com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo.isHostClassInitializer(com.android.tools.r8.graph.DexEncodedMethod):84:84 -> a
    160:160:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):348 -> a
    160:160:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):252 -> a
    161:201:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):351:391 -> a
    161:201:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):252 -> a
    202:202:boolean isNonThrowingConstInstruction(com.android.tools.r8.ir.code.Instruction):419:419 -> a
    202:202:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):391 -> a
    202:202:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):252 -> a
    203:208:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):394:399 -> a
    203:208:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):252 -> a
    209:232:boolean isValidInitCall(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexType):424:447 -> a
    209:232:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):399 -> a
    209:232:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):252 -> a
    233:240:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):400:407 -> a
    233:240:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):252 -> a
    241:248:boolean isValidStaticPut(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo,com.android.tools.r8.ir.code.Instruction):452:459 -> a
    241:248:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):407 -> a
    241:248:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):252 -> a
    249:253:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processInstantiation(com.android.tools.r8.graph.DexEncodedMethod,java.util.ListIterator,com.android.tools.r8.ir.code.NewInstance):408:412 -> a
    249:253:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):252 -> a
    254:255:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):258:259 -> a
    256:260:boolean isAllowedInHostClassInitializer(com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.IRCode):327:331 -> a
    256:260:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):259 -> a
    261:285:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):260:284 -> a
    286:298:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo processStaticFieldRead(com.android.tools.r8.ir.code.StaticGet):466:478 -> a
    286:298:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):284 -> a
    299:331:void examineMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):286:318 -> a
    332:365:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo analyzeAllValueUsers(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo,com.android.tools.r8.ir.code.Value,boolean):485:518 -> a
    366:367:void staticizeCandidates(com.android.tools.r8.ir.conversion.OptimizationFeedback,java.util.concurrent.ExecutorService):539:540 -> a
    368:371:void setFixupStrategy(java.util.function.BiConsumer):551:554 -> a
    372:375:void cleanFixupStrategy():558:561 -> a
    1:3:void fixupMethodCode(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):544:546 -> b
com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$1 -> com.android.tools.r8.ir.optimize.c.a:
com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CallSiteReferencesInvalidator -> com.android.tools.r8.ir.optimize.c.b:
    com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer this$0 -> c
    1:2:void <init>(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer,com.android.tools.r8.graph.DexItemFactory):566:567 -> <init>
    1:2:void <init>(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$1):564 -> <init>
    1:1:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):589:589 -> a
    2:2:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):614:614 -> a
    1:1:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):599:599 -> b
    2:2:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):609:609 -> b
    1:1:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):594:594 -> c
    2:2:boolean registerNewInstance(com.android.tools.r8.graph.DexType):619:619 -> c
    3:3:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):624:624 -> c
    1:1:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):604:604 -> d
    2:2:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):629:629 -> d
    3:5:boolean registerTypeReference(com.android.tools.r8.graph.DexType):634:636 -> d
    1:2:boolean registerField(com.android.tools.r8.graph.DexField):577:578 -> e
    3:3:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):584:584 -> e
    1:2:boolean registerMethod(com.android.tools.r8.graph.DexMethod):571:572 -> f
com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo -> com.android.tools.r8.ir.optimize.c.c:
    java.util.concurrent.atomic.AtomicInteger instancesCreated -> e
    com.android.tools.r8.graph.DexEncodedField singletonField -> b
    java.util.concurrent.atomic.AtomicInteger fieldWrites -> d
    boolean $assertionsDisabled -> i
    java.util.concurrent.atomic.AtomicReference constructor -> g
    java.util.concurrent.atomic.AtomicBoolean preserveRead -> c
    com.android.tools.r8.graph.DexProgramClass candidate -> a
    java.util.Set referencedFrom -> f
    com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer this$0 -> h
    1:1:void <clinit>():62:62 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField):73:73 -> <init>
    2:17:void <init>(com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexEncodedField):65:80 -> <init>
    1:1:com.android.tools.r8.graph.DexType hostType():88:88 -> a
    1:1:com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo invalidate():98:98 -> b
com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$Phase -> com.android.tools.r8.ir.optimize.c.d:
    com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$Phase Fixup -> c
    com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$Phase Examine -> b
    com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$Phase None -> a
    1:1:void <clinit>():54:54 -> <clinit>
    2:2:void <clinit>():53:53 -> <clinit>
    1:1:void <init>(java.lang.String,int):53:53 -> <init>
com.android.tools.r8.ir.optimize.staticizer.ClassStaticizerGraphLense -> com.android.tools.r8.ir.optimize.c.f:
    boolean $assertionsDisabled -> k
    1:1:void <clinit>():16:16 -> <clinit>
    1:7:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap):23:29 -> <init>
    8:8:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap):22:22 -> <init>
    1:3:com.android.tools.r8.ir.code.Invoke$Type mapInvocationType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):34:36 -> b
com.android.tools.r8.ir.optimize.staticizer.StaticizingProcessor -> com.android.tools.r8.ir.optimize.c.g:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer classStaticizer -> b
    boolean $assertionsDisabled -> i
    java.util.Set referencingExtraMethods -> d
    java.util.Set methodsToBeStaticized -> f
    java.util.Map hostClassInits -> e
    java.util.concurrent.ExecutorService executorService -> c
    java.util.Map singletonFields -> g
    java.util.Map candidateToHostMapping -> h
    1:1:void <clinit>():54:54 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer,java.util.concurrent.ExecutorService):69:69 -> <init>
    2:14:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer,java.util.concurrent.ExecutorService):60:72 -> <init>
    1:1:void run(com.android.tools.r8.ir.conversion.OptimizationFeedback):77:77 -> a
    2:5:void prepareCandidates():154:157 -> a
    2:5:void run(com.android.tools.r8.ir.conversion.OptimizationFeedback):80 -> a
    6:7:com.android.tools.r8.graph.DexClass com.android.tools.r8.ir.optimize.staticizer.ClassStaticizer$CandidateInfo.hostClass():92:93 -> a
    6:7:void prepareCandidates():159 -> a
    6:7:void run(com.android.tools.r8.ir.conversion.OptimizationFeedback):80 -> a
    8:26:void prepareCandidates():160:178 -> a
    8:26:void run(com.android.tools.r8.ir.conversion.OptimizationFeedback):80 -> a
    27:28:void run(com.android.tools.r8.ir.conversion.OptimizationFeedback):83:84 -> a
    29:33:void run(com.android.tools.r8.ir.conversion.OptimizationFeedback):83:87 -> a
    34:61:java.util.Set staticizeMethodSymbols():469:496 -> a
    34:61:void run(com.android.tools.r8.ir.conversion.OptimizationFeedback):90 -> a
    62:102:void moveMembersIntoHost(java.util.Set,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap):523:563 -> a
    62:102:java.util.Set staticizeMethodSymbols():498 -> a
    62:102:void run(com.android.tools.r8.ir.conversion.OptimizationFeedback):90 -> a
    103:115:void moveMembersIntoHost(java.util.Set,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexClass,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap):562:574 -> a
    103:115:java.util.Set staticizeMethodSymbols():498 -> a
    103:115:void run(com.android.tools.r8.ir.conversion.OptimizationFeedback):90 -> a
    116:117:java.util.Set staticizeMethodSymbols():504:505 -> a
    116:117:void run(com.android.tools.r8.ir.conversion.OptimizationFeedback):90 -> a
    118:120:void run(com.android.tools.r8.ir.conversion.OptimizationFeedback):95:97 -> a
    121:121:boolean lambda$finalEligibilityCheck$0(com.android.tools.r8.graph.DexEncodedMethod):146:146 -> a
    122:127:void processMethodsConcurrently(java.util.Set,java.util.function.BiConsumer,com.android.tools.r8.ir.conversion.OptimizationFeedback):196:201 -> a
    128:142:void processMethodsConcurrently(java.util.Set,java.util.function.BiConsumer,com.android.tools.r8.ir.conversion.OptimizationFeedback):200:214 -> a
    143:147:java.lang.Object lambda$processMethodsConcurrently$1(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.OptimizationFeedback,java.util.Set):203:207 -> a
    148:148:java.lang.Object lambda$processMethodsConcurrently$1(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.conversion.OptimizationFeedback,java.util.Set):203:203 -> a
    149:174:void removeCandidateInstantiation(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):218:243 -> a
    175:175:boolean lambda$rewriteReferences$2(com.android.tools.r8.ir.code.StaticGet):256:256 -> a
    176:179:void lambda$rewriteReferences$3(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.StaticGet):260:263 -> a
    180:212:void fixupStaticizedFieldReadUsers(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexField):350:382 -> a
    180:212:void lambda$rewriteReferences$3(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.StaticGet):265 -> a
    213:214:void lambda$rewriteReferences$3(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.StaticGet):267:268 -> a
    215:234:boolean testAndCollectPhisComposedOfSameFieldRead(java.util.Set,com.android.tools.r8.graph.DexField,java.util.Set):323:342 -> a
    235:249:void fixupStaticizedValueUsers(com.android.tools.r8.ir.code.IRCode,java.util.Set):386:400 -> a
    250:250:void fixupStaticizedValueUsers(com.android.tools.r8.ir.code.IRCode,java.util.Set):399:399 -> a
    251:257:com.android.tools.r8.graph.DexField mapFieldIfMoved(com.android.tools.r8.graph.DexField):457:463 -> a
    258:261:boolean classMembersConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):511:514 -> a
    262:262:boolean lambda$classMembersConflict$4(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):513:513 -> a
    263:263:boolean lambda$classMembersConflict$5(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):514:514 -> a
    264:267:com.android.tools.r8.graph.DexField mapCandidateField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):579:582 -> a
    268:268:com.android.tools.r8.graph.DexField mapCandidateField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):580:580 -> a
    269:269:com.android.tools.r8.graph.DexItemFactory factory():587:587 -> a
    1:47:void finalEligibilityCheck():101:147 -> b
    48:48:void removeReferencesToThis(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):247:247 -> b
    49:54:void fixupStaticizedThisUsers(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.ir.code.Value):279:284 -> b
    49:54:void removeReferencesToThis(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):247 -> b
    1:20:void rewriteReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):253:272 -> c
    21:35:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):405:419 -> c
    21:35:void rewriteReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):273 -> c
    36:38:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):418:420 -> c
    36:38:void rewriteReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):273 -> c
    39:39:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):417:417 -> c
    39:39:void rewriteReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):273 -> c
    40:72:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):415:447 -> c
    40:72:void rewriteReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):273 -> c
    73:75:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):446:448 -> c
    73:75:void rewriteReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):273 -> c
    76:80:void remapMovedCandidates(com.android.tools.r8.ir.code.IRCode):445:449 -> c
    76:80:void rewriteReferences(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):273 -> c
com.android.tools.r8.ir.optimize.string.StringOptimizer -> com.android.tools.r8.ir.optimize.string.StringOptimizer:
    com.android.tools.r8.graph.DexItemFactory factory -> b
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> d
    com.android.tools.r8.ir.code.BasicBlock$ThrowingInfo throwingInfo -> c
    1:1:void <clinit>():42:42 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.AppView):48:51 -> <init>
    1:54:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):71:124 -> a
    55:59:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):122:126 -> a
    60:122:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):125:187 -> a
    123:138:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):185:200 -> a
    139:145:void computeTrivialOperationsOnConstString(com.android.tools.r8.ir.code.IRCode):198:204 -> a
    146:146:java.lang.Integer lambda$computeTrivialOperationsOnConstString$0(java.lang.String):136:136 -> a
    147:147:java.lang.Integer lambda$computeTrivialOperationsOnConstString$1(java.lang.String,java.lang.String):138:138 -> a
    148:174:void rewriteClassGetName(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.shaking.RootSetBuilder$RootSet):211:237 -> a
    175:249:void rewriteClassGetName(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.shaking.RootSetBuilder$RootSet):236:310 -> a
    250:295:void rewriteClassGetName(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.shaking.RootSetBuilder$RootSet):294:339 -> a
    296:307:void rewriteClassGetName(com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.shaking.RootSetBuilder$RootSet):337:348 -> a
    1:1:java.lang.Integer lambda$computeTrivialOperationsOnConstString$2(java.lang.String,java.lang.String):140:140 -> b
    2:21:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):386:405 -> b
    22:54:void removeTrivialConversions(com.android.tools.r8.ir.code.IRCode):403:435 -> b
    1:1:java.lang.Integer lambda$computeTrivialOperationsOnConstString$3(java.lang.String,java.lang.String):142:142 -> c
    1:1:java.lang.Integer lambda$computeTrivialOperationsOnConstString$4(java.lang.String,java.lang.String):144:144 -> d
    1:1:java.lang.Integer lambda$computeTrivialOperationsOnConstString$5(java.lang.String,java.lang.String):146:146 -> e
    1:1:java.lang.Integer lambda$computeTrivialOperationsOnConstString$6(java.lang.String,java.lang.String):148:148 -> f
    1:22:boolean hasPotentialReadOutside(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):355:376 -> hasPotentialReadOutside
com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator -> com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator:
    int firstParallelMoveTemporary -> n
    boolean $assertionsDisabled -> p
    com.android.tools.r8.graph.AppView appView -> a
    int maxRegisterNumber -> i
    com.android.tools.r8.ir.code.IRCode code -> b
    int numberOfArgumentRegisters -> c
    com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode mode -> g
    java.util.Map liveAtEntrySets -> d
    com.android.tools.r8.ir.code.Value lastArgumentValue -> f
    java.util.TreeSet freeRegisters -> h
    com.android.tools.r8.ir.code.Value firstArgumentValue -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList expiredHere -> l
    java.util.List liveIntervals -> j
    int[] unusedRegisters -> o
    java.util.List moveExceptionIntervals -> m
    java.util.List active -> k
    1:1:void <clinit>():85:85 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):187:187 -> <init>
    2:57:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.IRCode):141:196 -> <init>
    boolean longHalfOverlappingLong(int,int) -> a
    1:19:void computeDebugInfo(com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):266:284 -> a
    20:93:void computeDebugInfo(com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):282:355 -> a
    94:129:void setLocalsAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.regalloc.RegisterAllocator):477:512 -> a
    94:129:void computeDebugInfo(com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):360 -> a
    130:132:void setLocalsAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.InstructionListIterator,java.util.List,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.regalloc.RegisterAllocator):478:480 -> a
    130:132:void computeDebugInfo(com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):360 -> a
    133:204:void computeDebugInfo(com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.List,com.android.tools.r8.ir.regalloc.RegisterAllocator,java.util.Map):363:434 -> a
    205:205:int lambda$computeDebugInfo$0(com.android.tools.r8.ir.regalloc.LiveRange,com.android.tools.r8.ir.regalloc.LiveRange):278:278 -> a
    206:207:boolean lambda$computeDebugInfo$2(java.util.Set,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$LocalRange):335:336 -> a
    208:208:boolean isLocalLiveAtInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$LocalRange):441:441 -> a
    209:210:boolean isLocalLiveAtInstruction(com.android.tools.r8.ir.code.Instruction,int,int,com.android.tools.r8.ir.code.Value):446:447 -> a
    209:210:boolean isLocalLiveAtInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$LocalRange):441 -> a
    211:212:boolean usesValue(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.Instruction):452:453 -> a
    211:212:boolean isLocalLiveAtInstruction(com.android.tools.r8.ir.code.Instruction,int,int,com.android.tools.r8.ir.code.Value):448 -> a
    211:212:boolean isLocalLiveAtInstruction(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$LocalRange):441 -> a
    213:219:boolean valuesContain(com.android.tools.r8.ir.code.Value,java.util.Collection):457:463 -> a
    220:243:com.android.tools.r8.ir.code.DebugLocalsChange createLocalsChange(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.code.Position):520:543 -> a
    244:263:com.android.tools.r8.ir.code.DebugLocalsChange createLocalsChange(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,com.android.tools.r8.ir.code.Position):526:545 -> a
    264:268:void addRegisterIfUsed(java.util.Set,com.android.tools.r8.ir.regalloc.LiveIntervals):592:596 -> a
    269:269:int highestUsedRegister():602:602 -> a
    270:270:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):661:661 -> a
    271:282:void clearRegisterAssignments(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):794:805 -> a
    271:282:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):664 -> a
    283:283:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):665:665 -> a
    284:292:void pinArgumentRegisters():2963:2971 -> a
    284:292:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):668 -> a
    293:293:void pinArgumentRegisters():2968:2968 -> a
    293:293:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):668 -> a
    294:382:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):842:930 -> a
    294:382:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):670 -> a
    383:391:void setHintForDestRegOfCheckCast(com.android.tools.r8.ir.regalloc.LiveIntervals):1070:1078 -> a
    383:391:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):932 -> a
    383:391:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):670 -> a
    392:405:void setHintToPromote2AddrInstruction(com.android.tools.r8.ir.regalloc.LiveIntervals):1089:1102 -> a
    392:405:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):933 -> a
    392:405:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):670 -> a
    406:471:void allocateArgumentIntervalsWithSrc(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1117:1182 -> a
    406:471:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):938 -> a
    406:471:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):670 -> a
    472:521:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):939:988 -> a
    472:521:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):670 -> a
    522:602:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1624:1704 -> a
    522:602:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):990 -> a
    522:602:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):670 -> a
    603:603:int toInstructionPosition(int):1406:1406 -> a
    603:603:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1704 -> a
    603:603:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):990 -> a
    603:603:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):670 -> a
    604:615:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1709:1720 -> a
    604:615:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):990 -> a
    604:615:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):670 -> a
    616:624:boolean freePositionsAreConsistentWithFreeRegisters(com.android.tools.r8.ir.regalloc.RegisterPositions,int):1043:1051 -> a
    616:624:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1720 -> a
    616:624:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):990 -> a
    616:624:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):670 -> a
    625:655:boolean useRegisterHint(com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean):1799:1829 -> a
    625:655:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1723 -> a
    625:655:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):990 -> a
    625:655:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):670 -> a
    656:686:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1729:1759 -> a
    656:686:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):990 -> a
    656:686:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):670 -> a
    687:705:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):1998:2016 -> a
    687:705:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1761 -> a
    687:705:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):990 -> a
    687:705:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):670 -> a
    706:789:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2015:2098 -> a
    706:789:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1761 -> a
    706:789:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):990 -> a
    706:789:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):670 -> a
    790:797:int getNewSpillRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):1271:1278 -> a
    790:797:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2100 -> a
    790:797:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1761 -> a
    790:797:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):990 -> a
    790:797:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):670 -> a
    798:816:void allocateBlockedRegister(com.android.tools.r8.ir.regalloc.LiveIntervals):2101:2119 -> a
    798:816:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1761 -> a
    798:816:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):990 -> a
    798:816:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):670 -> a
    817:836:boolean allocateSingleInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):1766:1785 -> a
    817:836:boolean performLinearScan(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):990 -> a
    817:836:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):670 -> a
    837:882:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):672:717 -> a
    883:897:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):690:704 -> a
    898:905:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):678:685 -> a
    906:946:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):682:722 -> a
    947:950:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):721:724 -> a
    951:951:com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode performAllocation(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode,boolean):723:723 -> a
    952:959:boolean isSpillInstruction(com.android.tools.r8.ir.code.Instruction):780:787 -> a
    960:964:int realRegisterNumberFromAllocated(int):832:836 -> a
    965:1003:boolean invariantsHold(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode):999:1037 -> a
    1004:1005:void lambda$invariantsHold$3(java.util.TreeSet,int):1007:1008 -> a
    1006:1014:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1191:1199 -> a
    1015:1025:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1196:1206 -> a
    1026:1033:boolean liveIntervalsHasUnhandledSplitOverlappingAnyOf(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):1254:1261 -> a
    1026:1033:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1209 -> a
    1034:1034:boolean liveIntervalsHasUnhandledSplitOverlappingAnyOf(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):1260:1260 -> a
    1034:1034:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1209 -> a
    1035:1035:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1210:1210 -> a
    1036:1049:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1208:1221 -> a
    1050:1050:int getFreeConsecutiveRegisters(int):2990:2990 -> a
    1050:1050:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1222 -> a
    1051:1052:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1224:1225 -> a
    1053:1058:boolean registerAssignmentNotConflictingWithArgument(com.android.tools.r8.ir.regalloc.LiveIntervals):1059:1064 -> a
    1053:1058:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1225 -> a
    1059:1059:boolean registerAssignmentNotConflictingWithArgument(com.android.tools.r8.ir.regalloc.LiveIntervals):1063:1063 -> a
    1059:1059:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1225 -> a
    1060:1060:boolean registerAssignmentNotConflictingWithArgument(com.android.tools.r8.ir.regalloc.LiveIntervals):1062:1062 -> a
    1060:1060:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1225 -> a
    1061:1074:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1227:1240 -> a
    1075:1099:void allocateLinkedIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,boolean):1223:1247 -> a
    1100:1119:int getSpillRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):1283:1302 -> a
    1120:1127:boolean registersAreFreeAndConsecutive(int,boolean):3046:3053 -> a
    1120:1127:int getSpillRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):1302 -> a
    1128:1153:int getSpillRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):1303:1328 -> a
    1154:1208:boolean maySpillLiveIntervalsToRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int,int):1344:1398 -> a
    1209:1224:boolean tryHint(com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean,int):1849:1864 -> a
    1225:1227:void assignFreeRegisterToUnhandledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1914:1916 -> a
    1228:1240:int getLargestCandidate(int,com.android.tools.r8.ir.regalloc.RegisterPositions,boolean,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):1928:1940 -> a
    1241:1246:int handleWorkaround(java.util.function.Predicate,java.util.function.BiPredicate,int,com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean,com.android.tools.r8.ir.regalloc.RegisterPositions,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):1958:1963 -> a
    1247:1259:int getLargestValidCandidate(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean,com.android.tools.r8.ir.regalloc.RegisterPositions,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):1978:1990 -> a
    1260:1262:int getLargestPosition(com.android.tools.r8.ir.regalloc.RegisterPositions,int,boolean):2126:2128 -> a
    1263:1270:void assignRegisterAndSpill(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2136:2143 -> a
    1271:1282:void blockLinkedRegisters(java.util.List,com.android.tools.r8.ir.regalloc.LiveIntervals,int,com.android.tools.r8.ir.regalloc.RegisterPositions,com.android.tools.r8.ir.regalloc.RegisterPositions):2344:2355 -> a
    1283:1318:void addLiveRange(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,int,java.util.List,com.android.tools.r8.utils.InternalOptions):2463:2498 -> a
    1319:1319:boolean unconstrainedForCf(int,com.android.tools.r8.utils.InternalOptions):2671:2671 -> a
    1319:1319:void addLiveRange(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,int,java.util.List,com.android.tools.r8.utils.InternalOptions):2498 -> a
    1320:1326:void addLiveRange(com.android.tools.r8.ir.code.Value,com.android.tools.r8.ir.code.BasicBlock,int,java.util.List,com.android.tools.r8.utils.InternalOptions):2498:2504 -> a
    1327:1379:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2537:2589 -> a
    1380:1393:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2586:2599 -> a
    1394:1394:boolean unconstrainedForCf(int,com.android.tools.r8.utils.InternalOptions):2671:2671 -> a
    1394:1394:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2599 -> a
    1395:1432:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2599:2636 -> a
    1433:1434:int getLiveRangeEndOnExceptionalFlow(com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.Value):2663:2664 -> a
    1433:1434:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2640 -> a
    1435:1452:void computeLiveRanges(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.ir.code.IRCode,java.util.Map,java.util.List):2637:2654 -> a
    1453:1475:boolean implementationIsBridge(com.android.tools.r8.ir.code.IRCode):2740:2762 -> a
    1476:1476:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2784:2784 -> a
    1477:1481:boolean argumentsAreAlreadyLinked(com.android.tools.r8.ir.code.Invoke):2889:2893 -> a
    1477:1481:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2784 -> a
    1482:1518:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2785:2821 -> a
    1519:1520:com.android.tools.r8.ir.code.Value createValue(com.android.tools.r8.ir.analysis.type.TypeLatticeElement):2769:2770 -> a
    1519:1520:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2821 -> a
    1521:1522:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2822:2823 -> a
    1523:1526:void replaceArgument(com.android.tools.r8.ir.code.Invoke,int,com.android.tools.r8.ir.code.Value):2775:2778 -> a
    1523:1526:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2824 -> a
    1527:1551:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2826:2850 -> a
    1552:1578:void generateArgumentMovesAtDefinitions(com.android.tools.r8.ir.code.Invoke,java.util.PriorityQueue,com.android.tools.r8.ir.code.InstructionListIterator):2858:2884 -> a
    1552:1578:void generateArgumentMoves(com.android.tools.r8.ir.code.Invoke,com.android.tools.r8.ir.code.InstructionListIterator):2851 -> a
    1579:1579:int lambda$generateArgumentMoves$5(com.android.tools.r8.ir.code.Move,com.android.tools.r8.ir.code.Move):2792:2792 -> a
    1580:1624:int getFreeConsecutiveRegisters(int,boolean):2994:3038 -> a
    1625:1636:int lambda$getFreeConsecutiveRegisters$6(java.lang.Integer,java.lang.Integer):3000:3011 -> a
    1637:1640:int getNextFreeRegister(java.util.Iterator):3062:3065 -> a
    1641:1653:void excludeRegistersForInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet):3069:3081 -> a
    1654:1665:void freeOccupiedRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):3087:3098 -> a
    1:1:void allocateRegisters():205:205 -> allocateRegisters
    2:11:boolean noLinkedValues():3147:3156 -> allocateRegisters
    2:11:void allocateRegisters():205 -> allocateRegisters
    12:12:boolean noLinkedValues():3155:3155 -> allocateRegisters
    12:12:void allocateRegisters():205 -> allocateRegisters
    13:14:void allocateRegisters():206:207 -> allocateRegisters
    15:63:void transformBridgeMethod():2684:2732 -> allocateRegisters
    15:63:void allocateRegisters():208 -> allocateRegisters
    64:67:void computeNeedsRegister():2952:2955 -> allocateRegisters
    64:67:void allocateRegisters():210 -> allocateRegisters
    68:68:void constrainArgumentIntervals():2929:2929 -> allocateRegisters
    68:68:void allocateRegisters():211 -> allocateRegisters
    69:75:void createArgumentLiveIntervals(java.util.List):2903:2909 -> allocateRegisters
    69:75:void constrainArgumentIntervals():2930 -> allocateRegisters
    69:75:void allocateRegisters():211 -> allocateRegisters
    76:84:void linkArgumentValuesAndIntervals(java.util.List):2915:2923 -> allocateRegisters
    76:84:void constrainArgumentIntervals():2931 -> allocateRegisters
    76:84:void allocateRegisters():211 -> allocateRegisters
    85:95:void insertRangeInvokeMoves():2935:2945 -> allocateRegisters
    85:95:void allocateRegisters():212 -> allocateRegisters
    96:97:com.android.tools.r8.com.google.common.collect.ImmutableList computeLivenessInformation():647:648 -> allocateRegisters
    96:97:void allocateRegisters():213 -> allocateRegisters
    98:112:void computeLiveRanges():2509:2523 -> allocateRegisters
    98:112:com.android.tools.r8.com.google.common.collect.ImmutableList computeLivenessInformation():649 -> allocateRegisters
    98:112:void allocateRegisters():213 -> allocateRegisters
    113:113:void performAllocation():656:656 -> allocateRegisters
    113:113:void allocateRegisters():214 -> allocateRegisters
    114:123:void allocateRegisters():215:224 -> allocateRegisters
    124:124:void computeDebugInfo(com.android.tools.r8.com.google.common.collect.ImmutableList):257:257 -> allocateRegisters
    124:124:void allocateRegisters():225 -> allocateRegisters
    125:135:void allocateRegisters():226:236 -> allocateRegisters
    136:141:void clearState():550:555 -> allocateRegisters
    136:141:void allocateRegisters():237 -> allocateRegisters
    1:1:boolean lambda$computeDebugInfo$1(com.android.tools.r8.ir.code.Instruction):325:325 -> b
    2:7:int unadjustedRealRegisterFromAllocated(int):818:823 -> b
    8:9:void lambda$invariantsHold$4(java.util.TreeSet,int):1024:1025 -> b
    10:27:boolean needsArrayGetWideWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1425:1442 -> b
    28:29:void assignRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1872:1873 -> b
    30:59:void updateRegisterHints(com.android.tools.r8.ir.regalloc.LiveIntervals):1878:1907 -> b
    30:59:void assignRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1874 -> b
    60:61:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2185:2186 -> b
    62:62:boolean atLeastOneOfRegistersAreTaken(int,boolean):3143:3143 -> b
    62:62:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2186 -> b
    63:109:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2186:2232 -> b
    110:145:void splitRangesForSpilledConstant(com.android.tools.r8.ir.regalloc.LiveIntervals,int):2300:2335 -> b
    110:145:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2235 -> b
    146:146:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2236:2236 -> b
    147:154:void splitRangesForSpilledArgument(com.android.tools.r8.ir.regalloc.LiveIntervals):2249:2256 -> b
    147:154:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2237 -> b
    155:182:void splitRangesForSpilledInterval(com.android.tools.r8.ir.regalloc.LiveIntervals,int):2263:2290 -> b
    155:182:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2239 -> b
    183:184:void spillOverlappingActiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2244:2245 -> b
    185:185:void clearUserInfo():2675:2675 -> b
    186:190:void increaseCapacity(int,boolean):2982:2986 -> b
    1:26:boolean computeUnusedRegisters():562:587 -> c
    27:31:boolean isArrayGetArrayRegister(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1448:1452 -> c
    32:55:boolean needsLongResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1518:1541 -> c
    56:56:void increaseCapacity(int):2977:2977 -> c
    57:57:boolean registersAreFree(int,boolean):3130:3130 -> c
    1:2:int getMoveExceptionRegister():183:184 -> d
    3:24:boolean needsSingleResultOverlappingLongOperandsWorkaround(com.android.tools.r8.ir.regalloc.LiveIntervals):1457:1478 -> d
    25:37:boolean isLongResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1554:1566 -> d
    38:39:boolean registerIsFree(int):3123:3124 -> d
    1:1:boolean hasDedicatedMoveExceptionRegister():175:175 -> e
    2:2:int toGapPosition(int):1410:1410 -> e
    3:18:boolean isSingleResultOverlappingLongOperands(com.android.tools.r8.ir.regalloc.LiveIntervals,int):1488:1503 -> e
    19:29:boolean overlapsMoveExceptionInterval(com.android.tools.r8.ir.regalloc.LiveIntervals):1606:1616 -> e
    1:2:void computeRematerializableBits():2389:2390 -> f
    1:2:void insertMoves():2365 -> f
    3:12:void insertMoves():2367:2376 -> f
    13:13:int toGapPosition(int):1410:1410 -> f
    13:13:void insertMoves():2377 -> f
    14:14:void insertMoves():2377:2377 -> f
    15:15:void insertMoves():2375:2375 -> f
    16:58:void resolveControlFlow(com.android.tools.r8.ir.regalloc.SpillMoveSet):2408:2450 -> f
    16:58:void insertMoves():2383 -> f
    59:60:void insertMoves():2384:2385 -> f
    61:62:boolean registersForIntervalsAreTaken(com.android.tools.r8.ir.regalloc.LiveIntervals):3138:3139 -> f
    63:63:boolean registersAreTaken(int,boolean):3134:3134 -> f
    63:63:boolean registersForIntervalsAreTaken(com.android.tools.r8.ir.regalloc.LiveIntervals):3139 -> f
    1:6:void removeSpillAndPhiMoves():768:773 -> g
    7:7:void takeFreeRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):3112:3112 -> g
    8:11:void takeFreeRegisters(int,boolean):3104:3107 -> g
    8:11:void takeFreeRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):3112 -> g
    12:15:void takeFreeRegistersForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):3114:3117 -> g
    1:2:int getArgumentOrAllocateRegisterForValue(com.android.tools.r8.ir.code.Value,int):635:636 -> getArgumentOrAllocateRegisterForValue
    3:4:int getRegisterForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):813:814 -> getArgumentOrAllocateRegisterForValue
    3:4:int getArgumentOrAllocateRegisterForValue(com.android.tools.r8.ir.code.Value,int):636 -> getArgumentOrAllocateRegisterForValue
    5:5:int getArgumentOrAllocateRegisterForValue(com.android.tools.r8.ir.code.Value,int):638:638 -> getArgumentOrAllocateRegisterForValue
    1:13:int getRegisterForValue(com.android.tools.r8.ir.code.Value,int):616:628 -> getRegisterForValue
    14:15:int getRegisterForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals):813:814 -> getRegisterForValue
    14:15:int getRegisterForValue(com.android.tools.r8.ir.code.Value,int):630 -> getRegisterForValue
    16:18:int getRegisterForValue(com.android.tools.r8.ir.code.Value,int):621:623 -> getRegisterForValue
    1:28:boolean unsplitArguments():735:762 -> h
    1:1:boolean hasEqualTypesAtEntry(com.android.tools.r8.ir.code.BasicBlock,com.android.tools.r8.ir.code.BasicBlock):3193:3193 -> hasEqualTypesAtEntry
    1:1:com.android.tools.r8.utils.InternalOptions options():643:643 -> options
    1:3:int registersUsed():607:609 -> registersUsed
    1:33:void splitOverlappingInactiveIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,int,boolean):2148:2180 -> splitOverlappingInactiveIntervals
    1:20:java.lang.String toString():3164:3183 -> toString
com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode -> com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$a:
    com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode ALLOW_ARGUMENT_REUSE_U8BIT -> b
    com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode ALLOW_ARGUMENT_REUSE_U16BIT -> c
    com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode ALLOW_ARGUMENT_REUSE_U4BIT -> a
    com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$ArgumentReuseMode[] $VALUES -> d
    1:3:void <clinit>():92:94 -> <clinit>
    4:4:void <clinit>():91:91 -> <clinit>
    1:1:void <init>(java.lang.String,int):91:91 -> <init>
com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$LocalRange -> com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$b:
    com.android.tools.r8.graph.DebugLocalInfo local -> b
    boolean $assertionsDisabled -> f
    int start -> d
    com.android.tools.r8.ir.code.Value value -> a
    int end -> e
    int register -> c
    1:1:void <clinit>():97:97 -> <clinit>
    1:7:void <init>(com.android.tools.r8.ir.code.Value,int,int,int):104:110 -> <init>
    1:3:int compareTo(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator$LocalRange):115:117 -> a
    1:1:int compareTo(java.lang.Object):97:97 -> compareTo
    1:1:java.lang.String toString():122:122 -> toString
com.android.tools.r8.ir.regalloc.LiveIntervals -> com.android.tools.r8.ir.regalloc.LiveIntervals:
    boolean spilled -> m
    boolean usedInMonitorOperations -> n
    int registerLimit -> o
    com.android.tools.r8.ir.regalloc.LiveIntervals hint -> l
    int numberOfConsecutiveRegisters -> j
    int register -> k
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList sortedSplitChildrenEnds -> f
    com.android.tools.r8.ir.regalloc.LiveIntervals nextConsecutive -> b
    com.android.tools.r8.ir.regalloc.LiveIntervals previousConsecutive -> c
    com.android.tools.r8.ir.regalloc.LiveIntervals splitParent -> d
    boolean isRematerializable -> q
    boolean $assertionsDisabled -> r
    java.util.TreeSet uses -> i
    java.util.List splitChildren -> e
    boolean sortedChildren -> g
    java.util.List ranges -> h
    com.android.tools.r8.ir.code.Value value -> a
    int maxNonSpilledRegister -> p
    1:1:void <clinit>():23:23 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.Value):52:52 -> <init>
    2:26:void <init>(com.android.tools.r8.ir.code.Value):32:56 -> <init>
    27:27:void <init>(com.android.tools.r8.ir.regalloc.LiveIntervals):59:59 -> <init>
    28:58:void <init>(com.android.tools.r8.ir.regalloc.LiveIntervals):32:62 -> <init>
    1:14:void undoSplits():452:465 -> A
    1:1:boolean usedInMonitorOperation():518:518 -> B
    1:11:int computeMaxNonSpilledRegister():279:289 -> C
    1:6:int computeNumberOfConsecutiveRegisters():162:167 -> D
    7:10:int computeNumberOfConsecutiveRegisters():166:169 -> D
    1:2:boolean isRematerializable():105:106 -> E
    1:3:void recomputeLimit():469:471 -> F
    1:7:void sortSplitChildrenIfNeeded():178:184 -> G
    8:10:boolean sortedChildrenConsistent():190:192 -> G
    8:10:void sortSplitChildrenIfNeeded():184 -> G
    11:11:void sortSplitChildrenIfNeeded():185:185 -> G
    1:3:void setSpilled(boolean):95:97 -> a
    4:10:boolean usesRegister(int,boolean):305:311 -> a
    11:12:void clearRegisterAssignment():322:323 -> a
    13:18:boolean anySplitOverlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):344:349 -> a
    19:22:void forEachRegister(java.util.function.IntConsumer):396:399 -> a
    23:64:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):597:638 -> a
    65:67:boolean allSplitsAreSpilled():110:112 -> a
    65:67:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):638 -> a
    68:72:void computeRematerializable(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator):639:643 -> a
    1:16:boolean tryAddRange(com.android.tools.r8.ir.regalloc.LiveRange):216:231 -> addRange
    1:16:void addRange(com.android.tools.r8.ir.regalloc.LiveRange):211 -> addRange
    17:17:void addRange(com.android.tools.r8.ir.regalloc.LiveRange):212:212 -> addRange
    1:2:void addUse(com.android.tools.r8.ir.regalloc.LiveIntervalsUse):239:240 -> addUse
    1:3:int firstUseAfter(int):374:376 -> b
    4:5:com.android.tools.r8.ir.regalloc.LiveIntervalsUse firstUseWithConstraint():387:388 -> b
    6:7:int compareTo(com.android.tools.r8.ir.regalloc.LiveIntervals):540:541 -> b
    1:1:boolean hasConflictingRegisters(com.android.tools.r8.ir.regalloc.LiveIntervals):318:318 -> c
    2:7:boolean overlapsPosition(int):327:332 -> c
    8:8:int getFirstUse():383:383 -> c
    1:1:int compareTo(java.lang.Object):23:23 -> compareTo
    1:1:com.android.tools.r8.ir.regalloc.LiveIntervals getHint():90:90 -> d
    2:3:void setMaxNonSpilledRegister(int):293:294 -> d
    4:13:int nextOverlap(com.android.tools.r8.ir.regalloc.LiveIntervals):357:366 -> d
    1:4:int getMaxNonSpilledRegister():298:301 -> e
    5:5:boolean overlaps(com.android.tools.r8.ir.regalloc.LiveIntervals):340:340 -> e
    6:8:com.android.tools.r8.ir.regalloc.LiveIntervals splitBefore(int):404:406 -> e
    9:9:int toGapPosition(int):70:70 -> e
    9:9:com.android.tools.r8.ir.regalloc.LiveIntervals splitBefore(int):409 -> e
    10:47:com.android.tools.r8.ir.regalloc.LiveIntervals splitBefore(int):410:447 -> e
    1:1:void setHint(com.android.tools.r8.ir.regalloc.LiveIntervals):86:86 -> f
    2:2:com.android.tools.r8.ir.regalloc.LiveIntervals getNextConsecutive():145:145 -> f
    3:3:void updateRegisterConstraint(int):244:244 -> f
    1:1:int toInstructionPosition(int):66:66 -> g
    2:2:java.util.List getRanges():252:252 -> g
    1:2:int getEnd():261:262 -> getEnd
    1:34:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitCovering(int):476:509 -> getSplitCovering
    1:2:int getStart():256:257 -> getStart
    1:1:int getRegister():266:266 -> h
    1:1:int getRegisterLimit():270:270 -> i
    1:1:java.util.List getSplitChildren():198:198 -> j
    1:1:com.android.tools.r8.ir.regalloc.LiveIntervals getSplitParent():202:202 -> k
    1:1:com.android.tools.r8.ir.regalloc.LiveIntervals getStartOfConsecutive():138:138 -> l
    1:3:void link(com.android.tools.r8.ir.regalloc.LiveIntervals):122:124 -> link
    1:1:com.android.tools.r8.ir.code.ValueType getType():78:78 -> m
    1:1:java.util.TreeSet getUses():248:248 -> n
    1:1:com.android.tools.r8.ir.code.Value getValue():74:74 -> o
    1:1:boolean hasSplits():174:174 -> p
    1:2:boolean isArgumentInterval():132:133 -> q
    1:1:boolean isConstantNumberInterval():514:514 -> r
    1:1:boolean isLinked():128:128 -> s
    1:2:void setRegister(int):274:275 -> setRegister
    1:3:boolean isNewStringInstanceDisallowingSpilling():523:525 -> t
    1:11:java.lang.String toString():546:556 -> toString
    1:1:boolean isSpilled():101:101 -> u
    1:1:boolean isSpilledAndRematerializable():118:118 -> v
    1:6:int numberOfConsecutiveRegisters():153:158 -> w
    1:2:int numberOfUsesWithConstraint():530:531 -> x
    1:1:int requiredRegisters():82:82 -> y
    1:15:java.lang.String toAscciArtString():560:574 -> z
com.android.tools.r8.ir.regalloc.LiveIntervalsUse -> com.android.tools.r8.ir.regalloc.LiveIntervalsUse:
    int limit -> b
    int position -> a
    1:3:void <init>(int,int):12:14 -> <init>
    1:1:int getLimit():22:22 -> a
    2:5:int compareTo(com.android.tools.r8.ir.regalloc.LiveIntervalsUse):41:44 -> a
    1:1:int getPosition():18:18 -> b
    1:1:boolean hasConstraint():48:48 -> c
    1:1:int compareTo(java.lang.Object):8:8 -> compareTo
    1:5:boolean equals(java.lang.Object):32:36 -> equals
    1:1:int hashCode():27:27 -> hashCode
com.android.tools.r8.ir.regalloc.LiveRange -> com.android.tools.r8.ir.regalloc.LiveRange:
    com.android.tools.r8.ir.regalloc.LiveRange INFINITE -> c
    int end -> b
    int start -> a
    1:1:void <clinit>():8:8 -> <clinit>
    1:3:void <init>(int,int):13:15 -> <init>
    1:4:int compareTo(com.android.tools.r8.ir.regalloc.LiveRange):20:23 -> a
    5:5:boolean isInfinite():32:32 -> a
    1:1:int compareTo(java.lang.Object):6:6 -> compareTo
    1:1:java.lang.String toString():28:28 -> toString
com.android.tools.r8.ir.regalloc.RegisterMove -> com.android.tools.r8.ir.regalloc.RegisterMove:
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement type -> a
    com.android.tools.r8.ir.code.Instruction definition -> d
    boolean $assertionsDisabled -> e
    int dst -> b
    int src -> c
    1:1:void <clinit>():13:13 -> <clinit>
    1:5:void <init>(int,int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):20:24 -> <init>
    6:11:void <init>(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.code.Instruction):27:32 -> <init>
    1:10:boolean isBlocked(java.util.Set,java.util.Map):43:52 -> a
    11:37:int compareTo(com.android.tools.r8.ir.regalloc.RegisterMove):77:103 -> a
    1:4:boolean writes(int):36:39 -> b
    1:1:int compareTo(java.lang.Object):13:13 -> compareTo
    1:5:boolean equals(java.lang.Object):68:72 -> equals
    1:1:int hashCode():63:63 -> hashCode
com.android.tools.r8.ir.regalloc.RegisterMoveScheduler -> com.android.tools.r8.ir.regalloc.RegisterMoveScheduler:
    java.util.Map valueMap -> b
    int tempRegister -> f
    boolean $assertionsDisabled -> g
    java.util.Set moveSet -> a
    com.android.tools.r8.ir.code.InstructionListIterator insertAt -> d
    int usedTempRegisters -> c
    com.android.tools.r8.ir.code.Position position -> e
    1:1:void <clinit>():29:29 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.code.InstructionListIterator,int,com.android.tools.r8.ir.code.Position):45:45 -> <init>
    2:19:void <init>(com.android.tools.r8.ir.code.InstructionListIterator,int,com.android.tools.r8.ir.code.Position):31:48 -> <init>
    20:20:void <init>(com.android.tools.r8.ir.code.InstructionListIterator,int):52:52 -> <init>
    1:1:int getUsedTempRegisters():114:114 -> a
    1:5:void addMove(com.android.tools.r8.ir.regalloc.RegisterMove):56:60 -> addMove
    1:1:void schedule():64:64 -> schedule
    2:5:boolean everyDestinationOnlyWrittenOnce():206:209 -> schedule
    2:5:void schedule():64 -> schedule
    6:23:void schedule():67:84 -> schedule
    24:51:java.lang.Integer createMove(com.android.tools.r8.ir.regalloc.RegisterMove):138:165 -> schedule
    24:51:void schedule():86 -> schedule
    52:66:void schedule():89:103 -> schedule
    67:76:com.android.tools.r8.ir.regalloc.RegisterMove pickMoveToUnblock():192:201 -> schedule
    67:76:void schedule():106 -> schedule
    77:77:void createMoveDestToTemp(com.android.tools.r8.ir.regalloc.RegisterMove):172:172 -> schedule
    77:77:void schedule():107 -> schedule
    78:90:java.util.List findMovesWithSrc(int,com.android.tools.r8.ir.analysis.type.TypeLatticeElement):118:130 -> schedule
    78:90:void createMoveDestToTemp(com.android.tools.r8.ir.regalloc.RegisterMove):172 -> schedule
    78:90:void schedule():107 -> schedule
    91:105:void createMoveDestToTemp(com.android.tools.r8.ir.regalloc.RegisterMove):173:187 -> schedule
    91:105:void schedule():107 -> schedule
    106:106:void schedule():108:108 -> schedule
com.android.tools.r8.ir.regalloc.RegisterPositions -> com.android.tools.r8.ir.regalloc.b:
    int[] backing -> b
    boolean $assertionsDisabled -> f
    java.util.BitSet registerHoldsConstant -> c
    java.util.BitSet registerHoldsNewStringInstanceDisallowingSpilling -> e
    int limit -> a
    java.util.BitSet registerHoldsMonitor -> d
    1:1:void <clinit>():17:17 -> <clinit>
    1:9:void <init>(int):28:36 -> <init>
    1:13:boolean hasType(int,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):40:52 -> a
    14:14:boolean holdsMonitor(int):60:60 -> a
    14:14:boolean hasType(int,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):46 -> a
    15:15:boolean holdsConstant(int):57:57 -> a
    15:15:boolean hasType(int,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):47 -> a
    16:16:boolean holdsNewStringInstanceDisallowingSpilling(int):63:63 -> a
    16:16:boolean hasType(int,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):48 -> a
    17:17:boolean holdsConstant(int):57:57 -> a
    17:17:boolean hasType(int,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):44 -> a
    18:18:boolean holdsMonitor(int):60:60 -> a
    18:18:boolean hasType(int,com.android.tools.r8.ir.regalloc.RegisterPositions$Type):42 -> a
    19:19:void set(int,int):67:67 -> a
    20:28:void grow(int):90:98 -> a
    20:28:void set(int,int):68 -> a
    29:29:void set(int,int):70:70 -> a
    30:34:void set(int,int,com.android.tools.r8.ir.regalloc.LiveIntervals):74:78 -> a
    35:35:void set(int,int,com.android.tools.r8.ir.regalloc.LiveIntervals):77:77 -> a
    36:39:int get(int):82:85 -> a
com.android.tools.r8.ir.regalloc.RegisterPositions$Type -> com.android.tools.r8.ir.regalloc.a:
    com.android.tools.r8.ir.regalloc.RegisterPositions$Type[] $VALUES -> e
    com.android.tools.r8.ir.regalloc.RegisterPositions$Type ANY -> d
    com.android.tools.r8.ir.regalloc.RegisterPositions$Type OTHER -> c
    com.android.tools.r8.ir.regalloc.RegisterPositions$Type CONST_NUMBER -> b
    com.android.tools.r8.ir.regalloc.RegisterPositions$Type MONITOR -> a
    1:1:void <clinit>():19:19 -> <clinit>
    1:1:void <init>(java.lang.String,int):19:19 -> <init>
com.android.tools.r8.ir.regalloc.SpillMove -> com.android.tools.r8.ir.regalloc.c:
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement type -> a
    com.android.tools.r8.ir.regalloc.LiveIntervals from -> b
    com.android.tools.r8.ir.regalloc.LiveIntervals to -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():14:14 -> <clinit>
    1:6:void <init>(com.android.tools.r8.ir.analysis.type.TypeLatticeElement,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):19:24 -> <init>
    1:9:boolean equals(java.lang.Object):47:55 -> equals
    1:1:int hashCode():29:29 -> hashCode
    1:1:java.lang.String toString():60:60 -> toString
com.android.tools.r8.ir.regalloc.SpillMoveSet -> com.android.tools.r8.ir.regalloc.d:
    java.util.Map instructionToInMoves -> a
    com.android.tools.r8.ir.analysis.type.TypeLatticeElement objectType -> f
    java.util.Map instructionToOutMoves -> b
    java.util.Map instructionToPhiMoves -> c
    boolean $assertionsDisabled -> i
    com.android.tools.r8.ir.code.IRCode code -> d
    int usedTempRegisters -> h
    java.util.Map blockStartMap -> g
    com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator allocator -> e
    1:1:void <clinit>():27:27 -> <clinit>
    1:1:void <init>(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):47:47 -> <init>
    2:24:void <init>(com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator,com.android.tools.r8.ir.code.IRCode,com.android.tools.r8.graph.AppView):30:52 -> <init>
    1:2:void addInResolutionMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):124:125 -> a
    3:3:java.util.Set lambda$addInMove$1(java.lang.Integer):149:149 -> a
    4:19:int scheduleAndInsertMoves(int):169:184 -> a
    20:39:int scheduleAndInsertMoves(int):180:199 -> a
    40:47:com.android.tools.r8.ir.analysis.type.TypeLatticeElement moveTypeForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):203:210 -> a
    48:50:com.android.tools.r8.ir.analysis.type.TypeLatticeElement moveTypeForIntervals(com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):206:208 -> a
    51:52:com.android.tools.r8.ir.regalloc.SpillMove getMoveWithSource(com.android.tools.r8.ir.regalloc.LiveIntervals,java.util.Collection):221:222 -> a
    53:79:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):286:312 -> a
    80:83:void pruneParallelMoveSets(java.util.Set,java.util.Set,java.util.Set):271:274 -> a
    80:83:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):315 -> a
    84:88:com.android.tools.r8.ir.regalloc.SpillMove getMoveWritingSourceRegister(com.android.tools.r8.ir.regalloc.SpillMove,java.util.Collection):230:234 -> a
    84:88:void pruneParallelMoveSets(java.util.Set,java.util.Set,java.util.Set):275 -> a
    84:88:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):315 -> a
    89:92:void pruneParallelMoveSets(java.util.Set,java.util.Set,java.util.Set):276:279 -> a
    89:92:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):315 -> a
    93:97:void scheduleMovesBeforeInstruction(int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.ir.code.InstructionListIterator):318:322 -> a
    98:106:void removeArgumentRestores(java.util.Set):334:342 -> a
    107:136:void scheduleMoves(int,java.util.Set,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):349:378 -> a
    137:141:void scheduleMoves(int,java.util.Set,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):377:381 -> a
    142:148:void scheduleMoves(int,java.util.Set,com.android.tools.r8.ir.code.InstructionListIterator,com.android.tools.r8.ir.code.Position):380:386 -> a
    1:2:void addOutResolutionMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):129:130 -> b
    3:3:java.util.Set lambda$addOutMove$2(java.lang.Integer):155:155 -> b
    4:6:boolean needsMovesBeforeInstruction(int):215:217 -> b
    1:2:void addPhiMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):141:142 -> c
    3:8:void com.android.tools.r8.ir.regalloc.SpillMove.updateMaxNonSpilled():33:38 -> c
    3:8:void addPhiMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):143 -> c
    9:9:void addPhiMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):144:144 -> c
    10:10:java.util.Set lambda$addPhiMove$0(java.lang.Integer):144:144 -> c
    1:43:void addSpillOrRestoreMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):68:110 -> d
    44:44:java.util.Set lambda$scheduleMovesBeforeInstruction$3(java.lang.Integer):302:302 -> d
    1:3:void addInMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):148:150 -> e
    4:4:void addInMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):149:149 -> e
    5:5:java.util.Set lambda$scheduleMovesBeforeInstruction$4(java.lang.Integer):307:307 -> e
    1:3:void addOutMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):154:156 -> f
    4:4:void addOutMove(int,com.android.tools.r8.ir.regalloc.LiveIntervals,com.android.tools.r8.ir.regalloc.LiveIntervals):155:155 -> f
    5:5:java.util.Set lambda$scheduleMovesBeforeInstruction$5(java.lang.Integer):312:312 -> f
com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode -> com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode:
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():22:22 -> <clinit>
    1:1:void <init>():22:22 -> <init>
    1:1:boolean computeEquals(java.lang.Object):87:87 -> b
    1:9:com.android.tools.r8.ir.code.IRCode buildIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.origin.Origin):40:48 -> buildIR
    1:9:com.android.tools.r8.ir.code.IRCode buildInliningIR(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.ir.code.ValueNumberGenerator,com.android.tools.r8.ir.code.Position,com.android.tools.r8.origin.Origin):59:67 -> buildInliningIR
    1:1:int computeHashCode():82:82 -> d
    java.util.function.Consumer getRegistryCallback() -> e
    com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider getSourceCodeProvider() -> f
    1:1:void registerCodeReferences(com.android.tools.r8.graph.UseRegistry):77:77 -> registerCodeReferences
    1:1:java.lang.String toString():72:72 -> toString
com.android.tools.r8.ir.synthetic.ForwardMethodSourceCode -> com.android.tools.r8.ir.synthetic.a:
    com.android.tools.r8.graph.DexMethod target -> o
    com.android.tools.r8.graph.DexType targetReceiver -> n
    com.android.tools.r8.ir.code.Invoke$Type invokeType -> p
    boolean castResult -> q
    boolean isInterface -> r
    boolean $assertionsDisabled -> s
    1:1:void <clinit>():20:20 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.ir.code.Position,boolean):37:37 -> <init>
    2:10:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.ir.code.Position,boolean,boolean):59:67 -> <init>
    11:34:boolean checkSignatures():82:105 -> <init>
    11:34:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.ir.code.Position,boolean,boolean):67 -> <init>
    35:43:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.ir.code.Position,boolean,boolean):69:77 -> <init>
    1:1:void lambda$prepareInstructions$0(java.util.List,java.util.List,com.android.tools.r8.ir.conversion.IRBuilder):129:129 -> a
    2:2:void lambda$prepareInstructions$1(int,com.android.tools.r8.ir.conversion.IRBuilder):143:143 -> a
    1:1:void lambda$prepareInstructions$2(int,com.android.tools.r8.ir.conversion.IRBuilder):145:145 -> b
    1:1:void lambda$prepareInstructions$3(int,com.android.tools.r8.ir.conversion.IRBuilder):147:147 -> c
    1:36:void prepareInstructions():112:147 -> f
com.android.tools.r8.ir.synthetic.SynthesizedCode -> com.android.tools.r8.ir.synthetic.SynthesizedCode:
    java.util.function.Consumer registryCallback -> d
    com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider sourceCodeProvider -> c
    1:1:void <init>(com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider):17:17 -> <init>
    2:4:void <init>(com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider,java.util.function.Consumer):20:22 -> <init>
    1:1:void registerReachableDefinitionsDefault(com.android.tools.r8.graph.UseRegistry):36:36 -> a
    1:1:java.util.function.Consumer getRegistryCallback():32:32 -> e
    1:1:com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider getSourceCodeProvider():27:27 -> f
com.android.tools.r8.ir.synthetic.SyntheticSourceCode -> com.android.tools.r8.ir.synthetic.b:
    boolean $assertionsDisabled -> m
    com.android.tools.r8.ir.code.Position position -> j
    int receiverRegister -> d
    int nextRegister -> c
    java.util.function.Predicate doesNotEndBlock -> k
    java.util.function.Predicate endsBlock -> l
    com.android.tools.r8.ir.code.Value receiverValue -> f
    int[] paramRegisters -> e
    java.util.List traceEvents -> i
    java.util.List constructors -> h
    com.android.tools.r8.graph.DexType receiver -> a
    com.android.tools.r8.graph.DexProto proto -> b
    com.android.tools.r8.ir.code.Value[] paramValues -> g
    1:3:void <clinit>():28:30 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):55:55 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position,com.android.tools.r8.graph.DexMethod):59:59 -> <init>
    3:41:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position,com.android.tools.r8.graph.DexMethod):38:76 -> <init>
    boolean lambda$static$0(com.android.tools.r8.ir.conversion.IRBuilder) -> a
    1:1:void add(java.util.function.Consumer):80:80 -> a
    2:3:void add(java.util.function.Consumer,java.util.function.Predicate):84:85 -> a
    2:3:void add(java.util.function.Consumer):80 -> a
    4:5:void add(java.util.function.Consumer,java.util.function.Predicate):84:85 -> a
    6:7:int nextRegister(com.android.tools.r8.ir.code.ValueType):89:90 -> a
    8:8:int getParamCount():113:113 -> a
    9:11:int getParamRegister(int):117:119 -> a
    boolean lambda$static$1(com.android.tools.r8.ir.conversion.IRBuilder) -> b
    1:3:int getReceiverRegister():101:103 -> b
    4:6:com.android.tools.r8.ir.code.Value getParamValue(int):107:109 -> b
    1:1:void buildInstruction(com.android.tools.r8.ir.conversion.IRBuilder,int,boolean):218:218 -> buildInstruction
    1:7:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):186:192 -> buildPrelude
    8:8:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):191:191 -> buildPrelude
    9:26:void buildPrelude(com.android.tools.r8.ir.conversion.IRBuilder):189:206 -> buildPrelude
    1:3:com.android.tools.r8.ir.code.Value getReceiverValue():95:97 -> c
    1:5:void clear():177:181 -> clear
    1:1:int lastInstructionIndex():130:130 -> d
    1:1:int nextInstructionIndex():134:134 -> e
    void prepareInstructions() -> f
    1:1:com.android.tools.r8.ir.code.Position getCanonicalDebugPositionAtOffset(int):251:251 -> getCanonicalDebugPositionAtOffset
    1:1:com.android.tools.r8.ir.code.Position getCurrentPosition():256:256 -> getCurrentPosition
    1:1:int getMoveExceptionRegister(int):246:246 -> getMoveExceptionRegister
    1:1:int instructionCount():126:126 -> instructionCount
    1:1:void resolveAndBuildNewArrayFilledData(int,int,com.android.tools.r8.ir.conversion.IRBuilder):236:236 -> resolveAndBuildNewArrayFilledData
    1:1:void resolveAndBuildSwitch(int,int,int,com.android.tools.r8.ir.conversion.IRBuilder):230:230 -> resolveAndBuildSwitch
    1:3:void setUp():170:172 -> setUp
    1:2:int traceInstruction(int,com.android.tools.r8.ir.conversion.IRBuilder):164:165 -> traceInstruction
com.android.tools.r8.ir.synthetic.TemplateMethodCode -> com.android.tools.r8.ir.synthetic.c:
    java.lang.String templateMethodName -> i
    java.lang.String templateMethodDesc -> j
    boolean $assertionsDisabled -> k
    1:1:void <clinit>():21:21 -> <clinit>
    1:3:void <init>(com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.graph.DexMethod,java.lang.String,java.lang.String):28:30 -> <init>
    1:1:java.util.function.BiFunction createCodeLocator(com.android.tools.r8.graph.JarClassFileReader$ReparseContext):41:41 -> a
    2:2:com.android.tools.r8.graph.JarCode getCodeOrNull(java.lang.String,java.lang.String):45:45 -> a
    1:2:void setUpContext(com.android.tools.r8.graph.DexProgramClass):34:35 -> setUpContext
    3:11:byte[] getClassAsBytes():49:57 -> setUpContext
    3:11:void setUpContext(com.android.tools.r8.graph.DexProgramClass):36 -> setUpContext
    12:12:void setUpContext(com.android.tools.r8.graph.DexProgramClass):36:36 -> setUpContext
    13:13:byte[] getClassAsBytes():59:59 -> setUpContext
    13:13:void setUpContext(com.android.tools.r8.graph.DexProgramClass):36 -> setUpContext
com.android.tools.r8.it.unimi.dsi.fastutil.Function -> com.android.tools.r8.b.a.a.a.a:
com.android.tools.r8.it.unimi.dsi.fastutil.Hash -> com.android.tools.r8.b.a.a.a.c:
    1:1:void <clinit>():128:128 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy -> com.android.tools.r8.b.a.a.a.b:
    boolean equals(java.lang.Object,java.lang.Object) -> a
    int hashCode(java.lang.Object) -> a
com.android.tools.r8.it.unimi.dsi.fastutil.HashCommon -> com.android.tools.r8.b.a.a.a.d:
    1:1:void <clinit>():31:31 -> <clinit>
    int mix(int) -> a
    long nextPowerOfTwo(long) -> a
    1:2:int arraySize(int,float):228:229 -> a
    1:1:int maxFill(int,float):205:205 -> b
com.android.tools.r8.it.unimi.dsi.fastutil.Stack -> com.android.tools.r8.b.a.a.a.e:
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.AbstractBooleanBidirectionalIterator -> com.android.tools.r8.b.a.a.a.a.a:
    1:1:void <init>():34:34 -> <init>
    1:1:java.lang.Boolean previous():56:56 -> previous
    1:1:java.lang.Object previous():33 -> previous
    2:2:boolean com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterators$EmptyIterator.previousBoolean():62:62 -> previous
    2:2:java.lang.Boolean previous():56 -> previous
    2:2:java.lang.Object previous():33 -> previous
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.AbstractBooleanCollection -> com.android.tools.r8.b.a.a.a.a.b:
    1:1:void <init>():37:37 -> <init>
    1:1:boolean add(boolean):68:68 -> a
    1:1:boolean add(java.lang.Object):36:36 -> add
    2:2:boolean add(java.lang.Boolean):114:114 -> add
    2:2:boolean add(java.lang.Object):36 -> add
    boolean contains(boolean) -> b
    1:4:boolean rem(boolean):94:97 -> c
    1:1:boolean contains(java.lang.Object):129:129 -> contains
    1:1:boolean remove(java.lang.Object):143:143 -> remove
    1:14:java.lang.String toString():206:219 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.AbstractBooleanIterator -> com.android.tools.r8.b.a.a.a.a.c:
    1:1:void <init>():34:34 -> <init>
    1:1:java.lang.Boolean next():57:57 -> next
    1:1:java.lang.Object next():33 -> next
    1:1:void remove():68:68 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.AbstractBooleanListIterator -> com.android.tools.r8.b.a.a.a.a.d:
    1:1:void <init>():35:35 -> <init>
    1:1:void add(java.lang.Object):34:34 -> add
    2:2:void add(java.lang.Boolean):83:83 -> add
    2:2:void add(java.lang.Object):34 -> add
    3:3:void add(boolean):57:57 -> add
    3:3:void add(java.lang.Boolean):83 -> add
    3:3:void add(java.lang.Object):34 -> add
    1:1:void set(java.lang.Object):34:34 -> set
    2:2:void set(java.lang.Boolean):70:70 -> set
    2:2:void set(java.lang.Object):34 -> set
    3:3:void set(boolean):46:46 -> set
    3:3:void set(java.lang.Boolean):70 -> set
    3:3:void set(java.lang.Object):34 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.AbstractBooleanSet -> com.android.tools.r8.b.a.a.a.a.e:
    1:1:void <init>():32:32 -> <init>
    1:1:boolean rem(boolean):87:87 -> c
    boolean remove(boolean) -> d
    1:4:boolean equals(java.lang.Object):41:44 -> equals
    1:5:int hashCode():57:61 -> hashCode
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet -> com.android.tools.r8.b.a.a.a.a.g:
    int size -> b
    1:4:void <init>(boolean[],int):104:107 -> <init>
    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet):29:29 -> a
    2:10:boolean add(boolean):164:172 -> a
    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet):29:29 -> b
    2:2:boolean contains(boolean):143:143 -> b
    1:1:boolean[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet):29:29 -> c
    1:1:void clear():178:178 -> clear
    1:5:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet clone():201:205 -> clone
    1:5:java.lang.Object clone():29 -> clone
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet clone():203:203 -> clone
    6:6:java.lang.Object clone():29 -> clone
    1:6:boolean remove(boolean):153:158 -> d
    1:2:int findKey(boolean):111:112 -> e
    1:1:boolean isEmpty():183:183 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator iterator():119:119 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator iterator():119:119 -> iterator
    2:2:java.util.Iterator iterator():29 -> iterator
    1:1:int size():148:148 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet$1 -> com.android.tools.r8.b.a.a.a.a.f:
    com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet this$0 -> b
    int next -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArraySet):119:120 -> <init>
    1:1:boolean hasNext():124:124 -> hasNext
    1:1:boolean hasNext():124:124 -> nextBoolean
    1:1:boolean nextBoolean():129 -> nextBoolean
    2:2:boolean nextBoolean():130:130 -> nextBoolean
    3:3:boolean nextBoolean():129:129 -> nextBoolean
    1:2:void remove():135:136 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanArrays -> com.android.tools.r8.b.a.a.a.a.h:
    boolean[] EMPTY_ARRAY -> a
    1:1:void <clinit>():95:95 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanBidirectionalIterator -> com.android.tools.r8.b.a.a.a.a.i:
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection -> com.android.tools.r8.b.a.a.a.a.j:
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollections -> com.android.tools.r8.b.a.a.a.a.l:
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection):536:536 -> a
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollections$UnmodifiableCollection -> com.android.tools.r8.b.a.a.a.a.k:
    com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection collection -> a
    1:3:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection):369:371 -> <init>
    4:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection):370:370 -> <init>
    1:1:boolean add(java.lang.Object):365:365 -> add
    2:2:boolean add(java.lang.Boolean):453:453 -> add
    2:2:boolean add(java.lang.Object):365 -> add
    1:1:boolean addAll(java.util.Collection):437:437 -> addAll
    1:1:void clear():417:417 -> clear
    1:1:boolean contains(java.lang.Object):459:459 -> contains
    1:1:boolean containsAll(java.util.Collection):432:432 -> containsAll
    1:1:boolean equals(java.lang.Object):523:523 -> equals
    1:1:int hashCode():517:517 -> hashCode
    1:1:boolean isEmpty():391:391 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator iterator():400:400 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator iterator():400:400 -> iterator
    2:2:java.util.Iterator iterator():365 -> iterator
    1:1:boolean remove(java.lang.Object):465:465 -> remove
    1:1:boolean removeAll(java.util.Collection):442:442 -> removeAll
    1:1:boolean retainAll(java.util.Collection):447:447 -> retainAll
    1:1:int size():386:386 -> size
    1:1:java.lang.Object[] toArray(java.lang.Object[]):422:422 -> toArray
    2:2:java.lang.Object[] toArray():427:427 -> toArray
    1:1:java.lang.String toString():512:512 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterable -> com.android.tools.r8.b.a.a.a.a.m:
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator -> com.android.tools.r8.b.a.a.a.a.n:
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterators -> com.android.tools.r8.b.a.a.a.a.q:
    com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterators$EmptyIterator EMPTY_ITERATOR -> a
    1:1:void <clinit>():103:103 -> <clinit>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator):747:747 -> a
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterators$EmptyIterator -> com.android.tools.r8.b.a.a.a.a.o:
    1:1:void <init>():42:42 -> <init>
    1:1:java.lang.Object clone():87:87 -> clone
    1:1:boolean nextBoolean():57:57 -> nextBoolean
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterators$UnmodifiableIterator -> com.android.tools.r8.b.a.a.a.a.p:
    com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator i -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator):724:725 -> <init>
    1:1:boolean hasNext():730:730 -> hasNext
    1:1:boolean nextBoolean():735:735 -> nextBoolean
com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanSet -> com.android.tools.r8.b.a.a.a.a.r:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntFunction -> com.android.tools.r8.b.a.a.a.b.a:
    int defRetValue -> a
    1:1:void <init>():44:44 -> <init>
    1:1:void defaultReturnValue(int):55:55 -> a
    2:5:java.lang.Integer put(java.lang.Integer,java.lang.Integer):135:138 -> a
    int put(int,int) -> b
    1:1:boolean containsKey(java.lang.Object):105:105 -> containsKey
    1:2:java.lang.Integer get(java.lang.Object):120:121 -> get
    1:2:java.lang.Object get(java.lang.Object):41 -> get
    1:1:java.lang.Object put(java.lang.Object,java.lang.Object):41:41 -> put
    1:4:java.lang.Integer remove(java.lang.Object):153:156 -> remove
    1:4:java.lang.Object remove(java.lang.Object):41 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntMap -> com.android.tools.r8.b.a.a.a.b.c:
    1:1:void <init>():46:46 -> <init>
    boolean containsValue(int) -> b
    1:1:boolean containsValue(java.lang.Object):63:63 -> containsValue
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():311:311 -> entrySet
    1:1:java.util.Set entrySet():43 -> entrySet
    1:3:boolean equals(java.lang.Object):334:336 -> equals
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():311:311 -> equals
    4:4:boolean equals(java.lang.Object):337 -> equals
    5:5:boolean equals(java.lang.Object):337:337 -> equals
    1:1:int hashCode():324:324 -> hashCode
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():311:311 -> hashCode
    2:2:int hashCode():325 -> hashCode
    3:5:int hashCode():325:327 -> hashCode
    1:13:void putAll(java.util.Map):83:95 -> putAll
    1:1:java.lang.String toString():342:342 -> toString
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():311:311 -> toString
    2:2:java.lang.String toString():343 -> toString
    3:17:java.lang.String toString():343:357 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntMap$BasicEntry -> com.android.tools.r8.b.a.a.a.b.b:
    int value -> b
    int key -> a
    1:3:void <init>(int,int):122:124 -> <init>
    1:1:int getIntKey():141:141 -> c
    1:1:int getIntValue():158:158 -> e
    1:5:boolean equals(java.lang.Object):180:184 -> equals
    1:1:java.lang.Integer getKey():136:136 -> getKey
    1:1:java.lang.Object getKey():113 -> getKey
    1:1:java.lang.Integer getValue():153:153 -> getValue
    1:1:java.lang.Object getValue():113 -> getValue
    1:1:int hashCode():189:189 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):113:113 -> setValue
    2:2:java.lang.Integer setValue(java.lang.Integer):175:175 -> setValue
    2:2:java.lang.Object setValue(java.lang.Object):113 -> setValue
    3:3:int setValue(int):163:163 -> setValue
    3:3:java.lang.Integer setValue(java.lang.Integer):175 -> setValue
    3:3:java.lang.Object setValue(java.lang.Object):113 -> setValue
    1:1:java.lang.String toString():194:194 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ObjectFunction -> com.android.tools.r8.b.a.a.a.b.d:
    java.lang.Object defRetValue -> a
    1:1:void <init>():44:44 -> <init>
    1:1:java.lang.Object put(int,java.lang.Object):71:71 -> a
    2:4:java.lang.Object put(java.lang.Integer,java.lang.Object):135:137 -> a
    1:1:boolean containsKey(java.lang.Object):105:105 -> containsKey
    1:2:java.lang.Object get(java.lang.Object):120:121 -> get
    1:1:java.lang.Object put(java.lang.Object,java.lang.Object):41:41 -> put
    2:4:java.lang.Object put(java.lang.Integer,java.lang.Object):135:137 -> put
    2:4:java.lang.Object put(java.lang.Object,java.lang.Object):41 -> put
    1:1:java.lang.Object remove(int):82:82 -> remove
    2:4:java.lang.Object remove(java.lang.Object):153:155 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ObjectMap -> com.android.tools.r8.b.a.a.a.b.f:
    1:1:void <init>():45:45 -> <init>
    boolean containsKey(int) -> c
    1:1:java.util.Set entrySet():42:42 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():273:273 -> entrySet
    1:4:boolean equals(java.lang.Object):296:299 -> equals
    1:4:int hashCode():286:289 -> hashCode
    1:13:void putAll(java.util.Map):70:82 -> putAll
    14:16:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ObjectFunction.put(java.lang.Integer,java.lang.Object):135:137 -> putAll
    14:16:void putAll(java.util.Map):82 -> putAll
    1:17:java.lang.String toString():304:320 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ObjectMap$BasicEntry -> com.android.tools.r8.b.a.a.a.b.e:
    java.lang.Object value -> b
    int key -> a
    1:3:void <init>(int,java.lang.Object):109:111 -> <init>
    1:1:int getIntKey():128:128 -> c
    1:4:boolean equals(java.lang.Object):143:146 -> equals
    1:1:java.lang.Integer getKey():123:123 -> getKey
    1:1:java.lang.Object getKey():100 -> getKey
    1:1:java.lang.Object getValue():133:133 -> getValue
    1:1:int hashCode():151:151 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):138:138 -> setValue
    1:1:java.lang.String toString():156:156 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ObjectSortedMap -> com.android.tools.r8.b.a.a.a.b.g:
    1:1:void <init>():33:33 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():293:293 -> entrySet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():30 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():293:293 -> entrySet
    2:2:java.util.Set entrySet():30 -> entrySet
    1:1:java.lang.Integer firstKey():85:85 -> firstKey
    1:1:java.lang.Object firstKey():30 -> firstKey
    1:1:java.util.SortedMap headMap(java.lang.Object):30:30 -> headMap
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap headMap(java.lang.Integer):46:46 -> headMap
    2:2:java.util.SortedMap headMap(java.lang.Object):30 -> headMap
    1:1:java.lang.Integer lastKey():98:98 -> lastKey
    1:1:java.lang.Object lastKey():30 -> lastKey
    1:1:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):30:30 -> subMap
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap subMap(java.lang.Integer,java.lang.Integer):72:72 -> subMap
    2:2:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):30 -> subMap
    1:1:java.util.SortedMap tailMap(java.lang.Object):30:30 -> tailMap
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap tailMap(java.lang.Integer):59:59 -> tailMap
    2:2:java.util.SortedMap tailMap(java.lang.Object):30 -> tailMap
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ObjectSortedMap$KeySet -> com.android.tools.r8.b.a.a.a.b.g$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ObjectSortedMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ObjectSortedMap):122:122 -> <init>
    1:1:int lastInt():150:150 -> a
    1:1:int firstInt():145:145 -> b
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet tailSet(int):160:160 -> b
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet subSet(int,int):165:165 -> b
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet headSet(int):155:155 -> c
    1:1:void clear():135:135 -> clear
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntComparator comparator():140:140 -> comparator
    1:1:java.util.Comparator comparator():122 -> comparator
    1:1:boolean contains(int):125:125 -> d
    1:1:int size():130:130 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceFunction -> com.android.tools.r8.b.a.a.a.b.h:
    java.lang.Object defRetValue -> a
    1:1:void <init>():44:44 -> <init>
    1:1:java.lang.Object put(int,java.lang.Object):71:71 -> a
    2:4:java.lang.Object put(java.lang.Integer,java.lang.Object):135:137 -> a
    1:1:boolean containsKey(java.lang.Object):105:105 -> containsKey
    1:2:java.lang.Object get(java.lang.Object):120:121 -> get
    1:1:java.lang.Object put(java.lang.Object,java.lang.Object):41:41 -> put
    2:4:java.lang.Object put(java.lang.Integer,java.lang.Object):135:137 -> put
    2:4:java.lang.Object put(java.lang.Object,java.lang.Object):41 -> put
    1:1:java.lang.Object remove(int):82:82 -> remove
    2:4:java.lang.Object remove(java.lang.Object):153:155 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceMap -> com.android.tools.r8.b.a.a.a.b.j:
    1:1:void <init>():45:45 -> <init>
    boolean containsKey(int) -> c
    1:1:java.util.Set entrySet():42:42 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():273:273 -> entrySet
    1:4:boolean equals(java.lang.Object):296:299 -> equals
    1:4:int hashCode():286:289 -> hashCode
    1:13:void putAll(java.util.Map):70:82 -> putAll
    14:16:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceFunction.put(java.lang.Integer,java.lang.Object):135:137 -> putAll
    14:16:void putAll(java.util.Map):82 -> putAll
    1:17:java.lang.String toString():304:320 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceMap$BasicEntry -> com.android.tools.r8.b.a.a.a.b.i:
    java.lang.Object value -> b
    int key -> a
    1:3:void <init>(int,java.lang.Object):109:111 -> <init>
    1:1:int getIntKey():128:128 -> c
    1:4:boolean equals(java.lang.Object):143:146 -> equals
    1:1:java.lang.Integer getKey():123:123 -> getKey
    1:1:java.lang.Object getKey():100 -> getKey
    1:1:java.lang.Object getValue():133:133 -> getValue
    1:1:int hashCode():151:151 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):138:138 -> setValue
    1:1:java.lang.String toString():156:156 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceSortedMap -> com.android.tools.r8.b.a.a.a.b.k:
    1:1:void <init>():33:33 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():293:293 -> entrySet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():30 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():293:293 -> entrySet
    2:2:java.util.Set entrySet():30 -> entrySet
    1:1:java.lang.Integer firstKey():85:85 -> firstKey
    1:1:java.lang.Object firstKey():30 -> firstKey
    1:1:java.util.SortedMap headMap(java.lang.Object):30:30 -> headMap
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(java.lang.Integer):46:46 -> headMap
    2:2:java.util.SortedMap headMap(java.lang.Object):30 -> headMap
    1:1:java.lang.Integer lastKey():98:98 -> lastKey
    1:1:java.lang.Object lastKey():30 -> lastKey
    1:1:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):30:30 -> subMap
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(java.lang.Integer,java.lang.Integer):72:72 -> subMap
    2:2:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):30 -> subMap
    1:1:java.util.SortedMap tailMap(java.lang.Object):30:30 -> tailMap
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(java.lang.Integer):59:59 -> tailMap
    2:2:java.util.SortedMap tailMap(java.lang.Object):30 -> tailMap
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceSortedMap$KeySet -> com.android.tools.r8.b.a.a.a.b.k$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceSortedMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceSortedMap):122:122 -> <init>
    1:1:int lastInt():150:150 -> a
    1:1:int firstInt():145:145 -> b
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet tailSet(int):160:160 -> b
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet subSet(int,int):165:165 -> b
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet headSet(int):155:155 -> c
    1:1:void clear():135:135 -> clear
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntComparator comparator():140:140 -> comparator
    1:1:java.util.Comparator comparator():122 -> comparator
    1:1:boolean contains(int):125:125 -> d
    1:1:int size():130:130 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntBidirectionalIterator -> com.android.tools.r8.b.a.a.a.b.l:
    1:1:void <init>():34:34 -> <init>
    int previousInt() -> b
    1:1:java.lang.Integer previous():56:56 -> previous
    1:1:java.lang.Object previous():33 -> previous
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection -> com.android.tools.r8.b.a.a.a.b.m:
    1:1:void <init>():37:37 -> <init>
    1:1:boolean add(java.lang.Integer):114:114 -> a
    2:3:int[] toArray(int[]):148:149 -> a
    1:1:boolean add(java.lang.Object):36:36 -> add
    2:2:boolean add(int):68:68 -> add
    1:1:boolean contains(java.lang.Object):129:129 -> contains
    boolean contains(int) -> d
    1:1:int[] toIntArray(int[]):167:167 -> d
    1:1:int[] toIntArray():155 -> d
    1:4:boolean rem(int):94:97 -> e
    1:1:boolean remove(java.lang.Object):143:143 -> remove
    1:14:java.lang.String toString():206:219 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntIterator -> com.android.tools.r8.b.a.a.a.b.n:
    1:1:void <init>():34:34 -> <init>
    1:1:java.lang.Integer next():57:57 -> next
    1:1:java.lang.Object next():33 -> next
    1:1:void remove():68:68 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList -> com.android.tools.r8.b.a.a.a.b.q:
    1:1:void <init>():33:33 -> <init>
    boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection) -> a
    boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList) -> a
    int removeInt(int) -> a
    1:7:void removeElements(int,int):341:347 -> a
    8:8:void removeElements(int,int):344:344 -> a
    9:14:void getElements(int,int[],int,int):388:393 -> a
    15:15:void getElements(int,int[],int,int):391:391 -> a
    16:16:void getElements(int,int[],int,int):390:390 -> a
    17:17:void getElements(int,int[],int,int):389:389 -> a
    18:36:int compareTo(java.util.List):464:482 -> a
    37:37:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):564:564 -> a
    38:38:void add(int,java.lang.Integer):578:578 -> a
    1:1:void add(int,java.lang.Object):32:32 -> add
    2:2:void add(int,int):74:74 -> add
    3:3:boolean add(int):86:86 -> add
    1:5:boolean addAll(int,java.util.Collection):120:124 -> addAll
    6:6:boolean addAll(java.util.Collection):137:137 -> addAll
    1:2:int popInt():492:493 -> c
    3:3:int popInt():492:492 -> c
    1:1:void clear():403:403 -> clear
    1:1:int compareTo(java.lang.Object):32:32 -> compareTo
    1:1:boolean contains(int):274:274 -> d
    1:14:boolean equals(java.lang.Object):430:443 -> equals
    15:15:boolean valEquals(java.lang.Object,java.lang.Object):407:407 -> equals
    15:15:boolean equals(java.lang.Object):443 -> equals
    1:1:void ensureIndex(int):47:47 -> f
    2:2:void ensureIndex(int):46:46 -> f
    1:1:void ensureRestrictedIndex(int):62:62 -> g
    2:2:void ensureRestrictedIndex(int):61:61 -> g
    1:1:java.lang.Integer get(int):606:606 -> get
    1:1:java.lang.Object get(int):32 -> get
    1:5:int indexOf(int):279:283 -> h
    1:4:int hashCode():418:421 -> hashCode
    1:5:int lastIndexOf(int):290:294 -> i
    1:1:int indexOf(java.lang.Object):620:620 -> indexOf
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():32:32 -> iterator
    2:2:java.util.Iterator iterator():32:32 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():180:180 -> iterator
    1:1:int lastIndexOf(java.lang.Object):634:634 -> lastIndexOf
    1:1:java.util.ListIterator listIterator():32:32 -> listIterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator():192:192 -> listIterator
    1:1:java.lang.Integer remove(int):648:648 -> remove
    1:1:java.lang.Object remove(int):32 -> remove
    1:1:java.lang.Object set(int,java.lang.Object):32:32 -> set
    2:2:java.lang.Integer set(int,java.lang.Integer):592:592 -> set
    2:2:java.lang.Object set(int,java.lang.Object):32 -> set
    3:3:int set(int,int):111:111 -> set
    1:1:java.util.List subList(int,int):32:32 -> subList
    2:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):310:313 -> subList
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):312:312 -> subList
    1:14:java.lang.String toString():709:722 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList$IntSubList -> com.android.tools.r8.b.a.a.a.b.p:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList l -> a
    int from -> b
    int to -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():726:726 -> <clinit>
    1:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList,int,int):735:738 -> <init>
    1:1:boolean access$000(com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList$IntSubList):726:726 -> a
    2:4:int removeInt(int):779:781 -> a
    5:7:void getElements(int,int[],int,int):797:799 -> a
    8:8:void getElements(int,int[],int,int):798:798 -> a
    9:13:void removeElements(int,int):804:808 -> a
    14:14:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):898:898 -> a
    15:19:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):525:529 -> a
    15:19:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):899 -> a
    20:20:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):904:904 -> a
    21:21:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):542:542 -> a
    21:21:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):905 -> a
    1:1:void add(int,java.lang.Object):726:726 -> add
    2:4:boolean add(int):750:752 -> add
    5:8:void add(int,int):758:761 -> add
    1:3:boolean addAll(int,java.util.Collection):766:768 -> addAll
    1:1:int compareTo(java.lang.Object):726:726 -> compareTo
    1:3:boolean assertRange():742:744 -> e
    4:8:boolean rem(int):888:892 -> e
    1:1:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.get(int):606:606 -> get
    1:1:java.lang.Object get(int):726 -> get
    1:2:int getInt(int):773:774 -> getInt
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.iterator():180:180 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():726 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.iterator():180:180 -> iterator
    2:2:java.util.Iterator iterator():726 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.listIterator():192:192 -> listIterator
    1:1:java.util.ListIterator listIterator():726 -> listIterator
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):821:822 -> listIterator
    4:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):821:822 -> listIterator
    4:5:java.util.ListIterator listIterator(int):726 -> listIterator
    1:1:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.remove(int):648:648 -> remove
    1:1:java.lang.Object remove(int):726 -> remove
    1:1:java.lang.Object set(int,java.lang.Object):726:726 -> set
    2:2:java.lang.Integer com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList.set(int,java.lang.Integer):592:592 -> set
    2:2:java.lang.Object set(int,java.lang.Object):726 -> set
    3:4:int set(int,int):786:787 -> set
    1:1:int size():792:792 -> size
    1:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):880:883 -> subList
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):882:882 -> subList
    6:9:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):880:883 -> subList
    6:9:java.util.List subList(int,int):726 -> subList
    10:10:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):882:882 -> subList
    10:10:java.util.List subList(int,int):726 -> subList
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList$IntSubList$1 -> com.android.tools.r8.b.a.a.a.b.o:
    boolean $assertionsDisabled -> e
    int last -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList$IntSubList this$0 -> d
    int val$index -> c
    int pos -> a
    1:1:void <clinit>():822:822 -> <clinit>
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList$IntSubList,int):822:823 -> <init>
    1:4:void add(int):852:855 -> a
    5:5:void add(int):852:852 -> a
    1:1:boolean hasPrevious():830:830 -> b
    1:1:int previousInt():839 -> b
    2:2:int previousInt():840:840 -> b
    3:3:int previousInt():839:839 -> b
    4:5:void set(int):859:860 -> b
    6:7:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList$IntSubList.set(int,int):786:787 -> b
    6:7:void set(int):860 -> b
    8:8:void set(int):859:859 -> b
    1:1:boolean hasNext():826:826 -> hasNext
    1:1:boolean hasPrevious():830:830 -> hasPrevious
    1:1:int nextIndex():844:844 -> nextIndex
    1:1:boolean hasNext():826:826 -> nextInt
    1:1:int nextInt():834 -> nextInt
    2:2:int nextInt():835:835 -> nextInt
    3:3:int nextInt():834:834 -> nextInt
    1:1:int previousIndex():848:848 -> previousIndex
    1:2:void remove():864:865 -> remove
    3:5:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntList$IntSubList.removeInt(int):779:781 -> remove
    3:5:void remove():865 -> remove
    6:8:void remove():871:873 -> remove
    9:9:void remove():864:864 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntListIterator -> com.android.tools.r8.b.a.a.a.b.r:
    1:1:void <init>():35:35 -> <init>
    1:1:void add(int):57:57 -> a
    1:1:void add(java.lang.Object):34:34 -> add
    2:2:void add(java.lang.Integer):83:83 -> add
    2:2:void add(java.lang.Object):34 -> add
    1:1:void set(int):46:46 -> b
    1:1:void set(java.lang.Object):34:34 -> set
    2:2:void set(java.lang.Integer):70:70 -> set
    2:2:void set(java.lang.Object):34 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntSet -> com.android.tools.r8.b.a.a.a.b.s:
    1:1:void <init>():32:32 -> <init>
    1:1:boolean rem(int):87:87 -> e
    1:4:boolean equals(java.lang.Object):41:44 -> equals
    1:5:int hashCode():57:61 -> hashCode
    1:1:boolean remove(int):75:75 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntSortedSet -> com.android.tools.r8.b.a.a.a.b.t:
    1:1:void <init>():23:23 -> <init>
    1:1:java.lang.Integer first():94:94 -> first
    1:1:java.lang.Object first():22 -> first
    1:1:java.util.SortedSet headSet(java.lang.Object):22:22 -> headSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet headSet(java.lang.Integer):55:55 -> headSet
    2:2:java.util.SortedSet headSet(java.lang.Object):22 -> headSet
    1:1:java.lang.Integer last():107:107 -> last
    1:1:java.lang.Object last():22 -> last
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):22:22 -> subSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet subSet(java.lang.Integer,java.lang.Integer):81:81 -> subSet
    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):22 -> subSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):22:22 -> tailSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet tailSet(java.lang.Integer):68:68 -> tailSet
    2:2:java.util.SortedSet tailSet(java.lang.Object):22 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap -> com.android.tools.r8.b.a.a.a.b.x:
    int[] key -> b
    int[] value -> c
    int size -> d
    1:3:void <init>():70:72 -> <init>
    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap):37:37 -> a
    2:2:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap,int):37:37 -> a
    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap):37:37 -> b
    2:3:boolean containsValue(int):266:267 -> b
    4:23:int put(int,int):279:298 -> b
    1:1:int[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap):37:37 -> c
    2:2:boolean containsKey(int):261:261 -> c
    1:1:void clear():256:256 -> clear
    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap clone():339:344 -> clone
    1:6:java.lang.Object clone():37 -> clone
    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap clone():341:341 -> clone
    7:7:java.lang.Object clone():37 -> clone
    1:1:int[] access$200(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap):37:37 -> d
    2:4:int findKey(int):234:236 -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$FastEntrySet int2IntEntrySet():230:230 -> f
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2IntEntrySet():37 -> f
    1:4:int get(int):243:246 -> get
    1:1:boolean isEmpty():273:273 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():316:316 -> keySet
    1:1:java.util.Set keySet():37 -> keySet
    1:7:int remove(int):304:310 -> remove
    1:1:int size():251:251 -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():321:321 -> values
    1:1:java.util.Collection values():37 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap$1 -> com.android.tools.r8.b.a.a.a.b.u:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap$EntrySet -> com.android.tools.r8.b.a.a.a.b.w:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap):133:133 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap$1):133:133 -> <init>
    1:6:boolean contains(java.lang.Object):201:206 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
    2:2:java.util.Iterator iterator():133 -> iterator
    1:12:boolean remove(java.lang.Object):212:223 -> remove
    1:1:int size():195:195 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap$EntrySet$1 -> com.android.tools.r8.b.a.a.a.b.v:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap$EntrySet this$1 -> c
    int next -> b
    int curr -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntArrayMap$EntrySet):136:137 -> <init>
    1:1:boolean hasNext():141:141 -> hasNext
    1:1:boolean hasNext():141:141 -> next
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$Entry next():147 -> next
    1:1:java.lang.Object next():136 -> next
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$Entry next():148:148 -> next
    2:2:java.lang.Object next():136 -> next
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$Entry next():147:147 -> next
    3:3:java.lang.Object next():136 -> next
    1:5:void remove():153:157 -> remove
    6:6:void remove():153:153 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntFunction -> com.android.tools.r8.b.a.a.a.b.y:
    int put(int,int) -> b
    boolean containsKey(int) -> c
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap -> com.android.tools.r8.b.a.a.a.b.B:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2IntEntrySet() -> f
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$Entry -> com.android.tools.r8.b.a.a.a.b.z:
    int getIntKey() -> c
    int getIntValue() -> e
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$FastEntrySet -> com.android.tools.r8.b.a.a.a.b.A:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap -> com.android.tools.r8.b.a.a.a.b.K:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values -> l
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$FastEntrySet entries -> j
    float f -> i
    int[] key -> b
    int[] value -> c
    int size -> h
    boolean containsNullKey -> e
    int n -> f
    int maxFill -> g
    int mask -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keys -> k
    1:9:void <init>(int,float):92:100 -> <init>
    10:10:void <init>(int,float):94:94 -> <init>
    11:11:void <init>(int,float):93:93 -> <init>
    12:12:void <init>():120:120 -> <init>
    13:13:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap,float):156:156 -> <init>
    13:13:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap):168 -> <init>
    14:14:void putAll(java.util.Map):237:237 -> <init>
    14:14:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap,float):157 -> <init>
    14:14:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap):168 -> <init>
    15:16:void ensureCapacity(int):210:211 -> <init>
    15:16:void putAll(java.util.Map):237 -> <init>
    15:16:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap,float):157 -> <init>
    15:16:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap):168 -> <init>
    17:17:int size():428:428 -> <init>
    17:17:void putAll(java.util.Map):239 -> <init>
    17:17:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap,float):157 -> <init>
    17:17:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap):168 -> <init>
    18:18:void putAll(java.util.Map):239:239 -> <init>
    18:18:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap,float):157 -> <init>
    18:18:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap):168 -> <init>
    19:20:void tryCapacity(long):215:216 -> <init>
    19:20:void putAll(java.util.Map):239 -> <init>
    19:20:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap,float):157 -> <init>
    19:20:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap):168 -> <init>
    21:27:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntMap.putAll(java.util.Map):83:89 -> <init>
    21:27:void putAll(java.util.Map):242 -> <init>
    21:27:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap,float):157 -> <init>
    21:27:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap):168 -> <init>
    1:1:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):50:50 -> a
    2:2:int access$400(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap,int):50:50 -> a
    3:6:int removeNullEntry():228:231 -> a
    1:16:int insert(int,int):248:263 -> b
    1:16:int put(int,int):270 -> b
    17:19:int put(int,int):271:273 -> b
    20:24:boolean containsValue(int):403:407 -> b
    1:10:boolean containsKey(int):387:396 -> c
    1:4:void clear():420:423 -> clear
    1:10:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap clone():1017:1026 -> clone
    1:10:java.lang.Object clone():50 -> clone
    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap clone():1019:1019 -> clone
    11:11:java.lang.Object clone():50 -> clone
    1:7:void rehash(int):979:985 -> d
    8:8:int realSize():206:206 -> d
    8:8:void rehash(int):986 -> d
    9:21:void rehash(int):987:999 -> d
    1:2:int removeEntry(int):220:221 -> e
    3:8:void shiftKeys(int):333:338 -> e
    3:8:int removeEntry(int):222 -> e
    9:9:int removeEntry(int):223:223 -> e
    10:15:void shiftKeys(int):341:346 -> e
    10:15:int removeEntry(int):222 -> e
    16:16:void shiftKeys(int):343:343 -> e
    16:16:int removeEntry(int):222 -> e
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap$FastEntrySet int2IntEntrySet():773:774 -> f
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2IntEntrySet():50 -> f
    1:11:int get(int):370:380 -> get
    1:1:int realSize():206:206 -> hashCode
    1:1:int hashCode():1043 -> hashCode
    2:10:int hashCode():1044:1052 -> hashCode
    1:1:boolean isEmpty():433:433 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():834:835 -> keySet
    1:2:java.util.Set keySet():50 -> keySet
    1:1:void putAll(java.util.Map):237:237 -> putAll
    2:3:void ensureCapacity(int):210:211 -> putAll
    2:3:void putAll(java.util.Map):237 -> putAll
    4:4:int size():428:428 -> putAll
    4:4:void putAll(java.util.Map):239 -> putAll
    5:5:void putAll(java.util.Map):239:239 -> putAll
    6:7:void tryCapacity(long):215:216 -> putAll
    6:7:void putAll(java.util.Map):239 -> putAll
    8:20:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2IntMap.putAll(java.util.Map):83:95 -> putAll
    8:20:void putAll(java.util.Map):242 -> putAll
    1:12:int remove(int):352:363 -> remove
    1:1:int size():428:428 -> size
    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():866:887 -> values
    1:22:java.util.Collection values():50 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$1 -> com.android.tools.r8.b.a.a.a.b.C:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):866:866 -> <init>
    1:1:void clear():884:884 -> clear
    1:1:boolean contains(int):879:879 -> d
    2:6:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap.containsValue(int):403:407 -> d
    2:6:boolean contains(int):879 -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():869:869 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():869:869 -> iterator
    2:2:java.util.Iterator iterator():866 -> iterator
    1:1:int size():874:874 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$EntryIterator -> com.android.tools.r8.b.a.a.a.b.D:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapEntry entry -> g
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):664:664 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$1):664 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapEntry next():669:669 -> next
    1:1:java.lang.Object next():664 -> next
    1:4:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapIterator.remove():641:644 -> remove
    1:4:void remove():674 -> remove
    5:10:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapIterator.shiftKeys(int):619:624 -> remove
    5:10:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapIterator.remove():644 -> remove
    5:10:void remove():674 -> remove
    11:12:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapIterator.remove():651:652 -> remove
    11:12:void remove():674 -> remove
    13:22:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapIterator.shiftKeys(int):627:636 -> remove
    13:22:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapIterator.remove():644 -> remove
    13:22:void remove():674 -> remove
    23:23:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapIterator.shiftKeys(int):629:629 -> remove
    23:23:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapIterator.remove():644 -> remove
    23:23:void remove():674 -> remove
    24:25:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapIterator.remove():647:648 -> remove
    24:25:void remove():674 -> remove
    26:26:void remove():675:675 -> remove
    27:27:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapIterator.remove():641:641 -> remove
    27:27:void remove():674 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$KeyIterator -> com.android.tools.r8.b.a.a.a.b.E:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):787:788 -> <init>
    1:1:java.lang.Integer next():799:799 -> next
    1:1:java.lang.Object next():786 -> next
    1:1:int nextInt():793:793 -> nextInt
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$KeySet -> com.android.tools.r8.b.a.a.a.b.F:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):803:803 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$1):803 -> <init>
    1:1:void clear():828:828 -> clear
    1:1:boolean contains(int):816:816 -> d
    2:11:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap.containsKey(int):387:396 -> d
    2:11:boolean contains(int):816 -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():806:806 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():806:806 -> iterator
    2:2:java.util.Iterator iterator():803 -> iterator
    1:3:boolean remove(int):821:823 -> remove
    1:1:int size():811:811 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapEntry -> com.android.tools.r8.b.a.a.a.b.G:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> b
    int index -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap,int):472:473 -> <init>
    1:1:int getIntKey():481:481 -> c
    1:1:int getIntValue():486:486 -> e
    1:3:boolean equals(java.lang.Object):535:537 -> equals
    1:1:java.lang.Integer getKey():505:505 -> getKey
    1:1:java.lang.Object getKey():467 -> getKey
    1:1:java.lang.Integer getValue():517:517 -> getValue
    1:1:java.lang.Object getValue():467 -> getValue
    1:1:int hashCode():542:542 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):467:467 -> setValue
    2:2:java.lang.Integer setValue(java.lang.Integer):529:529 -> setValue
    2:2:java.lang.Object setValue(java.lang.Object):467 -> setValue
    3:4:int setValue(int):491:492 -> setValue
    3:4:java.lang.Integer setValue(java.lang.Integer):529 -> setValue
    3:4:java.lang.Object setValue(java.lang.Object):467 -> setValue
    5:5:java.lang.Integer setValue(java.lang.Integer):529:529 -> setValue
    5:5:java.lang.Object setValue(java.lang.Object):467 -> setValue
    1:1:java.lang.String toString():547:547 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapEntrySet -> com.android.tools.r8.b.a.a.a.b.H:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):689:689 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$1):689:689 -> <init>
    1:1:void clear():767:767 -> clear
    1:17:boolean contains(java.lang.Object):701:717 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():691:691 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():691:691 -> iterator
    2:2:java.util.Iterator iterator():689 -> iterator
    1:30:boolean remove(java.lang.Object):724:753 -> remove
    1:1:int size():762:762 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$MapIterator -> com.android.tools.r8.b.a.a.a.b.I:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList wrapped -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> f
    int last -> b
    int pos -> a
    boolean mustReturnNullKey -> d
    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):552:575 -> <init>
    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$1):552 -> <init>
    1:1:boolean hasNext():583:583 -> a
    1:1:int nextEntry():587 -> a
    2:18:int nextEntry():588:604 -> a
    19:19:int nextEntry():587:587 -> a
    1:1:boolean hasNext():583:583 -> hasNext
    1:4:void remove():641:644 -> remove
    5:10:void shiftKeys(int):619:624 -> remove
    5:10:void remove():644 -> remove
    11:12:void remove():651:652 -> remove
    13:22:void shiftKeys(int):627:636 -> remove
    13:22:void remove():644 -> remove
    23:23:void shiftKeys(int):629:629 -> remove
    23:23:void remove():644 -> remove
    24:25:void remove():647:648 -> remove
    26:26:void remove():641:641 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap$ValueIterator -> com.android.tools.r8.b.a.a.a.b.J:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap):848:849 -> <init>
    1:1:java.lang.Integer next():860:860 -> next
    1:1:java.lang.Object next():847 -> next
    1:1:int nextInt():854:854 -> nextInt
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap -> com.android.tools.r8.b.a.a.a.b.Q:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry firstEntry -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry lastEntry -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry tree -> b
    boolean modified -> i
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntComparator actualComparator -> j
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entries -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection values -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keys -> g
    int count -> c
    boolean[] dirPath -> k
    1:1:void <init>():79:79 -> <init>
    2:2:void allocatePaths():278:278 -> <init>
    2:2:void <init>():73 -> <init>
    3:4:void <init>():80:81 -> <init>
    1:11:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry add(int):305:315 -> a
    1:11:java.lang.Object put(int,java.lang.Object):283 -> a
    12:12:int compare(int,int):232:232 -> a
    12:12:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry add(int):315 -> a
    12:12:java.lang.Object put(int,java.lang.Object):283 -> a
    13:133:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry add(int):318:438 -> a
    13:133:java.lang.Object put(int,java.lang.Object):283 -> a
    134:135:java.lang.Object put(int,java.lang.Object):284:285 -> a
    136:136:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry add(int):348:348 -> a
    136:136:java.lang.Object put(int,java.lang.Object):283 -> a
    137:138:int firstIntKey():1001:1002 -> a
    139:139:int firstIntKey():1001:1001 -> a
    140:140:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap headMap(int):1411:1411 -> a
    141:141:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap subMap(int,int):1421:1421 -> a
    1:1:int compare(int,int):232:232 -> b
    2:3:int lastIntKey():1007:1008 -> b
    4:4:int lastIntKey():1007:1007 -> b
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap tailMap(int):1416:1416 -> b
    1:1:boolean containsKey(int):980:980 -> c
    2:80:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ObjectEntrySet():1161:1239 -> c
    2:80:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ObjectEntrySet():41 -> c
    81:159:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ObjectEntrySet():1161:1239 -> c
    1:6:void clear():701:706 -> clear
    1:48:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap clone():1948:1995 -> clone
    1:48:java.lang.Object clone():41 -> clone
    49:49:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap clone():1950:1950 -> clone
    49:49:java.lang.Object clone():41 -> clone
    1:3:boolean containsValue(java.lang.Object):689:691 -> containsValue
    4:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$ValueIterator.next():1351:1351 -> containsValue
    4:4:boolean containsValue(java.lang.Object):693 -> containsValue
    5:5:boolean containsValue(java.lang.Object):694:694 -> containsValue
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry findKey(int):245:247 -> d
    4:4:int compare(int,int):232:232 -> d
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry findKey(int):247 -> d
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry findKey(int):248:248 -> d
    6:6:void allocatePaths():278:278 -> d
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry locateKey(int):262:264 -> e
    4:4:int compare(int,int):232:232 -> e
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry locateKey(int):264 -> e
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry locateKey(int):266:266 -> e
    1:2:java.lang.Object get(int):995:996 -> get
    1:1:boolean isEmpty():990:990 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():1334:1335 -> keySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():1334:1335 -> keySet
    3:4:java.util.Set keySet():41 -> keySet
    1:8:java.lang.Object remove(int):484:491 -> remove
    9:9:int compare(int,int):232:232 -> remove
    9:9:java.lang.Object remove(int):491 -> remove
    10:58:java.lang.Object remove(int):500:548 -> remove
    59:76:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry parent(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry):453:470 -> remove
    59:76:java.lang.Object remove(int):556 -> remove
    77:195:java.lang.Object remove(int):558:676 -> remove
    196:197:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry parent(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry):474:475 -> remove
    196:197:java.lang.Object remove(int):556 -> remove
    198:201:java.lang.Object remove(int):681:684 -> remove
    202:205:java.lang.Object remove(int):494:497 -> remove
    1:1:int size():985:985 -> size
    1:18:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection values():1384:1401 -> values
    1:18:java.util.Collection values():41 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$1 -> com.android.tools.r8.b.a.a.a.b.L:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$2 -> com.android.tools.r8.b.a.a.a.b.N:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap this$0 -> b
    java.util.Comparator comparator -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap):1161:1162 -> <init>
    1:1:void clear():1211:1211 -> clear
    1:1:java.util.Comparator comparator():1170:1170 -> comparator
    1:5:boolean contains(java.lang.Object):1186:1190 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry first():1216:1216 -> first
    1:1:java.lang.Object first():1161 -> first
    1:1:java.util.SortedSet headSet(java.lang.Object):1161:1161 -> headSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry):1231:1231 -> headSet
    2:2:java.util.SortedSet headSet(java.lang.Object):1161 -> headSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1175:1175 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1175:1175 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1161 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1175:1175 -> iterator
    3:3:java.util.Iterator iterator():1161 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry last():1221:1221 -> last
    1:1:java.lang.Object last():1161 -> last
    1:5:boolean remove(java.lang.Object):1196:1200 -> remove
    1:1:int size():1206:1206 -> size
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1161:1161 -> subSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry):1226:1226 -> subSet
    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1161 -> subSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):1161:1161 -> tailSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry):1236:1236 -> tailSet
    2:2:java.util.SortedSet tailSet(java.lang.Object):1161 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$2$1 -> com.android.tools.r8.b.a.a.a.b.M:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$2 this$1 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$2):1162:1162 -> <init>
    1:1:int compare(java.lang.Object,java.lang.Object):1162:1162 -> compare
    2:2:int compare(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry):1164:1164 -> compare
    2:2:int compare(java.lang.Object,java.lang.Object):1162 -> compare
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$3 -> com.android.tools.r8.b.a.a.a.b.O:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap):1384:1384 -> <init>
    1:1:void clear():1398:1398 -> clear
    1:1:boolean contains(java.lang.Object):1390:1390 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1386:1386 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1386:1386 -> iterator
    2:2:java.util.Iterator iterator():1384 -> iterator
    1:1:int size():1394:1394 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry -> com.android.tools.r8.b.a.a.a.b.P:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry right -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry left -> c
    int info -> e
    1:1:void <init>():745:745 -> <init>
    2:3:void <init>(int,java.lang.Object):757:758 -> <init>
    1:2:void pred(boolean):806:807 -> a
    3:4:void left(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry):851:852 -> a
    5:5:int balance():872:872 -> a
    6:7:void balance(int):882:883 -> a
    1:2:void succ(boolean):818:819 -> b
    3:4:void pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry):829:830 -> b
    5:5:void decBalance():893:893 -> b
    1:2:void right(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry):862:863 -> c
    1:1:java.lang.Object clone():720:720 -> clone
    2:8:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry clone():933:939 -> clone
    9:9:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry clone():935:935 -> clone
    1:2:void succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry):840:841 -> d
    3:3:void incBalance():888:888 -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry left():767:767 -> e
    1:3:boolean equals(java.lang.Object):946:948 -> equals
    1:1:boolean pred():786:786 -> f
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry prev():915:917 -> g
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry right():777:777 -> h
    1:1:int hashCode():953:953 -> hashCode
    1:1:boolean succ():795:795 -> i
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry next():902:904 -> next
    1:2:java.lang.Object setValue(java.lang.Object):923:924 -> setValue
    1:1:java.lang.String toString():958:958 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$EntryIterator -> com.android.tools.r8.b.a.a.a.b.Q$a:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap):1131:1131 -> <init>
    1:1:void add(java.lang.Object):1130:1130 -> add
    2:2:void add(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry):1155:1155 -> add
    2:2:void add(java.lang.Object):1130 -> add
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry next():1140:1140 -> next
    1:1:java.lang.Object next():1130 -> next
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry previous():1145:1145 -> previous
    1:1:java.lang.Object previous():1130 -> previous
    1:1:void set(java.lang.Object):1130:1130 -> set
    2:2:void set(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry):1150:1150 -> set
    2:2:void set(java.lang.Object):1130 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$KeyIterator -> com.android.tools.r8.b.a.a.a.b.Q$b:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap):1253:1253 -> <init>
    1:1:void add(java.lang.Object):1252:1252 -> add
    2:2:void add(java.lang.Integer):1301:1301 -> add
    2:2:void add(java.lang.Object):1252 -> add
    1:1:int previousInt():1267:1267 -> b
    1:1:java.lang.Integer next():1283:1283 -> next
    1:1:java.lang.Object next():1252 -> next
    1:1:int nextInt():1262:1262 -> nextInt
    1:1:java.lang.Integer previous():1289:1289 -> previous
    1:1:java.lang.Object previous():1252 -> previous
    1:1:void set(java.lang.Object):1252:1252 -> set
    2:2:void set(java.lang.Integer):1295:1295 -> set
    2:2:void set(java.lang.Object):1252 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$KeySet -> com.android.tools.r8.b.a.a.a.b.Q$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap this$0 -> b
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap):1308:1308 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$1):1308 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():1311:1311 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():1311:1311 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():1308 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():1311:1311 -> iterator
    3:3:java.util.Iterator iterator():1308 -> iterator
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap -> com.android.tools.r8.b.a.a.a.b.Q$d:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap this$0 -> i
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entries -> f
    boolean top -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection values -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keys -> g
    int from -> b
    int to -> c
    boolean bottom -> d
    1:7:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap,int,boolean,int,boolean):1466:1472 -> <init>
    1:4:java.lang.Object put(int,java.lang.Object):1648:1651 -> a
    5:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap headMap(int):1686:1687 -> a
    7:11:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap subMap(int,int):1698:1702 -> a
    12:14:int firstIntKey():1753:1755 -> a
    15:15:int firstIntKey():1754:1754 -> a
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap tailMap(int):1692:1693 -> b
    3:5:int lastIntKey():1760:1762 -> b
    6:6:int lastIntKey():1761:1761 -> b
    1:81:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ObjectEntrySet():1497:1577 -> c
    1:81:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ObjectEntrySet():1435 -> c
    82:162:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ObjectEntrySet():1497:1577 -> c
    163:163:boolean containsKey(int):1624:1624 -> c
    164:164:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.containsKey(int):980:980 -> c
    164:164:boolean containsKey(int):1624 -> c
    1:3:void clear():1477:1479 -> clear
    4:14:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$TreeIterator.remove():1096:1106 -> clear
    4:14:void clear():1480 -> clear
    15:15:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$TreeIterator.remove():1096:1096 -> clear
    15:15:void clear():1480 -> clear
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntComparator comparator():1681:1681 -> comparator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntComparator comparator():1681:1681 -> comparator
    2:2:java.util.Comparator comparator():1435 -> comparator
    1:5:boolean containsValue(java.lang.Object):1629:1633 -> containsValue
    1:1:boolean in(int):1492:1492 -> d
    2:14:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry firstEntry():1712:1724 -> d
    1:13:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry lastEntry():1735:1747 -> e
    1:1:java.lang.Object get(int):1643:1643 -> get
    1:1:boolean isEmpty():1676:1676 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():1592:1593 -> keySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():1592:1593 -> keySet
    3:4:java.util.Set keySet():1435 -> keySet
    1:4:java.lang.Object remove(int):1657:1660 -> remove
    1:5:int size():1665:1669 -> size
    1:21:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection values():1598:1618 -> values
    1:21:java.util.Collection values():1435 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap$1 -> com.android.tools.r8.b.a.a.a.b.S:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap this$1 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap):1497:1497 -> <init>
    1:1:void clear():1549:1549 -> clear
    1:1:java.util.Comparator comparator():1510:1510 -> comparator
    2:80:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap.int2ObjectEntrySet():1161:1239 -> comparator
    2:80:java.util.Comparator comparator():1510 -> comparator
    81:81:java.util.Comparator comparator():1510:1510 -> comparator
    1:5:boolean contains(java.lang.Object):1516:1520 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry first():1554:1554 -> first
    1:1:java.lang.Object first():1497 -> first
    1:1:java.util.SortedSet headSet(java.lang.Object):1497:1497 -> headSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry):1569:1569 -> headSet
    2:2:java.util.SortedSet headSet(java.lang.Object):1497 -> headSet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap.headMap(int):1686:1687 -> headSet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry):1569 -> headSet
    3:4:java.util.SortedSet headSet(java.lang.Object):1497 -> headSet
    5:85:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap.int2ObjectEntrySet():1497:1577 -> headSet
    5:85:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry):1569 -> headSet
    5:85:java.util.SortedSet headSet(java.lang.Object):1497 -> headSet
    1:1:boolean isEmpty():1544:1544 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1497:1497 -> iterator
    2:2:java.util.Iterator iterator():1497:1497 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1500:1500 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry last():1559:1559 -> last
    1:1:java.lang.Object last():1497 -> last
    1:5:boolean remove(java.lang.Object):1526:1530 -> remove
    6:9:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap.remove(int):1657:1660 -> remove
    6:9:boolean remove(java.lang.Object):1530 -> remove
    1:1:int size():1537:1537 -> size
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1497:1497 -> subSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry):1564:1564 -> subSet
    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1497 -> subSet
    3:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap.subMap(int,int):1698:1702 -> subSet
    3:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry):1564 -> subSet
    3:7:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1497 -> subSet
    8:88:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap.int2ObjectEntrySet():1497:1577 -> subSet
    8:88:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry):1564 -> subSet
    8:88:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1497 -> subSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):1497:1497 -> tailSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry):1574:1574 -> tailSet
    2:2:java.util.SortedSet tailSet(java.lang.Object):1497 -> tailSet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap.tailMap(int):1692:1693 -> tailSet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry):1574 -> tailSet
    3:4:java.util.SortedSet tailSet(java.lang.Object):1497 -> tailSet
    5:85:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap.int2ObjectEntrySet():1497:1577 -> tailSet
    5:85:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry):1574 -> tailSet
    5:85:java.util.SortedSet tailSet(java.lang.Object):1497 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap$2 -> com.android.tools.r8.b.a.a.a.b.T:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap this$1 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap):1598:1598 -> <init>
    1:1:void clear():1615:1615 -> clear
    1:1:boolean contains(java.lang.Object):1605:1605 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1600:1600 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1600:1600 -> iterator
    2:2:java.util.Iterator iterator():1598 -> iterator
    1:1:int size():1610:1610 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap$KeySet -> com.android.tools.r8.b.a.a.a.b.Q$d$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap this$1 -> b
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap):1580:1580 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$1):1580 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():1582:1582 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():1582:1582 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():1580 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():1582:1582 -> iterator
    3:3:java.util.Iterator iterator():1580 -> iterator
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap$SubmapEntryIterator -> com.android.tools.r8.b.a.a.a.b.Q$d$b:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap):1808:1808 -> <init>
    1:1:void add(java.lang.Object):1807:1807 -> add
    2:2:void add(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry):1832:1832 -> add
    2:2:void add(java.lang.Object):1807 -> add
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry next():1817:1817 -> next
    1:1:java.lang.Object next():1807 -> next
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry previous():1822:1822 -> previous
    1:1:java.lang.Object previous():1807 -> previous
    1:1:void set(java.lang.Object):1807:1807 -> set
    2:2:void set(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry):1827:1827 -> set
    2:2:void set(java.lang.Object):1807 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap$SubmapIterator -> com.android.tools.r8.b.a.a.a.b.Q$d$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap this$1 -> f
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap):1777:1778 -> <init>
    1:2:void updateNext():1802:1803 -> d
    1:2:void updatePrevious():1797:1798 -> e
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap$SubmapKeyIterator -> com.android.tools.r8.b.a.a.a.b.Q$d$d:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap):1848:1848 -> <init>
    1:1:void add(java.lang.Object):1846:1846 -> add
    2:2:void add(java.lang.Integer):1896:1896 -> add
    2:2:void add(java.lang.Object):1846 -> add
    1:1:int previousInt():1862:1862 -> b
    1:1:java.lang.Integer next():1878:1878 -> next
    1:1:java.lang.Object next():1846 -> next
    1:1:int nextInt():1857:1857 -> nextInt
    1:1:java.lang.Integer previous():1884:1884 -> previous
    1:1:java.lang.Object previous():1846 -> previous
    1:1:void set(java.lang.Object):1846:1846 -> set
    2:2:void set(java.lang.Integer):1890:1890 -> set
    2:2:void set(java.lang.Object):1846 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap$SubmapValueIterator -> com.android.tools.r8.b.a.a.a.b.Q$d$e:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap):1910:1910 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Submap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$1):1910 -> <init>
    1:1:void add(java.lang.Object):1928:1928 -> add
    1:1:java.lang.Object next():1913:1913 -> next
    1:1:java.lang.Object previous():1918:1918 -> previous
    1:1:void set(java.lang.Object):1923:1923 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$TreeIterator -> com.android.tools.r8.b.a.a.a.b.Q$e:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry next -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry curr -> c
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap this$0 -> e
    int index -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry prev -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap):1042:1042 -> <init>
    2:5:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap):1040:1043 -> <init>
    1:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry nextEntry():1068:1072 -> a
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry nextEntry():1068:1068 -> a
    1:1:boolean hasPrevious():1060:1060 -> c
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry previousEntry():1080 -> c
    2:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry previousEntry():1081:1084 -> c
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$Entry previousEntry():1080:1080 -> c
    1:1:void updateNext():1064:1064 -> d
    1:1:void updatePrevious():1076:1076 -> e
    1:1:boolean hasNext():1056:1056 -> hasNext
    1:1:boolean hasPrevious():1060:1060 -> hasPrevious
    1:1:int nextIndex():1088:1088 -> nextIndex
    1:1:int previousIndex():1092:1092 -> previousIndex
    1:11:void remove():1096:1106 -> remove
    12:12:void remove():1096:1096 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$ValueIterator -> com.android.tools.r8.b.a.a.a.b.Q$f:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap):1348:1348 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap$1):1348 -> <init>
    1:1:void add(java.lang.Object):1366:1366 -> add
    1:1:java.lang.Object next():1351:1351 -> next
    1:1:java.lang.Object previous():1356:1356 -> previous
    1:1:void set(java.lang.Object):1361:1361 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap -> com.android.tools.r8.b.a.a.a.b.W:
    java.lang.Object[] value -> c
    int[] key -> b
    int size -> d
    1:3:void <init>():70:72 -> <init>
    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap):37:37 -> a
    2:2:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap,int):37:37 -> a
    3:22:java.lang.Object put(int,java.lang.Object):283:302 -> a
    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap):37:37 -> b
    1:1:int[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap):37:37 -> c
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$FastEntrySet int2ObjectEntrySet():231:231 -> c
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ObjectEntrySet():37 -> c
    3:3:boolean containsKey(int):265:265 -> c
    1:4:void clear():257:260 -> clear
    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap clone():344:349 -> clone
    1:6:java.lang.Object clone():37 -> clone
    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap clone():346:346 -> clone
    7:7:java.lang.Object clone():37 -> clone
    1:2:boolean containsValue(java.lang.Object):270:271 -> containsValue
    1:1:java.lang.Object[] access$200(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap):37:37 -> d
    2:4:int findKey(int):235:237 -> d
    1:4:java.lang.Object get(int):244:247 -> get
    1:1:boolean isEmpty():277:277 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():321:321 -> keySet
    1:1:java.util.Set keySet():37 -> keySet
    1:8:java.lang.Object remove(int):308:315 -> remove
    1:1:int size():252:252 -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection values():326:326 -> values
    1:1:java.util.Collection values():37 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap$1 -> com.android.tools.r8.b.a.a.a.b.U:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap$EntrySet -> com.android.tools.r8.b.a.a.a.b.W$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap):133:133 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap$1):133:133 -> <init>
    1:5:boolean contains(java.lang.Object):203:207 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
    2:2:java.util.Iterator iterator():133 -> iterator
    1:12:boolean remove(java.lang.Object):213:224 -> remove
    1:1:int size():197:197 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap$EntrySet$1 -> com.android.tools.r8.b.a.a.a.b.V:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap$EntrySet this$1 -> c
    int next -> b
    int curr -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap$EntrySet):136:137 -> <init>
    1:1:boolean hasNext():141:141 -> hasNext
    1:1:boolean hasNext():141:141 -> next
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry next():147 -> next
    1:1:java.lang.Object next():136 -> next
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry next():148:148 -> next
    2:2:java.lang.Object next():136 -> next
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry next():147:147 -> next
    3:3:java.lang.Object next():136 -> next
    1:6:void remove():153:158 -> remove
    7:7:void remove():153:153 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectFunction -> com.android.tools.r8.b.a.a.a.b.X:
    java.lang.Object put(int,java.lang.Object) -> a
    boolean containsKey(int) -> c
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectFunctions$EmptyFunction -> com.android.tools.r8.b.a.a.a.b.Y:
    1:1:void <init>():41:41 -> <init>
    boolean containsKey(int) -> c
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap -> com.android.tools.r8.b.a.a.a.b.ba:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ObjectEntrySet() -> c
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$Entry -> com.android.tools.r8.b.a.a.a.b.Z:
    int getIntKey() -> c
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$FastEntrySet -> com.android.tools.r8.b.a.a.a.b.aa:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMaps -> com.android.tools.r8.b.a.a.a.b.da:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMaps$EmptyMap EMPTY_MAP -> a
    1:1:void <clinit>():123:123 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMaps$EmptyMap -> com.android.tools.r8.b.a.a.a.b.ca:
    1:1:void <init>():45:45 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ObjectEntrySet():61:61 -> c
    1:1:java.lang.Object clone():94:94 -> clone
    1:1:java.util.Set entrySet():42:42 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():74:74 -> entrySet
    1:2:boolean equals(java.lang.Object):109:110 -> equals
    1:1:java.util.Set keySet():42:42 -> keySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():79:79 -> keySet
    1:1:void putAll(java.util.Map):55:55 -> putAll
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection values():85:85 -> values
    1:1:java.util.Collection values():42 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap -> com.android.tools.r8.b.a.a.a.b.fa:
    java.lang.Object[] value -> c
    float f -> i
    int[] key -> b
    int size -> h
    boolean containsNullKey -> e
    int n -> f
    int maxFill -> g
    int mask -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$FastEntrySet entries -> j
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection values -> l
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keys -> k
    1:9:void <init>(int,float):91:99 -> <init>
    1:9:void <init>():119 -> <init>
    1:1:java.lang.Object access$300(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap):49:49 -> a
    2:2:java.lang.Object access$400(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap,int):49:49 -> a
    3:18:int insert(int,java.lang.Object):249:264 -> a
    3:18:java.lang.Object put(int,java.lang.Object):271 -> a
    19:21:java.lang.Object put(int,java.lang.Object):272:274 -> a
    1:10:boolean containsKey(int):344:353 -> c
    11:12:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectMap$FastEntrySet int2ObjectEntrySet():707:708 -> c
    11:12:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ObjectEntrySet():49 -> c
    1:5:void clear():377:381 -> clear
    1:10:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap clone():945:954 -> clone
    1:10:java.lang.Object clone():49 -> clone
    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap clone():947:947 -> clone
    11:11:java.lang.Object clone():49 -> clone
    1:5:boolean containsValue(java.lang.Object):360:364 -> containsValue
    1:5:java.lang.Object removeNullEntry():228:232 -> d
    6:12:void rehash(int):907:913 -> d
    13:13:int realSize():205:205 -> d
    13:13:void rehash(int):914 -> d
    14:26:void rehash(int):915:927 -> d
    1:3:java.lang.Object removeEntry(int):219:221 -> e
    4:10:void shiftKeys(int):289:295 -> e
    4:10:java.lang.Object removeEntry(int):222 -> e
    11:11:java.lang.Object removeEntry(int):223:223 -> e
    12:17:void shiftKeys(int):298:303 -> e
    12:17:java.lang.Object removeEntry(int):222 -> e
    18:18:void shiftKeys(int):300:300 -> e
    18:18:java.lang.Object removeEntry(int):222 -> e
    1:11:java.lang.Object get(int):327:337 -> get
    1:1:int realSize():205:205 -> hashCode
    1:1:int hashCode():971 -> hashCode
    2:10:int hashCode():972:980 -> hashCode
    1:1:boolean isEmpty():391:391 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():768:769 -> keySet
    1:2:java.util.Set keySet():49 -> keySet
    1:1:void putAll(java.util.Map):238:238 -> putAll
    2:3:void ensureCapacity(int):209:210 -> putAll
    2:3:void putAll(java.util.Map):238 -> putAll
    4:4:int size():386:386 -> putAll
    4:4:void putAll(java.util.Map):240 -> putAll
    5:5:void putAll(java.util.Map):240:240 -> putAll
    6:7:void tryCapacity(long):214:215 -> putAll
    6:7:void putAll(java.util.Map):240 -> putAll
    8:20:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ObjectMap.putAll(java.util.Map):70:82 -> putAll
    8:20:void putAll(java.util.Map):243 -> putAll
    1:12:java.lang.Object remove(int):309:320 -> remove
    1:1:int size():386:386 -> size
    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection values():794:815 -> values
    1:22:java.util.Collection values():49 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$1 -> com.android.tools.r8.b.a.a.a.b.ea:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap):794:794 -> <init>
    1:1:void clear():812:812 -> clear
    1:1:boolean contains(java.lang.Object):807:807 -> contains
    2:6:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap.containsValue(java.lang.Object):360:364 -> contains
    2:6:boolean contains(java.lang.Object):807 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():797:797 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():797:797 -> iterator
    2:2:java.util.Iterator iterator():794 -> iterator
    1:1:int size():802:802 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$EntryIterator -> com.android.tools.r8.b.a.a.a.b.fa$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap this$0 -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$MapEntry entry -> g
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap):600:600 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$1):600 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$MapEntry next():605:605 -> next
    1:1:java.lang.Object next():600 -> next
    1:5:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$MapIterator.remove():576:580 -> remove
    1:5:void remove():610 -> remove
    6:12:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$MapIterator.shiftKeys(int):553:559 -> remove
    6:12:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$MapIterator.remove():580 -> remove
    6:12:void remove():610 -> remove
    13:14:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$MapIterator.remove():587:588 -> remove
    13:14:void remove():610 -> remove
    15:24:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$MapIterator.shiftKeys(int):562:571 -> remove
    15:24:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$MapIterator.remove():580 -> remove
    15:24:void remove():610 -> remove
    25:25:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$MapIterator.shiftKeys(int):564:564 -> remove
    25:25:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$MapIterator.remove():580 -> remove
    25:25:void remove():610 -> remove
    26:27:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$MapIterator.remove():583:584 -> remove
    26:27:void remove():610 -> remove
    28:28:void remove():611:611 -> remove
    29:29:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$MapIterator.remove():576:576 -> remove
    29:29:void remove():610 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$KeyIterator -> com.android.tools.r8.b.a.a.a.b.fa$b:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap):721:722 -> <init>
    1:1:java.lang.Integer next():733:733 -> next
    1:1:java.lang.Object next():720 -> next
    1:1:int nextInt():727:727 -> nextInt
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$KeySet -> com.android.tools.r8.b.a.a.a.b.fa$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap):737:737 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$1):737 -> <init>
    1:1:void clear():762:762 -> clear
    1:1:boolean contains(int):750:750 -> d
    2:11:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap.containsKey(int):344:353 -> d
    2:11:boolean contains(int):750 -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():740:740 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():740:740 -> iterator
    2:2:java.util.Iterator iterator():737 -> iterator
    1:3:boolean remove(int):755:757 -> remove
    1:1:int size():745:745 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$MapEntry -> com.android.tools.r8.b.a.a.a.b.fa$d:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap this$0 -> b
    int index -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap,int):430:431 -> <init>
    1:1:int getIntKey():439:439 -> c
    1:3:boolean equals(java.lang.Object):469:471 -> equals
    1:1:java.lang.Integer getKey():463:463 -> getKey
    1:1:java.lang.Object getKey():425 -> getKey
    1:1:java.lang.Object getValue():444:444 -> getValue
    1:1:int hashCode():476:476 -> hashCode
    1:2:java.lang.Object setValue(java.lang.Object):449:450 -> setValue
    1:1:java.lang.String toString():481:481 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$MapEntrySet -> com.android.tools.r8.b.a.a.a.b.fa$e:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap):625:625 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$1):625:625 -> <init>
    1:1:void clear():701:701 -> clear
    1:16:boolean contains(java.lang.Object):637:652 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():627:627 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():627:627 -> iterator
    2:2:java.util.Iterator iterator():625 -> iterator
    1:29:boolean remove(java.lang.Object):659:687 -> remove
    1:1:int size():696:696 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$MapIterator -> com.android.tools.r8.b.a.a.a.b.fa$f:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList wrapped -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap this$0 -> f
    int last -> b
    int pos -> a
    boolean mustReturnNullKey -> d
    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap):486:509 -> <init>
    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$1):486 -> <init>
    1:1:boolean hasNext():517:517 -> a
    1:1:int nextEntry():521 -> a
    2:18:int nextEntry():522:538 -> a
    19:19:int nextEntry():521:521 -> a
    1:1:boolean hasNext():517:517 -> hasNext
    1:5:void remove():576:580 -> remove
    6:12:void shiftKeys(int):553:559 -> remove
    6:12:void remove():580 -> remove
    13:14:void remove():587:588 -> remove
    15:24:void shiftKeys(int):562:571 -> remove
    15:24:void remove():580 -> remove
    25:25:void shiftKeys(int):564:564 -> remove
    25:25:void remove():580 -> remove
    26:27:void remove():583:584 -> remove
    28:28:void remove():576:576 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap$ValueIterator -> com.android.tools.r8.b.a.a.a.b.fa$g:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap):782:783 -> <init>
    1:1:java.lang.Object next():788:788 -> next
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap -> com.android.tools.r8.b.a.a.a.b.ga:
    int firstIntKey() -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap headMap(int) -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap subMap(int,int) -> a
    int lastIntKey() -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap tailMap(int) -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ObjectEntrySet() -> c
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMaps -> com.android.tools.r8.b.a.a.a.b.ia:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMaps$EmptySortedMap EMPTY_MAP -> a
    1:1:void <clinit>():185:185 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMaps$EmptySortedMap -> com.android.tools.r8.b.a.a.a.b.ha:
    1:1:void <init>():60:60 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap subMap(int,int):95:95 -> a
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap headMap(int):101:101 -> a
    3:3:int firstIntKey():112:112 -> a
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap tailMap(int):107:107 -> b
    2:2:int lastIntKey():117:117 -> b
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ObjectEntrySet():71:71 -> c
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ObjectEntrySet():57 -> c
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ObjectEntrySet():71:71 -> c
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():84:84 -> entrySet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():57 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():84:84 -> entrySet
    2:2:java.util.Set entrySet():57 -> entrySet
    1:1:int firstIntKey():112:112 -> firstKey
    1:1:java.lang.Integer firstKey():165 -> firstKey
    1:1:java.lang.Object firstKey():57 -> firstKey
    1:1:java.util.SortedMap headMap(java.lang.Object):57:57 -> headMap
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap headMap(java.lang.Integer):129:129 -> headMap
    2:2:java.util.SortedMap headMap(java.lang.Object):57 -> headMap
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap headMap(int):101:101 -> headMap
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap headMap(java.lang.Integer):129 -> headMap
    3:3:java.util.SortedMap headMap(java.lang.Object):57 -> headMap
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():89:89 -> keySet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():57 -> keySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():89:89 -> keySet
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():89:89 -> keySet
    3:3:java.util.Set keySet():57 -> keySet
    1:1:int lastIntKey():117:117 -> lastKey
    1:1:java.lang.Integer lastKey():177 -> lastKey
    1:1:java.lang.Object lastKey():57 -> lastKey
    1:1:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):57:57 -> subMap
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap subMap(java.lang.Integer,java.lang.Integer):153:153 -> subMap
    2:2:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):57 -> subMap
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap subMap(int,int):95:95 -> subMap
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap subMap(java.lang.Integer,java.lang.Integer):153 -> subMap
    3:3:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):57 -> subMap
    1:1:java.util.SortedMap tailMap(java.lang.Object):57:57 -> tailMap
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap tailMap(java.lang.Integer):141:141 -> tailMap
    2:2:java.util.SortedMap tailMap(java.lang.Object):57 -> tailMap
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap tailMap(int):107:107 -> tailMap
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap tailMap(java.lang.Integer):141 -> tailMap
    3:3:java.util.SortedMap tailMap(java.lang.Object):57 -> tailMap
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap -> com.android.tools.r8.b.a.a.a.b.oa:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry lastEntry -> e
    boolean modified -> i
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry firstEntry -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntComparator actualComparator -> j
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entries -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keys -> g
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry tree -> b
    int count -> c
    boolean[] dirPath -> k
    1:1:void <init>():79:79 -> <init>
    2:2:void allocatePaths():278:278 -> <init>
    2:2:void <init>():73 -> <init>
    3:4:void <init>():80:81 -> <init>
    1:11:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):305:315 -> a
    1:11:java.lang.Object put(int,java.lang.Object):283 -> a
    12:12:int compare(int,int):232:232 -> a
    12:12:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):315 -> a
    12:12:java.lang.Object put(int,java.lang.Object):283 -> a
    13:133:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):318:438 -> a
    13:133:java.lang.Object put(int,java.lang.Object):283 -> a
    134:135:java.lang.Object put(int,java.lang.Object):284:285 -> a
    136:136:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry add(int):348:348 -> a
    136:136:java.lang.Object put(int,java.lang.Object):283 -> a
    137:138:int firstIntKey():1001:1002 -> a
    139:139:int firstIntKey():1001:1001 -> a
    140:140:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int):1411:1411 -> a
    141:141:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1421:1421 -> a
    1:1:int compare(int,int):232:232 -> b
    2:3:int lastIntKey():1007:1008 -> b
    4:4:int lastIntKey():1007:1007 -> b
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int):1416:1416 -> b
    1:1:void allocatePaths():278:278 -> c
    2:2:boolean containsKey(int):980:980 -> c
    1:6:void clear():701:706 -> clear
    1:48:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap clone():1948:1995 -> clone
    1:48:java.lang.Object clone():41 -> clone
    49:49:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap clone():1950:1950 -> clone
    49:49:java.lang.Object clone():41 -> clone
    1:3:boolean containsValue(java.lang.Object):689:691 -> containsValue
    4:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$ValueIterator.next():1351:1351 -> containsValue
    4:4:boolean containsValue(java.lang.Object):693 -> containsValue
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry findKey(int):245:247 -> d
    4:4:int compare(int,int):232:232 -> d
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry findKey(int):247 -> d
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry findKey(int):248:248 -> d
    6:84:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ReferenceEntrySet():1161:1239 -> d
    6:84:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():41 -> d
    85:163:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ReferenceEntrySet():1161:1239 -> d
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry locateKey(int):262:264 -> e
    4:4:int compare(int,int):232:232 -> e
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry locateKey(int):264 -> e
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry locateKey(int):266:266 -> e
    1:2:java.lang.Object get(int):995:996 -> get
    1:1:boolean isEmpty():990:990 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():1334:1335 -> keySet
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():41 -> keySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():1334:1335 -> keySet
    5:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():1334:1335 -> keySet
    5:6:java.util.Set keySet():41 -> keySet
    1:8:java.lang.Object remove(int):484:491 -> remove
    9:9:int compare(int,int):232:232 -> remove
    9:9:java.lang.Object remove(int):491 -> remove
    10:58:java.lang.Object remove(int):500:548 -> remove
    59:76:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry parent(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):453:470 -> remove
    59:76:java.lang.Object remove(int):556 -> remove
    77:195:java.lang.Object remove(int):558:676 -> remove
    196:197:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry parent(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):474:475 -> remove
    196:197:java.lang.Object remove(int):556 -> remove
    198:201:java.lang.Object remove(int):681:684 -> remove
    202:205:java.lang.Object remove(int):494:497 -> remove
    1:1:int size():985:985 -> size
    1:18:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():1384:1401 -> values
    19:36:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():1384:1401 -> values
    19:36:java.util.Collection values():41 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$1 -> com.android.tools.r8.b.a.a.a.b.ja:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$2 -> com.android.tools.r8.b.a.a.a.b.la:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap this$0 -> b
    java.util.Comparator comparator -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1161:1162 -> <init>
    1:1:void clear():1211:1211 -> clear
    1:1:java.util.Comparator comparator():1170:1170 -> comparator
    1:5:boolean contains(java.lang.Object):1186:1190 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry first():1216:1216 -> first
    1:1:java.lang.Object first():1161 -> first
    1:1:java.util.SortedSet headSet(java.lang.Object):1161:1161 -> headSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1231:1231 -> headSet
    2:2:java.util.SortedSet headSet(java.lang.Object):1161 -> headSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1175:1175 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1175:1175 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1161 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1175:1175 -> iterator
    3:3:java.util.Iterator iterator():1161 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry last():1221:1221 -> last
    1:1:java.lang.Object last():1161 -> last
    1:5:boolean remove(java.lang.Object):1196:1200 -> remove
    1:1:int size():1206:1206 -> size
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1161:1161 -> subSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1226:1226 -> subSet
    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1161 -> subSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):1161:1161 -> tailSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1236:1236 -> tailSet
    2:2:java.util.SortedSet tailSet(java.lang.Object):1161 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$2$1 -> com.android.tools.r8.b.a.a.a.b.ka:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$2 this$1 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$2):1162:1162 -> <init>
    1:1:int compare(java.lang.Object,java.lang.Object):1162:1162 -> compare
    2:2:int compare(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1164:1164 -> compare
    2:2:int compare(java.lang.Object,java.lang.Object):1162 -> compare
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$3 -> com.android.tools.r8.b.a.a.a.b.ma:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1384:1384 -> <init>
    1:1:void clear():1398:1398 -> clear
    1:1:boolean contains(java.lang.Object):1390:1390 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1386:1386 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1386:1386 -> iterator
    2:2:java.util.Iterator iterator():1384 -> iterator
    1:1:int size():1394:1394 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry -> com.android.tools.r8.b.a.a.a.b.na:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry right -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry left -> c
    int info -> e
    1:1:void <init>():745:745 -> <init>
    2:3:void <init>(int,java.lang.Object):757:758 -> <init>
    1:2:void pred(boolean):806:807 -> a
    3:4:void left(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):851:852 -> a
    5:5:int balance():872:872 -> a
    6:7:void balance(int):882:883 -> a
    1:2:void succ(boolean):818:819 -> b
    3:4:void pred(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):829:830 -> b
    5:5:void decBalance():893:893 -> b
    1:2:void right(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):862:863 -> c
    1:1:java.lang.Object clone():720:720 -> clone
    2:8:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry clone():933:939 -> clone
    9:9:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry clone():935:935 -> clone
    1:2:void succ(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry):840:841 -> d
    3:3:void incBalance():888:888 -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry left():767:767 -> e
    1:3:boolean equals(java.lang.Object):946:948 -> equals
    1:1:boolean pred():786:786 -> f
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry prev():915:917 -> g
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry right():777:777 -> h
    1:1:int hashCode():953:953 -> hashCode
    1:1:boolean succ():795:795 -> i
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry next():902:904 -> next
    1:2:java.lang.Object setValue(java.lang.Object):923:924 -> setValue
    1:1:java.lang.String toString():958:958 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$EntryIterator -> com.android.tools.r8.b.a.a.a.b.oa$a:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1131:1131 -> <init>
    1:1:void add(java.lang.Object):1130:1130 -> add
    2:2:void add(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1155:1155 -> add
    2:2:void add(java.lang.Object):1130 -> add
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry next():1140:1140 -> next
    1:1:java.lang.Object next():1130 -> next
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry previous():1145:1145 -> previous
    1:1:java.lang.Object previous():1130 -> previous
    1:1:void set(java.lang.Object):1130:1130 -> set
    2:2:void set(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1150:1150 -> set
    2:2:void set(java.lang.Object):1130 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$KeyIterator -> com.android.tools.r8.b.a.a.a.b.oa$b:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1253:1253 -> <init>
    1:1:void add(java.lang.Object):1252:1252 -> add
    2:2:void add(java.lang.Integer):1301:1301 -> add
    2:2:void add(java.lang.Object):1252 -> add
    1:1:int previousInt():1267:1267 -> b
    1:1:java.lang.Integer next():1283:1283 -> next
    1:1:java.lang.Object next():1252 -> next
    1:1:int nextInt():1262:1262 -> nextInt
    1:1:java.lang.Integer previous():1289:1289 -> previous
    1:1:java.lang.Object previous():1252 -> previous
    1:1:void set(java.lang.Object):1252:1252 -> set
    2:2:void set(java.lang.Integer):1295:1295 -> set
    2:2:void set(java.lang.Object):1252 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$KeySet -> com.android.tools.r8.b.a.a.a.b.oa$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap this$0 -> b
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1308:1308 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$1):1308 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():1311:1311 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():1311:1311 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():1308 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():1311:1311 -> iterator
    3:3:java.util.Iterator iterator():1308 -> iterator
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap -> com.android.tools.r8.b.a.a.a.b.oa$d:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap this$0 -> i
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entries -> f
    boolean top -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keys -> g
    int from -> b
    int to -> c
    boolean bottom -> d
    1:7:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap,int,boolean,int,boolean):1466:1472 -> <init>
    1:4:java.lang.Object put(int,java.lang.Object):1648:1651 -> a
    5:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int):1686:1687 -> a
    7:11:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int):1698:1702 -> a
    12:14:int firstIntKey():1753:1755 -> a
    15:15:int firstIntKey():1754:1754 -> a
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int):1692:1693 -> b
    3:5:int lastIntKey():1760:1762 -> b
    6:6:int lastIntKey():1761:1761 -> b
    1:1:boolean containsKey(int):1624:1624 -> c
    2:2:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.containsKey(int):980:980 -> c
    2:2:boolean containsKey(int):1624 -> c
    3:15:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry firstEntry():1712:1724 -> c
    1:3:void clear():1477:1479 -> clear
    4:14:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$TreeIterator.remove():1096:1106 -> clear
    4:14:void clear():1480 -> clear
    15:15:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$TreeIterator.remove():1096:1096 -> clear
    15:15:void clear():1480 -> clear
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntComparator comparator():1681:1681 -> comparator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntComparator comparator():1681:1681 -> comparator
    2:2:java.util.Comparator comparator():1435 -> comparator
    1:4:boolean containsValue(java.lang.Object):1629:1632 -> containsValue
    1:1:boolean in(int):1492:1492 -> d
    2:82:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ReferenceEntrySet():1497:1577 -> d
    2:82:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():1435 -> d
    83:163:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ReferenceEntrySet():1497:1577 -> d
    1:13:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry lastEntry():1735:1747 -> e
    1:1:java.lang.Object get(int):1643:1643 -> get
    1:1:boolean isEmpty():1676:1676 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():1592:1593 -> keySet
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():1435 -> keySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():1592:1593 -> keySet
    5:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet keySet():1592:1593 -> keySet
    5:6:java.util.Set keySet():1435 -> keySet
    1:4:java.lang.Object remove(int):1657:1660 -> remove
    1:5:int size():1665:1669 -> size
    1:21:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():1598:1618 -> values
    22:42:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():1598:1618 -> values
    22:42:java.util.Collection values():1435 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$1 -> com.android.tools.r8.b.a.a.a.b.pa:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap this$1 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1497:1497 -> <init>
    1:1:void clear():1549:1549 -> clear
    1:1:java.util.Comparator comparator():1510:1510 -> comparator
    2:80:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap.int2ReferenceEntrySet():1161:1239 -> comparator
    2:80:java.util.Comparator comparator():1510 -> comparator
    81:81:java.util.Comparator comparator():1510:1510 -> comparator
    1:5:boolean contains(java.lang.Object):1516:1520 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry first():1554:1554 -> first
    1:1:java.lang.Object first():1497 -> first
    1:1:java.util.SortedSet headSet(java.lang.Object):1497:1497 -> headSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1569:1569 -> headSet
    2:2:java.util.SortedSet headSet(java.lang.Object):1497 -> headSet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap.headMap(int):1686:1687 -> headSet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1569 -> headSet
    3:4:java.util.SortedSet headSet(java.lang.Object):1497 -> headSet
    5:85:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap.int2ReferenceEntrySet():1497:1577 -> headSet
    5:85:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1569 -> headSet
    5:85:java.util.SortedSet headSet(java.lang.Object):1497 -> headSet
    1:1:boolean isEmpty():1544:1544 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1497:1497 -> iterator
    2:2:java.util.Iterator iterator():1497:1497 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1500:1500 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry last():1559:1559 -> last
    1:1:java.lang.Object last():1497 -> last
    1:5:boolean remove(java.lang.Object):1526:1530 -> remove
    6:9:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap.remove(int):1657:1660 -> remove
    6:9:boolean remove(java.lang.Object):1530 -> remove
    1:1:int size():1537:1537 -> size
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1497:1497 -> subSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1564:1564 -> subSet
    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1497 -> subSet
    3:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap.subMap(int,int):1698:1702 -> subSet
    3:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1564 -> subSet
    3:7:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1497 -> subSet
    8:88:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap.int2ReferenceEntrySet():1497:1577 -> subSet
    8:88:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1564 -> subSet
    8:88:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1497 -> subSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):1497:1497 -> tailSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1574:1574 -> tailSet
    2:2:java.util.SortedSet tailSet(java.lang.Object):1497 -> tailSet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap.tailMap(int):1692:1693 -> tailSet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1574 -> tailSet
    3:4:java.util.SortedSet tailSet(java.lang.Object):1497 -> tailSet
    5:85:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap.int2ReferenceEntrySet():1497:1577 -> tailSet
    5:85:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1574 -> tailSet
    5:85:java.util.SortedSet tailSet(java.lang.Object):1497 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$2 -> com.android.tools.r8.b.a.a.a.b.qa:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap this$1 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1598:1598 -> <init>
    1:1:void clear():1615:1615 -> clear
    1:1:boolean contains(java.lang.Object):1605:1605 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1600:1600 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1600:1600 -> iterator
    2:2:java.util.Iterator iterator():1598 -> iterator
    1:1:int size():1610:1610 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$KeySet -> com.android.tools.r8.b.a.a.a.b.oa$d$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap this$1 -> b
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1580:1580 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$1):1580 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():1582:1582 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():1582:1582 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():1580 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():1582:1582 -> iterator
    3:3:java.util.Iterator iterator():1580 -> iterator
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapEntryIterator -> com.android.tools.r8.b.a.a.a.b.oa$d$b:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1808:1808 -> <init>
    1:1:void add(java.lang.Object):1807:1807 -> add
    2:2:void add(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1832:1832 -> add
    2:2:void add(java.lang.Object):1807 -> add
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry next():1817:1817 -> next
    1:1:java.lang.Object next():1807 -> next
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry previous():1822:1822 -> previous
    1:1:java.lang.Object previous():1807 -> previous
    1:1:void set(java.lang.Object):1807:1807 -> set
    2:2:void set(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry):1827:1827 -> set
    2:2:void set(java.lang.Object):1807 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapIterator -> com.android.tools.r8.b.a.a.a.b.oa$d$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap this$1 -> f
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1777:1778 -> <init>
    1:2:void updateNext():1802:1803 -> d
    1:2:void updatePrevious():1797:1798 -> e
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapKeyIterator -> com.android.tools.r8.b.a.a.a.b.oa$d$d:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1848:1848 -> <init>
    1:1:void add(java.lang.Object):1846:1846 -> add
    2:2:void add(java.lang.Integer):1896:1896 -> add
    2:2:void add(java.lang.Object):1846 -> add
    1:1:int previousInt():1862:1862 -> b
    1:1:java.lang.Integer next():1878:1878 -> next
    1:1:java.lang.Object next():1846 -> next
    1:1:int nextInt():1857:1857 -> nextInt
    1:1:java.lang.Integer previous():1884:1884 -> previous
    1:1:java.lang.Object previous():1846 -> previous
    1:1:void set(java.lang.Object):1846:1846 -> set
    2:2:void set(java.lang.Integer):1890:1890 -> set
    2:2:void set(java.lang.Object):1846 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap$SubmapValueIterator -> com.android.tools.r8.b.a.a.a.b.oa$d$e:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap):1910:1910 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Submap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$1):1910 -> <init>
    1:1:void add(java.lang.Object):1928:1928 -> add
    1:1:java.lang.Object next():1913:1913 -> next
    1:1:java.lang.Object previous():1918:1918 -> previous
    1:1:void set(java.lang.Object):1923:1923 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$TreeIterator -> com.android.tools.r8.b.a.a.a.b.oa$e:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry prev -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap this$0 -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry curr -> c
    int index -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry next -> b
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1042:1042 -> <init>
    2:5:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1040:1043 -> <init>
    1:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry nextEntry():1068:1072 -> a
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry nextEntry():1068:1068 -> a
    1:1:boolean hasPrevious():1060:1060 -> c
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry previousEntry():1080 -> c
    2:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry previousEntry():1081:1084 -> c
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$Entry previousEntry():1080:1080 -> c
    1:1:void updateNext():1064:1064 -> d
    1:1:void updatePrevious():1076:1076 -> e
    1:1:boolean hasNext():1056:1056 -> hasNext
    1:1:boolean hasPrevious():1060:1060 -> hasPrevious
    1:1:int nextIndex():1088:1088 -> nextIndex
    1:1:int previousIndex():1092:1092 -> previousIndex
    1:11:void remove():1096:1106 -> remove
    12:12:void remove():1096:1096 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$ValueIterator -> com.android.tools.r8.b.a.a.a.b.oa$f:
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap):1348:1348 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap$1):1348 -> <init>
    1:1:void add(java.lang.Object):1366:1366 -> add
    1:1:java.lang.Object next():1351:1351 -> next
    1:1:java.lang.Object previous():1356:1356 -> previous
    1:1:void set(java.lang.Object):1361:1361 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap -> com.android.tools.r8.b.a.a.a.b.ta:
    java.lang.Object[] value -> c
    int[] key -> b
    int size -> d
    1:3:void <init>():70:72 -> <init>
    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap):37:37 -> a
    2:2:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap,int):37:37 -> a
    3:22:java.lang.Object put(int,java.lang.Object):283:302 -> a
    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap):37:37 -> b
    1:1:int[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap):37:37 -> c
    2:2:boolean containsKey(int):265:265 -> c
    1:4:void clear():257:260 -> clear
    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap clone():344:349 -> clone
    1:6:java.lang.Object clone():37 -> clone
    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap clone():346:346 -> clone
    7:7:java.lang.Object clone():37 -> clone
    1:2:boolean containsValue(java.lang.Object):270:271 -> containsValue
    1:1:java.lang.Object[] access$200(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap):37:37 -> d
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$FastEntrySet int2ReferenceEntrySet():231:231 -> d
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():37 -> d
    3:5:int findKey(int):235:237 -> d
    1:4:java.lang.Object get(int):244:247 -> get
    1:1:boolean isEmpty():277:277 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():321:321 -> keySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():321:321 -> keySet
    2:2:java.util.Set keySet():37 -> keySet
    1:8:java.lang.Object remove(int):308:315 -> remove
    1:1:int size():252:252 -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():326:326 -> values
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():326:326 -> values
    2:2:java.util.Collection values():37 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap$1 -> com.android.tools.r8.b.a.a.a.b.ra:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap$EntrySet -> com.android.tools.r8.b.a.a.a.b.ta$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap):133:133 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap$1):133:133 -> <init>
    1:5:boolean contains(java.lang.Object):203:207 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
    2:2:java.util.Iterator iterator():133 -> iterator
    1:12:boolean remove(java.lang.Object):213:224 -> remove
    1:1:int size():197:197 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap$EntrySet$1 -> com.android.tools.r8.b.a.a.a.b.sa:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap$EntrySet this$1 -> c
    int next -> b
    int curr -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceArrayMap$EntrySet):136:137 -> <init>
    1:1:boolean hasNext():141:141 -> hasNext
    1:1:boolean hasNext():141:141 -> next
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry next():147 -> next
    1:1:java.lang.Object next():136 -> next
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry next():148:148 -> next
    2:2:java.lang.Object next():136 -> next
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry next():147:147 -> next
    3:3:java.lang.Object next():136 -> next
    1:6:void remove():153:158 -> remove
    7:7:void remove():153:153 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceFunction -> com.android.tools.r8.b.a.a.a.b.ua:
    java.lang.Object put(int,java.lang.Object) -> a
    boolean containsKey(int) -> c
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceFunctions$EmptyFunction -> com.android.tools.r8.b.a.a.a.b.va:
    1:1:void <init>():41:41 -> <init>
    boolean containsKey(int) -> c
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap -> com.android.tools.r8.b.a.a.a.b.ya:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet() -> d
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$Entry -> com.android.tools.r8.b.a.a.a.b.wa:
    int getIntKey() -> c
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$FastEntrySet -> com.android.tools.r8.b.a.a.a.b.xa:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMaps -> com.android.tools.r8.b.a.a.a.b.Aa:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMaps$EmptyMap EMPTY_MAP -> a
    1:1:void <clinit>():124:124 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMaps$EmptyMap -> com.android.tools.r8.b.a.a.a.b.za:
    1:1:void <init>():46:46 -> <init>
    1:1:java.lang.Object clone():95:95 -> clone
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():62:62 -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():62:62 -> entrySet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():75 -> entrySet
    1:1:java.util.Set entrySet():43 -> entrySet
    1:2:boolean equals(java.lang.Object):110:111 -> equals
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():80:80 -> keySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():80:80 -> keySet
    2:2:java.util.Set keySet():43 -> keySet
    1:1:void putAll(java.util.Map):56:56 -> putAll
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():86:86 -> values
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():86:86 -> values
    2:2:java.util.Collection values():43 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap -> com.android.tools.r8.b.a.a.a.b.Ca:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$FastEntrySet entries -> j
    java.lang.Object[] value -> c
    float f -> i
    int[] key -> b
    int size -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values -> l
    boolean containsNullKey -> e
    int n -> f
    int maxFill -> g
    int mask -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keys -> k
    1:9:void <init>(int,float):91:99 -> <init>
    10:10:void <init>(int,float):93:93 -> <init>
    11:11:void <init>(int,float):92:92 -> <init>
    12:12:void <init>(int):110:110 -> <init>
    13:13:void <init>():119:119 -> <init>
    14:14:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,float):155:155 -> <init>
    14:14:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167 -> <init>
    15:15:void putAll(java.util.Map):238:238 -> <init>
    15:15:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,float):156 -> <init>
    15:15:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167 -> <init>
    16:17:void ensureCapacity(int):209:210 -> <init>
    16:17:void putAll(java.util.Map):238 -> <init>
    16:17:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,float):156 -> <init>
    16:17:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167 -> <init>
    18:18:int size():386:386 -> <init>
    18:18:void putAll(java.util.Map):240 -> <init>
    18:18:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,float):156 -> <init>
    18:18:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167 -> <init>
    19:19:void putAll(java.util.Map):240:240 -> <init>
    19:19:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,float):156 -> <init>
    19:19:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167 -> <init>
    20:21:void tryCapacity(long):214:215 -> <init>
    20:21:void putAll(java.util.Map):240 -> <init>
    20:21:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,float):156 -> <init>
    20:21:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167 -> <init>
    22:28:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceMap.putAll(java.util.Map):70:76 -> <init>
    22:28:void putAll(java.util.Map):243 -> <init>
    22:28:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap,float):156 -> <init>
    22:28:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap):167 -> <init>
    1:1:java.lang.Object access$300(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):49:49 -> a
    2:2:java.lang.Object access$400(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap,int):49:49 -> a
    3:18:int insert(int,java.lang.Object):249:264 -> a
    3:18:java.lang.Object put(int,java.lang.Object):271 -> a
    19:21:java.lang.Object put(int,java.lang.Object):272:274 -> a
    1:5:java.lang.Object removeNullEntry():228:232 -> c
    6:15:boolean containsKey(int):344:353 -> c
    1:5:void clear():377:381 -> clear
    1:10:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap clone():945:954 -> clone
    1:10:java.lang.Object clone():49 -> clone
    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap clone():947:947 -> clone
    11:11:java.lang.Object clone():49 -> clone
    1:5:boolean containsValue(java.lang.Object):360:364 -> containsValue
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap$FastEntrySet int2ReferenceEntrySet():707:708 -> d
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet int2ReferenceEntrySet():49 -> d
    3:9:void rehash(int):907:913 -> d
    10:10:int realSize():205:205 -> d
    10:10:void rehash(int):914 -> d
    11:23:void rehash(int):915:927 -> d
    1:3:java.lang.Object removeEntry(int):219:221 -> e
    4:10:void shiftKeys(int):289:295 -> e
    4:10:java.lang.Object removeEntry(int):222 -> e
    11:11:java.lang.Object removeEntry(int):223:223 -> e
    12:17:void shiftKeys(int):298:303 -> e
    12:17:java.lang.Object removeEntry(int):222 -> e
    18:18:void shiftKeys(int):300:300 -> e
    18:18:java.lang.Object removeEntry(int):222 -> e
    1:11:java.lang.Object get(int):327:337 -> get
    1:1:int realSize():205:205 -> hashCode
    1:1:int hashCode():971 -> hashCode
    2:10:int hashCode():972:980 -> hashCode
    1:1:boolean isEmpty():391:391 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():768:769 -> keySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet keySet():768:769 -> keySet
    3:4:java.util.Set keySet():49 -> keySet
    1:1:void putAll(java.util.Map):238:238 -> putAll
    2:3:void ensureCapacity(int):209:210 -> putAll
    2:3:void putAll(java.util.Map):238 -> putAll
    4:4:int size():386:386 -> putAll
    4:4:void putAll(java.util.Map):240 -> putAll
    5:5:void putAll(java.util.Map):240:240 -> putAll
    6:7:void tryCapacity(long):214:215 -> putAll
    6:7:void putAll(java.util.Map):240 -> putAll
    8:20:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractInt2ReferenceMap.putAll(java.util.Map):70:82 -> putAll
    8:20:void putAll(java.util.Map):243 -> putAll
    1:12:java.lang.Object remove(int):309:320 -> remove
    1:1:int size():386:386 -> size
    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():794:815 -> values
    23:44:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection values():794:815 -> values
    23:44:java.util.Collection values():49 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$1 -> com.android.tools.r8.b.a.a.a.b.Ba:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):794:794 -> <init>
    1:1:void clear():812:812 -> clear
    1:1:boolean contains(java.lang.Object):807:807 -> contains
    2:6:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.containsValue(java.lang.Object):360:364 -> contains
    2:6:boolean contains(java.lang.Object):807 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():797:797 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():797:797 -> iterator
    2:2:java.util.Iterator iterator():794 -> iterator
    1:1:int size():802:802 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$EntryIterator -> com.android.tools.r8.b.a.a.a.b.Ca$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapEntry entry -> g
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):600:600 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$1):600 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapEntry next():605:605 -> next
    1:1:java.lang.Object next():600 -> next
    1:5:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapIterator.remove():576:580 -> remove
    1:5:void remove():610 -> remove
    6:12:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapIterator.shiftKeys(int):553:559 -> remove
    6:12:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapIterator.remove():580 -> remove
    6:12:void remove():610 -> remove
    13:14:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapIterator.remove():587:588 -> remove
    13:14:void remove():610 -> remove
    15:24:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapIterator.shiftKeys(int):562:571 -> remove
    15:24:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapIterator.remove():580 -> remove
    15:24:void remove():610 -> remove
    25:25:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapIterator.shiftKeys(int):564:564 -> remove
    25:25:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapIterator.remove():580 -> remove
    25:25:void remove():610 -> remove
    26:27:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapIterator.remove():583:584 -> remove
    26:27:void remove():610 -> remove
    28:28:void remove():611:611 -> remove
    29:29:void com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapIterator.remove():576:576 -> remove
    29:29:void remove():610 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$KeyIterator -> com.android.tools.r8.b.a.a.a.b.Ca$b:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):721:722 -> <init>
    1:1:java.lang.Integer next():733:733 -> next
    1:1:java.lang.Object next():720 -> next
    1:1:int nextInt():727:727 -> nextInt
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$KeySet -> com.android.tools.r8.b.a.a.a.b.Ca$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):737:737 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$1):737 -> <init>
    1:1:void clear():762:762 -> clear
    1:1:boolean contains(int):750:750 -> d
    2:11:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap.containsKey(int):344:353 -> d
    2:11:boolean contains(int):750 -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():740:740 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():740:740 -> iterator
    2:2:java.util.Iterator iterator():737 -> iterator
    1:3:boolean remove(int):755:757 -> remove
    1:1:int size():745:745 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapEntry -> com.android.tools.r8.b.a.a.a.b.Ca$d:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> b
    int index -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap,int):430:431 -> <init>
    1:1:int getIntKey():439:439 -> c
    1:3:boolean equals(java.lang.Object):469:471 -> equals
    1:1:java.lang.Integer getKey():463:463 -> getKey
    1:1:java.lang.Object getKey():425 -> getKey
    1:1:java.lang.Object getValue():444:444 -> getValue
    1:1:int hashCode():476:476 -> hashCode
    1:2:java.lang.Object setValue(java.lang.Object):449:450 -> setValue
    1:1:java.lang.String toString():481:481 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapEntrySet -> com.android.tools.r8.b.a.a.a.b.Ca$e:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):625:625 -> <init>
    2:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$1):625:625 -> <init>
    1:1:void clear():701:701 -> clear
    1:16:boolean contains(java.lang.Object):637:652 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():627:627 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():627:627 -> iterator
    2:2:java.util.Iterator iterator():625 -> iterator
    1:29:boolean remove(java.lang.Object):659:687 -> remove
    1:1:int size():696:696 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$MapIterator -> com.android.tools.r8.b.a.a.a.b.Ca$f:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList wrapped -> e
    int last -> b
    int pos -> a
    boolean mustReturnNullKey -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> f
    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):486:509 -> <init>
    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$1):486 -> <init>
    1:1:boolean hasNext():517:517 -> a
    1:1:int nextEntry():521 -> a
    2:18:int nextEntry():522:538 -> a
    19:19:int nextEntry():521:521 -> a
    1:1:boolean hasNext():517:517 -> hasNext
    1:5:void remove():576:580 -> remove
    6:12:void shiftKeys(int):553:559 -> remove
    6:12:void remove():580 -> remove
    13:14:void remove():587:588 -> remove
    15:24:void shiftKeys(int):562:571 -> remove
    15:24:void remove():580 -> remove
    25:25:void shiftKeys(int):564:564 -> remove
    25:25:void remove():580 -> remove
    26:27:void remove():583:584 -> remove
    28:28:void remove():576:576 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap$ValueIterator -> com.android.tools.r8.b.a.a.a.b.Ca$g:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap):782:783 -> <init>
    1:1:java.lang.Object next():788:788 -> next
com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap -> com.android.tools.r8.b.a.a.a.b.Da:
    int firstIntKey() -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap headMap(int) -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap subMap(int,int) -> a
    int lastIntKey() -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap tailMap(int) -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet int2ReferenceEntrySet() -> d
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList -> com.android.tools.r8.b.a.a.a.b.Fa:
    int size -> b
    1:3:void <init>(int):81:83 -> <init>
    4:4:void <init>(int):82:82 -> <init>
    5:5:void <init>():90:90 -> <init>
    6:6:void <init>(int[]):135:135 -> <init>
    7:9:void <init>(int[],int,int):149:151 -> <init>
    7:9:void <init>(int[]):135 -> <init>
    1:4:int removeInt(int):294:297 -> a
    5:5:int removeInt(int):294:294 -> a
    6:7:void getElements(int,int[],int,int):393:394 -> a
    8:10:void removeElements(int,int):407:409 -> a
    11:12:int[] toArray(int[]):436:437 -> a
    13:21:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):443:451 -> a
    22:28:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):458:464 -> a
    1:5:void add(int,int):256:260 -> add
    6:7:boolean add(int):266:267 -> add
    1:1:void clear():321:321 -> clear
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList clone():549:551 -> clone
    1:3:java.lang.Object clone():48 -> clone
    1:2:int indexOf(int):280:281 -> e
    1:2:boolean rem(int):304 -> e
    3:3:boolean rem(int):306:306 -> e
    1:2:int getInt(int):274:275 -> getInt
    3:3:int getInt(int):274:274 -> getInt
    1:2:int indexOf(int):280:281 -> h
    1:2:int lastIndexOf(int):287:288 -> i
    1:1:boolean isEmpty():339:339 -> isEmpty
    1:1:void grow(int):250:250 -> j
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):493:494 -> listIterator
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):493:494 -> listIterator
    3:4:java.util.ListIterator listIterator(int):48 -> listIterator
    1:6:boolean removeAll(java.util.Collection):482:487 -> removeAll
    1:3:int set(int,int):313:315 -> set
    4:4:int set(int,int):313:313 -> set
    1:1:int size():327:327 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList$1 -> com.android.tools.r8.b.a.a.a.b.Ea:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList this$0 -> d
    int last -> b
    int val$index -> c
    int pos -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList,int):494:495 -> <init>
    1:2:void add(int):524:525 -> a
    1:1:boolean hasPrevious():502:502 -> b
    1:1:int previousInt():511 -> b
    2:2:int previousInt():512:512 -> b
    3:3:int previousInt():511:511 -> b
    4:5:void set(int):529:530 -> b
    6:8:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.set(int,int):313:315 -> b
    6:8:void set(int):530 -> b
    9:9:int com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList.set(int,int):313:313 -> b
    9:9:void set(int):530 -> b
    10:10:void set(int):529:529 -> b
    1:1:boolean hasNext():498:498 -> hasNext
    1:1:boolean hasPrevious():502:502 -> hasPrevious
    1:1:int nextIndex():516:516 -> nextIndex
    1:1:boolean hasNext():498:498 -> nextInt
    1:1:int nextInt():506 -> nextInt
    2:2:int nextInt():507:507 -> nextInt
    3:3:int nextInt():506:506 -> nextInt
    1:1:int previousIndex():520:520 -> previousIndex
    1:9:void remove():534:542 -> remove
    10:10:void remove():534:534 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet -> com.android.tools.r8.b.a.a.a.b.Ha:
    int size -> b
    1:2:void <init>():55:56 -> <init>
    3:4:void <init>(int):65:66 -> <init>
    5:8:void <init>(int[],int):104:107 -> <init>
    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet):29:29 -> a
    1:9:boolean add(int):164:172 -> add
    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet):29:29 -> b
    1:1:int[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet):29:29 -> c
    1:1:void clear():178:178 -> clear
    1:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet clone():201:205 -> clone
    1:5:java.lang.Object clone():29 -> clone
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet clone():203:203 -> clone
    6:6:java.lang.Object clone():29 -> clone
    1:1:boolean contains(int):143:143 -> d
    1:2:int findKey(int):111:112 -> f
    1:1:boolean isEmpty():183:183 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():119:119 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():119:119 -> iterator
    2:2:java.util.Iterator iterator():29 -> iterator
    1:6:boolean remove(int):153:158 -> remove
    1:1:int size():148:148 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet$1 -> com.android.tools.r8.b.a.a.a.b.Ga:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet this$0 -> b
    int next -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArraySet):119:120 -> <init>
    1:1:boolean hasNext():124:124 -> hasNext
    1:1:boolean hasNext():124:124 -> nextInt
    1:1:int nextInt():129 -> nextInt
    2:2:int nextInt():130:130 -> nextInt
    3:3:int nextInt():129:129 -> nextInt
    1:2:void remove():135:136 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrays -> com.android.tools.r8.b.a.a.a.b.Ia:
    int[] EMPTY_ARRAY -> a
    1:1:void <clinit>():100:100 -> <clinit>
    1:1:void ensureOffsetLength(int[],int,int):389:389 -> a
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.Arrays.ensureOffsetLength(int,int,int):73:73 -> a
    2:2:void ensureOffsetLength(int[],int,int):389 -> a
    3:3:void com.android.tools.r8.it.unimi.dsi.fastutil.Arrays.ensureOffsetLength(int,int,int):72:72 -> a
    3:3:void ensureOffsetLength(int[],int,int):389 -> a
    4:4:void com.android.tools.r8.it.unimi.dsi.fastutil.Arrays.ensureOffsetLength(int,int,int):71:71 -> a
    4:4:void ensureOffsetLength(int[],int,int):389 -> a
    1:4:int[] grow(int[],int,int):204:207 -> b
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator -> com.android.tools.r8.b.a.a.a.b.Ja:
    int previousInt() -> b
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection -> com.android.tools.r8.b.a.a.a.b.Ka:
    int[] toIntArray() -> d
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollections -> com.android.tools.r8.b.a.a.a.b.Na:
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):536:536 -> a
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollections$EmptyCollection -> com.android.tools.r8.b.a.a.a.b.La:
    1:1:void <init>():39:39 -> <init>
    1:1:boolean addAll(java.util.Collection):81:81 -> addAll
    boolean contains(int) -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():38:38 -> iterator
    2:2:java.util.Iterator iterator():38:38 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():55:55 -> iterator
    1:1:boolean removeAll(java.util.Collection):86:86 -> removeAll
    1:1:boolean retainAll(java.util.Collection):91:91 -> retainAll
    1:1:java.lang.Object[] toArray():49:49 -> toArray
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollections$UnmodifiableCollection -> com.android.tools.r8.b.a.a.a.b.Ma:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection collection -> a
    1:3:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):369:371 -> <init>
    4:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):370:370 -> <init>
    1:1:boolean add(java.lang.Object):365:365 -> add
    2:2:boolean add(java.lang.Integer):453:453 -> add
    2:2:boolean add(java.lang.Object):365 -> add
    3:3:boolean add(int):376:376 -> add
    1:1:boolean addAll(java.util.Collection):437:437 -> addAll
    1:1:void clear():417:417 -> clear
    1:1:boolean contains(java.lang.Object):459:459 -> contains
    1:1:boolean containsAll(java.util.Collection):432:432 -> containsAll
    1:1:int[] toIntArray():470:470 -> d
    1:1:boolean equals(java.lang.Object):523:523 -> equals
    1:1:int hashCode():517:517 -> hashCode
    1:1:boolean isEmpty():391:391 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():400:400 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():400:400 -> iterator
    2:2:java.util.Iterator iterator():365 -> iterator
    1:1:boolean remove(java.lang.Object):465:465 -> remove
    1:1:boolean removeAll(java.util.Collection):442:442 -> removeAll
    1:1:boolean retainAll(java.util.Collection):447:447 -> retainAll
    1:1:int size():386:386 -> size
    1:1:java.lang.Object[] toArray(java.lang.Object[]):422:422 -> toArray
    2:2:java.lang.Object[] toArray():427:427 -> toArray
    1:1:java.lang.String toString():512:512 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntComparator -> com.android.tools.r8.b.a.a.a.b.Oa:
    int compare(int,int) -> b
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterable -> com.android.tools.r8.b.a.a.a.b.Pa:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator -> com.android.tools.r8.b.a.a.a.b.Qa:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators -> com.android.tools.r8.b.a.a.a.b.Ua:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators$EmptyIterator EMPTY_ITERATOR -> a
    1:1:void <clinit>():103:103 -> <clinit>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator singleton(int):159:159 -> a
    2:2:int unwrap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator,int[]):312:312 -> a
    3:6:int unwrap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator,int[],int,int):289:292 -> a
    3:6:int unwrap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator,int[]):312 -> a
    7:7:int unwrap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator,int[],int,int):289:289 -> a
    7:7:int unwrap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator,int[]):312 -> a
    8:8:int unwrap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator,int[],int,int):288:288 -> a
    8:8:int unwrap(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator,int[]):312 -> a
    9:9:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator):830:830 -> a
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators$EmptyIterator -> com.android.tools.r8.b.a.a.a.b.Ra:
    1:1:void <init>():42:42 -> <init>
    1:1:int previousInt():62:62 -> b
    1:1:java.lang.Object clone():87:87 -> clone
    1:1:int nextInt():57:57 -> nextInt
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators$SingletonIterator -> com.android.tools.r8.b.a.a.a.b.Sa:
    int curr -> b
    int element -> a
    1:2:void <init>(int):110:111 -> <init>
    1:1:boolean hasPrevious():121:121 -> b
    1:1:int previousInt():133 -> b
    2:3:int previousInt():134:135 -> b
    4:4:int previousInt():133:133 -> b
    1:1:boolean hasNext():116:116 -> hasNext
    1:1:boolean hasPrevious():121:121 -> hasPrevious
    1:1:int nextIndex():140:140 -> nextIndex
    1:1:boolean hasNext():116:116 -> nextInt
    1:1:int nextInt():126 -> nextInt
    2:3:int nextInt():127:128 -> nextInt
    4:4:int nextInt():126:126 -> nextInt
    1:1:int previousIndex():145:145 -> previousIndex
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterators$UnmodifiableIterator -> com.android.tools.r8.b.a.a.a.b.Ta:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator i -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator):807:808 -> <init>
    1:1:boolean hasNext():813:813 -> hasNext
    1:1:int nextInt():818:818 -> nextInt
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList -> com.android.tools.r8.b.a.a.a.b.Va:
    boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList) -> a
    void getElements(int,int[],int,int) -> a
    void removeElements(int,int) -> a
    int removeInt(int) -> a
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator -> com.android.tools.r8.b.a.a.a.b.Wa:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntLists -> com.android.tools.r8.b.a.a.a.b._a:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntLists$EmptyList EMPTY_LIST -> a
    1:1:void <clinit>():323:323 -> <clinit>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList singleton(int):478:478 -> a
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntLists$1 -> com.android.tools.r8.b.a.a.a.b.Xa:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntLists$EmptyList -> com.android.tools.r8.b.a.a.a.b.Ya:
    1:1:void <init>():65:65 -> <init>
    1:1:int removeInt(int):80:80 -> a
    2:2:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):110:110 -> a
    3:3:boolean add(java.lang.Integer):156:156 -> a
    4:5:void getElements(int,int[],int,int):263:264 -> a
    6:6:void removeElements(int,int):269:269 -> a
    1:1:void add(int,java.lang.Object):62:62 -> add
    2:2:void add(int,java.lang.Integer):132:132 -> add
    2:2:void add(int,java.lang.Object):62 -> add
    3:3:boolean add(java.lang.Object):62:62 -> add
    4:4:boolean add(java.lang.Integer):156:156 -> add
    4:4:boolean add(java.lang.Object):62 -> add
    5:5:void add(int,int):85:85 -> add
    1:1:boolean addAll(int,java.util.Collection):105:105 -> addAll
    1:1:java.lang.Object clone():295:295 -> clone
    1:1:int compareTo(java.lang.Object):62:62 -> compareTo
    2:2:int compareTo(java.util.List):290:290 -> compareTo
    2:2:int compareTo(java.lang.Object):62 -> compareTo
    1:1:boolean rem(int):75:75 -> e
    1:1:boolean equals(java.lang.Object):306:306 -> equals
    1:1:java.lang.Integer get(int):144:144 -> get
    1:1:java.lang.Object get(int):62 -> get
    1:1:int getInt(int):70:70 -> getInt
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():212:212 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator():62 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():212:212 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():62 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():212:212 -> iterator
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():212:212 -> iterator
    4:4:java.util.Iterator iterator():62 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator():208:208 -> listIterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator():208:208 -> listIterator
    2:2:java.util.ListIterator listIterator():62 -> listIterator
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):216:217 -> listIterator
    3:4:java.util.ListIterator listIterator(int):62 -> listIterator
    1:1:java.lang.Integer remove(int):180:180 -> remove
    1:1:java.lang.Object remove(int):62 -> remove
    1:1:java.lang.Object set(int,java.lang.Object):62:62 -> set
    2:2:java.lang.Integer set(int,java.lang.Integer):168:168 -> set
    2:2:java.lang.Object set(int,java.lang.Object):62 -> set
    3:3:int set(int,int):90:90 -> set
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):246:246 -> subList
    1:1:java.util.List subList(int,int):62 -> subList
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntLists$Singleton -> com.android.tools.r8.b.a.a.a.b.Za:
    int element -> a
    1:2:void <init>(int):336:337 -> <init>
    1:2:void <init>(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntLists$1):332 -> <init>
    1:1:int removeInt(int):353:353 -> a
    2:2:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):419:419 -> a
    3:3:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList):424:424 -> a
    4:4:boolean addAll(int,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):429:429 -> a
    1:1:boolean addAll(int,java.util.Collection):399:399 -> addAll
    2:2:boolean addAll(java.util.Collection):404:404 -> addAll
    1:1:void clear():459:459 -> clear
    1:1:boolean contains(int):358:358 -> d
    2:3:int[] toIntArray():364:365 -> d
    1:1:boolean rem(int):348:348 -> e
    1:2:int getInt(int):342:343 -> getInt
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():376:376 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():332 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():376:376 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator iterator():376:376 -> iterator
    3:3:java.util.Iterator iterator():332 -> iterator
    1:1:java.util.ListIterator listIterator():332:332 -> listIterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator():371:371 -> listIterator
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):382:383 -> listIterator
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):381:381 -> listIterator
    6:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):382:383 -> listIterator
    6:7:java.util.ListIterator listIterator(int):332 -> listIterator
    8:8:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntListIterator listIterator(int):381:381 -> listIterator
    8:8:java.util.ListIterator listIterator(int):332 -> listIterator
    1:1:boolean removeAll(java.util.Collection):409:409 -> removeAll
    1:1:boolean retainAll(java.util.Collection):414:414 -> retainAll
    1:4:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):390:393 -> subList
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):392:392 -> subList
    6:9:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):390:393 -> subList
    6:9:java.util.List subList(int,int):332 -> subList
    10:10:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntList subList(int,int):392:392 -> subList
    10:10:java.util.List subList(int,int):332 -> subList
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet -> com.android.tools.r8.b.a.a.a.b.cb:
    float f -> g
    int size -> f
    int n -> d
    int[] key -> a
    int maxFill -> e
    int mask -> b
    boolean containsNull -> c
    1:8:void <init>(int,float):77:84 -> <init>
    9:9:void <init>(int,float):79:79 -> <init>
    10:10:void <init>(int,float):78:78 -> <init>
    11:11:void <init>():104:104 -> <init>
    1:2:void tryCapacity(long):271:272 -> a
    3:3:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):277:277 -> a
    4:5:void ensureCapacity(int):266:267 -> a
    4:5:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):277 -> a
    6:6:int size():412:412 -> a
    6:6:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):280 -> a
    7:7:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):280:280 -> a
    8:9:boolean com.android.tools.r8.it.unimi.dsi.fastutil.ints.AbstractIntCollection.addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):173:174 -> a
    8:9:boolean addAll(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection):283 -> a
    1:14:boolean add(int):302:315 -> add
    1:1:boolean addAll(java.util.Collection):289:289 -> addAll
    2:3:void ensureCapacity(int):266:267 -> addAll
    2:3:boolean addAll(java.util.Collection):289 -> addAll
    4:4:int size():412:412 -> addAll
    4:4:boolean addAll(java.util.Collection):292 -> addAll
    5:8:boolean addAll(java.util.Collection):292:295 -> addAll
    1:4:void clear():404:407 -> clear
    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet clone():672:677 -> clone
    1:6:java.lang.Object clone():40 -> clone
    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet clone():674:674 -> clone
    7:7:java.lang.Object clone():40 -> clone
    1:9:boolean contains(int):382:390 -> d
    1:5:void rehash(int):639:643 -> f
    6:6:int realSize():262:262 -> f
    6:6:void rehash(int):644 -> f
    7:16:void rehash(int):645:654 -> f
    1:1:boolean removeEntry(int):348:348 -> g
    2:7:void shiftKeys(int):331:336 -> g
    2:7:boolean removeEntry(int):349 -> g
    8:8:boolean removeEntry(int):350:350 -> g
    9:13:void shiftKeys(int):339:343 -> g
    9:13:boolean removeEntry(int):349 -> g
    14:14:void shiftKeys(int):341:341 -> g
    14:14:boolean removeEntry(int):349 -> g
    1:1:int realSize():262:262 -> hashCode
    1:1:int hashCode():694 -> hashCode
    2:4:int hashCode():695:697 -> hashCode
    1:1:boolean isEmpty():417:417 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():547:547 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():547:547 -> iterator
    2:2:java.util.Iterator iterator():40 -> iterator
    1:1:boolean remove(int):365:365 -> remove
    2:5:boolean removeNullEntry():355:358 -> remove
    2:5:boolean remove(int):365 -> remove
    6:13:boolean remove(int):369:376 -> remove
    1:1:int size():412:412 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet$1 -> com.android.tools.r8.b.a.a.a.b.ab:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet$SetIterator -> com.android.tools.r8.b.a.a.a.b.bb:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntArrayList wrapped -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet this$0 -> f
    int last -> b
    int pos -> a
    boolean mustReturnNull -> d
    1:21:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet):446:466 -> <init>
    1:21:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet,com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntOpenHashSet$1):446 -> <init>
    1:1:boolean hasNext():474:474 -> hasNext
    1:1:boolean hasNext():474:474 -> nextInt
    1:1:int nextInt():478 -> nextInt
    2:15:int nextInt():479:492 -> nextInt
    16:16:int nextInt():478:478 -> nextInt
    1:5:void remove():528:532 -> remove
    6:11:void shiftKeys(int):507:512 -> remove
    6:11:void remove():532 -> remove
    12:13:void remove():539:540 -> remove
    14:22:void shiftKeys(int):515:523 -> remove
    14:22:void remove():532 -> remove
    23:23:void shiftKeys(int):517:517 -> remove
    23:23:void remove():532 -> remove
    24:25:void remove():535:536 -> remove
    26:26:void remove():528:528 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSet -> com.android.tools.r8.b.a.a.a.b.db:
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSets -> com.android.tools.r8.b.a.a.a.b.fb:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSets$EmptySet EMPTY_SET -> a
    1:1:void <clinit>():76:76 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSets$EmptySet -> com.android.tools.r8.b.a.a.a.b.eb:
    1:1:void <init>():42:42 -> <init>
    1:1:java.lang.Object clone():52:52 -> clone
    1:1:boolean rem(int):64:64 -> e
    1:1:boolean equals(java.lang.Object):58:58 -> equals
    1:1:boolean remove(int):47:47 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet -> com.android.tools.r8.b.a.a.a.b.gb:
    int lastInt() -> a
    int firstInt() -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet subSet(int,int) -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet tailSet(int) -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet headSet(int) -> c
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSets -> com.android.tools.r8.b.a.a.a.b.ib:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSets$EmptySet EMPTY_SET -> a
    1:1:void <clinit>():168:168 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSets$EmptySet -> com.android.tools.r8.b.a.a.a.b.hb:
    1:1:void <init>():42:42 -> <init>
    1:1:java.lang.Object clone():155:155 -> clone
    1:1:java.lang.Integer first():139:139 -> first
    1:1:java.lang.Object first():39 -> first
    1:1:java.util.SortedSet headSet(java.lang.Object):39:39 -> headSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet headSet(java.lang.Integer):117:117 -> headSet
    2:2:java.util.SortedSet headSet(java.lang.Object):39 -> headSet
    1:1:java.lang.Integer last():150:150 -> last
    1:1:java.lang.Object last():39 -> last
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):39:39 -> subSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet subSet(java.lang.Integer,java.lang.Integer):106:106 -> subSet
    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):39 -> subSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):39:39 -> tailSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntSortedSet tailSet(java.lang.Integer):128:128 -> tailSet
    2:2:java.util.SortedSet tailSet(java.lang.Object):39 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntStack -> com.android.tools.r8.b.a.a.a.b.jb:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanFunction -> com.android.tools.r8.b.a.a.a.c.a:
    boolean defRetValue -> a
    1:1:void <init>():44:44 -> <init>
    boolean put(java.lang.Object,boolean) -> a
    boolean removeBoolean(java.lang.Object) -> a
    1:3:java.lang.Boolean put(java.lang.Object,java.lang.Boolean):123:125 -> a
    1:1:java.lang.Boolean get(java.lang.Object):108:108 -> get
    1:1:java.lang.Object get(java.lang.Object):41 -> get
    1:1:java.lang.Object put(java.lang.Object,java.lang.Object):41:41 -> put
    1:3:java.lang.Boolean remove(java.lang.Object):140:142 -> remove
    1:3:java.lang.Object remove(java.lang.Object):41 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanMap -> com.android.tools.r8.b.a.a.a.c.c:
    1:1:void <init>():45:45 -> <init>
    boolean containsValue(boolean) -> a
    1:1:boolean containsValue(java.lang.Object):62:62 -> containsValue
    1:1:java.util.Set entrySet():42:42 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> entrySet
    1:4:boolean equals(java.lang.Object):320:323 -> equals
    1:4:int hashCode():310:313 -> hashCode
    1:7:void putAll(java.util.Map):82:88 -> putAll
    8:8:boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanMap$BasicEntry.getBooleanValue():145:145 -> putAll
    8:8:void putAll(java.util.Map):88 -> putAll
    9:15:void putAll(java.util.Map):88:94 -> putAll
    1:13:java.lang.String toString():328:340 -> toString
    14:14:boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanMap$BasicEntry.getBooleanValue():145:145 -> toString
    14:14:java.lang.String toString():341 -> toString
    15:18:java.lang.String toString():341:344 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2BooleanMap$BasicEntry -> com.android.tools.r8.b.a.a.a.c.b:
    java.lang.Object key -> a
    boolean value -> b
    1:3:void <init>(java.lang.Object,boolean):121:123 -> <init>
    1:1:boolean getBooleanValue():145:145 -> a
    1:4:boolean equals(java.lang.Object):167:170 -> equals
    1:1:java.lang.Object getKey():128:128 -> getKey
    1:1:java.lang.Boolean getValue():140:140 -> getValue
    1:1:java.lang.Object getValue():112 -> getValue
    1:1:int hashCode():175:175 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):112:112 -> setValue
    2:2:java.lang.Boolean setValue(java.lang.Boolean):162:162 -> setValue
    2:2:java.lang.Object setValue(java.lang.Object):112 -> setValue
    3:3:boolean setValue(boolean):150:150 -> setValue
    3:3:java.lang.Boolean setValue(java.lang.Boolean):162 -> setValue
    3:3:java.lang.Object setValue(java.lang.Object):112 -> setValue
    1:1:java.lang.String toString():180:180 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntFunction -> com.android.tools.r8.b.a.a.a.c.d:
    int defRetValue -> a
    1:1:void <init>():44:44 -> <init>
    int put(java.lang.Object,int) -> a
    int removeInt(java.lang.Object) -> a
    1:1:void defaultReturnValue(int):55:55 -> a
    2:2:java.lang.Integer put(java.lang.Object,java.lang.Integer):123:123 -> a
    3:13:boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.containsKey(java.lang.Object):738:748 -> a
    3:13:java.lang.Integer put(java.lang.Object,java.lang.Integer):123 -> a
    14:15:java.lang.Integer put(java.lang.Object,java.lang.Integer):124:125 -> a
    1:1:java.lang.Integer get(java.lang.Object):108:108 -> get
    1:1:java.lang.Object get(java.lang.Object):41 -> get
    2:12:boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.containsKey(java.lang.Object):738:748 -> get
    2:12:java.lang.Integer get(java.lang.Object):108 -> get
    2:12:java.lang.Object get(java.lang.Object):41 -> get
    13:13:java.lang.Integer get(java.lang.Object):108:108 -> get
    13:13:java.lang.Object get(java.lang.Object):41 -> get
    1:1:java.lang.Object put(java.lang.Object,java.lang.Object):41:41 -> put
    1:1:java.lang.Integer remove(java.lang.Object):140:140 -> remove
    1:1:java.lang.Object remove(java.lang.Object):41 -> remove
    2:12:boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.containsKey(java.lang.Object):738:748 -> remove
    2:12:java.lang.Integer remove(java.lang.Object):140 -> remove
    2:12:java.lang.Object remove(java.lang.Object):41 -> remove
    13:14:java.lang.Integer remove(java.lang.Object):141:142 -> remove
    13:14:java.lang.Object remove(java.lang.Object):41 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntMap -> com.android.tools.r8.b.a.a.a.c.e:
    1:1:void <init>():45:45 -> <init>
    boolean containsValue(int) -> b
    1:1:boolean containsValue(java.lang.Object):62:62 -> containsValue
    1:3:boolean equals(java.lang.Object):320:322 -> equals
    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.size():780:780 -> equals
    4:4:boolean equals(java.lang.Object):322 -> equals
    5:5:boolean equals(java.lang.Object):323:323 -> equals
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntSortedMap.entrySet():31:31 -> equals
    6:6:boolean equals(java.lang.Object):323 -> equals
    7:7:boolean equals(java.lang.Object):323:323 -> equals
    1:2:java.lang.String toString():328:329 -> toString
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntSortedMap.entrySet():31:31 -> toString
    3:3:java.lang.String toString():329 -> toString
    4:5:java.lang.String toString():329:330 -> toString
    6:6:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.size():780:780 -> toString
    6:6:java.lang.String toString():330 -> toString
    7:15:java.lang.String toString():333:341 -> toString
    16:16:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapEntry.getIntValue():838:838 -> toString
    16:16:java.lang.String toString():341 -> toString
    17:20:java.lang.String toString():341:344 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntSortedMap -> com.android.tools.r8.b.a.a.a.c.f:
    1:1:void <init>():34:34 -> <init>
    1:1:java.util.Set entrySet():31:31 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229:229 -> entrySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap$FastSortedEntrySet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.object2IntEntrySet():1422:1423 -> entrySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.object2IntEntrySet():87 -> entrySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229 -> entrySet
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectFunction -> com.android.tools.r8.b.a.a.a.c.g:
    java.lang.Object defRetValue -> a
    1:1:void <init>():44:44 -> <init>
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectMap -> com.android.tools.r8.b.a.a.a.c.h:
    1:1:void <init>():45:45 -> <init>
    1:3:boolean equals(java.lang.Object):272:274 -> equals
    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap.size():761:761 -> equals
    4:4:boolean equals(java.lang.Object):274 -> equals
    5:5:boolean equals(java.lang.Object):275:275 -> equals
    1:3:java.lang.String toString():280:282 -> toString
    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap.size():761:761 -> toString
    4:4:java.lang.String toString():282 -> toString
    5:17:java.lang.String toString():285:297 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectSortedMap -> com.android.tools.r8.b.a.a.a.c.i:
    1:1:void <init>():34:34 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():226:226 -> entrySet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():31 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap.object2ObjectEntrySet():85:85 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():226 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():31 -> entrySet
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():226:226 -> entrySet
    3:3:java.util.Set entrySet():31 -> entrySet
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap.object2ObjectEntrySet():85:85 -> entrySet
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():226 -> entrySet
    4:4:java.util.Set entrySet():31 -> entrySet
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectBidirectionalIterator -> com.android.tools.r8.b.a.a.a.c.j:
    1:1:void <init>():34:34 -> <init>
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectCollection -> com.android.tools.r8.b.a.a.a.c.k:
    1:1:void <init>():37:37 -> <init>
    1:15:java.lang.String toString():61:75 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectIterator -> com.android.tools.r8.b.a.a.a.c.l:
    1:1:void <init>():34:34 -> <init>
    1:1:void remove():45:45 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectListIterator -> com.android.tools.r8.b.a.a.a.c.m:
    1:1:void <init>():35:35 -> <init>
    1:1:void add(java.lang.Object):57:57 -> add
    1:1:void set(java.lang.Object):46:46 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectSet -> com.android.tools.r8.b.a.a.a.c.n:
    1:1:void <init>():32:32 -> <init>
    1:4:boolean equals(java.lang.Object):41:44 -> equals
    1:7:int hashCode():57:63 -> hashCode
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObjectSortedSet -> com.android.tools.r8.b.a.a.a.c.o:
    1:1:void <init>():23:23 -> <init>
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanFunction -> com.android.tools.r8.b.a.a.a.c.p:
    boolean defRetValue -> a
    1:1:void <init>():44:44 -> <init>
    boolean put(java.lang.Object,boolean) -> a
    boolean removeBoolean(java.lang.Object) -> a
    1:3:java.lang.Boolean put(java.lang.Object,java.lang.Boolean):123:125 -> a
    1:1:java.lang.Boolean get(java.lang.Object):108:108 -> get
    1:1:java.lang.Object get(java.lang.Object):41 -> get
    1:1:java.lang.Object put(java.lang.Object,java.lang.Object):41:41 -> put
    1:3:java.lang.Boolean remove(java.lang.Object):140:142 -> remove
    1:3:java.lang.Object remove(java.lang.Object):41 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanMap -> com.android.tools.r8.b.a.a.a.c.q:
    1:1:void <init>():45:45 -> <init>
    boolean containsValue(boolean) -> a
    1:1:boolean containsValue(java.lang.Object):62:62 -> containsValue
    1:1:java.util.Set entrySet():42:42 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> entrySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanMap$FastEntrySet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap.reference2BooleanEntrySet():716:717 -> entrySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap.reference2BooleanEntrySet():49 -> entrySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297 -> entrySet
    1:3:boolean equals(java.lang.Object):320:322 -> equals
    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap.size():384:384 -> equals
    4:4:boolean equals(java.lang.Object):322 -> equals
    5:5:boolean equals(java.lang.Object):323:323 -> equals
    1:3:java.lang.String toString():328:330 -> toString
    4:4:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap.size():384:384 -> toString
    4:4:java.lang.String toString():330 -> toString
    5:13:java.lang.String toString():333:341 -> toString
    14:14:boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapEntry.getBooleanValue():442:442 -> toString
    14:14:java.lang.String toString():341 -> toString
    15:18:java.lang.String toString():341:344 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntFunction -> com.android.tools.r8.b.a.a.a.c.r:
    int defRetValue -> a
    1:1:void <init>():44:44 -> <init>
    int put(java.lang.Object,int) -> a
    int removeInt(java.lang.Object) -> a
    1:1:void defaultReturnValue(int):55:55 -> a
    2:4:java.lang.Integer put(java.lang.Object,java.lang.Integer):123:125 -> a
    1:1:java.lang.Integer get(java.lang.Object):108:108 -> get
    1:1:java.lang.Object get(java.lang.Object):41 -> get
    1:1:java.lang.Object put(java.lang.Object,java.lang.Object):41:41 -> put
    1:3:java.lang.Integer remove(java.lang.Object):140:142 -> remove
    1:3:java.lang.Object remove(java.lang.Object):41 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntMap -> com.android.tools.r8.b.a.a.a.c.t:
    1:1:void <init>():45:45 -> <init>
    boolean containsValue(int) -> b
    1:1:boolean containsValue(java.lang.Object):62:62 -> containsValue
    1:1:java.util.Set entrySet():42:42 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():297:297 -> entrySet
    1:4:boolean equals(java.lang.Object):320:323 -> equals
    1:4:int hashCode():310:313 -> hashCode
    1:13:void putAll(java.util.Map):82:94 -> putAll
    1:17:java.lang.String toString():328:344 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntMap$BasicEntry -> com.android.tools.r8.b.a.a.a.c.s:
    java.lang.Object key -> a
    int value -> b
    1:3:void <init>(java.lang.Object,int):121:123 -> <init>
    1:1:int getIntValue():145:145 -> e
    1:4:boolean equals(java.lang.Object):167:170 -> equals
    1:1:java.lang.Object getKey():128:128 -> getKey
    1:1:java.lang.Integer getValue():140:140 -> getValue
    1:1:java.lang.Object getValue():112 -> getValue
    1:1:int hashCode():175:175 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):112:112 -> setValue
    2:2:java.lang.Integer setValue(java.lang.Integer):162:162 -> setValue
    2:2:java.lang.Object setValue(java.lang.Object):112 -> setValue
    3:3:int setValue(int):150:150 -> setValue
    3:3:java.lang.Integer setValue(java.lang.Integer):162 -> setValue
    3:3:java.lang.Object setValue(java.lang.Object):112 -> setValue
    1:1:java.lang.String toString():180:180 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2IntSortedMap -> com.android.tools.r8.b.a.a.a.c.u:
    1:1:void <init>():34:34 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229:229 -> entrySet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():31 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap.reference2IntEntrySet():87:87 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229 -> entrySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet entrySet():31 -> entrySet
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229:229 -> entrySet
    3:3:java.util.Set entrySet():31 -> entrySet
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap.reference2IntEntrySet():87:87 -> entrySet
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet entrySet():229 -> entrySet
    4:4:java.util.Set entrySet():31 -> entrySet
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceCollection -> com.android.tools.r8.b.a.a.a.c.v:
    1:1:void <init>():37:37 -> <init>
    1:15:java.lang.String toString():61:75 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList -> com.android.tools.r8.b.a.a.a.c.y:
    1:1:void <init>():34:34 -> <init>
    void removeElements(int,int) -> a
    1:5:boolean addAll(int,java.util.Collection):121:125 -> addAll
    6:6:boolean addAll(java.util.Collection):138:138 -> addAll
    1:1:void clear():404:404 -> clear
    1:1:boolean contains(java.lang.Object):275:275 -> contains
    1:1:void ensureIndex(int):48:48 -> d
    2:2:void ensureIndex(int):47:47 -> d
    1:1:void ensureRestrictedIndex(int):63:63 -> e
    2:2:void ensureRestrictedIndex(int):62:62 -> e
    1:7:boolean equals(java.lang.Object):427:433 -> equals
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():181:181 -> hashCode
    1:1:int hashCode():415 -> hashCode
    2:5:int hashCode():416:419 -> hashCode
    1:5:int indexOf(java.lang.Object):280:284 -> indexOf
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():181:181 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():33 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():181:181 -> iterator
    2:2:java.util.Iterator iterator():33 -> iterator
    1:5:int lastIndexOf(java.lang.Object):291:295 -> lastIndexOf
    1:1:java.util.ListIterator listIterator():33:33 -> listIterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator():193:193 -> listIterator
    1:1:java.util.List subList(int,int):33:33 -> subList
    2:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList subList(int,int):311:314 -> subList
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList subList(int,int):313:313 -> subList
    1:1:java.lang.String toString():461:461 -> toString
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():181:181 -> toString
    2:2:java.lang.String toString():462 -> toString
    3:15:java.lang.String toString():463:475 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList$ReferenceSubList -> com.android.tools.r8.b.a.a.a.c.x:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList l -> a
    int from -> b
    int to -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():479:479 -> <clinit>
    1:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList,int,int):488:491 -> <init>
    1:1:boolean access$000(com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList$ReferenceSubList):479:479 -> a
    2:6:void removeElements(int,int):557:561 -> a
    1:3:boolean add(java.lang.Object):503:505 -> add
    4:7:void add(int,java.lang.Object):511:514 -> add
    1:3:boolean addAll(int,java.util.Collection):519:521 -> addAll
    1:3:boolean assertRange():495:497 -> c
    1:2:java.lang.Object get(int):526:527 -> get
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList.iterator():181:181 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():479 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList.iterator():181:181 -> iterator
    2:2:java.util.Iterator iterator():479 -> iterator
    1:1:java.util.ListIterator listIterator():479:479 -> listIterator
    2:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int):574:575 -> listIterator
    4:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int):574:575 -> listIterator
    4:5:java.util.ListIterator listIterator(int):479 -> listIterator
    1:3:java.lang.Object remove(int):532:534 -> remove
    1:2:java.lang.Object set(int,java.lang.Object):539:540 -> set
    1:1:int size():545:545 -> size
    1:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList subList(int,int):633:636 -> subList
    5:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList subList(int,int):635:635 -> subList
    6:9:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList subList(int,int):633:636 -> subList
    6:9:java.util.List subList(int,int):479 -> subList
    10:10:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList subList(int,int):635:635 -> subList
    10:10:java.util.List subList(int,int):479 -> subList
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList$ReferenceSubList$1 -> com.android.tools.r8.b.a.a.a.c.w:
    boolean $assertionsDisabled -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList$ReferenceSubList this$0 -> d
    int last -> b
    int val$index -> c
    int pos -> a
    1:1:void <clinit>():575:575 -> <clinit>
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList$ReferenceSubList,int):575:576 -> <init>
    1:4:void add(java.lang.Object):605:608 -> add
    5:5:void add(java.lang.Object):605:605 -> add
    1:1:boolean hasNext():579:579 -> hasNext
    2:2:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList$ReferenceSubList.size():545:545 -> hasNext
    2:2:boolean hasNext():579 -> hasNext
    1:1:boolean hasPrevious():583:583 -> hasPrevious
    1:1:boolean hasNext():579:579 -> next
    1:1:java.lang.Object next():587 -> next
    2:2:int com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList$ReferenceSubList.size():545:545 -> next
    2:2:boolean hasNext():579 -> next
    2:2:java.lang.Object next():587 -> next
    3:3:java.lang.Object next():588:588 -> next
    4:4:java.lang.Object next():587:587 -> next
    1:1:int nextIndex():597:597 -> nextIndex
    1:1:boolean hasPrevious():583:583 -> previous
    1:1:java.lang.Object previous():592 -> previous
    2:2:java.lang.Object previous():593:593 -> previous
    3:3:java.lang.Object previous():592:592 -> previous
    1:1:int previousIndex():601:601 -> previousIndex
    1:2:void remove():617:618 -> remove
    3:5:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList$ReferenceSubList.remove(int):532:534 -> remove
    3:5:void remove():618 -> remove
    6:8:void remove():624:626 -> remove
    9:9:void remove():617:617 -> remove
    1:2:void set(java.lang.Object):612:613 -> set
    3:4:java.lang.Object com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceList$ReferenceSubList.set(int,java.lang.Object):539:540 -> set
    3:4:void set(java.lang.Object):613 -> set
    5:5:void set(java.lang.Object):612:612 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceSet -> com.android.tools.r8.b.a.a.a.c.z:
    1:1:void <init>():32:32 -> <init>
    1:4:boolean equals(java.lang.Object):41:44 -> equals
    1:7:int hashCode():57:63 -> hashCode
com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReferenceSortedSet -> com.android.tools.r8.b.a.a.a.c.A:
    1:1:void <init>():23:23 -> <init>
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap -> com.android.tools.r8.b.a.a.a.c.D:
    java.lang.Object[] key -> b
    boolean[] value -> c
    int size -> d
    1:3:void <init>():70:72 -> <init>
    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap):37:37 -> a
    2:2:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap,java.lang.Object):37:37 -> a
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap$FastEntrySet object2BooleanEntrySet():231:231 -> a
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet object2BooleanEntrySet():37 -> a
    4:5:boolean containsValue(boolean):270:271 -> a
    6:25:boolean put(java.lang.Object,boolean):283:302 -> a
    26:33:boolean removeBoolean(java.lang.Object):308:315 -> a
    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap):37:37 -> b
    2:5:boolean getBoolean(java.lang.Object):244:247 -> b
    1:1:java.lang.Object[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap):37:37 -> c
    2:4:int findKey(java.lang.Object):235:237 -> c
    1:4:void clear():257:260 -> clear
    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap clone():344:349 -> clone
    1:6:java.lang.Object clone():37 -> clone
    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap clone():346:346 -> clone
    7:7:java.lang.Object clone():37 -> clone
    1:1:boolean containsKey(java.lang.Object):265:265 -> containsKey
    1:1:boolean[] access$200(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap):37:37 -> d
    1:1:boolean isEmpty():277:277 -> isEmpty
    1:1:java.util.Set keySet():37:37 -> keySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet keySet():321:321 -> keySet
    1:1:int size():252:252 -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection values():326:326 -> values
    1:1:java.util.Collection values():37 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$1 -> com.android.tools.r8.b.a.a.a.c.B:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$EntrySet -> com.android.tools.r8.b.a.a.a.c.D$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap):133:133 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$1):133 -> <init>
    1:5:boolean contains(java.lang.Object):203:207 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
    2:2:java.util.Iterator iterator():133 -> iterator
    1:12:boolean remove(java.lang.Object):213:224 -> remove
    1:1:int size():197:197 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$EntrySet$1 -> com.android.tools.r8.b.a.a.a.c.C:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$EntrySet this$1 -> c
    int next -> b
    int curr -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap$EntrySet):136:137 -> <init>
    1:1:boolean hasNext():141:141 -> hasNext
    1:1:boolean hasNext():141:141 -> next
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap$Entry next():147 -> next
    1:1:java.lang.Object next():136 -> next
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap$Entry next():148:148 -> next
    2:2:java.lang.Object next():136 -> next
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap$Entry next():147:147 -> next
    3:3:java.lang.Object next():136 -> next
    1:6:void remove():153:158 -> remove
    7:7:void remove():153:153 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanFunction -> com.android.tools.r8.b.a.a.a.c.E:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap -> com.android.tools.r8.b.a.a.a.c.G:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap$FastEntrySet -> com.android.tools.r8.b.a.a.a.c.F:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntFunction -> com.android.tools.r8.b.a.a.a.c.H:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap -> com.android.tools.r8.b.a.a.a.c.J:
    float f -> l
    java.lang.Object[] key -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values -> o
    int maxFill -> j
    int size -> k
    int n -> i
    int first -> f
    int last -> g
    int mask -> d
    long[] link -> h
    int[] value -> c
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap$FastSortedEntrySet entries -> m
    boolean containsNullKey -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet keys -> n
    1:1:void <init>(int,float):147:147 -> <init>
    1:1:void <init>():176 -> <init>
    2:56:void <init>(int,float):102:156 -> <init>
    2:56:void <init>():176 -> <init>
    1:1:int access$200(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):87:87 -> a
    2:2:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap,int):87:87 -> a
    3:8:int removeNullEntry():285:290 -> a
    9:33:int insert(java.lang.Object,int):307:331 -> a
    9:33:int put(java.lang.Object,int):338 -> a
    34:36:int put(java.lang.Object,int):339:341 -> a
    37:48:int removeInt(java.lang.Object):431:442 -> a
    49:72:void fixPointers(int,int):937:960 -> a
    1:11:int getInt(java.lang.Object):721:731 -> b
    12:16:boolean containsValue(int):754:758 -> b
    1:25:void fixPointers(int):899:923 -> c
    1:5:void clear():771:775 -> clear
    1:11:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap clone():1768:1778 -> clone
    1:11:java.lang.Object clone():87 -> clone
    12:12:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap clone():1770:1770 -> clone
    12:12:java.lang.Object clone():87 -> clone
    1:11:boolean containsKey(java.lang.Object):738:748 -> containsKey
    1:42:void rehash(int):1709:1750 -> d
    1:3:int removeEntry(int):276:278 -> e
    4:9:void shiftKeys(int):410:415 -> e
    4:9:int removeEntry(int):279 -> e
    10:10:int removeEntry(int):280:280 -> e
    11:17:void shiftKeys(int):418:424 -> e
    11:17:int removeEntry(int):279 -> e
    18:18:void shiftKeys(int):420:420 -> e
    18:18:int removeEntry(int):279 -> e
    1:2:java.lang.Object firstKey():970:971 -> firstKey
    3:3:java.lang.Object firstKey():970:970 -> firstKey
    1:1:int realSize():262:262 -> hashCode
    1:1:int hashCode():1795 -> hashCode
    2:10:int hashCode():1796:1804 -> hashCode
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap headMap(java.lang.Object):1002:1002 -> headMap
    1:1:java.util.SortedMap headMap(java.lang.Object):87 -> headMap
    1:1:boolean isEmpty():785:785 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet keySet():1531:1532 -> keySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet keySet():1531:1532 -> keySet
    3:4:java.util.Set keySet():87 -> keySet
    1:2:java.lang.Object lastKey():981:982 -> lastKey
    3:3:java.lang.Object lastKey():981:981 -> lastKey
    1:1:void putAll(java.util.Map):296:296 -> putAll
    2:3:void ensureCapacity(int):266:267 -> putAll
    2:3:void putAll(java.util.Map):296 -> putAll
    4:4:int size():780:780 -> putAll
    4:4:void putAll(java.util.Map):298 -> putAll
    5:5:void putAll(java.util.Map):298:298 -> putAll
    6:7:void tryCapacity(long):271:272 -> putAll
    6:7:void putAll(java.util.Map):298 -> putAll
    8:20:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2IntMap.putAll(java.util.Map):82:94 -> putAll
    8:20:void putAll(java.util.Map):301 -> putAll
    1:1:int size():780:780 -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap subMap(java.lang.Object,java.lang.Object):1012:1012 -> subMap
    1:1:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):87 -> subMap
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap tailMap(java.lang.Object):992:992 -> tailMap
    1:1:java.util.SortedMap tailMap(java.lang.Object):87 -> tailMap
    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():1596:1617 -> values
    1:22:java.util.Collection values():87 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$1 -> com.android.tools.r8.b.a.a.a.c.I:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1596:1596 -> <init>
    1:1:void clear():1614:1614 -> clear
    1:1:boolean contains(int):1609:1609 -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():1599:1599 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():1599:1599 -> iterator
    2:2:java.util.Iterator iterator():1596 -> iterator
    1:1:int size():1604:1604 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$EntryIterator -> com.android.tools.r8.b.a.a.a.c.J$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapEntry entry -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> g
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1222:1222 -> <init>
    1:1:void add(java.lang.Object):1219:1219 -> add
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapIterator.add(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry):1215:1215 -> add
    2:2:void add(java.lang.Object):1219 -> add
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapEntry next():1231:1231 -> next
    1:1:java.lang.Object next():1219 -> next
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapEntry previous():1236:1236 -> previous
    1:1:java.lang.Object previous():1219 -> previous
    1:2:void remove():1241:1242 -> remove
    1:1:void set(java.lang.Object):1219:1219 -> set
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapIterator.set(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry):1211:1211 -> set
    2:2:void set(java.lang.Object):1219 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$KeyIterator -> com.android.tools.r8.b.a.a.a.c.J$b:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> f
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1455:1456 -> <init>
    1:1:void add(java.lang.Object):1452:1452 -> add
    1:1:java.lang.Object next():1461:1461 -> next
    1:1:java.lang.Object previous():1442:1442 -> previous
    1:1:void set(java.lang.Object):1447:1447 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$KeySet -> com.android.tools.r8.b.a.a.a.c.J$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1465:1465 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$1):1465 -> <init>
    1:1:void clear():1493:1493 -> clear
    1:1:boolean contains(java.lang.Object):1481:1481 -> contains
    2:12:boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap.containsKey(java.lang.Object):738:748 -> contains
    2:12:boolean contains(java.lang.Object):1481 -> contains
    1:2:java.lang.Object first():1498:1499 -> first
    3:3:java.lang.Object first():1498:1498 -> first
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(java.lang.Object):1520:1520 -> headSet
    1:1:java.util.SortedSet headSet(java.lang.Object):1465 -> headSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1465:1465 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1465:1465 -> iterator
    3:3:java.util.Iterator iterator():1465:1465 -> iterator
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():1471:1471 -> iterator
    1:2:java.lang.Object last():1504:1505 -> last
    3:3:java.lang.Object last():1504:1504 -> last
    1:3:boolean remove(java.lang.Object):1486:1488 -> remove
    1:1:int size():1476:1476 -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(java.lang.Object,java.lang.Object):1525:1525 -> subSet
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1465 -> subSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(java.lang.Object):1515:1515 -> tailSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):1465 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapEntry -> com.android.tools.r8.b.a.a.a.c.J$d:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> b
    int index -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap,int):824:825 -> <init>
    1:1:int getIntValue():838:838 -> e
    1:3:boolean equals(java.lang.Object):875:877 -> equals
    1:1:java.lang.Object getKey():833:833 -> getKey
    1:1:java.lang.Integer getValue():857:857 -> getValue
    1:1:java.lang.Object getValue():819 -> getValue
    1:1:int hashCode():882:882 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):819:819 -> setValue
    2:2:java.lang.Integer setValue(java.lang.Integer):869:869 -> setValue
    2:2:java.lang.Object setValue(java.lang.Object):819 -> setValue
    3:4:int setValue(int):843:844 -> setValue
    3:4:java.lang.Integer setValue(java.lang.Integer):869 -> setValue
    3:4:java.lang.Object setValue(java.lang.Object):819 -> setValue
    5:5:java.lang.Integer setValue(java.lang.Integer):869:869 -> setValue
    5:5:java.lang.Object setValue(java.lang.Object):819 -> setValue
    1:1:java.lang.String toString():887:887 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapEntrySet -> com.android.tools.r8.b.a.a.a.c.J$e:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1269:1269 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$1):1269 -> <init>
    1:1:void clear():1373:1373 -> clear
    1:16:boolean contains(java.lang.Object):1309:1324 -> contains
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry first():1296:1297 -> first
    1:2:java.lang.Object first():1269 -> first
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry first():1296:1296 -> first
    3:3:java.lang.Object first():1269 -> first
    1:1:java.util.SortedSet headSet(java.lang.Object):1269:1269 -> headSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry):1286:1286 -> headSet
    2:2:java.util.SortedSet headSet(java.lang.Object):1269 -> headSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1271:1271 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1271:1271 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1269 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1271:1271 -> iterator
    3:3:java.util.Iterator iterator():1269 -> iterator
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry last():1302:1303 -> last
    1:2:java.lang.Object last():1269 -> last
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry last():1302:1302 -> last
    3:3:java.lang.Object last():1269 -> last
    1:29:boolean remove(java.lang.Object):1331:1359 -> remove
    1:1:int size():1368:1368 -> size
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1269:1269 -> subSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry):1281:1281 -> subSet
    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1269 -> subSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):1269:1269 -> tailSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry):1291:1291 -> tailSet
    2:2:java.util.SortedSet tailSet(java.lang.Object):1269 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$MapIterator -> com.android.tools.r8.b.a.a.a.c.J$f:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> e
    int index -> d
    int next -> b
    int curr -> c
    int prev -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1057:1057 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$1):1032 -> <init>
    2:23:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1038:1059 -> <init>
    2:23:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$1):1032 -> <init>
    1:1:boolean hasNext():1091:1091 -> a
    1:1:int nextEntry():1127 -> a
    2:6:int nextEntry():1128:1132 -> a
    7:7:int nextEntry():1127:1127 -> a
    1:1:boolean hasPrevious():1095:1095 -> c
    1:1:int previousEntry():1136 -> c
    2:6:int previousEntry():1137:1141 -> c
    7:7:int previousEntry():1136:1136 -> c
    1:14:void ensureIndexKnown():1099:1112 -> d
    1:1:boolean hasNext():1091:1091 -> hasNext
    1:1:boolean hasPrevious():1095:1095 -> hasPrevious
    1:2:int nextIndex():1117:1118 -> nextIndex
    1:2:int previousIndex():1122:1123 -> previousIndex
    1:47:void remove():1145:1191 -> remove
    48:48:void remove():1185:1185 -> remove
    49:49:void remove():1146:1146 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap$ValueIterator -> com.android.tools.r8.b.a.a.a.c.J$g:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap this$0 -> f
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap):1578:1579 -> <init>
    1:1:void add(java.lang.Object):1544:1544 -> add
    2:2:void add(java.lang.Integer):1565:1565 -> add
    2:2:void add(java.lang.Object):1544 -> add
    1:1:int previousInt():1547:1547 -> b
    1:1:java.lang.Integer next():1590:1590 -> next
    1:1:java.lang.Object next():1544 -> next
    1:1:int nextInt():1584:1584 -> nextInt
    1:1:java.lang.Integer previous():1553:1553 -> previous
    1:1:java.lang.Object previous():1544 -> previous
    1:1:void set(java.lang.Object):1544:1544 -> set
    2:2:void set(java.lang.Integer):1559:1559 -> set
    2:2:void set(java.lang.Object):1544 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap -> com.android.tools.r8.b.a.a.a.c.M:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$Entry -> com.android.tools.r8.b.a.a.a.c.K:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap$FastEntrySet -> com.android.tools.r8.b.a.a.a.c.L:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap -> com.android.tools.r8.b.a.a.a.c.O:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntSortedMap$FastSortedEntrySet -> com.android.tools.r8.b.a.a.a.c.N:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectFunction -> com.android.tools.r8.b.a.a.a.c.P:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap -> com.android.tools.r8.b.a.a.a.c.S:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection values -> p
    java.lang.Object[] key -> b
    int size -> l
    java.lang.Object[] value -> c
    int n -> j
    int maxFill -> k
    int last -> h
    int first -> g
    int mask -> d
    long[] link -> i
    com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy strategy -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectSortedMap$FastSortedEntrySet entries -> n
    boolean containsNullKey -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet keys -> o
    float f -> m
    1:1:void <init>(int,float,com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy):149:149 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy):184 -> <init>
    2:59:void <init>(int,float,com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy):102:159 -> <init>
    2:59:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.Hash$Strategy):184 -> <init>
    1:1:java.lang.Object access$200(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):85:85 -> a
    2:2:java.lang.Object access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap,int):85:85 -> a
    3:27:void fixPointers(int):856:880 -> a
    28:51:void fixPointers(int,int):894:917 -> a
    52:53:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectSortedMap$FastSortedEntrySet object2ObjectEntrySet():1379:1380 -> a
    1:7:java.lang.Object removeNullEntry():315:321 -> b
    8:49:void rehash(int):1642:1683 -> b
    1:4:java.lang.Object removeEntry(int):305:308 -> c
    5:11:void shiftKeys(int):387:393 -> c
    5:11:java.lang.Object removeEntry(int):309 -> c
    12:12:java.lang.Object removeEntry(int):310:310 -> c
    13:19:void shiftKeys(int):396:402 -> c
    13:19:java.lang.Object removeEntry(int):309 -> c
    20:20:void shiftKeys(int):398:398 -> c
    20:20:java.lang.Object removeEntry(int):309 -> c
    1:6:void clear():751:756 -> clear
    1:12:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap clone():1701:1712 -> clone
    1:12:java.lang.Object clone():85 -> clone
    13:13:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap clone():1703:1703 -> clone
    13:13:java.lang.Object clone():85 -> clone
    1:11:boolean containsKey(java.lang.Object):718:728 -> containsKey
    1:5:boolean containsValue(java.lang.Object):734:738 -> containsValue
    1:2:java.lang.Object firstKey():927:928 -> firstKey
    3:3:java.lang.Object firstKey():927:927 -> firstKey
    1:11:java.lang.Object get(java.lang.Object):701:711 -> get
    1:1:int realSize():291:291 -> hashCode
    1:1:int hashCode():1729 -> hashCode
    2:10:int hashCode():1730:1738 -> hashCode
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectSortedMap headMap(java.lang.Object):959:959 -> headMap
    1:1:java.util.SortedMap headMap(java.lang.Object):85 -> headMap
    1:1:boolean isEmpty():766:766 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet keySet():1488:1489 -> keySet
    1:2:java.util.Set keySet():85 -> keySet
    1:2:java.lang.Object lastKey():938:939 -> lastKey
    3:3:java.lang.Object lastKey():938:938 -> lastKey
    1:26:int insert(java.lang.Object,java.lang.Object):337:362 -> put
    1:26:java.lang.Object put(java.lang.Object,java.lang.Object):369 -> put
    27:29:java.lang.Object put(java.lang.Object,java.lang.Object):370:372 -> put
    1:1:void putAll(java.util.Map):327:327 -> putAll
    2:3:void ensureCapacity(int):295:296 -> putAll
    2:3:void putAll(java.util.Map):327 -> putAll
    4:4:int size():761:761 -> putAll
    4:4:void putAll(java.util.Map):329 -> putAll
    5:5:void putAll(java.util.Map):329:329 -> putAll
    6:7:void tryCapacity(long):300:301 -> putAll
    6:7:void putAll(java.util.Map):329 -> putAll
    8:20:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractObject2ObjectMap.putAll(java.util.Map):69:81 -> putAll
    8:20:void putAll(java.util.Map):332 -> putAll
    1:13:java.lang.Object remove(java.lang.Object):408:420 -> remove
    1:1:int size():761:761 -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectSortedMap subMap(java.lang.Object,java.lang.Object):969:969 -> subMap
    1:1:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):85 -> subMap
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectSortedMap tailMap(java.lang.Object):949:949 -> tailMap
    1:1:java.util.SortedMap tailMap(java.lang.Object):85 -> tailMap
    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection values():1529:1550 -> values
    1:22:java.util.Collection values():85 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$1 -> com.android.tools.r8.b.a.a.a.c.Q:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):1529:1529 -> <init>
    1:1:void clear():1547:1547 -> clear
    1:1:boolean contains(java.lang.Object):1542:1542 -> contains
    2:6:boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap.containsValue(java.lang.Object):734:738 -> contains
    2:6:boolean contains(java.lang.Object):1542 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1532:1532 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1532:1532 -> iterator
    2:2:java.util.Iterator iterator():1529 -> iterator
    1:1:int size():1537:1537 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$EntryIterator -> com.android.tools.r8.b.a.a.a.c.S$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapEntry entry -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> g
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):1181:1181 -> <init>
    1:1:void add(java.lang.Object):1178:1178 -> add
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapIterator.add(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):1174:1174 -> add
    2:2:void add(java.lang.Object):1178 -> add
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapEntry next():1190:1190 -> next
    1:1:java.lang.Object next():1178 -> next
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapEntry previous():1195:1195 -> previous
    1:1:java.lang.Object previous():1178 -> previous
    1:2:void remove():1200:1201 -> remove
    1:1:void set(java.lang.Object):1178:1178 -> set
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapIterator.set(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):1170:1170 -> set
    2:2:void set(java.lang.Object):1178 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$KeyIterator -> com.android.tools.r8.b.a.a.a.c.S$b:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> f
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):1412:1413 -> <init>
    1:1:void add(java.lang.Object):1409:1409 -> add
    1:1:java.lang.Object next():1418:1418 -> next
    1:1:java.lang.Object previous():1399:1399 -> previous
    1:1:void set(java.lang.Object):1404:1404 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$KeySet -> com.android.tools.r8.b.a.a.a.c.S$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):1422:1422 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$1):1422 -> <init>
    1:1:void clear():1450:1450 -> clear
    1:1:boolean contains(java.lang.Object):1438:1438 -> contains
    2:12:boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap.containsKey(java.lang.Object):718:728 -> contains
    2:12:boolean contains(java.lang.Object):1438 -> contains
    1:2:java.lang.Object first():1455:1456 -> first
    3:3:java.lang.Object first():1455:1455 -> first
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(java.lang.Object):1477:1477 -> headSet
    1:1:java.util.SortedSet headSet(java.lang.Object):1422 -> headSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1422:1422 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1422:1422 -> iterator
    3:3:java.util.Iterator iterator():1422:1422 -> iterator
    4:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():1428:1428 -> iterator
    1:2:java.lang.Object last():1461:1462 -> last
    3:3:java.lang.Object last():1461:1461 -> last
    1:3:boolean remove(java.lang.Object):1443:1445 -> remove
    1:1:int size():1433:1433 -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(java.lang.Object,java.lang.Object):1482:1482 -> subSet
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1422 -> subSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(java.lang.Object):1472:1472 -> tailSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):1422 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapEntry -> com.android.tools.r8.b.a.a.a.c.S$d:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> b
    int index -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap,int):805:806 -> <init>
    1:3:boolean equals(java.lang.Object):832:834 -> equals
    1:1:java.lang.Object getKey():814:814 -> getKey
    1:1:java.lang.Object getValue():819:819 -> getValue
    1:1:int hashCode():839:839 -> hashCode
    1:2:java.lang.Object setValue(java.lang.Object):824:825 -> setValue
    1:1:java.lang.String toString():844:844 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapEntrySet -> com.android.tools.r8.b.a.a.a.c.S$e:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):1228:1228 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$1):1228 -> <init>
    1:1:void clear():1330:1330 -> clear
    1:15:boolean contains(java.lang.Object):1268:1282 -> contains
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry first():1255:1256 -> first
    1:2:java.lang.Object first():1228 -> first
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry first():1255:1255 -> first
    3:3:java.lang.Object first():1228 -> first
    1:1:java.util.SortedSet headSet(java.lang.Object):1228:1228 -> headSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):1245:1245 -> headSet
    2:2:java.util.SortedSet headSet(java.lang.Object):1228 -> headSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1230:1230 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1230:1230 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1228 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1230:1230 -> iterator
    3:3:java.util.Iterator iterator():1228 -> iterator
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry last():1261:1262 -> last
    1:2:java.lang.Object last():1228 -> last
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry last():1261:1261 -> last
    3:3:java.lang.Object last():1228 -> last
    1:28:boolean remove(java.lang.Object):1289:1316 -> remove
    1:1:int size():1325:1325 -> size
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1228:1228 -> subSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):1240:1240 -> subSet
    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1228 -> subSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):1228:1228 -> tailSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry):1250:1250 -> tailSet
    2:2:java.util.SortedSet tailSet(java.lang.Object):1228 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$MapIterator -> com.android.tools.r8.b.a.a.a.c.S$f:
    int index -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> e
    int next -> b
    int curr -> c
    int prev -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):1014:1014 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$1):989 -> <init>
    2:23:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):995:1016 -> <init>
    2:23:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$1):989 -> <init>
    1:1:boolean hasNext():1048:1048 -> a
    1:1:int nextEntry():1084 -> a
    2:6:int nextEntry():1085:1089 -> a
    7:7:int nextEntry():1084:1084 -> a
    1:1:boolean hasPrevious():1052:1052 -> b
    1:1:int previousEntry():1093 -> b
    2:6:int previousEntry():1094:1098 -> b
    7:7:int previousEntry():1093:1093 -> b
    1:14:void ensureIndexKnown():1056:1069 -> c
    1:1:boolean hasNext():1048:1048 -> hasNext
    1:1:boolean hasPrevious():1052:1052 -> hasPrevious
    1:2:int nextIndex():1074:1075 -> nextIndex
    1:2:int previousIndex():1079:1080 -> previousIndex
    1:49:void remove():1102:1150 -> remove
    50:50:void remove():1144:1144 -> remove
    51:51:void remove():1103:1103 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap$ValueIterator -> com.android.tools.r8.b.a.a.a.c.S$g:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap this$0 -> f
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenCustomHashMap):1517:1518 -> <init>
    1:1:void add(java.lang.Object):1514:1514 -> add
    1:1:java.lang.Object next():1523:1523 -> next
    1:1:java.lang.Object previous():1504:1504 -> previous
    1:1:void set(java.lang.Object):1509:1509 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap -> com.android.tools.r8.b.a.a.a.c.V:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$Entry -> com.android.tools.r8.b.a.a.a.c.T:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectMap$FastEntrySet -> com.android.tools.r8.b.a.a.a.c.U:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectSortedMap -> com.android.tools.r8.b.a.a.a.c.X:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2ObjectSortedMap$FastSortedEntrySet -> com.android.tools.r8.b.a.a.a.c.W:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet -> com.android.tools.r8.b.a.a.a.c.Z:
    int size -> b
    1:4:void <init>(java.lang.Object[],int):104:107 -> <init>
    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet):29:29 -> a
    2:3:int findKey(java.lang.Object):111:112 -> a
    1:9:boolean add(java.lang.Object):166:174 -> add
    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet):29:29 -> b
    1:1:java.lang.Object[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet):29:29 -> c
    1:2:void clear():180:181 -> clear
    1:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet clone():204:208 -> clone
    1:5:java.lang.Object clone():29 -> clone
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet clone():206:206 -> clone
    6:6:java.lang.Object clone():29 -> clone
    1:1:boolean contains(java.lang.Object):144:144 -> contains
    1:1:boolean isEmpty():186:186 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():119:119 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():119:119 -> iterator
    2:2:java.util.Iterator iterator():29 -> iterator
    1:7:boolean remove(java.lang.Object):154:160 -> remove
    1:1:int size():149:149 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet$1 -> com.android.tools.r8.b.a.a.a.c.Y:
    int next -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet this$0 -> b
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArraySet):119:120 -> <init>
    1:1:boolean hasNext():124:124 -> hasNext
    1:1:boolean hasNext():124:124 -> next
    1:1:java.lang.Object next():129 -> next
    2:2:java.lang.Object next():130:130 -> next
    3:3:java.lang.Object next():129:129 -> next
    1:3:void remove():135:137 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectArrays -> com.android.tools.r8.b.a.a.a.c.aa:
    java.lang.Object[] EMPTY_ARRAY -> a
    1:1:void <clinit>():88:88 -> <clinit>
    1:2:java.lang.Object[] grow(java.lang.Object[],int,int):213:214 -> a
    3:5:java.lang.Object[] newArray(java.lang.Object[],int):106:108 -> a
    3:5:java.lang.Object[] grow(java.lang.Object[],int,int):215 -> a
    6:6:java.lang.Object[] grow(java.lang.Object[],int,int):216:216 -> a
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator -> com.android.tools.r8.b.a.a.a.c.ba:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection -> com.android.tools.r8.b.a.a.a.c.ca:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollections -> com.android.tools.r8.b.a.a.a.c.fa:
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection):383:383 -> a
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollections.unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection):383:383 -> a
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollections$EmptyCollection -> com.android.tools.r8.b.a.a.a.c.da:
    1:1:void <init>():39:39 -> <init>
    1:1:boolean addAll(java.util.Collection):81:81 -> addAll
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():55:55 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():55:55 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():38 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():55:55 -> iterator
    3:3:java.util.Iterator iterator():38 -> iterator
    1:1:boolean removeAll(java.util.Collection):86:86 -> removeAll
    1:1:boolean retainAll(java.util.Collection):91:91 -> retainAll
    1:1:java.lang.Object[] toArray():49:49 -> toArray
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollections$UnmodifiableCollection -> com.android.tools.r8.b.a.a.a.c.ea:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection collection -> a
    1:3:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection):276:278 -> <init>
    4:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectCollection):277:277 -> <init>
    1:1:boolean add(java.lang.Object):283:283 -> add
    1:1:boolean addAll(java.util.Collection):344:344 -> addAll
    1:1:void clear():324:324 -> clear
    1:1:boolean contains(java.lang.Object):303:303 -> contains
    1:1:boolean containsAll(java.util.Collection):339:339 -> containsAll
    1:1:boolean equals(java.lang.Object):370:370 -> equals
    1:1:int hashCode():364:364 -> hashCode
    1:1:boolean isEmpty():298:298 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():307:307 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():307:307 -> iterator
    2:2:java.util.Iterator iterator():272 -> iterator
    1:1:boolean remove(java.lang.Object):288:288 -> remove
    1:1:boolean removeAll(java.util.Collection):349:349 -> removeAll
    1:1:boolean retainAll(java.util.Collection):354:354 -> retainAll
    1:1:int size():293:293 -> size
    1:1:java.lang.Object[] toArray(java.lang.Object[]):329:329 -> toArray
    2:2:java.lang.Object[] toArray():334:334 -> toArray
    1:1:java.lang.String toString():359:359 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterable -> com.android.tools.r8.b.a.a.a.c.ga:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator -> com.android.tools.r8.b.a.a.a.c.ha:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterators -> com.android.tools.r8.b.a.a.a.c.ka:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterators$EmptyIterator EMPTY_ITERATOR -> a
    1:1:void <clinit>():103:103 -> <clinit>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator unmodifiable(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator):762:762 -> a
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterators$EmptyIterator -> com.android.tools.r8.b.a.a.a.c.ia:
    1:1:void <init>():42:42 -> <init>
    1:1:java.lang.Object clone():87:87 -> clone
    1:1:java.lang.Object next():57:57 -> next
    1:1:java.lang.Object previous():62:62 -> previous
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterators$UnmodifiableIterator -> com.android.tools.r8.b.a.a.a.c.ja:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator i -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator):739:740 -> <init>
    1:1:boolean hasNext():745:745 -> hasNext
    1:1:java.lang.Object next():750:750 -> next
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator -> com.android.tools.r8.b.a.a.a.c.la:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet -> com.android.tools.r8.b.a.a.a.c.ma:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSets -> com.android.tools.r8.b.a.a.a.c.oa:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSets$EmptySet EMPTY_SET -> a
    1:1:void <clinit>():70:70 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSets$EmptySet -> com.android.tools.r8.b.a.a.a.c.na:
    1:1:void <init>():42:42 -> <init>
    1:1:java.lang.Object clone():52:52 -> clone
    1:1:boolean equals(java.lang.Object):58:58 -> equals
    1:1:boolean remove(java.lang.Object):47:47 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet -> com.android.tools.r8.b.a.a.a.c.pa:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSets -> com.android.tools.r8.b.a.a.a.c.ra:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSets$EmptySet EMPTY_SET -> a
    1:1:void <clinit>():114:114 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSets$EmptySet -> com.android.tools.r8.b.a.a.a.c.qa:
    1:1:void <init>():43:43 -> <init>
    1:1:java.lang.Object clone():101:101 -> clone
    1:1:java.lang.Object first():86:86 -> first
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(java.lang.Object):75:75 -> headSet
    1:1:java.util.SortedSet headSet(java.lang.Object):40 -> headSet
    1:1:java.lang.Object last():91:91 -> last
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(java.lang.Object,java.lang.Object):69:69 -> subSet
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):40 -> subSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(java.lang.Object):81:81 -> tailSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):40 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanFunction -> com.android.tools.r8.b.a.a.a.c.sa:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanMap -> com.android.tools.r8.b.a.a.a.c.va:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanMap$Entry -> com.android.tools.r8.b.a.a.a.c.ta:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanMap$FastEntrySet -> com.android.tools.r8.b.a.a.a.c.ua:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap -> com.android.tools.r8.b.a.a.a.c.xa:
    java.lang.Object[] key -> b
    float f -> i
    boolean[] value -> c
    int size -> h
    boolean containsNullKey -> e
    int n -> f
    int maxFill -> g
    int mask -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keys -> k
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanMap$FastEntrySet entries -> j
    com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection values -> l
    1:9:void <init>(int,float):91:99 -> <init>
    1:9:void <init>():119 -> <init>
    1:1:boolean access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):49:49 -> a
    2:2:boolean access$400(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap,int):49:49 -> a
    3:7:boolean removeNullEntry():227:231 -> a
    8:23:int insert(java.lang.Object,boolean):248:263 -> a
    8:23:boolean put(java.lang.Object,boolean):270 -> a
    24:26:boolean put(java.lang.Object,boolean):271:273 -> a
    27:38:boolean removeBoolean(java.lang.Object):308:319 -> a
    39:43:boolean containsValue(boolean):359:363 -> a
    44:50:void rehash(int):916:922 -> a
    51:51:int realSize():205:205 -> a
    51:51:void rehash(int):923 -> a
    52:64:void rehash(int):924:936 -> a
    1:2:boolean removeEntry(int):219:220 -> b
    3:8:void shiftKeys(int):288:293 -> b
    3:8:boolean removeEntry(int):221 -> b
    9:9:boolean removeEntry(int):222:222 -> b
    10:15:void shiftKeys(int):296:301 -> b
    10:15:boolean removeEntry(int):221 -> b
    16:16:void shiftKeys(int):298:298 -> b
    16:16:boolean removeEntry(int):221 -> b
    17:27:boolean getBoolean(java.lang.Object):326:336 -> b
    1:4:void clear():376:379 -> clear
    1:10:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap clone():954:963 -> clone
    1:10:java.lang.Object clone():49 -> clone
    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap clone():956:956 -> clone
    11:11:java.lang.Object clone():49 -> clone
    1:10:boolean containsKey(java.lang.Object):343:352 -> containsKey
    1:1:int realSize():205:205 -> hashCode
    1:1:int hashCode():980 -> hashCode
    2:10:int hashCode():981:989 -> hashCode
    1:1:boolean isEmpty():389:389 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keySet():771:772 -> keySet
    1:2:java.util.Set keySet():49 -> keySet
    1:1:void putAll(java.util.Map):237:237 -> putAll
    2:3:void ensureCapacity(int):209:210 -> putAll
    2:3:void putAll(java.util.Map):237 -> putAll
    4:4:int size():384:384 -> putAll
    4:4:void putAll(java.util.Map):239 -> putAll
    5:5:void putAll(java.util.Map):239:239 -> putAll
    6:7:void tryCapacity(long):214:215 -> putAll
    6:7:void putAll(java.util.Map):239 -> putAll
    8:20:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.AbstractReference2BooleanMap.putAll(java.util.Map):82:94 -> putAll
    8:20:void putAll(java.util.Map):242 -> putAll
    1:1:int size():384:384 -> size
    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanCollection values():803:824 -> values
    1:22:java.util.Collection values():49 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$1 -> com.android.tools.r8.b.a.a.a.c.wa:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):803:803 -> <init>
    1:1:boolean contains(boolean):816:816 -> b
    1:1:void clear():821:821 -> clear
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator iterator():806:806 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.booleans.BooleanIterator iterator():806:806 -> iterator
    2:2:java.util.Iterator iterator():803 -> iterator
    1:1:int size():811:811 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$EntryIterator -> com.android.tools.r8.b.a.a.a.c.xa$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapEntry entry -> g
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):609:609 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$1):609 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapEntry next():614:614 -> next
    1:1:java.lang.Object next():609 -> next
    1:5:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapIterator.remove():585:589 -> remove
    1:5:void remove():619 -> remove
    6:11:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapIterator.shiftKeys(int):563:568 -> remove
    6:11:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapIterator.remove():589 -> remove
    6:11:void remove():619 -> remove
    12:13:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapIterator.remove():596:597 -> remove
    12:13:void remove():619 -> remove
    14:23:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapIterator.shiftKeys(int):571:580 -> remove
    14:23:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapIterator.remove():589 -> remove
    14:23:void remove():619 -> remove
    24:24:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapIterator.shiftKeys(int):573:573 -> remove
    24:24:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapIterator.remove():589 -> remove
    24:24:void remove():619 -> remove
    25:26:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapIterator.remove():592:593 -> remove
    25:26:void remove():619 -> remove
    27:27:void remove():620:620 -> remove
    28:28:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapIterator.remove():585:585 -> remove
    28:28:void remove():619 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$KeyIterator -> com.android.tools.r8.b.a.a.a.c.xa$b:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):730:731 -> <init>
    1:1:java.lang.Object next():736:736 -> next
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$KeySet -> com.android.tools.r8.b.a.a.a.c.xa$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):740:740 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$1):740 -> <init>
    1:1:void clear():765:765 -> clear
    1:1:boolean contains(java.lang.Object):753:753 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():743:743 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():743:743 -> iterator
    2:2:java.util.Iterator iterator():740 -> iterator
    1:3:boolean remove(java.lang.Object):758:760 -> remove
    1:1:int size():748:748 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapEntry -> com.android.tools.r8.b.a.a.a.c.xa$d:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> b
    int index -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap,int):428:429 -> <init>
    1:1:boolean getBooleanValue():442:442 -> a
    1:3:boolean equals(java.lang.Object):479:481 -> equals
    1:1:java.lang.Object getKey():437:437 -> getKey
    1:1:java.lang.Boolean getValue():461:461 -> getValue
    1:1:java.lang.Object getValue():423 -> getValue
    1:1:int hashCode():486:486 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):423:423 -> setValue
    2:2:java.lang.Boolean setValue(java.lang.Boolean):473:473 -> setValue
    2:2:java.lang.Object setValue(java.lang.Object):423 -> setValue
    3:4:boolean setValue(boolean):447:448 -> setValue
    3:4:java.lang.Boolean setValue(java.lang.Boolean):473 -> setValue
    3:4:java.lang.Object setValue(java.lang.Object):423 -> setValue
    5:5:java.lang.Boolean setValue(java.lang.Boolean):473:473 -> setValue
    5:5:java.lang.Object setValue(java.lang.Object):423 -> setValue
    1:1:java.lang.String toString():491:491 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapEntrySet -> com.android.tools.r8.b.a.a.a.c.xa$e:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):634:634 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$1):634 -> <init>
    1:1:void clear():710:710 -> clear
    1:16:boolean contains(java.lang.Object):646:661 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():636:636 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():636:636 -> iterator
    2:2:java.util.Iterator iterator():634 -> iterator
    1:29:boolean remove(java.lang.Object):668:696 -> remove
    1:1:int size():705:705 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$MapIterator -> com.android.tools.r8.b.a.a.a.c.xa$f:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList wrapped -> e
    int last -> b
    int pos -> a
    boolean mustReturnNullKey -> d
    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):496:519 -> <init>
    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$1):496 -> <init>
    1:1:boolean hasNext():527:527 -> a
    1:1:int nextEntry():531 -> a
    2:18:int nextEntry():532:548 -> a
    19:19:int nextEntry():531:531 -> a
    1:1:boolean hasNext():527:527 -> hasNext
    1:5:void remove():585:589 -> remove
    6:11:void shiftKeys(int):563:568 -> remove
    6:11:void remove():589 -> remove
    12:13:void remove():596:597 -> remove
    14:23:void shiftKeys(int):571:580 -> remove
    14:23:void remove():589 -> remove
    24:24:void shiftKeys(int):573:573 -> remove
    24:24:void remove():589 -> remove
    25:26:void remove():592:593 -> remove
    27:27:void remove():585:585 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap$ValueIterator -> com.android.tools.r8.b.a.a.a.c.xa$g:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap):785:786 -> <init>
    1:1:java.lang.Boolean next():797:797 -> next
    1:1:java.lang.Object next():784 -> next
    1:1:boolean nextBoolean():791:791 -> nextBoolean
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap -> com.android.tools.r8.b.a.a.a.c.Aa:
    java.lang.Object[] key -> b
    int[] value -> c
    int size -> d
    1:3:void <init>():70:72 -> <init>
    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap):37:37 -> a
    2:2:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap,java.lang.Object):37:37 -> a
    3:22:int put(java.lang.Object,int):283:302 -> a
    23:30:int removeInt(java.lang.Object):308:315 -> a
    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap):37:37 -> b
    2:4:int findKey(java.lang.Object):235:237 -> b
    5:6:boolean containsValue(int):270:271 -> b
    1:1:java.lang.Object[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap):37:37 -> c
    1:4:void clear():257:260 -> clear
    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap clone():344:349 -> clone
    1:6:java.lang.Object clone():37 -> clone
    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap clone():346:346 -> clone
    7:7:java.lang.Object clone():37 -> clone
    1:1:boolean containsKey(java.lang.Object):265:265 -> containsKey
    1:1:int[] access$200(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap):37:37 -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$FastEntrySet reference2IntEntrySet():231:231 -> e
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet reference2IntEntrySet():37 -> e
    1:4:int getInt(java.lang.Object):244:247 -> getInt
    1:1:boolean isEmpty():277:277 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keySet():321:321 -> keySet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keySet():321:321 -> keySet
    2:2:java.util.Set keySet():37 -> keySet
    1:1:int size():252:252 -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():326:326 -> values
    1:1:java.util.Collection values():37 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap$1 -> com.android.tools.r8.b.a.a.a.c.ya:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap$EntrySet -> com.android.tools.r8.b.a.a.a.c.Aa$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap):133:133 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap$1):133 -> <init>
    1:5:boolean contains(java.lang.Object):203:207 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():136:136 -> iterator
    2:2:java.util.Iterator iterator():133 -> iterator
    1:12:boolean remove(java.lang.Object):213:224 -> remove
    1:1:int size():197:197 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap$EntrySet$1 -> com.android.tools.r8.b.a.a.a.c.za:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap$EntrySet this$1 -> c
    int next -> b
    int curr -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntArrayMap$EntrySet):136:137 -> <init>
    1:1:boolean hasNext():141:141 -> hasNext
    1:1:boolean hasNext():141:141 -> next
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry next():147 -> next
    1:1:java.lang.Object next():136 -> next
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry next():148:148 -> next
    2:2:java.lang.Object next():136 -> next
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry next():147:147 -> next
    3:3:java.lang.Object next():136 -> next
    1:6:void remove():153:158 -> remove
    7:7:void remove():153:153 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntFunction -> com.android.tools.r8.b.a.a.a.c.Ba:
    int put(java.lang.Object,int) -> a
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap -> com.android.tools.r8.b.a.a.a.c.Da:
    float f -> l
    java.lang.Object[] key -> b
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values -> o
    int maxFill -> j
    int size -> k
    int n -> i
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSortedSet keys -> n
    int first -> f
    int last -> g
    int mask -> d
    long[] link -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap$FastSortedEntrySet entries -> m
    int[] value -> c
    boolean containsNullKey -> e
    1:1:void <init>(int,float):147:147 -> <init>
    2:56:void <init>(int,float):102:156 -> <init>
    57:57:void <init>(int,float):149:149 -> <init>
    58:58:void <init>(int,float):148:148 -> <init>
    1:1:int access$200(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):87:87 -> a
    2:2:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap,int):87:87 -> a
    3:8:int removeNullEntry():285:290 -> a
    9:33:int insert(java.lang.Object,int):307:331 -> a
    9:33:int put(java.lang.Object,int):338 -> a
    34:36:int put(java.lang.Object,int):339:341 -> a
    37:48:int removeInt(java.lang.Object):431:442 -> a
    49:72:void fixPointers(int,int):937:960 -> a
    1:5:boolean containsValue(int):754:758 -> b
    1:25:void fixPointers(int):899:923 -> c
    1:5:void clear():771:775 -> clear
    1:11:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap clone():1768:1778 -> clone
    1:11:java.lang.Object clone():87 -> clone
    12:12:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap clone():1770:1770 -> clone
    12:12:java.lang.Object clone():87 -> clone
    1:10:boolean containsKey(java.lang.Object):738:747 -> containsKey
    1:42:void rehash(int):1709:1750 -> d
    1:3:int removeEntry(int):276:278 -> e
    4:9:void shiftKeys(int):410:415 -> e
    4:9:int removeEntry(int):279 -> e
    10:10:int removeEntry(int):280:280 -> e
    11:17:void shiftKeys(int):418:424 -> e
    11:17:int removeEntry(int):279 -> e
    18:18:void shiftKeys(int):420:420 -> e
    18:18:int removeEntry(int):279 -> e
    19:20:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap$FastSortedEntrySet reference2IntEntrySet():1422:1423 -> e
    19:20:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet reference2IntEntrySet():87 -> e
    21:22:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap$FastSortedEntrySet reference2IntEntrySet():1422:1423 -> e
    1:2:java.lang.Object firstKey():970:971 -> firstKey
    3:3:java.lang.Object firstKey():970:970 -> firstKey
    1:11:int getInt(java.lang.Object):721:731 -> getInt
    1:1:int realSize():262:262 -> hashCode
    1:1:int hashCode():1795 -> hashCode
    2:10:int hashCode():1796:1804 -> hashCode
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap headMap(java.lang.Object):1002:1002 -> headMap
    1:1:java.util.SortedMap headMap(java.lang.Object):87 -> headMap
    1:1:boolean isEmpty():785:785 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSortedSet keySet():1531:1532 -> keySet
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keySet():87 -> keySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSortedSet keySet():1531:1532 -> keySet
    3:4:java.util.Set keySet():87 -> keySet
    1:2:java.lang.Object lastKey():981:982 -> lastKey
    3:3:java.lang.Object lastKey():981:981 -> lastKey
    1:1:void putAll(java.util.Map):296:296 -> putAll
    2:3:void ensureCapacity(int):266:267 -> putAll
    2:3:void putAll(java.util.Map):296 -> putAll
    4:4:int size():780:780 -> putAll
    4:4:void putAll(java.util.Map):298 -> putAll
    5:5:void putAll(java.util.Map):298:298 -> putAll
    6:7:void tryCapacity(long):271:272 -> putAll
    6:7:void putAll(java.util.Map):298 -> putAll
    8:8:void putAll(java.util.Map):301:301 -> putAll
    1:1:int size():780:780 -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap subMap(java.lang.Object,java.lang.Object):1012:1012 -> subMap
    1:1:java.util.SortedMap subMap(java.lang.Object,java.lang.Object):87 -> subMap
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap tailMap(java.lang.Object):992:992 -> tailMap
    1:1:java.util.SortedMap tailMap(java.lang.Object):87 -> tailMap
    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():1596:1617 -> values
    1:22:java.util.Collection values():87 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$1 -> com.android.tools.r8.b.a.a.a.c.Ca:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1596:1596 -> <init>
    1:1:void clear():1614:1614 -> clear
    1:1:boolean contains(int):1609:1609 -> d
    2:6:boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap.containsValue(int):754:758 -> d
    2:6:boolean contains(int):1609 -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():1599:1599 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():1599:1599 -> iterator
    2:2:java.util.Iterator iterator():1596 -> iterator
    1:1:int size():1604:1604 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$EntryIterator -> com.android.tools.r8.b.a.a.a.c.Da$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapEntry entry -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> g
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1222:1222 -> <init>
    1:1:void add(java.lang.Object):1219:1219 -> add
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapIterator.add(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry):1215:1215 -> add
    2:2:void add(java.lang.Object):1219 -> add
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapEntry next():1231:1231 -> next
    1:1:java.lang.Object next():1219 -> next
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapEntry previous():1236:1236 -> previous
    1:1:java.lang.Object previous():1219 -> previous
    1:2:void remove():1241:1242 -> remove
    1:1:void set(java.lang.Object):1219:1219 -> set
    2:2:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapIterator.set(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry):1211:1211 -> set
    2:2:void set(java.lang.Object):1219 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$KeyIterator -> com.android.tools.r8.b.a.a.a.c.Da$b:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> f
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1455:1456 -> <init>
    1:1:void add(java.lang.Object):1452:1452 -> add
    1:1:java.lang.Object next():1461:1461 -> next
    1:1:java.lang.Object previous():1442:1442 -> previous
    1:1:void set(java.lang.Object):1447:1447 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$KeySet -> com.android.tools.r8.b.a.a.a.c.Da$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1465:1465 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$1):1465 -> <init>
    1:1:void clear():1493:1493 -> clear
    1:1:boolean contains(java.lang.Object):1481:1481 -> contains
    2:11:boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap.containsKey(java.lang.Object):738:747 -> contains
    2:11:boolean contains(java.lang.Object):1481 -> contains
    1:2:java.lang.Object first():1498:1499 -> first
    3:3:java.lang.Object first():1498:1498 -> first
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSortedSet headSet(java.lang.Object):1520:1520 -> headSet
    1:1:java.util.SortedSet headSet(java.lang.Object):1465 -> headSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():1471:1471 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1465 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator iterator():1471:1471 -> iterator
    2:2:java.util.Iterator iterator():1465 -> iterator
    1:2:java.lang.Object last():1504:1505 -> last
    3:3:java.lang.Object last():1504:1504 -> last
    1:3:boolean remove(java.lang.Object):1486:1488 -> remove
    1:1:int size():1476:1476 -> size
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSortedSet subSet(java.lang.Object,java.lang.Object):1525:1525 -> subSet
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1465 -> subSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSortedSet tailSet(java.lang.Object):1515:1515 -> tailSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):1465 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapEntry -> com.android.tools.r8.b.a.a.a.c.Da$d:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> b
    int index -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap,int):824:825 -> <init>
    1:1:int getIntValue():838:838 -> e
    1:3:boolean equals(java.lang.Object):875:877 -> equals
    1:1:java.lang.Object getKey():833:833 -> getKey
    1:1:java.lang.Integer getValue():857:857 -> getValue
    1:1:java.lang.Object getValue():819 -> getValue
    1:1:int hashCode():882:882 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):819:819 -> setValue
    2:2:java.lang.Integer setValue(java.lang.Integer):869:869 -> setValue
    2:2:java.lang.Object setValue(java.lang.Object):819 -> setValue
    3:4:int setValue(int):843:844 -> setValue
    3:4:java.lang.Integer setValue(java.lang.Integer):869 -> setValue
    3:4:java.lang.Object setValue(java.lang.Object):819 -> setValue
    5:5:java.lang.Integer setValue(java.lang.Integer):869:869 -> setValue
    5:5:java.lang.Object setValue(java.lang.Object):819 -> setValue
    1:1:java.lang.String toString():887:887 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapEntrySet -> com.android.tools.r8.b.a.a.a.c.Da$e:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1269:1269 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$1):1269 -> <init>
    1:1:void clear():1373:1373 -> clear
    1:16:boolean contains(java.lang.Object):1309:1324 -> contains
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry first():1296:1297 -> first
    1:2:java.lang.Object first():1269 -> first
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry first():1296:1296 -> first
    3:3:java.lang.Object first():1269 -> first
    1:1:java.util.SortedSet headSet(java.lang.Object):1269:1269 -> headSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet headSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry):1286:1286 -> headSet
    2:2:java.util.SortedSet headSet(java.lang.Object):1269 -> headSet
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1271:1271 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1271:1271 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():1269 -> iterator
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():1271:1271 -> iterator
    3:3:java.util.Iterator iterator():1269 -> iterator
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry last():1302:1303 -> last
    1:2:java.lang.Object last():1269 -> last
    3:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry last():1302:1302 -> last
    3:3:java.lang.Object last():1269 -> last
    1:29:boolean remove(java.lang.Object):1331:1359 -> remove
    1:1:int size():1368:1368 -> size
    1:1:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1269:1269 -> subSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet subSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry):1281:1281 -> subSet
    2:2:java.util.SortedSet subSet(java.lang.Object,java.lang.Object):1269 -> subSet
    1:1:java.util.SortedSet tailSet(java.lang.Object):1269:1269 -> tailSet
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSortedSet tailSet(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry):1291:1291 -> tailSet
    2:2:java.util.SortedSet tailSet(java.lang.Object):1269 -> tailSet
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$MapIterator -> com.android.tools.r8.b.a.a.a.c.Da$f:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> e
    int index -> d
    int next -> b
    int curr -> c
    int prev -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1057:1057 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$1):1032 -> <init>
    2:23:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1038:1059 -> <init>
    2:23:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$1):1032 -> <init>
    1:1:boolean hasNext():1091:1091 -> a
    1:1:int nextEntry():1127 -> a
    2:6:int nextEntry():1128:1132 -> a
    7:7:int nextEntry():1127:1127 -> a
    1:1:boolean hasPrevious():1095:1095 -> c
    1:1:int previousEntry():1136 -> c
    2:6:int previousEntry():1137:1141 -> c
    7:7:int previousEntry():1136:1136 -> c
    1:14:void ensureIndexKnown():1099:1112 -> d
    1:1:boolean hasNext():1091:1091 -> hasNext
    1:1:boolean hasPrevious():1095:1095 -> hasPrevious
    1:2:int nextIndex():1117:1118 -> nextIndex
    1:2:int previousIndex():1122:1123 -> previousIndex
    1:47:void remove():1145:1191 -> remove
    48:48:void remove():1185:1185 -> remove
    49:49:void remove():1146:1146 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap$ValueIterator -> com.android.tools.r8.b.a.a.a.c.Da$g:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap this$0 -> f
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntLinkedOpenHashMap):1578:1579 -> <init>
    1:1:void add(java.lang.Object):1544:1544 -> add
    2:2:void add(java.lang.Integer):1565:1565 -> add
    2:2:void add(java.lang.Object):1544 -> add
    1:1:int previousInt():1547:1547 -> b
    1:1:java.lang.Integer next():1590:1590 -> next
    1:1:java.lang.Object next():1544 -> next
    1:1:int nextInt():1584:1584 -> nextInt
    1:1:java.lang.Integer previous():1553:1553 -> previous
    1:1:java.lang.Object previous():1544 -> previous
    1:1:void set(java.lang.Object):1544:1544 -> set
    2:2:void set(java.lang.Integer):1559:1559 -> set
    2:2:void set(java.lang.Object):1544 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap -> com.android.tools.r8.b.a.a.a.c.Ga:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet reference2IntEntrySet() -> e
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$Entry -> com.android.tools.r8.b.a.a.a.c.Ea:
    int getIntValue() -> e
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$FastEntrySet -> com.android.tools.r8.b.a.a.a.c.Fa:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap -> com.android.tools.r8.b.a.a.a.c.Ia:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$FastEntrySet entries -> j
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values -> l
    java.lang.Object[] key -> b
    float f -> i
    int[] value -> c
    int size -> h
    boolean containsNullKey -> e
    int n -> f
    int maxFill -> g
    int mask -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keys -> k
    1:9:void <init>(int,float):91:99 -> <init>
    10:10:void <init>(int,float):93:93 -> <init>
    11:11:void <init>(int,float):92:92 -> <init>
    12:12:void <init>(int):110:110 -> <init>
    13:13:void <init>():119:119 -> <init>
    1:1:int access$300(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):49:49 -> a
    2:2:int access$400(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap,int):49:49 -> a
    3:7:int removeNullEntry():227:231 -> a
    8:23:int insert(java.lang.Object,int):248:263 -> a
    8:23:int put(java.lang.Object,int):270 -> a
    24:26:int put(java.lang.Object,int):271:273 -> a
    27:38:int removeInt(java.lang.Object):353:364 -> a
    1:5:boolean containsValue(int):404:408 -> b
    1:7:void rehash(int):961:967 -> c
    8:8:int realSize():205:205 -> c
    8:8:void rehash(int):968 -> c
    9:21:void rehash(int):969:981 -> c
    1:4:void clear():421:424 -> clear
    1:10:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap clone():999:1008 -> clone
    1:10:java.lang.Object clone():49 -> clone
    11:11:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap clone():1001:1001 -> clone
    11:11:java.lang.Object clone():49 -> clone
    1:10:boolean containsKey(java.lang.Object):388:397 -> containsKey
    1:2:int removeEntry(int):219:220 -> d
    3:8:void shiftKeys(int):333:338 -> d
    3:8:int removeEntry(int):221 -> d
    9:9:int removeEntry(int):222:222 -> d
    10:15:void shiftKeys(int):341:346 -> d
    10:15:int removeEntry(int):221 -> d
    16:16:void shiftKeys(int):343:343 -> d
    16:16:int removeEntry(int):221 -> d
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap$FastEntrySet reference2IntEntrySet():761:762 -> e
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectSet reference2IntEntrySet():49 -> e
    1:11:int getInt(java.lang.Object):371:381 -> getInt
    1:1:int realSize():205:205 -> hashCode
    1:1:int hashCode():1025 -> hashCode
    2:10:int hashCode():1026:1034 -> hashCode
    1:1:boolean isEmpty():434:434 -> isEmpty
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keySet():816:817 -> keySet
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet keySet():816:817 -> keySet
    3:4:java.util.Set keySet():49 -> keySet
    1:1:void putAll(java.util.Map):237:237 -> putAll
    2:3:void ensureCapacity(int):209:210 -> putAll
    2:3:void putAll(java.util.Map):237 -> putAll
    4:4:int size():429:429 -> putAll
    4:4:void putAll(java.util.Map):239 -> putAll
    5:5:void putAll(java.util.Map):239:239 -> putAll
    6:7:void tryCapacity(long):214:215 -> putAll
    6:7:void putAll(java.util.Map):239 -> putAll
    8:8:void putAll(java.util.Map):242:242 -> putAll
    1:1:int size():429:429 -> size
    1:22:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntCollection values():848:869 -> values
    1:22:java.util.Collection values():49 -> values
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$1 -> com.android.tools.r8.b.a.a.a.c.Ha:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):848:848 -> <init>
    1:1:void clear():866:866 -> clear
    1:1:boolean contains(int):861:861 -> d
    2:6:boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap.containsValue(int):404:408 -> d
    2:6:boolean contains(int):861 -> d
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():851:851 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.IntIterator iterator():851:851 -> iterator
    2:2:java.util.Iterator iterator():848 -> iterator
    1:1:int size():856:856 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$EntryIterator -> com.android.tools.r8.b.a.a.a.c.Ia$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> h
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapEntry entry -> g
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):654:654 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$1):654 -> <init>
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapEntry next():659:659 -> next
    1:1:java.lang.Object next():654 -> next
    1:5:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapIterator.remove():630:634 -> remove
    1:5:void remove():664 -> remove
    6:11:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapIterator.shiftKeys(int):608:613 -> remove
    6:11:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapIterator.remove():634 -> remove
    6:11:void remove():664 -> remove
    12:13:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapIterator.remove():641:642 -> remove
    12:13:void remove():664 -> remove
    14:23:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapIterator.shiftKeys(int):616:625 -> remove
    14:23:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapIterator.remove():634 -> remove
    14:23:void remove():664 -> remove
    24:24:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapIterator.shiftKeys(int):618:618 -> remove
    24:24:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapIterator.remove():634 -> remove
    24:24:void remove():664 -> remove
    25:26:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapIterator.remove():637:638 -> remove
    25:26:void remove():664 -> remove
    27:27:void remove():665:665 -> remove
    28:28:void com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapIterator.remove():630:630 -> remove
    28:28:void remove():664 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$KeyIterator -> com.android.tools.r8.b.a.a.a.c.Ia$b:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):775:776 -> <init>
    1:1:java.lang.Object next():781:781 -> next
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$KeySet -> com.android.tools.r8.b.a.a.a.c.Ia$c:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):785:785 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$1):785 -> <init>
    1:1:void clear():810:810 -> clear
    1:1:boolean contains(java.lang.Object):798:798 -> contains
    2:11:boolean com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap.containsKey(java.lang.Object):388:397 -> contains
    2:11:boolean contains(java.lang.Object):798 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():788:788 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():788:788 -> iterator
    2:2:java.util.Iterator iterator():785 -> iterator
    1:3:boolean remove(java.lang.Object):803:805 -> remove
    1:1:int size():793:793 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapEntry -> com.android.tools.r8.b.a.a.a.c.Ia$d:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> b
    int index -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap,int):473:474 -> <init>
    1:1:int getIntValue():487:487 -> e
    1:3:boolean equals(java.lang.Object):524:526 -> equals
    1:1:java.lang.Object getKey():482:482 -> getKey
    1:1:java.lang.Integer getValue():506:506 -> getValue
    1:1:java.lang.Object getValue():468 -> getValue
    1:1:int hashCode():531:531 -> hashCode
    1:1:java.lang.Object setValue(java.lang.Object):468:468 -> setValue
    2:2:java.lang.Integer setValue(java.lang.Integer):518:518 -> setValue
    2:2:java.lang.Object setValue(java.lang.Object):468 -> setValue
    3:4:int setValue(int):492:493 -> setValue
    3:4:java.lang.Integer setValue(java.lang.Integer):518 -> setValue
    3:4:java.lang.Object setValue(java.lang.Object):468 -> setValue
    5:5:java.lang.Integer setValue(java.lang.Integer):518:518 -> setValue
    5:5:java.lang.Object setValue(java.lang.Object):468 -> setValue
    1:1:java.lang.String toString():536:536 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapEntrySet -> com.android.tools.r8.b.a.a.a.c.Ia$e:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):679:679 -> <init>
    1:1:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$1):679 -> <init>
    1:1:void clear():755:755 -> clear
    1:16:boolean contains(java.lang.Object):691:706 -> contains
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():681:681 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():681:681 -> iterator
    2:2:java.util.Iterator iterator():679 -> iterator
    1:29:boolean remove(java.lang.Object):713:741 -> remove
    1:1:int size():750:750 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$MapIterator -> com.android.tools.r8.b.a.a.a.c.Ia$f:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList wrapped -> e
    int last -> b
    int pos -> a
    boolean mustReturnNullKey -> d
    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):541:564 -> <init>
    1:24:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$1):541 -> <init>
    1:1:boolean hasNext():572:572 -> a
    1:1:int nextEntry():576 -> a
    2:18:int nextEntry():577:593 -> a
    19:19:int nextEntry():576:576 -> a
    1:1:boolean hasNext():572:572 -> hasNext
    1:5:void remove():630:634 -> remove
    6:11:void shiftKeys(int):608:613 -> remove
    6:11:void remove():634 -> remove
    12:13:void remove():641:642 -> remove
    14:23:void shiftKeys(int):616:625 -> remove
    14:23:void remove():634 -> remove
    24:24:void shiftKeys(int):618:618 -> remove
    24:24:void remove():634 -> remove
    25:26:void remove():637:638 -> remove
    27:27:void remove():630:630 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap$ValueIterator -> com.android.tools.r8.b.a.a.a.c.Ia$g:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap this$0 -> g
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap):830:831 -> <init>
    1:1:java.lang.Integer next():842:842 -> next
    1:1:java.lang.Object next():829 -> next
    1:1:int nextInt():836:836 -> nextInt
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap -> com.android.tools.r8.b.a.a.a.c.Ka:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntSortedMap$FastSortedEntrySet -> com.android.tools.r8.b.a.a.a.c.Ja:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList -> com.android.tools.r8.b.a.a.a.c.Ma:
    java.lang.Object[] a -> b
    boolean wrapped -> a
    int size -> c
    1:4:void <init>(int):96:99 -> <init>
    5:5:void <init>(int):97:97 -> <init>
    1:6:void removeElements(int,int):453:458 -> a
    1:5:void add(int,java.lang.Object):299:303 -> add
    6:7:boolean add(java.lang.Object):309:310 -> add
    1:2:void clear():365:366 -> clear
    1:3:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList clone():553:555 -> clone
    1:3:java.lang.Object clone():57 -> clone
    1:7:void grow(int):285:291 -> f
    1:2:java.lang.Object get(int):317:318 -> get
    3:3:java.lang.Object get(int):317:317 -> get
    1:2:int indexOf(java.lang.Object):323:324 -> indexOf
    1:1:boolean isEmpty():385:385 -> isEmpty
    1:2:int lastIndexOf(java.lang.Object):330:331 -> lastIndexOf
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int):497:498 -> listIterator
    3:4:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectListIterator listIterator(int):497:498 -> listIterator
    3:4:java.util.ListIterator listIterator(int):57 -> listIterator
    1:2:int indexOf(java.lang.Object):323:324 -> remove
    1:2:boolean remove(java.lang.Object):348 -> remove
    3:3:boolean remove(java.lang.Object):350:350 -> remove
    4:8:java.lang.Object remove(int):337:341 -> remove
    9:9:java.lang.Object remove(int):337:337 -> remove
    1:7:boolean removeAll(java.util.Collection):485:491 -> removeAll
    1:3:java.lang.Object set(int,java.lang.Object):357:359 -> set
    4:4:java.lang.Object set(int,java.lang.Object):357:357 -> set
    1:1:int size():372:372 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList$1 -> com.android.tools.r8.b.a.a.a.c.La:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList this$0 -> d
    int last -> b
    int val$index -> c
    int pos -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList,int):498:499 -> <init>
    1:2:void add(java.lang.Object):528:529 -> add
    1:1:boolean hasNext():502:502 -> hasNext
    1:1:boolean hasPrevious():506:506 -> hasPrevious
    1:1:boolean hasNext():502:502 -> next
    1:1:java.lang.Object next():510 -> next
    2:2:java.lang.Object next():511:511 -> next
    3:3:java.lang.Object next():510:510 -> next
    1:1:int nextIndex():520:520 -> nextIndex
    1:1:boolean hasPrevious():506:506 -> previous
    1:1:java.lang.Object previous():515 -> previous
    2:2:java.lang.Object previous():516:516 -> previous
    3:3:java.lang.Object previous():515:515 -> previous
    1:1:int previousIndex():524:524 -> previousIndex
    1:9:void remove():538:546 -> remove
    10:10:void remove():538:538 -> remove
    1:2:void set(java.lang.Object):533:534 -> set
    3:3:void set(java.lang.Object):533:533 -> set
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet -> com.android.tools.r8.b.a.a.a.c.Oa:
    int size -> b
    1:4:void <init>(java.lang.Object[],int):104:107 -> <init>
    1:1:int access$000(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet):29:29 -> a
    2:3:int findKey(java.lang.Object):111:112 -> a
    1:9:boolean add(java.lang.Object):166:174 -> add
    1:1:int access$010(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet):29:29 -> b
    1:1:java.lang.Object[] access$100(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet):29:29 -> c
    1:2:void clear():180:181 -> clear
    1:5:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet clone():204:208 -> clone
    1:5:java.lang.Object clone():29 -> clone
    6:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet clone():206:206 -> clone
    6:6:java.lang.Object clone():29 -> clone
    1:1:boolean contains(java.lang.Object):144:144 -> contains
    1:1:boolean isEmpty():186:186 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():119:119 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():119:119 -> iterator
    2:2:java.util.Iterator iterator():29 -> iterator
    1:7:boolean remove(java.lang.Object):154:160 -> remove
    1:1:int size():149:149 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet$1 -> com.android.tools.r8.b.a.a.a.c.Na:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet this$0 -> b
    int next -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArraySet):119:120 -> <init>
    1:1:boolean hasNext():124:124 -> hasNext
    1:1:boolean hasNext():124:124 -> next
    1:1:java.lang.Object next():129 -> next
    2:2:java.lang.Object next():130:130 -> next
    3:3:java.lang.Object next():129:129 -> next
    1:3:void remove():135:137 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection -> com.android.tools.r8.b.a.a.a.c.Pa:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollections$EmptyCollection -> com.android.tools.r8.b.a.a.a.c.Qa:
    1:1:void <init>():39:39 -> <init>
    1:1:boolean addAll(java.util.Collection):81:81 -> addAll
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():55:55 -> iterator
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():38 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator iterator():55:55 -> iterator
    2:2:java.util.Iterator iterator():38 -> iterator
    1:1:boolean removeAll(java.util.Collection):86:86 -> removeAll
    1:1:boolean retainAll(java.util.Collection):91:91 -> retainAll
    1:1:java.lang.Object[] toArray():49:49 -> toArray
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollections$UnmodifiableCollection -> com.android.tools.r8.b.a.a.a.c.Ra:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection collection -> a
    1:3:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection):276:278 -> <init>
    4:4:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceCollection):277:277 -> <init>
    1:1:boolean add(java.lang.Object):283:283 -> add
    1:1:boolean addAll(java.util.Collection):344:344 -> addAll
    1:1:void clear():324:324 -> clear
    1:1:boolean contains(java.lang.Object):303:303 -> contains
    1:1:boolean containsAll(java.util.Collection):339:339 -> containsAll
    1:1:boolean equals(java.lang.Object):370:370 -> equals
    1:1:int hashCode():364:364 -> hashCode
    1:1:boolean isEmpty():298:298 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():307:307 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():307:307 -> iterator
    2:2:java.util.Iterator iterator():272 -> iterator
    1:1:boolean remove(java.lang.Object):288:288 -> remove
    1:1:boolean removeAll(java.util.Collection):349:349 -> removeAll
    1:1:boolean retainAll(java.util.Collection):354:354 -> retainAll
    1:1:int size():293:293 -> size
    1:1:java.lang.Object[] toArray(java.lang.Object[]):329:329 -> toArray
    2:2:java.lang.Object[] toArray():334:334 -> toArray
    1:1:java.lang.String toString():359:359 -> toString
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceList -> com.android.tools.r8.b.a.a.a.c.Sa:
    void removeElements(int,int) -> a
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet -> com.android.tools.r8.b.a.a.a.c.Ua:
    java.lang.Object[] key -> a
    float f -> g
    int size -> f
    int n -> d
    int maxFill -> e
    int mask -> b
    boolean containsNull -> c
    1:8:void <init>(int,float):77:84 -> <init>
    1:8:void <init>():104 -> <init>
    1:14:boolean add(java.lang.Object):268:281 -> add
    1:1:boolean addAll(java.util.Collection):255:255 -> addAll
    2:3:void ensureCapacity(int):243:244 -> addAll
    2:3:boolean addAll(java.util.Collection):255 -> addAll
    4:4:int size():380:380 -> addAll
    4:4:boolean addAll(java.util.Collection):258 -> addAll
    5:5:boolean addAll(java.util.Collection):258:258 -> addAll
    6:7:void tryCapacity(long):248:249 -> addAll
    6:7:boolean addAll(java.util.Collection):258 -> addAll
    8:8:boolean addAll(java.util.Collection):261:261 -> addAll
    1:4:void clear():372:375 -> clear
    1:6:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet clone():640:645 -> clone
    1:6:java.lang.Object clone():40 -> clone
    7:7:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet clone():642:642 -> clone
    7:7:java.lang.Object clone():40 -> clone
    1:9:boolean contains(java.lang.Object):350:358 -> contains
    1:5:void rehash(int):607:611 -> d
    6:6:int realSize():239:239 -> d
    6:6:void rehash(int):612 -> d
    7:16:void rehash(int):613:622 -> d
    1:1:boolean removeEntry(int):314:314 -> e
    2:7:void shiftKeys(int):297:302 -> e
    2:7:boolean removeEntry(int):315 -> e
    8:8:boolean removeEntry(int):316:316 -> e
    9:13:void shiftKeys(int):305:309 -> e
    9:13:boolean removeEntry(int):315 -> e
    14:14:void shiftKeys(int):307:307 -> e
    14:14:boolean removeEntry(int):315 -> e
    1:1:int realSize():239:239 -> hashCode
    1:1:int hashCode():662 -> hashCode
    2:4:int hashCode():663:665 -> hashCode
    1:1:boolean isEmpty():385:385 -> isEmpty
    1:1:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():515:515 -> iterator
    2:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.ObjectIterator iterator():515:515 -> iterator
    2:2:java.util.Iterator iterator():40 -> iterator
    1:1:boolean remove(java.lang.Object):332:332 -> remove
    2:5:boolean removeNullEntry():321:324 -> remove
    2:5:boolean remove(java.lang.Object):332 -> remove
    6:13:boolean remove(java.lang.Object):336:343 -> remove
    1:1:int size():380:380 -> size
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet$1 -> com.android.tools.r8.b.a.a.a.c.Ta:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet$SetIterator -> com.android.tools.r8.b.a.a.a.c.Ua$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet this$0 -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceArrayList wrapped -> e
    int last -> b
    int pos -> a
    boolean mustReturnNull -> d
    1:21:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet):414:434 -> <init>
    1:21:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet,com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet$1):414 -> <init>
    1:1:boolean hasNext():442:442 -> hasNext
    1:1:boolean hasNext():442:442 -> next
    1:1:java.lang.Object next():446 -> next
    2:15:java.lang.Object next():447:460 -> next
    16:16:java.lang.Object next():446:446 -> next
    1:5:void remove():496:500 -> remove
    6:11:void shiftKeys(int):475:480 -> remove
    6:11:void remove():500 -> remove
    12:13:void remove():507:508 -> remove
    14:22:void shiftKeys(int):483:491 -> remove
    14:22:void remove():500 -> remove
    23:23:void shiftKeys(int):485:485 -> remove
    23:23:void remove():500 -> remove
    24:25:void remove():503:504 -> remove
    26:26:void remove():496:496 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSet -> com.android.tools.r8.b.a.a.a.c.Va:
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSets -> com.android.tools.r8.b.a.a.a.c.Xa:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSets$EmptySet EMPTY_SET -> a
    1:1:void <clinit>():70:70 -> <clinit>
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSets$EmptySet -> com.android.tools.r8.b.a.a.a.c.Wa:
    1:1:void <init>():42:42 -> <init>
    1:1:java.lang.Object clone():52:52 -> clone
    1:1:boolean equals(java.lang.Object):58:58 -> equals
    1:1:boolean remove(java.lang.Object):47:47 -> remove
com.android.tools.r8.it.unimi.dsi.fastutil.objects.ReferenceSortedSet -> com.android.tools.r8.b.a.a.a.c.Ya:
com.android.tools.r8.jar.CfApplicationWriter -> com.android.tools.r8.c.b:
    com.android.tools.r8.graph.DexApplication application -> a
    java.lang.String proguardSeedsData -> i
    java.lang.String deadCode -> h
    com.android.tools.r8.graph.AppView appView -> b
    boolean $assertionsDisabled -> j
    com.android.tools.r8.graph.GraphLense graphLense -> c
    com.android.tools.r8.utils.InternalOptions options -> e
    com.android.tools.r8.naming.NamingLens namingLens -> d
    com.android.tools.r8.naming.ProguardMapSupplier proguardMapSupplier -> g
    com.android.tools.r8.dex.Marker marker -> f
    1:1:void <clinit>():62:62 -> <clinit>
    1:11:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.dex.Marker,java.lang.String,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,java.lang.String,com.android.tools.r8.naming.ProguardMapSupplier):90:100 -> <init>
    1:5:void write(com.android.tools.r8.ClassFileConsumer,java.util.concurrent.ExecutorService):104:108 -> a
    6:27:void writeApplication(com.android.tools.r8.ClassFileConsumer,java.util.concurrent.ExecutorService):114:135 -> a
    28:28:void writeApplication(com.android.tools.r8.ClassFileConsumer,java.util.concurrent.ExecutorService):128:128 -> a
    29:32:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):140:143 -> a
    33:38:int getClassFileVersion(com.android.tools.r8.graph.DexProgramClass):198:203 -> a
    33:38:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):144 -> a
    39:53:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):145:159 -> a
    54:65:com.android.tools.r8.com.google.common.collect.ImmutableMap getAnnotationDefaults(com.android.tools.r8.graph.DexAnnotationSet):236:247 -> a
    54:65:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):159 -> a
    66:98:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):161:193 -> a
    99:103:void com.android.tools.r8.utils.ExceptionUtils.withConsumeResourceHandler(com.android.tools.r8.utils.Reporter,java.util.function.Consumer):30:34 -> a
    99:103:void writeClass(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.ClassFileConsumer,java.lang.String):193 -> a
    104:104:void lambda$writeClass$0(com.android.tools.r8.ClassFileConsumer,byte[],java.lang.String,com.android.tools.r8.DiagnosticsHandler):194:194 -> a
    105:112:com.android.tools.r8.graph.DexValue getSystemAnnotationValue(com.android.tools.r8.graph.DexAnnotationSet,com.android.tools.r8.graph.DexType):209:216 -> a
    113:125:java.lang.String getSignature(com.android.tools.r8.graph.DexAnnotationSet):220:232 -> a
    126:129:void writeField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.org.objectweb.asm.ClassWriter):273:276 -> a
    130:133:java.lang.Object getStaticValue(com.android.tools.r8.graph.DexEncodedField):266:269 -> a
    130:133:void writeField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.org.objectweb.asm.ClassWriter):277 -> a
    134:136:void writeField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.org.objectweb.asm.ClassWriter):278:280 -> a
    137:141:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.com.google.common.collect.ImmutableMap,int):288:292 -> a
    142:151:java.lang.String[] getExceptions(com.android.tools.r8.graph.DexAnnotationSet):251:260 -> a
    142:151:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.com.google.common.collect.ImmutableMap,int):292 -> a
    152:163:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.com.google.common.collect.ImmutableMap,int):293:304 -> a
    164:169:void writeCode(com.android.tools.r8.graph.Code,com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.utils.InternalOptions,int):402:407 -> a
    164:169:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.com.google.common.collect.ImmutableMap,int):304 -> a
    170:170:void writeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.org.objectweb.asm.ClassWriter,com.android.tools.r8.com.google.common.collect.ImmutableMap,int):306:306 -> a
    171:171:void writeParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.graph.ParameterAnnotationsList):315:315 -> a
    172:175:void writeParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.graph.ParameterAnnotationsList):314:317 -> a
    176:183:void writeParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.graph.ParameterAnnotationsList):316:323 -> a
    184:184:void writeParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.graph.ParameterAnnotationsList):321:321 -> a
    185:185:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor lambda$writeParameterAnnotations$1(com.android.tools.r8.org.objectweb.asm.MethodVisitor,int,java.lang.String,boolean):322:322 -> a
    186:195:void writeAnnotations(com.android.tools.r8.jar.CfApplicationWriter$AnnotationConsumer,com.android.tools.r8.graph.DexAnnotation[]):332:341 -> a
    196:201:void writeAnnotations(com.android.tools.r8.jar.CfApplicationWriter$AnnotationConsumer,com.android.tools.r8.graph.DexAnnotation[]):340:345 -> a
    202:203:void writeAnnotation(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,com.android.tools.r8.graph.DexEncodedAnnotation):351:352 -> a
    204:208:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):357:361 -> a
    209:227:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):360:378 -> a
    228:247:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):377:396 -> a
    248:248:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):394:394 -> a
    249:249:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):386:386 -> a
    250:250:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):384:384 -> a
    251:251:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):382:382 -> a
    252:252:void writeAnnotationElement(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,com.android.tools.r8.graph.DexValue):380:380 -> a
com.android.tools.r8.jar.CfApplicationWriter$AnnotationConsumer -> com.android.tools.r8.c.a:
    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visit(java.lang.String,boolean) -> a
com.android.tools.r8.jar.InliningConstraintVisitor -> com.android.tools.r8.c.c:
    boolean $assertionsDisabled -> j
    com.android.tools.r8.graph.GraphLense graphLense -> e
    com.android.tools.r8.graph.JarApplicationReader application -> c
    com.android.tools.r8.graph.AppView appView -> d
    com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget constraint -> i
    com.android.tools.r8.graph.DexType invocationContext -> h
    com.android.tools.r8.ir.optimize.InliningConstraints inliningConstraints -> f
    com.android.tools.r8.graph.DexEncodedMethod method -> g
    1:1:void <clinit>():37:37 -> <clinit>
    1:12:void <init>(com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):54:65 -> <init>
    1:1:void updateConstraint(com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget):77:77 -> a
    2:2:void accept(com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode):88:88 -> a
    3:3:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):93:93 -> a
    4:4:com.android.tools.r8.graph.DexField com.android.tools.r8.graph.JarApplicationReader.getField(java.lang.String,java.lang.String,java.lang.String):84:84 -> a
    4:4:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):93 -> a
    5:5:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):112:112 -> a
    6:6:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):100:100 -> a
    7:19:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):96:108 -> a
    20:20:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):104:104 -> a
    21:27:void visitLdcInsn(java.lang.Object):118:124 -> a
    28:96:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):130:198 -> a
    97:135:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):138:176 -> a
    136:185:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):152:201 -> a
    186:186:boolean noNeedToUseGraphLense(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):205:205 -> a
    187:187:void visitInsn(int):214:214 -> a
    188:189:void visitMultiANewArrayInsn(java.lang.String,int):224:225 -> a
    190:209:void visitTypeInsn(int,java.lang.String):230:249 -> a
    210:210:void visitTypeInsn(int,java.lang.String):237:237 -> a
    211:223:void visitTypeInsn(int,java.lang.String):233:245 -> a
    1:1:void disallowStaticInterfaceMethodCalls():69:69 -> d
    1:1:com.android.tools.r8.ir.optimize.Inliner$ConstraintWithTarget getConstraint():73:73 -> e
    1:1:boolean isFinished():83:83 -> f
com.android.tools.r8.jar.JarArgumentUseVisitor -> com.android.tools.r8.c.d:
    com.android.tools.r8.graph.ArgumentUse registry -> c
    int arguments -> e
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap slotToArgument -> d
    1:30:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.ArgumentUse):28:57 -> <init>
    1:2:void visitVarInsn(int,int):69:70 -> d
com.android.tools.r8.jar.JarRegisterEffectsVisitor -> com.android.tools.r8.c.e:
    com.android.tools.r8.graph.JarApplicationReader application -> e
    com.android.tools.r8.graph.UseRegistry registry -> d
    boolean $assertionsDisabled -> f
    com.android.tools.r8.graph.DexType clazz -> c
    1:1:void <clinit>():23:23 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.UseRegistry,com.android.tools.r8.graph.JarApplicationReader):30:33 -> <init>
    1:7:void visitTypeInsn(int,java.lang.String):38:44 -> a
    8:8:void visitMultiANewArrayInsn(java.lang.String,int):50:50 -> a
    9:19:void visitLdcInsn(java.lang.Object):55:65 -> a
    20:40:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):72:92 -> a
    41:41:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):82:82 -> a
    42:51:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):79:88 -> a
    52:52:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):86:86 -> a
    53:53:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):76:76 -> a
    54:54:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):98:98 -> a
    55:55:com.android.tools.r8.graph.DexField com.android.tools.r8.graph.JarApplicationReader.getField(java.lang.String,java.lang.String,java.lang.String):84:84 -> a
    55:55:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):98 -> a
    56:56:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):113:113 -> a
    57:57:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):104:104 -> a
    58:67:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):101:110 -> a
    68:68:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):107:107 -> a
    69:70:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):119:120 -> a
    71:71:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):119:119 -> a
com.android.tools.r8.jetbrains.kotlin.DeprecationLevel -> com.android.tools.r8.d.a.a:
    com.android.tools.r8.jetbrains.kotlin.DeprecationLevel ERROR -> b
    com.android.tools.r8.jetbrains.kotlin.DeprecationLevel WARNING -> a
    com.android.tools.r8.jetbrains.kotlin.DeprecationLevel HIDDEN -> c
    com.android.tools.r8.jetbrains.kotlin.DeprecationLevel[] $VALUES -> d
    1:1:void <init>(java.lang.String,int):58:58 -> <init>
    com.android.tools.r8.jetbrains.kotlin.DeprecationLevel[] values() -> a
com.android.tools.r8.jetbrains.kotlin.Function -> com.android.tools.r8.d.a.b:
com.android.tools.r8.jetbrains.kotlin.KotlinNullPointerException -> com.android.tools.r8.d.a.c:
    1:1:void <init>():9:9 -> <init>
com.android.tools.r8.jetbrains.kotlin.Lazy -> com.android.tools.r8.d.a.d:
com.android.tools.r8.jetbrains.kotlin.LazyKt -> com.android.tools.r8.d.a.f:
    1:38:com.android.tools.r8.jetbrains.kotlin.Lazy com.android.tools.r8.jetbrains.kotlin.LazyKt__LazyJVMKt.lazy(com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):0:37 -> a
    1:38:com.android.tools.r8.jetbrains.kotlin.Lazy lazy(com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):0 -> a
    39:39:com.android.tools.r8.jetbrains.kotlin.Lazy com.android.tools.r8.jetbrains.kotlin.LazyKt__LazyJVMKt.lazy(com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):36:36 -> a
    39:39:com.android.tools.r8.jetbrains.kotlin.Lazy lazy(com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):0 -> a
    40:40:com.android.tools.r8.jetbrains.kotlin.Lazy com.android.tools.r8.jetbrains.kotlin.LazyKt__LazyJVMKt.lazy(com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):35:35 -> a
    40:40:com.android.tools.r8.jetbrains.kotlin.Lazy lazy(com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):0 -> a
    41:62:com.android.tools.r8.jetbrains.kotlin.Lazy com.android.tools.r8.jetbrains.kotlin.LazyKt__LazyJVMKt.lazy(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):0:21 -> a
    41:62:com.android.tools.r8.jetbrains.kotlin.Lazy lazy(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):0 -> a
com.android.tools.r8.jetbrains.kotlin.LazyKt$WhenMappings -> com.android.tools.r8.d.a.e:
    int[] $EnumSwitchMapping$0 -> a
com.android.tools.r8.jetbrains.kotlin.LazyKt__LazyKt -> com.android.tools.r8.d.a.g:
com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode -> com.android.tools.r8.d.a.h:
    com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode PUBLICATION -> b
    com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode NONE -> c
    com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode SYNCHRONIZED -> a
    com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode[] $VALUES -> d
    1:1:void <init>(java.lang.String,int):49:49 -> <init>
    com.android.tools.r8.jetbrains.kotlin.LazyThreadSafetyMode[] values() -> a
com.android.tools.r8.jetbrains.kotlin.NoWhenBranchMatchedException -> com.android.tools.r8.d.a.i:
    1:1:void <init>():11:11 -> <init>
com.android.tools.r8.jetbrains.kotlin.Pair -> com.android.tools.r8.d.a.j:
    java.lang.Object second -> b
    java.lang.Object first -> a
    1:1:void <init>(java.lang.Object,java.lang.Object):26:26 -> <init>
    java.lang.Object component1() -> a
    java.lang.Object component2() -> b
    1:1:java.lang.String toString():34:34 -> toString
com.android.tools.r8.jetbrains.kotlin.SafePublicationLazyImpl -> com.android.tools.r8.d.a.k:
    java.util.concurrent.atomic.AtomicReferenceFieldUpdater valueUpdater -> c
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0 initializer -> a
    java.lang.Object _value -> b
    1:1:void <clinit>():124:124 -> <clinit>
    1:3:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):90:92 -> <init>
    1:17:java.lang.Object getValue():98:114 -> getValue
    1:1:boolean isInitialized():117:117 -> toString
    1:1:java.lang.String toString():119 -> toString
    2:18:java.lang.Object getValue():98:114 -> toString
    2:18:java.lang.String toString():119 -> toString
    19:19:java.lang.String toString():119:119 -> toString
com.android.tools.r8.jetbrains.kotlin.SynchronizedLazyImpl -> com.android.tools.r8.d.a.l:
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0 initializer -> a
    java.lang.Object _value -> b
    java.lang.Object lock -> c
    1:60:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0,java.lang.Object):0:59 -> <init>
    1:60:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0,java.lang.Object,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):55 -> <init>
    1:14:java.lang.Object getValue():63:76 -> getValue
    15:20:java.lang.Object getValue():69:74 -> getValue
    21:21:java.lang.Object getValue():69:69 -> getValue
    1:1:boolean isInitialized():82:82 -> toString
    1:1:java.lang.String toString():84 -> toString
    2:2:java.lang.String toString():84:84 -> toString
com.android.tools.r8.jetbrains.kotlin.TypeCastException -> com.android.tools.r8.d.a.m:
    1:1:void <init>(java.lang.String):11:11 -> <init>
com.android.tools.r8.jetbrains.kotlin.UNINITIALIZED_VALUE -> com.android.tools.r8.d.a.n:
    com.android.tools.r8.jetbrains.kotlin.UNINITIALIZED_VALUE INSTANCE -> a
    1:1:void <clinit>():71:71 -> <clinit>
    1:1:void <init>():71:71 -> <init>
com.android.tools.r8.jetbrains.kotlin.Unit -> com.android.tools.r8.d.a.o:
    com.android.tools.r8.jetbrains.kotlin.Unit INSTANCE -> a
    1:1:void <clinit>():22:22 -> <clinit>
    1:1:void <init>():22:22 -> <init>
com.android.tools.r8.jetbrains.kotlin.UnsafeLazyImpl -> com.android.tools.r8.d.a.p:
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0 initializer -> a
    java.lang.Object _value -> b
    1:3:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):74:76 -> <init>
    1:3:java.lang.Object getValue():80:82 -> getValue
    4:8:java.lang.Object getValue():81:85 -> getValue
    1:1:boolean isInitialized():88:88 -> toString
    1:1:java.lang.String toString():90 -> toString
    2:4:java.lang.Object getValue():80:82 -> toString
    2:4:java.lang.String toString():90 -> toString
    5:9:java.lang.Object getValue():81:85 -> toString
    5:9:java.lang.String toString():90 -> toString
    10:10:java.lang.String toString():90:90 -> toString
com.android.tools.r8.jetbrains.kotlin._Assertions -> com.android.tools.r8.d.a.q:
    boolean ENABLED -> a
    1:4:void <clinit>():11:14 -> <clinit>
    1:1:void <init>():11:11 -> <init>
com.android.tools.r8.jetbrains.kotlin.collections.AbstractCollection -> com.android.tools.r8.d.a.a.b:
    1:1:void <init>():13:13 -> <init>
    int getSize() -> c
    1:2:boolean contains(java.lang.Object):40:41 -> contains
    3:3:boolean contains(java.lang.Object):17:17 -> contains
    1:2:boolean containsAll(java.util.Collection):43:44 -> containsAll
    3:3:boolean containsAll(java.util.Collection):20:20 -> containsAll
    1:1:int size():13:13 -> isEmpty
    1:1:boolean isEmpty():22 -> isEmpty
    1:1:int size():13:13 -> size
    1:1:java.lang.Object[] toArray():31:31 -> toArray
    2:2:java.lang.Object[] toArray(java.lang.Object[]):37:37 -> toArray
    1:1:java.lang.String toString():24:24 -> toString
com.android.tools.r8.jetbrains.kotlin.collections.AbstractCollection$toString$1 -> com.android.tools.r8.d.a.a.a:
    com.android.tools.r8.jetbrains.kotlin.collections.AbstractCollection this$0 -> a
    1:1:java.lang.CharSequence invoke(java.lang.Object):25:25 -> invoke
    1:1:java.lang.Object invoke(java.lang.Object):13 -> invoke
com.android.tools.r8.jetbrains.kotlin.collections.AbstractList -> com.android.tools.r8.d.a.a.d:
    com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$Companion Companion -> a
    1:1:void <init>():22:22 -> <init>
    1:3:boolean equals(java.lang.Object):62:64 -> equals
    1:1:int hashCode():70:70 -> hashCode
    1:1:int indexOf(java.lang.Object):151:151 -> indexOf
    2:2:int indexOf(java.lang.Object):28:28 -> indexOf
    1:1:java.util.Iterator iterator():26:26 -> iterator
    1:3:int lastIndexOf(java.lang.Object):157:159 -> lastIndexOf
    4:134:int lastIndexOf(java.lang.Object):30:160 -> lastIndexOf
    1:1:java.util.ListIterator listIterator():32:32 -> listIterator
    2:2:java.util.ListIterator listIterator(int):34:34 -> listIterator
    1:1:java.util.List subList(int,int):36:36 -> subList
com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$Companion -> com.android.tools.r8.d.a.a.c:
    1:1:void <init>():106:106 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):106 -> <init>
    1:1:void checkElementIndex$kotlin_stdlib(int,int):109:109 -> a
    2:2:void checkRangeIndexes$kotlin_stdlib(int,int,int):124:124 -> a
    3:3:void checkRangeIndexes$kotlin_stdlib(int,int,int):121:121 -> a
    4:5:int orderedHashCode$kotlin_stdlib(java.util.Collection):130:131 -> a
    6:11:boolean orderedEquals$kotlin_stdlib(java.util.Collection,java.util.Collection):137:142 -> a
    1:1:void checkPositionIndex$kotlin_stdlib(int,int):115:115 -> b
com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$IteratorImpl -> com.android.tools.r8.d.a.a.d$a:
    com.android.tools.r8.jetbrains.kotlin.collections.AbstractList this$0 -> b
    int index -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlin.collections.AbstractList):72:72 -> <init>
    1:1:void setIndex(int):74:74 -> a
    1:1:int getIndex():74:74 -> c
    1:1:boolean hasNext():76:76 -> hasNext
    2:2:int com.android.tools.r8.jetbrains.kotlin.collections.AbstractCollection.size():13:13 -> hasNext
    2:2:boolean hasNext():76 -> hasNext
    1:1:boolean hasNext():76:76 -> next
    1:1:java.lang.Object next():79 -> next
    2:2:int com.android.tools.r8.jetbrains.kotlin.collections.AbstractCollection.size():13:13 -> next
    2:2:boolean hasNext():76 -> next
    2:2:java.lang.Object next():79 -> next
    3:3:java.lang.Object next():80:80 -> next
    4:4:java.lang.Object next():79:79 -> next
com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$ListIteratorImpl -> com.android.tools.r8.d.a.a.d$b:
    com.android.tools.r8.jetbrains.kotlin.collections.AbstractList this$0 -> c
    1:4:void <init>(com.android.tools.r8.jetbrains.kotlin.collections.AbstractList,int):87:90 -> <init>
    5:5:int com.android.tools.r8.jetbrains.kotlin.collections.AbstractCollection.size():13:13 -> <init>
    5:5:void <init>(com.android.tools.r8.jetbrains.kotlin.collections.AbstractList,int):90 -> <init>
    6:7:void <init>(com.android.tools.r8.jetbrains.kotlin.collections.AbstractList,int):90:91 -> <init>
    1:1:boolean hasPrevious():94:94 -> hasPrevious
    1:1:int nextIndex():96:96 -> nextIndex
    1:1:boolean hasPrevious():94:94 -> previous
    1:1:java.lang.Object previous():99 -> previous
    2:2:java.lang.Object previous():100:100 -> previous
    3:3:java.lang.Object previous():99:99 -> previous
    1:1:int previousIndex():103:103 -> previousIndex
com.android.tools.r8.jetbrains.kotlin.collections.AbstractList$SubList -> com.android.tools.r8.d.a.a.e:
    com.android.tools.r8.jetbrains.kotlin.collections.AbstractList list -> c
    int fromIndex -> d
    int _size -> b
    1:5:void <init>(com.android.tools.r8.jetbrains.kotlin.collections.AbstractList,int,int):38:42 -> <init>
    6:6:int com.android.tools.r8.jetbrains.kotlin.collections.AbstractCollection.size():13:13 -> <init>
    6:6:void <init>(com.android.tools.r8.jetbrains.kotlin.collections.AbstractList,int,int):42 -> <init>
    7:8:void <init>(com.android.tools.r8.jetbrains.kotlin.collections.AbstractList,int,int):42:43 -> <init>
    1:1:int getSize():52:52 -> c
    1:3:java.lang.Object get(int):47:49 -> get
com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt -> com.android.tools.r8.d.a.a.f:
    1:76:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.asList(int[]):0:75 -> a
    1:76:java.util.List asList(int[]):0 -> a
    77:77:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.asList(java.lang.Object[]):0:0 -> a
    77:77:java.util.List asList(java.lang.Object[]):0 -> a
    78:78:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysUtilJVM.asList(java.lang.Object[]):13:13 -> a
    78:78:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.asList(java.lang.Object[]):40 -> a
    78:78:java.util.List asList(java.lang.Object[]):0 -> a
    79:79:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.asList(java.lang.Object[]):40:40 -> a
    79:79:java.util.List asList(java.lang.Object[]):0 -> a
    80:119:int com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__IterablesKt.collectionSizeOrDefault(java.lang.Iterable,int):0:39 -> a
    80:119:int com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.collectionSizeOrDefault(java.lang.Iterable,int):0 -> a
    120:1326:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getOrNull(int[],int):0:1206 -> a
    120:1326:java.lang.Integer getOrNull(int[],int):0 -> a
    1327:3539:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.joinToString(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0:2212 -> a
    1327:3539:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.joinToString$default(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):2211 -> a
    1327:3539:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.joinToString$default(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):0 -> a
    3540:5739:java.lang.Appendable com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.joinTo(java.lang.Iterable,java.lang.Appendable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0:2199 -> a
    3540:5739:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.joinToString(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):2212 -> a
    3540:5739:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.joinToString$default(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):2211 -> a
    3540:5739:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.joinToString$default(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):0 -> a
    5740:5740:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.joinToString(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):2212:2212 -> a
    5740:5740:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.joinToString$default(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):2211 -> a
    5740:5740:java.lang.String com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.joinToString$default(java.lang.Iterable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):0 -> a
    5741:6824:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):0:1083 -> a
    5741:6824:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
    6825:6825:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1082:1082 -> a
    6825:6825:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
    6826:6826:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.emptyList():70:70 -> a
    6826:6826:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.emptyList():0 -> a
    6826:6826:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1081 -> a
    6826:6826:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
    6827:6827:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1086:1086 -> a
    6827:6827:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
    6828:7025:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.optimizeReadOnlyList(java.util.List):0:197 -> a
    6828:7025:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1086 -> a
    6828:7025:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
    7026:7026:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.emptyList():70:70 -> a
    7026:7026:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.emptyList():0 -> a
    7026:7026:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.optimizeReadOnlyList(java.util.List):196 -> a
    7026:7026:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toList(java.lang.Iterable):1086 -> a
    7026:7026:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toList(java.lang.Iterable):0 -> a
    7027:7027:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsJVMKt.listOf(java.lang.Object):18:18 -> a
    7028:7028:int com.android.tools.r8.jetbrains.kotlin.collections.MapsKt__MapsKt.mapCapacity(int):132:132 -> a
    7028:7028:int com.android.tools.r8.jetbrains.kotlin.collections.MapsKt.mapCapacity(int):0 -> a
    7029:7030:java.util.Collection com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toCollection(java.lang.Iterable,java.util.Collection):1062:1063 -> a
    7031:7031:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(java.util.Collection):1102:1102 -> a
    1:77:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.listOf(java.lang.Object[]):0:76 -> b
    1:77:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.listOf(java.lang.Object[]):0 -> b
    78:78:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.emptyList():70:70 -> b
    78:78:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.emptyList():0 -> b
    78:78:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.listOf(java.lang.Object[]):76 -> b
    78:78:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.listOf(java.lang.Object[]):0 -> b
    79:79:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.SetsKt__SetsJVMKt.setOf(java.lang.Object):16:16 -> b
    80:81:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(java.lang.Iterable):1093:1094 -> b
    82:1184:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(java.util.Collection):0:1102 -> b
    82:1184:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(java.lang.Iterable):1094 -> b
    1185:1185:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(java.lang.Iterable):1095:1095 -> b
    1186:1187:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.indexOf(int[],int):1292:1293 -> b
    1188:1188:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getLastIndex(int[]):6005:6005 -> b
    1:1297:java.lang.Iterable com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.withIndex(java.lang.Iterable):0:1296 -> c
    1:1297:java.lang.Iterable com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.withIndex(java.lang.Iterable):0 -> c
com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt__ArraysKt -> com.android.tools.r8.d.a.a.g:
com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt$asList$3 -> com.android.tools.r8.d.a.a.h:
    int[] receiver$0 -> b
    1:1:void <init>(int[]):75:75 -> <init>
    1:1:int getSize():76:76 -> c
    1:1:boolean contains(java.lang.Object):75:75 -> contains
    2:2:boolean contains(int):78:78 -> contains
    2:2:boolean contains(java.lang.Object):75 -> contains
    3:408:boolean com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.contains(int[],int):0:405 -> contains
    3:408:boolean contains(int):78 -> contains
    3:408:boolean contains(java.lang.Object):75 -> contains
    1:1:java.lang.Integer get(int):79:79 -> get
    1:1:java.lang.Object get(int):75 -> get
    1:1:int indexOf(java.lang.Object):75:75 -> indexOf
    2:2:int indexOf(int):80:80 -> indexOf
    2:2:int indexOf(java.lang.Object):75 -> indexOf
    1:1:boolean isEmpty():77:77 -> isEmpty
    1:1:int lastIndexOf(java.lang.Object):75:75 -> lastIndexOf
    2:2:int lastIndexOf(int):81:81 -> lastIndexOf
    2:2:int lastIndexOf(java.lang.Object):75 -> lastIndexOf
    3:3:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.lastIndexOf(int[],int):0:0 -> lastIndexOf
    3:3:int lastIndexOf(int):81 -> lastIndexOf
    3:3:int lastIndexOf(java.lang.Object):75 -> lastIndexOf
    4:5811:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.getIndices(int[]):0:5807 -> lastIndexOf
    4:5811:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.lastIndexOf(int[],int):1822 -> lastIndexOf
    4:5811:int lastIndexOf(int):81 -> lastIndexOf
    4:5811:int lastIndexOf(java.lang.Object):75 -> lastIndexOf
    5812:6632:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.reversed(java.lang.Iterable):0:820 -> lastIndexOf
    5812:6632:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.lastIndexOf(int[],int):1822 -> lastIndexOf
    5812:6632:int lastIndexOf(int):81 -> lastIndexOf
    5812:6632:int lastIndexOf(java.lang.Object):75 -> lastIndexOf
    6633:6673:void com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsJvmKt.reverse(java.util.List):0:40 -> lastIndexOf
    6633:6673:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.reversed(java.lang.Iterable):821 -> lastIndexOf
    6633:6673:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.lastIndexOf(int[],int):1822 -> lastIndexOf
    6633:6673:int lastIndexOf(int):81 -> lastIndexOf
    6633:6673:int lastIndexOf(java.lang.Object):75 -> lastIndexOf
    6674:6675:int com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.lastIndexOf(int[],int):1822:1823 -> lastIndexOf
    6674:6675:int lastIndexOf(int):81 -> lastIndexOf
    6674:6675:int lastIndexOf(java.lang.Object):75 -> lastIndexOf
com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt -> com.android.tools.r8.d.a.a.i:
com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt$withIndex$1 -> com.android.tools.r8.d.a.a.j:
    java.lang.Iterable receiver$0 -> a
    1:1:java.util.Iterator invoke():1296:1296 -> a
    1:1:java.lang.Object invoke():0 -> a
com.android.tools.r8.jetbrains.kotlin.collections.EmptyIterator -> com.android.tools.r8.d.a.a.k:
    com.android.tools.r8.jetbrains.kotlin.collections.EmptyIterator INSTANCE -> a
    1:1:void <clinit>():14:14 -> <clinit>
    1:1:void <init>():14:14 -> <init>
    1:1:java.lang.Void next():19:19 -> next
    1:1:java.lang.Object next():14 -> next
    1:1:java.lang.Void previous():20:20 -> previous
    1:1:java.lang.Object previous():14 -> previous
com.android.tools.r8.jetbrains.kotlin.collections.EmptyList -> com.android.tools.r8.d.a.a.l:
    com.android.tools.r8.jetbrains.kotlin.collections.EmptyList INSTANCE -> a
    1:1:void <clinit>():23:23 -> <clinit>
    1:1:void <init>():23:23 -> <init>
    1:1:boolean contains(java.lang.Object):23:23 -> contains
    2:2:boolean contains(java.lang.Void):0:0 -> contains
    2:2:boolean contains(java.lang.Object):23 -> contains
    1:1:boolean containsAll(java.util.Collection):33:33 -> containsAll
    1:1:boolean equals(java.lang.Object):26:26 -> equals
    1:1:java.lang.Void get(int):35:35 -> get
    1:1:java.lang.Object get(int):23 -> get
    1:1:int indexOf(java.lang.Object):23:23 -> indexOf
    2:2:int indexOf(java.lang.Void):0:0 -> indexOf
    2:2:int indexOf(java.lang.Object):23 -> indexOf
    1:1:java.util.Iterator iterator():39:39 -> iterator
    1:1:int lastIndexOf(java.lang.Object):23:23 -> lastIndexOf
    2:2:int lastIndexOf(java.lang.Void):0:0 -> lastIndexOf
    2:2:int lastIndexOf(java.lang.Object):23 -> lastIndexOf
    1:1:java.util.ListIterator listIterator():40:40 -> listIterator
    2:2:java.util.ListIterator listIterator(int):43:43 -> listIterator
    3:3:java.util.ListIterator listIterator(int):42:42 -> listIterator
    1:1:java.util.List subList(int,int):48:48 -> subList
com.android.tools.r8.jetbrains.kotlin.collections.EmptySet -> com.android.tools.r8.d.a.a.m:
    com.android.tools.r8.jetbrains.kotlin.collections.EmptySet INSTANCE -> a
    1:1:void <clinit>():12:12 -> <clinit>
    1:1:void <init>():12:12 -> <init>
    1:1:boolean contains(java.lang.Object):12:12 -> contains
    2:2:boolean contains(java.lang.Void):0:0 -> contains
    2:2:boolean contains(java.lang.Object):12 -> contains
    1:1:boolean containsAll(java.util.Collection):22:22 -> containsAll
    1:1:boolean equals(java.lang.Object):15:15 -> equals
    1:1:java.util.Iterator iterator():24:24 -> iterator
com.android.tools.r8.jetbrains.kotlin.collections.IndexedValue -> com.android.tools.r8.d.a.a.n:
    java.lang.Object value -> b
    int index -> a
    1:1:void <init>(int,java.lang.Object):14:14 -> <init>
    1:1:int getIndex():14:14 -> a
    1:1:java.lang.Object getValue():14:14 -> b
com.android.tools.r8.jetbrains.kotlin.collections.IndexingIterable -> com.android.tools.r8.d.a.a.o:
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0 iteratorFactory -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0):24:24 -> <init>
    1:1:java.util.Iterator iterator():25:25 -> iterator
com.android.tools.r8.jetbrains.kotlin.collections.IndexingIterator -> com.android.tools.r8.d.a.a.p:
    java.util.Iterator iterator -> b
    int index -> a
    1:1:void <init>(java.util.Iterator):37:37 -> <init>
    1:1:boolean hasNext():39:39 -> hasNext
    1:1:com.android.tools.r8.jetbrains.kotlin.collections.IndexedValue next():40:40 -> next
    1:1:java.lang.Object next():37 -> next
com.android.tools.r8.jetbrains.kotlin.internal.ProgressionUtilKt -> com.android.tools.r8.d.a.b.a:
    1:1:int mod(int,int):10:10 -> a
    2:2:int differenceModulo(int,int,int):21:21 -> a
    2:2:int getProgressionLastElement(int,int,int):47 -> a
    3:3:int differenceModulo(int,int,int):21:21 -> a
    3:3:int getProgressionLastElement(int,int,int):50 -> a
    4:4:int getProgressionLastElement(int,int,int):53:53 -> a
com.android.tools.r8.jetbrains.kotlin.jvm.KotlinReflectionNotSupportedError -> com.android.tools.r8.d.a.c.a:
    1:1:void <init>():11:11 -> <init>
com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function0 -> com.android.tools.r8.d.a.c.a.a:
    java.lang.Object invoke() -> a
com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 -> com.android.tools.r8.d.a.c.a.b:
com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function2 -> com.android.tools.r8.d.a.c.a.c:
    java.lang.Object invoke(java.lang.Object,java.lang.Object) -> a
com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference$NoReceiver -> com.android.tools.r8.d.a.c.b.a:
    com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference$NoReceiver INSTANCE -> a
    1:1:void <clinit>():40:40 -> <clinit>
    1:1:void <init>():39:39 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference$NoReceiver access$000():39:39 -> a
com.android.tools.r8.jetbrains.kotlin.jvm.internal.ClassReference -> com.android.tools.r8.d.a.c.b.b:
    java.lang.Class jClass -> a
    1:1:void <init>(java.lang.Class):10:10 -> <init>
    1:1:java.lang.Class getJClass():10:10 -> a
    1:1:boolean equals(java.lang.Object):78:78 -> equals
    1:1:int hashCode():81:81 -> hashCode
    1:1:java.lang.String toString():84:84 -> toString
com.android.tools.r8.jetbrains.kotlin.jvm.internal.CollectionToArray -> com.android.tools.r8.d.a.c.b.c:
    java.lang.Object[] EMPTY -> a
    1:1:void <clinit>():130:130 -> <clinit>
    1:1:java.lang.Object[] toArray(java.util.Collection):83:83 -> a
    2:67:java.lang.Object[] toArray(java.util.Collection):21:86 -> a
    68:150:java.lang.Object[] toArray(java.util.Collection):22:104 -> a
    151:151:java.lang.Object[] toArray(java.util.Collection):23:23 -> a
    152:152:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):106:106 -> a
    153:228:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):34:109 -> a
    229:322:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):34:127 -> a
    323:326:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):43:46 -> a
    327:327:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):39:39 -> a
    328:328:java.lang.Object[] toArray(java.util.Collection,java.lang.Object[]):30:30 -> a
com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker -> com.android.tools.r8.d.a.c.b.d:
com.android.tools.r8.jetbrains.kotlin.jvm.internal.Intrinsics -> com.android.tools.r8.d.a.c.b.e:
    int compare(int,int) -> a
    1:1:void throwNpe():37:37 -> a
    2:2:void checkExpressionValueIsNotNull(java.lang.Object,java.lang.String):78:78 -> a
    3:3:boolean areEqual(java.lang.Object,java.lang.Object):153:153 -> a
    4:4:java.lang.Throwable sanitizeStackTrace(java.lang.Throwable):237:237 -> a
    5:16:java.lang.Throwable sanitizeStackTrace(java.lang.Throwable,java.lang.String):241:252 -> a
    5:16:java.lang.Throwable sanitizeStackTrace(java.lang.Throwable):237 -> a
    1:15:void throwParameterIsNullException(java.lang.String):127:141 -> b
    1:15:void checkParameterIsNotNull(java.lang.Object,java.lang.String):116 -> b
com.android.tools.r8.jetbrains.kotlin.jvm.internal.Lambda -> com.android.tools.r8.d.a.c.b.f:
    1:1:void <init>(int):8:8 -> <init>
    1:1:java.lang.String toString():11:11 -> toString
com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference -> com.android.tools.r8.d.a.c.b.h:
    com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.reflected -> a
    java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.receiver -> b
    java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.NO_RECEIVER -> c
    1:1:void com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.<clinit>():36:36 -> <clinit>
    1:1:void com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.<init>():48:48 -> <init>
    1:1:void <init>():14 -> <init>
    2:3:void com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.<init>(java.lang.Object):52:53 -> <init>
    2:3:void com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.<init>():48 -> <init>
    2:3:void <init>():14 -> <init>
    1:3:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.compute():65:67 -> a
    1:3:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.compute():0 -> a
    4:4:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.computeReflected():23:23 -> a
    4:4:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.computeReflected():0 -> a
    4:4:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.compute():67 -> a
    4:4:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.compute():0 -> a
    5:5:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.compute():68:68 -> a
    5:5:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.compute():0 -> a
    com.android.tools.r8.jetbrains.kotlin.reflect.KDeclarationContainer com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getOwner() -> b
    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getReflected():75:75 -> c
    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty getReflected():25 -> c
    2:2:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty getReflected():25:25 -> c
    3:3:com.android.tools.r8.jetbrains.kotlin.reflect.KCallable com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getReflected():77:77 -> c
    3:3:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty getReflected():25 -> c
    java.lang.String com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getSignature() -> d
    1:3:boolean equals(java.lang.Object):43:45 -> equals
    4:4:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getBoundReceiver():60:60 -> equals
    4:4:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getBoundReceiver():0 -> equals
    4:4:boolean equals(java.lang.Object):45 -> equals
    5:5:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getBoundReceiver():60:60 -> equals
    5:5:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.CallableReference.getBoundReceiver():0 -> equals
    5:5:boolean equals(java.lang.Object):45 -> equals
    6:12:boolean equals(java.lang.Object):45:51 -> equals
    1:1:int hashCode():58:58 -> hashCode
    1:6:java.lang.String toString():63:68 -> toString
com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1Impl -> com.android.tools.r8.d.a.c.b.g:
    com.android.tools.r8.jetbrains.kotlin.reflect.KDeclarationContainer owner -> d
    java.lang.String signature -> f
    java.lang.String name -> e
    1:1:void com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.<init>():13:13 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlin.reflect.KDeclarationContainer,java.lang.String,java.lang.String):15 -> <init>
    2:4:void <init>(com.android.tools.r8.jetbrains.kotlin.reflect.KDeclarationContainer,java.lang.String,java.lang.String):16:18 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KDeclarationContainer getOwner():23:23 -> b
    1:1:java.lang.String getSignature():33:33 -> d
    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():33:33 -> e
    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.getGetter():0 -> e
    1:1:java.lang.String getName():28:28 -> getName
    1:1:java.lang.Object get(java.lang.Object):38:38 -> invoke
    1:1:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.invoke(java.lang.Object):28 -> invoke
    1:1:java.lang.Object com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1.invoke(java.lang.Object):0 -> invoke
com.android.tools.r8.jetbrains.kotlin.jvm.internal.Reflection -> com.android.tools.r8.d.a.c.b.i:
    com.android.tools.r8.jetbrains.kotlin.jvm.internal.ReflectionFactory factory -> a
    1:9:void <clinit>():22:30 -> <clinit>
    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KClass getOrCreateKotlinClass(java.lang.Class):50:50 -> a
    2:2:java.lang.String renderLambdaToString(com.android.tools.r8.jetbrains.kotlin.jvm.internal.Lambda):69:69 -> a
    3:3:com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1 property1(com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1):89:89 -> a
com.android.tools.r8.jetbrains.kotlin.jvm.internal.ReflectionFactory -> com.android.tools.r8.d.a.c.b.j:
    1:1:void <init>():11:11 -> <init>
    com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1 property1(com.android.tools.r8.jetbrains.kotlin.jvm.internal.PropertyReference1) -> a
    1:1:com.android.tools.r8.jetbrains.kotlin.reflect.KClass getOrCreateKotlinClass(java.lang.Class):27:27 -> a
    2:3:java.lang.String renderLambdaToString(com.android.tools.r8.jetbrains.kotlin.jvm.internal.Lambda):36:37 -> a
com.android.tools.r8.jetbrains.kotlin.jvm.internal.markers.KMappedMarker -> com.android.tools.r8.d.a.c.b.a.a:
com.android.tools.r8.jetbrains.kotlin.ranges.ClosedRange -> com.android.tools.r8.d.a.d.a:
com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression -> com.android.tools.r8.d.a.d.c:
    com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression$Companion Companion -> d
    int last -> b
    int step -> c
    int first -> a
    1:24:void <init>(int,int,int):70:93 -> <init>
    25:25:void <init>(int,int,int):77:77 -> <init>
    1:1:int getStep():93:93 -> c
    1:1:boolean equals(java.lang.Object):101:101 -> equals
    1:1:int getFirst():83:83 -> getFirst
    1:1:int getLast():88:88 -> getLast
    1:1:int hashCode():105:105 -> hashCode
    1:1:boolean isEmpty():98:98 -> isEmpty
    1:1:com.android.tools.r8.jetbrains.kotlin.collections.IntIterator iterator():95:95 -> iterator
    1:1:java.util.Iterator iterator():69 -> iterator
    1:1:java.lang.String toString():107:107 -> toString
com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression$Companion -> com.android.tools.r8.d.a.d.b:
    1:1:void <init>():109:109 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):109 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression fromClosedRange(int,int,int):116:116 -> a
com.android.tools.r8.jetbrains.kotlin.ranges.IntProgressionIterator -> com.android.tools.r8.d.a.d.d:
    int step -> d
    boolean hasNext -> b
    int next -> c
    int finalElement -> a
    1:1:void com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.<init>():35:35 -> <init>
    1:1:void <init>(int,int,int):38 -> <init>
    2:5:void <init>(int,int,int):38:41 -> <init>
    1:1:boolean hasNext():43:43 -> hasNext
    1:4:int nextInt():46:49 -> next
    1:4:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():36 -> next
    1:4:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():0 -> next
    1:4:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():35 -> next
    1:4:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():0 -> next
    5:9:int nextInt():48:52 -> next
    5:9:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():36 -> next
    5:9:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():0 -> next
    5:9:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():35 -> next
    5:9:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():0 -> next
    10:10:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():36:36 -> next
    10:10:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():0 -> next
    10:10:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():35 -> next
    10:10:java.lang.Object com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.next():0 -> next
    1:1:void com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.remove():0:0 -> remove
    1:1:void com.android.tools.r8.jetbrains.kotlin.collections.IntIterator.remove():0 -> remove
com.android.tools.r8.jetbrains.kotlin.ranges.IntRange -> com.android.tools.r8.d.a.d.f:
    com.android.tools.r8.jetbrains.kotlin.ranges.IntRange EMPTY -> e
    com.android.tools.r8.jetbrains.kotlin.ranges.IntRange$Companion Companion -> f
    1:1:void <clinit>():58:58 -> <clinit>
    1:1:void <init>(int,int):39:39 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange access$getEMPTY$cp():39:39 -> e
    1:1:boolean equals(java.lang.Object):48:48 -> equals
    1:1:int hashCode():52:52 -> hashCode
    1:1:boolean isEmpty():45:45 -> isEmpty
    1:1:java.lang.String toString():54:54 -> toString
com.android.tools.r8.jetbrains.kotlin.ranges.IntRange$Companion -> com.android.tools.r8.d.a.d.e:
    1:1:void <init>():56:56 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):56 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange getEMPTY():58:58 -> a
com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt -> com.android.tools.r8.d.a.d.g:
    int coerceAtLeast(int,int) -> a
com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt__RangesKt -> com.android.tools.r8.d.a.d.h:
com.android.tools.r8.jetbrains.kotlin.reflect.KAnnotatedElement -> com.android.tools.r8.d.a.e.a:
com.android.tools.r8.jetbrains.kotlin.reflect.KCallable -> com.android.tools.r8.d.a.e.b:
com.android.tools.r8.jetbrains.kotlin.reflect.KClass -> com.android.tools.r8.d.a.e.c:
com.android.tools.r8.jetbrains.kotlin.reflect.KDeclarationContainer -> com.android.tools.r8.d.a.e.d:
com.android.tools.r8.jetbrains.kotlin.reflect.KProperty -> com.android.tools.r8.d.a.e.h:
com.android.tools.r8.jetbrains.kotlin.reflect.KProperty$Getter -> com.android.tools.r8.d.a.e.e:
com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1 -> com.android.tools.r8.d.a.e.g:
com.android.tools.r8.jetbrains.kotlin.reflect.KProperty1$Getter -> com.android.tools.r8.d.a.e.f:
com.android.tools.r8.jetbrains.kotlin.sequences.Sequence -> com.android.tools.r8.d.a.f.a:
com.android.tools.r8.jetbrains.kotlin.sequences.TransformingSequence -> com.android.tools.r8.d.a.f.c:
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 transformer -> b
    com.android.tools.r8.jetbrains.kotlin.sequences.Sequence sequence -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):145:145 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence access$getSequence$p(com.android.tools.r8.jetbrains.kotlin.sequences.TransformingSequence):144:144 -> a
    1:1:com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1 access$getTransformer$p(com.android.tools.r8.jetbrains.kotlin.sequences.TransformingSequence):144:144 -> b
    1:1:java.util.Iterator iterator():146:146 -> iterator
com.android.tools.r8.jetbrains.kotlin.sequences.TransformingSequence$iterator$1 -> com.android.tools.r8.d.a.f.b:
    java.util.Iterator iterator -> a
    com.android.tools.r8.jetbrains.kotlin.sequences.TransformingSequence this$0 -> b
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlin.sequences.TransformingSequence):146:147 -> <init>
    1:1:boolean hasNext():153:153 -> hasNext
    1:1:java.lang.Object next():149:149 -> next
com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence -> com.android.tools.r8.d.a.g.b:
    java.lang.CharSequence input -> a
    com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function2 getNextMatch -> d
    int startIndex -> b
    int limit -> c
    1:1:void <init>(java.lang.CharSequence,int,int,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function2):1038:1038 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function2 access$getGetNextMatch$p(com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence):1038:1038 -> a
    1:1:java.lang.CharSequence access$getInput$p(com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence):1038:1038 -> b
    1:1:int access$getLimit$p(com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence):1038:1038 -> c
    1:1:int access$getStartIndex$p(com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence):1038:1038 -> d
    1:1:java.util.Iterator iterator():1045:1045 -> iterator
com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence$iterator$1 -> com.android.tools.r8.d.a.g.a:
    com.android.tools.r8.jetbrains.kotlin.ranges.IntRange nextItem -> d
    com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence this$0 -> f
    int counter -> e
    int currentStartIndex -> b
    int nextSearchIndex -> c
    int nextState -> a
    1:4:void <init>(com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence):1045:1048 -> <init>
    5:5:int com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt___RangesKt.coerceIn(int,int,int):918:918 -> <init>
    5:5:int com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt.coerceIn(int,int,int):0 -> <init>
    5:5:void <init>(com.android.tools.r8.jetbrains.kotlin.text.DelimitedRangesSequence):1047 -> <init>
    1:15:void calcNext():1053:1067 -> c
    16:17:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt___RangesKt.until(int,int):587:588 -> c
    16:17:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt.until(int,int):0 -> c
    16:17:void calcNext():1067 -> c
    18:23:void calcNext():1067:1072 -> c
    1:3:boolean hasNext():1089:1091 -> hasNext
    1:8:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange next():1077:1084 -> next
    1:8:java.lang.Object next():1045 -> next
    9:9:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange next():1081:1081 -> next
    9:9:java.lang.Object next():1045 -> next
    10:10:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange next():1080:1080 -> next
    10:10:java.lang.Object next():1045 -> next
com.android.tools.r8.jetbrains.kotlin.text.StringsKt -> com.android.tools.r8.d.a.g.c:
    1:62:void com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringBuilderKt.appendElement(java.lang.Appendable,java.lang.Object,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0:61 -> a
    1:62:void appendElement(java.lang.Appendable,java.lang.Object,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0 -> a
    63:127:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):0:64 -> a
    63:127:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):125 -> a
    63:127:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
    128:128:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence(java.lang.CharSequence,char[],boolean,int):0:0 -> a
    128:128:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence$default(java.lang.CharSequence,char[],boolean,int,int,java.lang.Object):1183 -> a
    128:128:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64 -> a
    128:128:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):125 -> a
    128:128:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
    129:129:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.rangesDelimitedBy$StringsKt__StringsKt(java.lang.CharSequence,char[],int,boolean,int):1109:1109 -> a
    129:129:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.rangesDelimitedBy$StringsKt__StringsKt$default(java.lang.CharSequence,char[],int,boolean,int,int,java.lang.Object):1106 -> a
    129:129:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence(java.lang.CharSequence,char[],boolean,int):1184 -> a
    129:129:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence$default(java.lang.CharSequence,char[],boolean,int,int,java.lang.Object):1183 -> a
    129:129:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64 -> a
    129:129:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):125 -> a
    129:129:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
    130:130:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence(java.lang.CharSequence,char[],boolean,int):1184:1184 -> a
    130:130:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence$default(java.lang.CharSequence,char[],boolean,int,int,java.lang.Object):1183 -> a
    130:130:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64 -> a
    130:130:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):125 -> a
    130:130:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
    131:935:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.map(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0:804 -> a
    131:935:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt.map(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0 -> a
    131:935:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence(java.lang.CharSequence,char[],boolean,int):1184 -> a
    131:935:com.android.tools.r8.jetbrains.kotlin.sequences.Sequence com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.splitToSequence$default(java.lang.CharSequence,char[],boolean,int,int,java.lang.Object):1183 -> a
    131:935:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64 -> a
    131:935:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):125 -> a
    131:935:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
    936:936:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64:64 -> a
    936:936:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):125 -> a
    936:936:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
    937:2607:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.joinToString(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0:1670 -> a
    937:2607:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.joinToString$default(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):1669 -> a
    937:2607:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt.joinToString$default(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):0 -> a
    937:2607:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64 -> a
    937:2607:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):125 -> a
    937:2607:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
    2608:4263:java.lang.Appendable com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.joinTo(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.Appendable,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):0:1655 -> a
    2608:4263:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.joinToString(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1670 -> a
    2608:4263:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.joinToString$default(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):1669 -> a
    2608:4263:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt.joinToString$default(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):0 -> a
    2608:4263:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64 -> a
    2608:4263:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):125 -> a
    2608:4263:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
    4264:4264:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.joinToString(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1):1670:1670 -> a
    4264:4264:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt___SequencesKt.joinToString$default(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):1669 -> a
    4264:4264:java.lang.String com.android.tools.r8.jetbrains.kotlin.sequences.SequencesKt.joinToString$default(com.android.tools.r8.jetbrains.kotlin.sequences.Sequence,java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence,int,java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.jvm.functions.Function1,int,java.lang.Object):0 -> a
    4264:4264:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace(java.lang.String,char,char,boolean):64 -> a
    4264:4264:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt.replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):125 -> a
    4264:4264:java.lang.String replace$default(java.lang.String,char,char,boolean,int,java.lang.Object):0 -> a
    4265:4265:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.getLastIndex(java.lang.CharSequence):285:285 -> a
com.android.tools.r8.jetbrains.kotlin.text.StringsKt__RegexExtensionsJVMKt -> com.android.tools.r8.d.a.g.d:
com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringBuilderJVMKt -> com.android.tools.r8.d.a.g.e:
com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringNumberConversionsJVMKt -> com.android.tools.r8.d.a.g.f:
com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsJVMKt -> com.android.tools.r8.d.a.g.g:
com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt$rangesDelimitedBy$2 -> com.android.tools.r8.d.a.g.h:
    char[] $delimiters -> a
    boolean $ignoreCase -> b
    1:1111:com.android.tools.r8.jetbrains.kotlin.Pair invoke(java.lang.CharSequence,int):0:1110 -> a
    1:1111:java.lang.Object invoke(java.lang.Object,java.lang.Object):0 -> a
    1112:1913:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOfAny(java.lang.CharSequence,char[],int,boolean):0:801 -> a
    1112:1913:com.android.tools.r8.jetbrains.kotlin.Pair invoke(java.lang.CharSequence,int):1110 -> a
    1112:1913:java.lang.Object invoke(java.lang.Object,java.lang.Object):0 -> a
    1914:4060:char com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.single(char[]):0:2146 -> a
    1914:4060:char com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt.single(char[]):0 -> a
    1914:4060:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOfAny(java.lang.CharSequence,char[],int,boolean):802 -> a
    1914:4060:com.android.tools.r8.jetbrains.kotlin.Pair invoke(java.lang.CharSequence,int):1110 -> a
    1914:4060:java.lang.Object invoke(java.lang.Object,java.lang.Object):0 -> a
    4061:4061:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOfAny(java.lang.CharSequence,char[],int,boolean):803:803 -> a
    4061:4061:com.android.tools.r8.jetbrains.kotlin.Pair invoke(java.lang.CharSequence,int):1110 -> a
    4061:4061:java.lang.Object invoke(java.lang.Object,java.lang.Object):0 -> a
    4062:4062:char com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.single(char[]):2147:2147 -> a
    4062:4062:char com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt.single(char[]):0 -> a
    4062:4062:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOfAny(java.lang.CharSequence,char[],int,boolean):802 -> a
    4062:4062:com.android.tools.r8.jetbrains.kotlin.Pair invoke(java.lang.CharSequence,int):1110 -> a
    4062:4062:java.lang.Object invoke(java.lang.Object,java.lang.Object):0 -> a
    4063:4063:char com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysKt.single(char[]):2145:2145 -> a
    4063:4063:char com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt.single(char[]):0 -> a
    4063:4063:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOfAny(java.lang.CharSequence,char[],int,boolean):802 -> a
    4063:4063:com.android.tools.r8.jetbrains.kotlin.Pair invoke(java.lang.CharSequence,int):1110 -> a
    4063:4063:java.lang.Object invoke(java.lang.Object,java.lang.Object):0 -> a
    4064:4641:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOfAny(java.lang.CharSequence,char[],int,boolean):806:1383 -> a
    4064:4641:com.android.tools.r8.jetbrains.kotlin.Pair invoke(java.lang.CharSequence,int):1110 -> a
    4064:4641:java.lang.Object invoke(java.lang.Object,java.lang.Object):0 -> a
    4642:4643:boolean com.android.tools.r8.jetbrains.kotlin.text.CharsKt__CharKt.equals(char,char,boolean):31:32 -> a
    4642:4643:int com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.indexOfAny(java.lang.CharSequence,char[],int,boolean):808 -> a
    4642:4643:com.android.tools.r8.jetbrains.kotlin.Pair invoke(java.lang.CharSequence,int):1110 -> a
    4642:4643:java.lang.Object invoke(java.lang.Object,java.lang.Object):0 -> a
    4644:4644:com.android.tools.r8.jetbrains.kotlin.Pair invoke(java.lang.CharSequence,int):1110:1110 -> a
    4644:4644:java.lang.Object invoke(java.lang.Object,java.lang.Object):0 -> a
com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt$splitToSequence$2 -> com.android.tools.r8.d.a.g.i:
    java.lang.CharSequence receiver$0 -> a
    1:1185:java.lang.String invoke(com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):0:1184 -> invoke
    1:1185:java.lang.Object invoke(java.lang.Object):0 -> invoke
    1186:1186:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.substring(java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):0:0 -> invoke
    1186:1186:java.lang.String invoke(com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):1184 -> invoke
    1186:1186:java.lang.Object invoke(java.lang.Object):0 -> invoke
    1187:1187:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.ranges.IntRange.getStart():40:40 -> invoke
    1187:1187:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.substring(java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):329 -> invoke
    1187:1187:java.lang.String invoke(com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):1184 -> invoke
    1187:1187:java.lang.Object invoke(java.lang.Object):0 -> invoke
    1188:1188:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.substring(java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):329:329 -> invoke
    1188:1188:java.lang.String invoke(com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):1184 -> invoke
    1188:1188:java.lang.Object invoke(java.lang.Object):0 -> invoke
    1189:1189:java.lang.Integer com.android.tools.r8.jetbrains.kotlin.ranges.IntRange.getEndInclusive():41:41 -> invoke
    1189:1189:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.substring(java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):329 -> invoke
    1189:1189:java.lang.String invoke(com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):1184 -> invoke
    1189:1189:java.lang.Object invoke(java.lang.Object):0 -> invoke
    1190:1190:java.lang.String com.android.tools.r8.jetbrains.kotlin.text.StringsKt__StringsKt.substring(java.lang.CharSequence,com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):329:329 -> invoke
    1190:1190:java.lang.String invoke(com.android.tools.r8.jetbrains.kotlin.ranges.IntRange):1184 -> invoke
    1190:1190:java.lang.Object invoke(java.lang.Object):0 -> invoke
com.android.tools.r8.jetbrains.kotlin.text.StringsKt___StringsJvmKt -> com.android.tools.r8.d.a.g.j:
com.android.tools.r8.jetbrains.kotlinx.metadata.Flag -> com.android.tools.r8.d.b.a.c:
    int bitWidth -> b
    int value -> c
    int offset -> a
    1:65:void <clinit>():67:131 -> <clinit>
    1:1:void <init>(int,int,int):40:40 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField,int):45:45 -> <init>
    3:3:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField):47:47 -> <init>
    1:1:boolean invoke(int):56:56 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.Flag$Property -> com.android.tools.r8.d.b.a.a:
    com.android.tools.r8.jetbrains.kotlinx.metadata.Flag IS_VAR -> a
    1:84:void <clinit>():311:394 -> <clinit>
    1:1:void <init>():311:311 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.Flag$Type -> com.android.tools.r8.d.b.a.b:
    com.android.tools.r8.jetbrains.kotlinx.metadata.Flag IS_NULLABLE -> a
    1:12:void <clinit>():423:434 -> <clinit>
    1:1:void <init>():423:423 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException -> com.android.tools.r8.d.b.a.d:
    1:1:void <init>(java.lang.String,java.lang.Throwable):8:8 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassExtensionVisitor -> com.android.tools.r8.d.b.a.e:
com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor -> com.android.tools.r8.d.b.a.f:
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):57:57 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):57 -> <init>
    1:1:void <init>():0 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor visitConstructor(int) -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor getDelegate():57:57 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor getDelegate():59:59 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):81:81 -> a
    4:4:void visitCompanionObject(java.lang.String):105:105 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):147:147 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitSupertype(int):89:89 -> b
    2:2:void visitEnumEntry(java.lang.String):123:123 -> b
    3:3:void visitEnd():153:153 -> b
    1:1:void visit(int,java.lang.String):68:68 -> c
    2:2:void visitNestedClass(java.lang.String):114:114 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():139:139 -> c
    1:1:void visitSealedSubclass(java.lang.String):132:132 -> d
com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorExtensionVisitor -> com.android.tools.r8.d.b.a.g:
com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor -> com.android.tools.r8.d.b.a.h:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor delegate -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor):210:210 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):210 -> <init>
    1:1:void <init>():0 -> <init>
    void visitEnd() -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType) -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitValueParameter(int,java.lang.String) -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():224:224 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerExtensionVisitor -> com.android.tools.r8.d.b.a.i:
com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor -> com.android.tools.r8.d.b.a.j:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor delegate -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor):11:11 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String) -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitProperty(int,java.lang.String,int,int) -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor getDelegate():11:11 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeAliasVisitor visitTypeAlias(int,java.lang.String):41:41 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType -> com.android.tools.r8.d.b.a.k:
    com.android.tools.r8.jetbrains.kotlin.reflect.KClass klass -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlin.reflect.KClass):31:31 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionVisitor -> com.android.tools.r8.d.b.a.l:
com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionExtensionVisitor -> com.android.tools.r8.d.b.a.m:
com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor -> com.android.tools.r8.d.b.a.n:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor delegate -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor):248:248 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):248 -> <init>
    1:1:void <init>():0 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType) -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReceiverParameterType(int) -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitValueParameter(int,java.lang.String) -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):259:259 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmContractVisitor visitContract():296:296 -> a
    void visitEnd() -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReturnType(int):284:284 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():290:290 -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.KmLambdaVisitor -> com.android.tools.r8.d.b.a.o:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmLambdaVisitor delegate -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmLambdaVisitor):187:187 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmLambdaVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):187 -> <init>
    1:1:void <init>():0 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String) -> a
    1:1:void visitEnd():201:201 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageExtensionVisitor -> com.android.tools.r8.d.b.a.p:
com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor -> com.android.tools.r8.d.b.a.q:
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):162:162 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):162 -> <init>
    1:1:void <init>():0 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor getDelegate():162:162 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor getDelegate():164:164 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):172:172 -> a
    1:1:void visitEnd():178:178 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyExtensionVisitor -> com.android.tools.r8.d.b.a.r:
com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor -> com.android.tools.r8.d.b.a.s:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor delegate -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor):320:320 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):320 -> <init>
    1:1:void <init>():0 -> <init>
    void visitEnd() -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType) -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeParameterVisitor visitTypeParameter(int,java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance):331:331 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReceiverParameterType(int):339:339 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitSetterParameter(int,java.lang.String):348:348 -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReturnType(int) -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmVersionRequirementVisitor visitVersionRequirement():362:362 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor -> com.android.tools.r8.d.b.a.t:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor delegate -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor):445:445 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):445 -> <init>
    1:1:void <init>():0 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitType(int) -> a
    1:1:void visitEnd():466:466 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitVarargElementType(int):460:460 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance -> com.android.tools.r8.d.b.a.u:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance IN -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance INVARIANT -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmVariance OUT -> c
    1:1:void <init>(java.lang.String,int):777:777 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext -> com.android.tools.r8.d.b.a.a.a:
    java.util.List extensions -> a
    java.util.Map typeParameterNameToId -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable types -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext parent -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver strings -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable versionRequirements -> e
    1:8:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):14:21 -> <init>
    1:1:java.util.List getExtensions$kotlinx_metadata():20:20 -> a
    2:2:java.lang.String className(int):27:27 -> a
    3:5:com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext withTypeParameters(java.util.List):33:35 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver getStrings():15:15 -> b
    2:2:java.lang.String get(int):24:24 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable getTypes():16:16 -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadUtilsKt -> com.android.tools.r8.d.b.a.a.b:
    1:1:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):41:41 -> a
    2:2:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext.<init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):18:18 -> a
    2:2:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):41 -> a
    3:398:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):42:437 -> a
    399:399:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):436:436 -> a
    400:400:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):435:435 -> a
    401:401:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeParameterFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):423:423 -> a
    401:401:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$getTypeParameterFlags$p(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):1 -> a
    401:401:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):440 -> a
    402:402:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):440:440 -> a
    403:790:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):47:434 -> a
    791:791:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):50:50 -> a
    792:905:java.util.List com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.supertypes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:113 -> a
    792:905:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):50 -> a
    906:906:java.util.List com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.supertypes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):24:24 -> a
    906:906:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):50 -> a
    907:912:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):50:55 -> a
    913:925:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):132:144 -> a
    913:925:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):55 -> a
    926:938:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):58:70 -> a
    939:939:void com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException.<init>(java.lang.String,java.lang.Throwable,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> a
    939:939:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):70 -> a
    940:957:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):70:87 -> a
    958:958:java.lang.String getClassName(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,int):44:44 -> a
    959:959:java.lang.String com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver.getQualifiedClassName(int):72:72 -> a
    959:959:java.lang.String getClassName(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,int):44 -> a
    960:960:java.lang.String getClassName(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,int):45:45 -> a
    961:961:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):91:91 -> a
    962:962:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext.<init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):18:18 -> a
    962:962:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):91 -> a
    963:969:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):93:99 -> a
    970:976:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):108:114 -> a
    977:983:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.visitDeclarations(com.android.tools.r8.jetbrains.kotlinx.metadata.KmDeclarationContainerVisitor,java.util.List,java.util.List,java.util.List,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):113:119 -> a
    984:984:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmLambdaVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):124:124 -> a
    985:985:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext.<init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):18:18 -> a
    985:985:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmLambdaVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):124 -> a
    986:988:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmLambdaVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):126:128 -> a
    989:1286:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):148:445 -> a
    1287:1287:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):444:444 -> a
    1288:1288:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):443:443 -> a
    1289:1289:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeParameterFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):423:423 -> a
    1289:1289:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$getTypeParameterFlags$p(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):1 -> a
    1289:1289:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):448 -> a
    1290:1290:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):448:448 -> a
    1291:1582:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):151:442 -> a
    1583:1607:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):154:178 -> a
    1608:1879:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):182:453 -> a
    1880:1880:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):452:452 -> a
    1881:1881:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):451:451 -> a
    1882:1882:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeParameterFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):423:423 -> a
    1882:1882:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.access$getTypeParameterFlags$p(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):1 -> a
    1882:1882:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):456 -> a
    1883:1883:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):456:456 -> a
    1884:2149:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):185:450 -> a
    2150:2150:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):188:188 -> a
    2151:2216:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.receiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:65 -> a
    2151:2216:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):188 -> a
    2217:2237:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):189:209 -> a
    2238:2242:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):239:243 -> a
    2243:2320:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.ProtoTypeTableUtilKt.varargElementType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):0:77 -> a
    2243:2320:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):243 -> a
    2321:2324:void com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.accept(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):244:247 -> a
    2325:2326:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getTypeFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):419:420 -> a
    2327:2327:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getPropertyGetterFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):426:426 -> a
    2328:2328:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getDefaultPropertyAccessorFlags(int):432:432 -> a
    2329:2329:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags.getAccessorFlags(boolean,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality,boolean,boolean,boolean):189:189 -> a
    2329:2329:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getDefaultPropertyAccessorFlags(int):432 -> a
    1:1:int com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt.getPropertySetterFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):429:429 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadersKt$WhenMappings -> com.android.tools.r8.d.b.a.a.c:
    int[] $EnumSwitchMapping$5 -> f
    int[] $EnumSwitchMapping$6 -> g
    int[] $EnumSwitchMapping$1 -> b
    int[] $EnumSwitchMapping$2 -> c
    int[] $EnumSwitchMapping$3 -> d
    int[] $EnumSwitchMapping$4 -> e
    int[] $EnumSwitchMapping$0 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions -> com.android.tools.r8.d.b.a.a.a.c:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions$Companion Companion -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions$Companion -> com.android.tools.r8.d.b.a.a.a.b:
    com.android.tools.r8.jetbrains.kotlin.Lazy INSTANCES$delegate -> b
    com.android.tools.r8.jetbrains.kotlin.reflect.KProperty[] $$delegatedProperties -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions$Companion $$INSTANCE -> c
    1:2:void <clinit>():47:48 -> <clinit>
    1:1:void <init>():47:47 -> <init>
    java.util.List getINSTANCES() -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions$Companion$INSTANCES$2 -> com.android.tools.r8.d.b.a.a.a.a:
    com.android.tools.r8.jetbrains.kotlinx.metadata.impl.extensions.MetadataExtensions$Companion$INSTANCES$2 INSTANCE -> a
    1:2:java.util.List invoke():49:50 -> a
    1:2:java.lang.Object invoke():47 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1 -> com.android.tools.r8.d.b.a.b.a.a:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation -> com.android.tools.r8.d.b.a.b.a.m:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    java.util.List argument_ -> d
    int bitField0_ -> b
    int id_ -> c
    byte memoizedIsInitialized -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation defaultInstance -> f
    1:2479:void <clinit>():1956:4434 -> <clinit>
    2480:2481:void initFields():4036:4037 -> <clinit>
    2480:2481:void <clinit>():4434 -> <clinit>
    1:2159:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):1881:4039 -> <init>
    1:2159:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1875 -> <init>
    2160:2160:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):1882:1882 -> <init>
    2160:2160:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1875 -> <init>
    2161:4316:void <init>(boolean):1884:4039 -> <init>
    4317:4317:void <init>(boolean):1884:1884 -> <init>
    4318:6458:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1899:4039 -> <init>
    4318:6458:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1875 -> <init>
    6459:6469:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1900:1910 -> <init>
    6459:6469:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1875 -> <init>
    6470:6470:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):73:73 -> <init>
    6470:6470:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1916 -> <init>
    6470:6470:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1875 -> <init>
    6471:6474:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1929:1932 -> <init>
    6471:6474:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1875 -> <init>
    6475:6475:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1923:1923 -> <init>
    6475:6475:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1875 -> <init>
    6476:6476:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    6476:6476:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1924 -> <init>
    6476:6476:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1875 -> <init>
    6477:6493:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1924:1940 -> <init>
    6477:6493:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1875 -> <init>
    6494:6509:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1938:1953 -> <init>
    6494:6509:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1875 -> <init>
    6510:6517:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1944:1951 -> <init>
    6510:6517:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1875 -> <init>
    1:1:int access$4302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,int):1875:1875 -> a
    2:2:java.util.List access$4400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):1875:1875 -> a
    3:3:java.util.List access$4402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,java.util.List):1875:1875 -> a
    1:1:int access$4502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation,int):1875:1875 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$4600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):1875:1875 -> b
    3:8:boolean isInitialized():4041:4046 -> b
    9:9:int getArgumentCount():4019:4019 -> b
    9:9:boolean isInitialized():4049 -> b
    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument getArgument(int):4025:4025 -> b
    10:10:boolean isInitialized():4050 -> b
    11:16:boolean isInitialized():4050:4055 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder():4150:4150 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4153 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4153:4153 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilderForType():4151:4151 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():1875 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():1875:1875 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder toBuilder():4155:4155 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getDefaultInstance():1888:1888 -> f
    1:1:int getId():3997:3997 -> g
    1:1:boolean hasId():3991:3991 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder newBuilder():4150:4150 -> i
    1:2:void initFields():4036:4037 -> j
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$1 -> com.android.tools.r8.d.b.a.b.a.b:
    1:1:void <init>():1957:1957 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1962:1962 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1957 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument -> com.android.tools.r8.d.b.a.b.a.j:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument defaultInstance -> f
    int bitField0_ -> b
    int nameId_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value value_ -> d
    byte memoizedIsInitialized -> e
    1:1900:void <clinit>():2079:3978 -> <clinit>
    1901:1902:void initFields():3649:3650 -> <clinit>
    1901:1902:void <clinit>():3978 -> <clinit>
    1:1651:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2002:3652 -> <init>
    1:1651:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1996 -> <init>
    1652:1652:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2003:2003 -> <init>
    1652:1652:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1996 -> <init>
    1653:3300:void <init>(boolean):2005:3652 -> <init>
    3301:3301:void <init>(boolean):2005:2005 -> <init>
    3302:4934:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2020:3652 -> <init>
    3302:4934:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1996 -> <init>
    4935:4945:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2021:2031 -> <init>
    4935:4945:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1996 -> <init>
    4946:4946:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):73:73 -> <init>
    4946:4946:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2037 -> <init>
    4946:4946:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1996 -> <init>
    4947:4955:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2050:2058 -> <init>
    4947:4955:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1996 -> <init>
    4956:4956:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2044:2044 -> <init>
    4956:4956:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1996 -> <init>
    4957:4957:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    4957:4957:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2045 -> <init>
    4957:4957:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1996 -> <init>
    4958:4979:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2045:2066 -> <init>
    4958:4979:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1996 -> <init>
    4980:4992:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2064:2076 -> <init>
    4980:4992:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1996 -> <init>
    4993:4997:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2070:2074 -> <init>
    4993:4997:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):1996 -> <init>
    1:1:int access$3702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument,int):1996:1996 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value access$3802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):1996:1996 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$4000(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):1996:1996 -> a
    1:1:int access$3902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument,int):1996:1996 -> b
    2:11:boolean isInitialized():3654:3663 -> b
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getValue():3645:3645 -> b
    12:12:boolean isInitialized():3666 -> b
    13:17:boolean isInitialized():3666:3670 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder newBuilderForType():3766:3766 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():1996 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):3768:3768 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder toBuilder():3770 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():1996 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument getDefaultInstance():2009:2009 -> f
    1:1:int getNameId():3630:3630 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getValue():3645:3645 -> getValue
    1:1:boolean hasNameId():3624:3624 -> h
    1:1:boolean hasValue():3639:3639 -> i
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder newBuilder():3765:3765 -> j
    1:2:void initFields():3649:3650 -> k
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$1 -> com.android.tools.r8.d.b.a.b.a.c:
    1:1:void <init>():2080:2080 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2085:2085 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2080 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder -> com.android.tools.r8.d.b.a.b.a.d:
    int bitField0_ -> b
    int nameId_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value value_ -> d
    1:132:void <init>():3782:3913 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):3775:3775 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):3834:3836 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder setNameId(int):3898:3899 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):3836 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):3838:3839 -> a
    9:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeValue(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3952:3960 -> a
    9:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):3839 -> a
    18:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument):3841:3841 -> a
    19:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3868:3874 -> a
    19:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3775 -> a
    26:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3870:3874 -> a
    26:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3775 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument build():3810:3812 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():3775 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder clone():3802:3802 -> clone
    1:1:java.lang.Object clone():3775 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder create():3789:3789 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder access$3500():3775 -> e
    1:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument buildPartial():3818:3829 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Builder create():3789:3789 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value -> com.android.tools.r8.d.b.a.b.a.h:
    int flags_ -> l
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    int classId_ -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value defaultInstance -> n
    float floatValue_ -> e
    int enumValueId_ -> i
    int stringValue_ -> g
    long intValue_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation annotation_ -> j
    int bitField0_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type type_ -> c
    byte memoizedIsInitialized -> m
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> o
    double doubleValue_ -> f
    java.util.List arrayElement_ -> k
    1:1252:void <clinit>():2360:3611 -> <clinit>
    1:512:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2230:2741 -> <init>
    1:512:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    513:513:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2231:2231 -> <init>
    513:513:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    514:1022:void <init>(boolean):2233:2741 -> <init>
    1023:1023:void <init>(boolean):2233:2233 -> <init>
    1024:1517:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2248:2741 -> <init>
    1024:1517:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1518:1604:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2249:2335 -> <init>
    1518:1604:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1605:1605:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1605:1605:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2336 -> <init>
    1605:1605:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1606:1606:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2336:2336 -> <init>
    1606:1606:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1607:1610:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2328:2331 -> <init>
    1607:1610:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1611:1619:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2315:2323 -> <init>
    1611:1619:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1620:1620:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2309:2309 -> <init>
    1620:1620:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1621:1621:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1621:1621:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2310 -> <init>
    1621:1621:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1622:1622:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2310:2310 -> <init>
    1622:1622:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1623:1623:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2304:2304 -> <init>
    1623:1623:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1624:1624:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1624:1624:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2305 -> <init>
    1624:1624:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1625:1625:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2305:2305 -> <init>
    1625:1625:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1626:1626:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2299:2299 -> <init>
    1626:1626:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1627:1627:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1627:1627:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2300 -> <init>
    1627:1627:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1628:1628:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2300:2300 -> <init>
    1628:1628:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1629:1630:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2294:2295 -> <init>
    1629:1630:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1631:1632:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2289:2290 -> <init>
    1631:1632:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1633:1634:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2284:2285 -> <init>
    1633:1634:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1635:1635:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readEnum():570:570 -> <init>
    1635:1635:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2272 -> <init>
    1635:1635:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1636:1642:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2273:2279 -> <init>
    1636:1642:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1643:1643:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):73:73 -> <init>
    1643:1643:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2265 -> <init>
    1643:1643:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1644:1644:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2344:2344 -> <init>
    1644:1644:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1645:1660:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2342:2357 -> <init>
    1645:1660:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1661:1668:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2348:2355 -> <init>
    1661:1668:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):2224 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type access$2302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type):2224:2224 -> a
    2:2:long access$2402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,long):2224:2224 -> a
    3:3:float access$2502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,float):2224:2224 -> a
    4:4:double access$2602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,double):2224:2224 -> a
    5:5:int access$2702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,int):2224:2224 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation access$3002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):2224:2224 -> a
    7:7:java.util.List access$3100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):2224:2224 -> a
    8:8:java.util.List access$3102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,java.util.List):2224:2224 -> a
    1:1:int access$2802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,int):2224:2224 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$3400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):2224:2224 -> b
    3:7:boolean isInitialized():2743:2747 -> b
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getAnnotation():2668:2668 -> b
    8:8:boolean isInitialized():2748 -> b
    9:10:boolean isInitialized():2748:2749 -> b
    11:11:int getArrayElementCount():2690:2690 -> b
    11:11:boolean isInitialized():2753 -> b
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getArrayElement(int):2696:2696 -> b
    12:12:boolean isInitialized():2754 -> b
    13:18:boolean isInitialized():2754:2759 -> b
    1:1:int access$2902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,int):2224:2224 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder():2910:2910 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):2913 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):2913:2913 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilderForType():2911:2911 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():2224 -> c
    1:1:int access$3202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,int):2224:2224 -> d
    1:1:int access$3302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value,int):2224:2224 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():2224:2224 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder toBuilder():2915:2915 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getAnnotation():2668:2668 -> f
    1:1:int getClassId():2638:2638 -> g
    1:1:int getFlags():2726:2726 -> getFlags
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value getDefaultInstance():2237:2237 -> h
    1:1:double getDoubleValue():2600:2600 -> i
    1:1:int getEnumValueId():2653:2653 -> j
    1:1:float getFloatValue():2585:2585 -> k
    1:1:long getIntValue():2570:2570 -> l
    1:1:int getStringValue():2615:2615 -> m
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type getType():2555:2555 -> n
    1:1:boolean hasAnnotation():2662:2662 -> o
    1:1:boolean hasClassId():2628:2628 -> p
    1:1:boolean hasDoubleValue():2594:2594 -> q
    1:1:boolean hasEnumValueId():2647:2647 -> r
    1:1:boolean hasFlags():2716:2716 -> s
    1:1:boolean hasFloatValue():2579:2579 -> t
    1:1:boolean hasIntValue():2564:2564 -> u
    1:1:boolean hasStringValue():2609:2609 -> v
    1:1:boolean hasType():2543:2543 -> w
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder newBuilder():2910:2910 -> x
    1:10:void initFields():2730:2739 -> y
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$1 -> com.android.tools.r8.d.b.a.b.a.e:
    1:1:void <init>():2361:2361 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2366:2366 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2361 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder -> com.android.tools.r8.d.b.a.b.a.f:
    int flags_ -> l
    int classId_ -> h
    float floatValue_ -> e
    int enumValueId_ -> i
    int stringValue_ -> g
    long intValue_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation annotation_ -> j
    int bitField0_ -> b
    double doubleValue_ -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type type_ -> c
    java.util.List arrayElement_ -> k
    1:507:void <init>():2927:3433 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):2920:2920 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3028:3030 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type):3144:3145 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3030 -> a
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type):3142:3142 -> a
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3030 -> a
    8:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3032:3033 -> a
    10:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setIntValue(long):3182:3183 -> a
    10:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3033 -> a
    12:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3035:3036 -> a
    14:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setFloatValue(float):3214:3215 -> a
    14:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3036 -> a
    16:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3038:3039 -> a
    18:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setDoubleValue(double):3246:3247 -> a
    18:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3039 -> a
    20:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3041:3042 -> a
    22:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setStringValue(int):3278:3279 -> a
    22:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3042 -> a
    24:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3044:3045 -> a
    26:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setClassId(int):3322:3323 -> a
    26:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3045 -> a
    28:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3047:3048 -> a
    30:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setEnumValueId(int):3358:3359 -> a
    30:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3048 -> a
    32:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3050:3051 -> a
    34:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeAnnotation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):3412:3420 -> a
    34:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3051 -> a
    43:46:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3053:3056 -> a
    47:49:void ensureArrayElementIsMutable():3436:3438 -> a
    47:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3058 -> a
    50:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3059:3064 -> a
    56:57:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder setFlags(int):3587:3588 -> a
    56:57:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3064 -> a
    58:58:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value):3066:3066 -> a
    59:65:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3093:3099 -> a
    59:65:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2920 -> a
    66:70:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3095:3099 -> a
    66:70:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2920 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value build():2971:2973 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():2920 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder clone():2963:2963 -> clone
    1:1:java.lang.Object clone():2920 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder create():2934:2934 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder access$2100():2920 -> e
    1:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value buildPartial():2979:3023 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Builder create():2934:2934 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type -> com.android.tools.r8.d.b.a.b.a.g:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type[] $VALUES -> o
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type BYTE -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type CHAR -> c
    int value -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type SHORT -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type INT -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type LONG -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type FLOAT -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type DOUBLE -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type BOOLEAN -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type STRING -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type CLASS -> k
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type ENUM -> l
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type ANNOTATION -> m
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type ARRAY -> n
    1:49:void <clinit>():2383:2431 -> <clinit>
    50:50:void <clinit>():2378:2378 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):2523:2524 -> <init>
    1:1:int getNumber():2488:2488 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2504:2504 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2503:2503 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2502:2502 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2501:2501 -> b
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2500:2500 -> b
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2499:2499 -> b
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2498:2498 -> b
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2497:2497 -> b
    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2496:2496 -> b
    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2495:2495 -> b
    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2494:2494 -> b
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2493:2493 -> b
    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$Value$Type valueOf(int):2492:2492 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Argument$ValueOrBuilder -> com.android.tools.r8.d.b.a.b.a.i:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$ArgumentOrBuilder -> com.android.tools.r8.d.b.a.b.a.k:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder -> com.android.tools.r8.d.b.a.b.a.l:
    java.util.List argument_ -> d
    int bitField0_ -> b
    int id_ -> c
    1:138:void <init>():4167:4304 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):4160:4160 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4220:4222 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder setId(int):4289:4290 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4222 -> a
    7:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4224:4227 -> a
    11:13:void ensureArgumentIsMutable():4307:4309 -> a
    11:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4229 -> a
    14:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation):4230:4234 -> a
    19:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4259:4265 -> a
    19:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4160 -> a
    26:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4261:4265 -> a
    26:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4160 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation build():4195:4197 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():4160 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder clone():4187:4187 -> clone
    1:1:java.lang.Object clone():4160 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder create():4174:4174 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder access$4100():4160 -> e
    1:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation buildPartial():4203:4215 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation$Builder create():4174:4174 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$AnnotationOrBuilder -> com.android.tools.r8.d.b.a.b.a.n:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class -> com.android.tools.r8.d.b.a.b.a.r:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class defaultInstance -> u
    java.util.List versionRequirement_ -> r
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    java.util.List sealedSubclassFqName_ -> p
    java.util.List enumEntry_ -> o
    int companionObjectName_ -> f
    int flags_ -> d
    int fqName_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable typeTable_ -> q
    int bitField0_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> v
    java.util.List nestedClassName_ -> j
    java.util.List supertypeId_ -> i
    java.util.List supertype_ -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable versionRequirementTable_ -> s
    byte memoizedIsInitialized -> t
    java.util.List typeParameter_ -> g
    java.util.List typeAlias_ -> n
    java.util.List property_ -> m
    java.util.List function_ -> l
    java.util.List constructor_ -> k
    1:2708:void <clinit>():8603:11310 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):8323:8323 -> <init>
    2:865:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):8330:9193 -> <init>
    2:865:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):8323 -> <init>
    866:866:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):8331:8331 -> <init>
    866:866:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):8323 -> <init>
    867:1727:void <init>(boolean):8333:9193 -> <init>
    1728:1728:void <init>(boolean):8333:8333 -> <init>
    1729:2574:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8348:9193 -> <init>
    2575:2775:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8349:8549 -> <init>
    2776:2785:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8527:8536 -> <init>
    2786:2789:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8520:8523 -> <init>
    2790:2798:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8507:8515 -> <init>
    2799:2808:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8493:8502 -> <init>
    2809:2812:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8486:8489 -> <init>
    2813:2816:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8478:8481 -> <init>
    2817:2820:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8470:8473 -> <init>
    2821:2824:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8462:8465 -> <init>
    2825:2828:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8454:8457 -> <init>
    2829:2832:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8446:8449 -> <init>
    2833:2842:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8432:8441 -> <init>
    2843:2846:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8425:8428 -> <init>
    2847:2850:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8417:8420 -> <init>
    2851:2854:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8409:8412 -> <init>
    2855:2856:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8403:8404 -> <init>
    2857:2858:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8398:8399 -> <init>
    2859:2868:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8385:8394 -> <init>
    2869:2872:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8378:8381 -> <init>
    2873:3058:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8372:8557 -> <init>
    3059:3104:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8555:8600 -> <init>
    3105:3144:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8561:8600 -> <init>
    1:1:boolean hasTypeTable():9117:9117 -> A
    1:1:boolean hasVersionRequirementTable():9166:9166 -> B
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder newBuilder():9500:9500 -> C
    1:16:void initFields():9176:9191 -> D
    1:1:java.util.List access$10000(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8323:8323 -> a
    2:2:java.util.List access$10002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8323:8323 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable access$10102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):8323:8323 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable access$10302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):8323:8323 -> a
    5:5:int access$10402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,int):8323:8323 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class getDefaultInstanceForType():8341:8341 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():8323 -> a
    1:1:java.util.List access$10200(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8323:8323 -> b
    2:2:java.util.List access$10202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8323:8323 -> b
    3:3:int access$8802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,int):8323:8323 -> b
    4:9:boolean isInitialized():9195:9200 -> b
    10:10:int getTypeParameterCount():8816:8816 -> b
    10:10:boolean isInitialized():9203 -> b
    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):8822:8822 -> b
    11:11:boolean isInitialized():9204 -> b
    12:13:boolean isInitialized():9204:9205 -> b
    14:14:int getSupertypeCount():8851:8851 -> b
    14:14:boolean isInitialized():9209 -> b
    15:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getSupertype(int):8857:8857 -> b
    15:15:boolean isInitialized():9210 -> b
    16:17:boolean isInitialized():9210:9211 -> b
    18:18:int getConstructorCount():8932:8932 -> b
    18:18:boolean isInitialized():9215 -> b
    19:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor getConstructor(int):8938:8938 -> b
    19:19:boolean isInitialized():9216 -> b
    20:21:boolean isInitialized():9216:9217 -> b
    22:22:int getFunctionCount():8967:8967 -> b
    22:22:boolean isInitialized():9221 -> b
    23:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getFunction(int):8973:8973 -> b
    23:23:boolean isInitialized():9222 -> b
    24:25:boolean isInitialized():9222:9223 -> b
    26:26:int getPropertyCount():9002:9002 -> b
    26:26:boolean isInitialized():9227 -> b
    27:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getProperty(int):9008:9008 -> b
    27:27:boolean isInitialized():9228 -> b
    28:29:boolean isInitialized():9228:9229 -> b
    30:30:int getTypeAliasCount():9037:9037 -> b
    30:30:boolean isInitialized():9233 -> b
    31:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getTypeAlias(int):9043:9043 -> b
    31:31:boolean isInitialized():9234 -> b
    32:33:boolean isInitialized():9234:9235 -> b
    34:34:int getEnumEntryCount():9072:9072 -> b
    34:34:boolean isInitialized():9239 -> b
    35:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry getEnumEntry(int):9078:9078 -> b
    35:35:boolean isInitialized():9240 -> b
    36:41:boolean isInitialized():9240:9245 -> b
    42:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():9123:9123 -> b
    42:42:boolean isInitialized():9246 -> b
    43:52:boolean isInitialized():9246:9255 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$10500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8323:8323 -> c
    2:2:int access$8902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,int):8323:8323 -> c
    3:3:java.util.List access$9102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8323:8323 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder newBuilderForType():9501:9501 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():8323 -> c
    1:1:int access$9002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,int):8323:8323 -> d
    2:2:java.util.List access$9100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8323:8323 -> d
    3:3:java.util.List access$9202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8323:8323 -> d
    1:1:java.util.List access$9200(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8323:8323 -> e
    2:2:java.util.List access$9302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8323:8323 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9503:9503 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder toBuilder():9505 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():8323 -> e
    1:1:java.util.List access$9300(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8323:8323 -> f
    2:2:java.util.List access$9402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8323:8323 -> f
    1:1:java.util.List access$9400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8323:8323 -> g
    2:2:java.util.List access$9502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8323:8323 -> g
    1:1:int getFlags():8764:8764 -> getFlags
    1:1:java.util.List access$9500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8323:8323 -> h
    2:2:java.util.List access$9602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8323:8323 -> h
    3:3:int getCompanionObjectName():8794:8794 -> h
    1:1:java.util.List access$9600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8323:8323 -> i
    2:2:java.util.List access$9702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8323:8323 -> i
    3:3:java.util.List getConstructorList():8919:8919 -> i
    1:1:java.util.List access$9700(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8323:8323 -> j
    2:2:java.util.List access$9802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8323:8323 -> j
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class getDefaultInstance():8337:8337 -> j
    1:1:java.util.List access$9800(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8323:8323 -> k
    2:2:java.util.List access$9902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,java.util.List):8323:8323 -> k
    3:3:java.util.List getEnumEntryList():9059:9059 -> k
    1:1:java.util.List access$9900(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):8323:8323 -> l
    2:2:int getFqName():8779:8779 -> l
    1:1:java.util.List getFunctionList():8954:8954 -> m
    1:1:java.util.List getNestedClassNameList():8897:8897 -> n
    1:1:java.util.List getPropertyList():8989:8989 -> o
    1:1:java.util.List getSealedSubclassFqNameList():9095:9095 -> p
    1:1:java.util.List getSupertypeIdList():8874:8874 -> q
    1:1:java.util.List getSupertypeList():8838:8838 -> r
    1:1:java.util.List getTypeAliasList():9024:9024 -> s
    1:1:java.util.List getTypeParameterList():8803:8803 -> t
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():9123:9123 -> u
    1:1:java.util.List getVersionRequirementList():9137:9137 -> v
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable getVersionRequirementTable():9172:9172 -> w
    1:1:boolean hasCompanionObjectName():8788:8788 -> x
    1:1:boolean hasFlags():8746:8746 -> y
    1:1:boolean hasFqName():8773:8773 -> z
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$1 -> com.android.tools.r8.d.b.a.b.a.o:
    1:1:void <init>():8604:8604 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8609:8609 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):8604 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder -> com.android.tools.r8.d.b.a.b.a.p:
    java.util.List sealedSubclassFqName_ -> q
    java.util.List enumEntry_ -> p
    java.util.List typeAlias_ -> o
    java.util.List versionRequirement_ -> s
    int fqName_ -> f
    int companionObjectName_ -> g
    int bitField0_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable typeTable_ -> r
    int flags_ -> e
    java.util.List supertypeId_ -> j
    java.util.List supertype_ -> i
    java.util.List typeParameter_ -> h
    java.util.List property_ -> n
    java.util.List function_ -> m
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable versionRequirementTable_ -> t
    java.util.List constructor_ -> l
    java.util.List nestedClassName_ -> k
    1:1730:void <init>():9516:11245 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):9510:9510 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9663:9665 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder setFlags(int):9927:9928 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9665 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9667:9668 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder setFqName(int):9971:9972 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9668 -> a
    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9670:9671 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder setCompanionObjectName(int):10003:10004 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9671 -> a
    15:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9673:9676 -> a
    19:21:void ensureTypeParameterIsMutable():10021:10023 -> a
    19:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9678 -> a
    22:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9679:9686 -> a
    30:32:void ensureSupertypeIsMutable():10146:10148 -> a
    30:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9688 -> a
    33:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9689:9696 -> a
    41:43:void ensureSupertypeIdIsMutable():10270:10272 -> a
    41:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9698 -> a
    44:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9699:9706 -> a
    52:54:void ensureNestedClassNameIsMutable():10336:10338 -> a
    52:54:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9708 -> a
    55:62:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9709:9716 -> a
    63:65:void ensureConstructorIsMutable():10403:10405 -> a
    63:65:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9718 -> a
    66:73:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9719:9726 -> a
    74:76:void ensureFunctionIsMutable():10528:10530 -> a
    74:76:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9728 -> a
    77:84:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9729:9736 -> a
    85:87:void ensurePropertyIsMutable():10653:10655 -> a
    85:87:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9738 -> a
    88:95:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9739:9746 -> a
    96:98:void ensureTypeAliasIsMutable():10778:10780 -> a
    96:98:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9748 -> a
    99:106:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9749:9756 -> a
    107:109:void ensureEnumEntryIsMutable():10903:10905 -> a
    107:109:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9758 -> a
    110:117:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9759:9766 -> a
    118:120:void ensureSealedSubclassFqNameIsMutable():11027:11029 -> a
    118:120:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9768 -> a
    121:126:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9769:9774 -> a
    127:135:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):11130:11138 -> a
    127:135:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9774 -> a
    136:139:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9776:9779 -> a
    140:142:void ensureVersionRequirementIsMutable():11153:11155 -> a
    140:142:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9781 -> a
    143:148:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9782:9787 -> a
    149:157:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeVersionRequirementTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):11284:11292 -> a
    149:157:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9787 -> a
    158:159:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class):9789:9790 -> a
    160:166:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):9861:9867 -> a
    160:166:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):9510 -> a
    167:171:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):9863:9867 -> a
    167:171:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):9510 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class build():9572:9574 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():9510 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder clone():9564:9564 -> clone
    1:1:java.lang.Object clone():9510 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder create():9523:9523 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder access$8600():9510 -> e
    1:79:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class buildPartial():9580:9658 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Builder create():9523:9523 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind -> com.android.tools.r8.d.b.a.b.a.q:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind CLASS -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind ENUM_CLASS -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind INTERFACE -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind ANNOTATION_CLASS -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind ENUM_ENTRY -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind COMPANION_OBJECT -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind OBJECT -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind[] $VALUES -> i
    int value -> a
    1:25:void <clinit>():8630:8654 -> <clinit>
    26:26:void <clinit>():8621:8621 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):8720:8721 -> <init>
    1:1:int getNumber():8691:8691 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class$Kind[] values():8621:8621 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ClassOrBuilder -> com.android.tools.r8.d.b.a.b.a.s:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor -> com.android.tools.r8.d.b.a.b.a.v:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    java.util.List versionRequirement_ -> f
    java.util.List valueParameter_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor defaultInstance -> h
    int flags_ -> d
    int bitField0_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> i
    byte memoizedIsInitialized -> g
    1:665:void <clinit>():13299:13963 -> <clinit>
    666:668:void initFields():13412:13414 -> <clinit>
    666:668:void <clinit>():13963 -> <clinit>
    1:217:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):13200:13416 -> <init>
    1:217:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):13193 -> <init>
    218:218:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):13201:13201 -> <init>
    218:218:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):13193 -> <init>
    219:432:void <init>(boolean):13203:13416 -> <init>
    433:433:void <init>(boolean):13203:13203 -> <init>
    434:632:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13218:13416 -> <init>
    434:632:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):13193 -> <init>
    633:684:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13219:13270 -> <init>
    633:684:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):13193 -> <init>
    685:685:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    685:685:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13270 -> <init>
    685:685:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):13193 -> <init>
    686:688:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13270:13272 -> <init>
    686:688:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):13193 -> <init>
    689:692:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13256:13259 -> <init>
    689:692:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):13193 -> <init>
    693:693:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    693:693:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13259 -> <init>
    693:693:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):13193 -> <init>
    694:694:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13259:13259 -> <init>
    694:694:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):13193 -> <init>
    695:698:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13248:13251 -> <init>
    695:698:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):13193 -> <init>
    699:699:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13242:13242 -> <init>
    699:699:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):13193 -> <init>
    700:700:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    700:700:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13243 -> <init>
    700:700:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):13193 -> <init>
    701:738:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13243:13280 -> <init>
    701:738:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):13193 -> <init>
    739:757:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13278:13296 -> <init>
    739:757:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):13193 -> <init>
    758:770:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13284:13296 -> <init>
    758:770:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):13193 -> <init>
    1:1:int access$12602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,int):13193:13193 -> a
    2:2:java.util.List access$12700(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13193:13193 -> a
    3:3:java.util.List access$12702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,java.util.List):13193:13193 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor getDefaultInstanceForType():13211:13211 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():13193 -> a
    1:1:java.util.List access$12800(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13193:13193 -> b
    2:2:java.util.List access$12802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,java.util.List):13193:13193 -> b
    3:3:int access$12902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,int):13193:13193 -> b
    4:4:boolean isInitialized():13418:13418 -> b
    5:5:int getValueParameterCount():13361:13361 -> b
    5:5:boolean isInitialized():13422 -> b
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getValueParameter(int):13367:13367 -> b
    6:6:boolean isInitialized():13423 -> b
    7:16:boolean isInitialized():13423:13432 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$13000(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13193:13193 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder newBuilderForType():13545:13545 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():13193 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13547:13547 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder toBuilder():13549 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():13193 -> e
    1:1:int getFlags():13339:13339 -> getFlags
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor getDefaultInstance():13207:13207 -> h
    1:1:java.util.List getValueParameterList():13348:13348 -> i
    1:1:java.util.List getVersionRequirementList():13388:13388 -> j
    1:1:boolean hasFlags():13327:13327 -> k
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder newBuilder():13544:13544 -> l
    1:3:void initFields():13412:13414 -> m
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$1 -> com.android.tools.r8.d.b.a.b.a.t:
    1:1:void <init>():13300:13300 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13305:13305 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13300 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder -> com.android.tools.r8.d.b.a.b.a.u:
    java.util.List valueParameter_ -> f
    int bitField0_ -> d
    int flags_ -> e
    java.util.List versionRequirement_ -> g
    1:305:void <init>():13560:13864 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):13554:13554 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13620:13622 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder setFlags(int):13718:13719 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13622 -> a
    7:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13624:13627 -> a
    11:13:void ensureValueParameterIsMutable():13742:13744 -> a
    11:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13629 -> a
    14:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13630:13637 -> a
    22:24:void ensureVersionRequirementIsMutable():13866:13868 -> a
    22:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13639 -> a
    25:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor):13640:13645 -> a
    31:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13670:13676 -> a
    31:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13554 -> a
    38:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13672:13676 -> a
    38:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):13554 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor build():13590:13592 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():13554 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder clone():13582:13582 -> clone
    1:1:java.lang.Object clone():13554 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder create():13567:13567 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder access$12400():13554 -> e
    1:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor buildPartial():13598:13615 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor$Builder create():13567:13567 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ConstructorOrBuilder -> com.android.tools.r8.d.b.a.b.a.w:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract -> com.android.tools.r8.d.b.a.b.a.z:
    java.util.List effect_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract defaultInstance -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    byte memoizedIsInitialized -> c
    1:391:void <clinit>():23214:23604 -> <clinit>
    1:124:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):23144:23267 -> <init>
    1:124:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23138 -> <init>
    125:125:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):23145:23145 -> <init>
    125:125:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23138 -> <init>
    126:246:void <init>(boolean):23147:23267 -> <init>
    247:247:void <init>(boolean):23147:23147 -> <init>
    248:353:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23162:23267 -> <init>
    248:353:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23138 -> <init>
    354:364:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23163:23173 -> <init>
    354:364:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23138 -> <init>
    365:365:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):73:73 -> <init>
    365:365:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23179 -> <init>
    365:365:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23138 -> <init>
    366:377:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23187:23198 -> <init>
    366:377:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23138 -> <init>
    378:393:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23196:23211 -> <init>
    378:393:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23138 -> <init>
    394:401:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23202:23209 -> <init>
    394:401:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23138 -> <init>
    1:1:java.util.List access$22400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23138:23138 -> a
    2:2:java.util.List access$22402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract,java.util.List):23138:23138 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$22500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23138:23138 -> b
    2:2:boolean isInitialized():23269:23269 -> b
    3:3:int getEffectCount():23248:23248 -> b
    3:3:boolean isInitialized():23273 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect getEffect(int):23254:23254 -> b
    4:4:boolean isInitialized():23274 -> b
    5:10:boolean isInitialized():23274:23279 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder():23367:23367 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23370 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23370:23370 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilderForType():23368:23368 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():23138 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():23138:23138 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder toBuilder():23372:23372 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract getDefaultInstance():23151:23151 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder newBuilder():23367:23367 -> g
    1:1:void initFields():23265:23265 -> h
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$1 -> com.android.tools.r8.d.b.a.b.a.x:
    1:1:void <init>():23215:23215 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23220:23220 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23215 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder -> com.android.tools.r8.d.b.a.b.a.y:
    java.util.List effect_ -> c
    int bitField0_ -> b
    1:91:void <init>():23384:23474 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):23377:23377 -> a
    2:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23429:23433 -> a
    7:9:void ensureEffectIsMutable():23477:23479 -> a
    7:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23435 -> a
    10:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):23436:23440 -> a
    15:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23461:23467 -> a
    15:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23377 -> a
    22:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23463:23467 -> a
    22:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23377 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract build():23410:23412 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():23377 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder clone():23402:23402 -> clone
    1:1:java.lang.Object clone():23377 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder create():23391:23391 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder access$22200():23377 -> e
    1:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract buildPartial():23418:23424 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract$Builder create():23391:23391 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ContractOrBuilder -> com.android.tools.r8.d.b.a.b.a.A:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect -> com.android.tools.r8.d.b.a.b.a.F:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType effectType_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    java.util.List effectConstructorArgument_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect defaultInstance -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression conclusionOfConditionalEffect_ -> e
    int bitField0_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind kind_ -> f
    byte memoizedIsInitialized -> g
    1:836:void <clinit>():23781:24616 -> <clinit>
    1:384:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):23674:24057 -> <init>
    1:384:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23668 -> <init>
    385:385:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):23675:23675 -> <init>
    385:385:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23668 -> <init>
    386:766:void <init>(boolean):23677:24057 -> <init>
    767:767:void <init>(boolean):23677:23677 -> <init>
    768:1133:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23692:24057 -> <init>
    768:1133:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23668 -> <init>
    1134:1144:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23693:23703 -> <init>
    1134:1144:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23668 -> <init>
    1145:1145:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):73:73 -> <init>
    1145:1145:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23709 -> <init>
    1145:1145:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23668 -> <init>
    1146:1146:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readEnum():570:570 -> <init>
    1146:1146:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23749 -> <init>
    1146:1146:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23668 -> <init>
    1147:1153:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23750:23756 -> <init>
    1147:1153:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23668 -> <init>
    1154:1162:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23737:23745 -> <init>
    1154:1162:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23668 -> <init>
    1163:1166:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23729:23732 -> <init>
    1163:1166:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23668 -> <init>
    1167:1167:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readEnum():570:570 -> <init>
    1167:1167:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23716 -> <init>
    1167:1167:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23668 -> <init>
    1168:1216:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23717:23765 -> <init>
    1168:1216:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23668 -> <init>
    1217:1232:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23763:23778 -> <init>
    1217:1232:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23668 -> <init>
    1233:1240:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23769:23776 -> <init>
    1233:1240:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):23668 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType access$22902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType):23668:23668 -> a
    2:2:java.util.List access$23000(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):23668:23668 -> a
    3:3:java.util.List access$23002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect,java.util.List):23668:23668 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression access$23102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):23668:23668 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind access$23202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind):23668:23668 -> a
    6:6:int access$23302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect,int):23668:23668 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$23400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):23668:23668 -> b
    2:2:boolean isInitialized():24059:24059 -> b
    3:3:int getEffectConstructorArgumentCount():23995:23995 -> b
    3:3:boolean isInitialized():24063 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getEffectConstructorArgument(int):24001:24001 -> b
    4:4:boolean isInitialized():24064 -> b
    5:10:boolean isInitialized():24064:24069 -> b
    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getConclusionOfConditionalEffect():24033:24033 -> b
    11:11:boolean isInitialized():24070 -> b
    12:17:boolean isInitialized():24070:24075 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder newBuilderForType():24185:24185 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():23668 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24187:24187 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder toBuilder():24189 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():23668 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getConclusionOfConditionalEffect():24033:24033 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect getDefaultInstance():23681:23681 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType getEffectType():23973:23973 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind getKind():24048:24048 -> i
    1:1:boolean hasConclusionOfConditionalEffect():24022:24022 -> j
    1:1:boolean hasEffectType():23967:23967 -> k
    1:1:boolean hasKind():24042:24042 -> l
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder newBuilder():24184:24184 -> m
    1:4:void initFields():24052:24055 -> n
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$1 -> com.android.tools.r8.d.b.a.b.a.B:
    1:1:void <init>():23782:23782 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23787:23787 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):23782 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder -> com.android.tools.r8.d.b.a.b.a.C:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType effectType_ -> c
    java.util.List effectConstructorArgument_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression conclusionOfConditionalEffect_ -> e
    int bitField0_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind kind_ -> f
    1:376:void <init>():24201:24576 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):24194:24194 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24266:24268 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder setEffectType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType):24346:24347 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24268 -> a
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder setEffectType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType):24344:24344 -> a
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24268 -> a
    8:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24270:24273 -> a
    12:14:void ensureEffectConstructorArgumentIsMutable():24364:24366 -> a
    12:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24275 -> a
    15:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24276:24281 -> a
    21:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeConclusionOfConditionalEffect(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):24550:24558 -> a
    21:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24281 -> a
    30:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24283:24284 -> a
    32:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder setKind(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind):24596:24597 -> a
    32:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24284 -> a
    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder setKind(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind):24594:24594 -> a
    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24284 -> a
    35:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect):24286:24286 -> a
    36:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24313:24319 -> a
    36:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24194 -> a
    43:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24315:24319 -> a
    43:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24194 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect build():24233:24235 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():24194 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder clone():24225:24225 -> clone
    1:1:java.lang.Object clone():24194 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder create():24208:24208 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder access$22700():24194 -> e
    1:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect buildPartial():24241:24261 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$Builder create():24208:24208 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType -> com.android.tools.r8.d.b.a.b.a.D:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType CALLS -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType RETURNS_NOT_NULL -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType[] $VALUES -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType RETURNS_CONSTANT -> b
    int value -> a
    1:18:void <clinit>():23816:23833 -> <clinit>
    19:19:void <clinit>():23807:23807 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):23888:23889 -> <init>
    1:1:int getNumber():23863:23863 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType[] values():23807:23807 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType valueOf(int):23869:23869 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType valueOf(int):23868:23868 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$EffectType valueOf(int):23867:23867 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind -> com.android.tools.r8.d.b.a.b.a.E:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind AT_MOST_ONCE -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind EXACTLY_ONCE -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind[] $VALUES -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind AT_LEAST_ONCE -> d
    int value -> a
    1:9:void <clinit>():23903:23911 -> <clinit>
    10:10:void <clinit>():23898:23898 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):23953:23954 -> <init>
    1:1:int getNumber():23928:23928 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind[] values():23898:23898 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind valueOf(int):23934:23934 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind valueOf(int):23933:23933 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Effect$InvocationKind valueOf(int):23932:23932 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EffectOrBuilder -> com.android.tools.r8.d.b.a.b.a.G:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry -> com.android.tools.r8.d.b.a.b.a.J:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry defaultInstance -> f
    int name_ -> d
    int bitField0_ -> c
    byte memoizedIsInitialized -> e
    1:274:void <clinit>():20354:20627 -> <clinit>
    275:275:void initFields():20386:20386 -> <clinit>
    275:275:void <clinit>():20627 -> <clinit>
    1:99:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):20290:20388 -> <init>
    1:99:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20283 -> <init>
    100:100:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):20291:20291 -> <init>
    100:100:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20283 -> <init>
    101:196:void <init>(boolean):20293:20388 -> <init>
    197:197:void <init>(boolean):20293:20293 -> <init>
    198:278:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20308:20388 -> <init>
    198:278:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20283 -> <init>
    279:302:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20309:20332 -> <init>
    279:302:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20283 -> <init>
    303:303:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    303:303:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20333 -> <init>
    303:303:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20283 -> <init>
    304:312:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20333:20341 -> <init>
    304:312:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20283 -> <init>
    313:325:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20339:20351 -> <init>
    313:325:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20283 -> <init>
    326:332:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20345:20351 -> <init>
    326:332:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20283 -> <init>
    1:1:int access$19302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry,int):20283:20283 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$19500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry):20283:20283 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry getDefaultInstanceForType():20301:20301 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():20283 -> a
    1:1:int access$19402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry,int):20283:20283 -> b
    2:10:boolean isInitialized():20390:20398 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder newBuilderForType():20492:20492 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():20283 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry):20494:20494 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder toBuilder():20496 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():20283 -> e
    1:1:int getName():20382:20382 -> getName
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry getDefaultInstance():20297:20297 -> h
    1:1:boolean hasName():20376:20376 -> i
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder newBuilder():20491:20491 -> j
    1:1:void initFields():20386:20386 -> k
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$1 -> com.android.tools.r8.d.b.a.b.a.H:
    1:1:void <init>():20355:20355 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20360:20360 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20355 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder -> com.android.tools.r8.d.b.a.b.a.I:
    int bitField0_ -> d
    int name_ -> e
    1:1:void <init>():20507:20507 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):20501:20501 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry):20553:20555 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder setName(int):20607:20608 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry):20555 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry):20557:20558 -> a
    9:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20577:20583 -> a
    9:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20501 -> a
    16:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20579:20583 -> a
    16:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20501 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry build():20533:20535 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():20501 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder clone():20525:20525 -> clone
    1:1:java.lang.Object clone():20501 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder create():20514:20514 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder access$19100():20501 -> e
    1:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry buildPartial():20541:20548 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntry$Builder create():20514:20514 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$EnumEntryOrBuilder -> com.android.tools.r8.d.b.a.b.a.K:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression -> com.android.tools.r8.d.b.a.b.a.O:
    byte memoizedIsInitialized -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue constantValue_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type isInstanceType_ -> f
    int isInstanceTypeId_ -> g
    java.util.List orArgument_ -> i
    int valueParameterReference_ -> d
    java.util.List andArgument_ -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression defaultInstance -> k
    int bitField0_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> l
    int flags_ -> c
    1:1328:void <clinit>():24900:26227 -> <clinit>
    1:447:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):24779:25225 -> <init>
    1:447:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24773 -> <init>
    448:448:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):24780:24780 -> <init>
    448:448:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24773 -> <init>
    449:892:void <init>(boolean):24782:25225 -> <init>
    893:893:void <init>(boolean):24782:24782 -> <init>
    894:1322:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24797:25225 -> <init>
    894:1322:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24773 -> <init>
    1323:1333:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24798:24808 -> <init>
    1323:1333:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24773 -> <init>
    1334:1334:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):73:73 -> <init>
    1334:1334:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24814 -> <init>
    1334:1334:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24773 -> <init>
    1335:1338:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24870:24873 -> <init>
    1335:1338:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24773 -> <init>
    1339:1342:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24862:24865 -> <init>
    1339:1342:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24773 -> <init>
    1343:1343:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24856:24856 -> <init>
    1343:1343:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24773 -> <init>
    1344:1344:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1344:1344:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24857 -> <init>
    1344:1344:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24773 -> <init>
    1345:1345:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24857:24857 -> <init>
    1345:1345:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24773 -> <init>
    1346:1354:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24844:24852 -> <init>
    1346:1354:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24773 -> <init>
    1355:1355:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readEnum():570:570 -> <init>
    1355:1355:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24831 -> <init>
    1355:1355:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24773 -> <init>
    1356:1362:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24832:24838 -> <init>
    1356:1362:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24773 -> <init>
    1363:1363:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24826:24826 -> <init>
    1363:1363:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24773 -> <init>
    1364:1364:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1364:1364:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24827 -> <init>
    1364:1364:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24773 -> <init>
    1365:1365:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24827:24827 -> <init>
    1365:1365:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24773 -> <init>
    1366:1366:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24821:24821 -> <init>
    1366:1366:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24773 -> <init>
    1367:1367:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1367:1367:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24822 -> <init>
    1367:1367:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24773 -> <init>
    1368:1427:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24822:24881 -> <init>
    1368:1427:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24773 -> <init>
    1428:1446:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24879:24897 -> <init>
    1428:1446:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24773 -> <init>
    1447:1457:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24885:24895 -> <init>
    1447:1457:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):24773 -> <init>
    1:1:int access$23802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,int):24773:24773 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue access$24002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue):24773:24773 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$24102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):24773:24773 -> a
    4:4:java.util.List access$24300(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):24773:24773 -> a
    5:5:java.util.List access$24302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,java.util.List):24773:24773 -> a
    1:1:int access$23902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,int):24773:24773 -> b
    2:2:java.util.List access$24400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):24773:24773 -> b
    3:3:java.util.List access$24402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,java.util.List):24773:24773 -> b
    4:8:boolean isInitialized():25227:25231 -> b
    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getIsInstanceType():25068:25068 -> b
    9:9:boolean isInitialized():25232 -> b
    10:11:boolean isInitialized():25232:25233 -> b
    12:12:int getAndArgumentCount():25123:25123 -> b
    12:12:boolean isInitialized():25237 -> b
    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getAndArgument(int):25135:25135 -> b
    13:13:boolean isInitialized():25238 -> b
    14:15:boolean isInitialized():25238:25239 -> b
    16:16:int getOrArgumentCount():25188:25188 -> b
    16:16:boolean isInitialized():25243 -> b
    17:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getOrArgument(int):25200:25200 -> b
    17:17:boolean isInitialized():25244 -> b
    18:23:boolean isInitialized():25244:25249 -> b
    1:1:int access$24202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,int):24773:24773 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$24600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):24773:24773 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilderForType():25380:25380 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():24773 -> c
    1:1:int access$24502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression,int):24773:24773 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder():25379:25379 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25382 -> d
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25382:25382 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():24773:24773 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder toBuilder():25384:25384 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue getConstantValue():25043:25043 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression getDefaultInstance():24786:24786 -> g
    1:1:int getFlags():25003:25003 -> getFlags
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getIsInstanceType():25068:25068 -> h
    1:1:int getIsInstanceTypeId():25083:25083 -> i
    1:1:int getValueParameterReference():25028:25028 -> j
    1:1:boolean hasConstantValue():25037:25037 -> k
    1:1:boolean hasFlags():24992:24992 -> l
    1:1:boolean hasIsInstanceType():25057:25057 -> m
    1:1:boolean hasIsInstanceTypeId():25077:25077 -> n
    1:1:boolean hasValueParameterReference():25017:25017 -> o
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder newBuilder():25379:25379 -> p
    1:7:void initFields():25217:25223 -> q
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$1 -> com.android.tools.r8.d.b.a.b.a.L:
    1:1:void <init>():24901:24901 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24906:24906 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):24901 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder -> com.android.tools.r8.d.b.a.b.a.M:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue constantValue_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type isInstanceType_ -> f
    int isInstanceTypeId_ -> g
    java.util.List orArgument_ -> i
    int valueParameterReference_ -> d
    java.util.List andArgument_ -> h
    int bitField0_ -> b
    int flags_ -> c
    1:625:void <init>():25401:26025 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):25394:25394 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25485:25487 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder setFlags(int):25599:25600 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25487 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25489:25490 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder setValueParameterReference(int):25651:25652 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25490 -> a
    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25492:25493 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder setConstantValue(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue):25691:25692 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25493 -> a
    15:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder setConstantValue(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue):25689:25689 -> a
    15:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25493 -> a
    16:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25495:25496 -> a
    18:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeIsInstanceType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):25770:25778 -> a
    18:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25496 -> a
    27:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25498:25499 -> a
    29:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder setIsInstanceTypeId(int):25813:25814 -> a
    29:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25499 -> a
    31:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25501:25504 -> a
    35:37:void ensureAndArgumentIsMutable():25831:25833 -> a
    35:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25506 -> a
    38:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25507:25514 -> a
    46:48:void ensureOrArgumentIsMutable():26028:26030 -> a
    46:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25516 -> a
    49:53:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression):25517:25521 -> a
    54:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25554:25560 -> a
    54:60:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25394 -> a
    61:65:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25556:25560 -> a
    61:65:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):25394 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression build():25439:25441 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():25394 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder clone():25431:25431 -> clone
    1:1:java.lang.Object clone():25394 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder create():25408:25408 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder access$23600():25394 -> e
    1:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression buildPartial():25447:25480 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$Builder create():25408:25408 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue -> com.android.tools.r8.d.b.a.b.a.N:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue NULL -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue TRUE -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue[] $VALUES -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue FALSE -> c
    int value -> a
    1:9:void <clinit>():24923:24931 -> <clinit>
    10:10:void <clinit>():24918:24918 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):24973:24974 -> <init>
    1:1:int getNumber():24948:24948 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue[] values():24918:24918 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue valueOf(int):24954:24954 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue valueOf(int):24953:24953 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Expression$ConstantValue valueOf(int):24952:24952 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ExpressionOrBuilder -> com.android.tools.r8.d.b.a.b.a.P:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function -> com.android.tools.r8.d.b.a.b.a.T:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function defaultInstance -> q
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    int receiverTypeId_ -> k
    int returnTypeId_ -> h
    int name_ -> f
    int flags_ -> d
    int oldFlags_ -> e
    int bitField0_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type receiverType_ -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type returnType_ -> g
    byte memoizedIsInitialized -> p
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> r
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable typeTable_ -> m
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract contract_ -> o
    java.util.List typeParameter_ -> i
    java.util.List versionRequirement_ -> n
    java.util.List valueParameter_ -> l
    1:1590:void <clinit>():14328:15917 -> <clinit>
    1:480:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):14146:14625 -> <init>
    1:480:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    481:481:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):14147:14147 -> <init>
    481:481:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    482:958:void <init>(boolean):14149:14625 -> <init>
    959:959:void <init>(boolean):14149:14149 -> <init>
    960:1421:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14164:14625 -> <init>
    960:1421:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1422:1555:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14165:14298 -> <init>
    1422:1555:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1556:1563:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14276:14283 -> <init>
    1556:1563:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1564:1564:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1564:1564:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14283 -> <init>
    1564:1564:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1565:1567:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14283:14285 -> <init>
    1565:1567:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1568:1571:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14269:14272 -> <init>
    1568:1571:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1572:1572:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1572:1572:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14272 -> <init>
    1572:1572:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1573:1573:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14272:14272 -> <init>
    1573:1573:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1574:1582:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14256:14264 -> <init>
    1574:1582:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1583:1583:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14250:14250 -> <init>
    1583:1583:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1584:1584:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1584:1584:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14251 -> <init>
    1584:1584:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1585:1585:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14251:14251 -> <init>
    1585:1585:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1586:1586:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14245:14245 -> <init>
    1586:1586:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1587:1587:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1587:1587:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14246 -> <init>
    1587:1587:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1588:1588:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14246:14246 -> <init>
    1588:1588:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1589:1589:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14240:14240 -> <init>
    1589:1589:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1590:1590:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1590:1590:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14241 -> <init>
    1590:1590:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1591:1591:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14241:14241 -> <init>
    1591:1591:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1592:1595:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14233:14236 -> <init>
    1592:1595:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1596:1604:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14220:14228 -> <init>
    1596:1604:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1605:1608:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14212:14215 -> <init>
    1605:1608:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1609:1617:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14199:14207 -> <init>
    1609:1617:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1618:1618:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14193:14193 -> <init>
    1618:1618:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1619:1619:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1619:1619:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14194 -> <init>
    1619:1619:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1620:1620:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14194:14194 -> <init>
    1620:1620:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1621:1621:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14188:14188 -> <init>
    1621:1621:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1622:1622:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1622:1622:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14189 -> <init>
    1622:1622:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1623:1740:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14189:14306 -> <init>
    1623:1740:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1741:1762:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14304:14325 -> <init>
    1741:1762:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1763:1778:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14310:14325 -> <init>
    1763:1778:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):14139 -> <init>
    1:1:boolean hasTypeTable():14553:14553 -> A
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder newBuilder():14850:14850 -> B
    1:12:void initFields():14612:14623 -> C
    1:1:int access$13402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,int):14139:14139 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$13702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):14139:14139 -> a
    3:3:java.util.List access$13900(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14139:14139 -> a
    4:4:java.util.List access$13902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,java.util.List):14139:14139 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable access$14302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):14139:14139 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract access$14502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):14139:14139 -> a
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getDefaultInstanceForType():14157:14157 -> a
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():14139 -> a
    1:1:int access$13502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,int):14139:14139 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$14002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):14139:14139 -> b
    3:3:java.util.List access$14200(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14139:14139 -> b
    4:4:java.util.List access$14202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,java.util.List):14139:14139 -> b
    5:13:boolean isInitialized():14627:14635 -> b
    14:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReturnType():14429:14429 -> b
    14:14:boolean isInitialized():14636 -> b
    15:16:boolean isInitialized():14636:14637 -> b
    17:17:int getTypeParameterCount():14466:14466 -> b
    17:17:boolean isInitialized():14641 -> b
    18:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):14472:14472 -> b
    18:18:boolean isInitialized():14642 -> b
    19:24:boolean isInitialized():14642:14647 -> b
    25:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReceiverType():14494:14494 -> b
    25:25:boolean isInitialized():14648 -> b
    26:27:boolean isInitialized():14648:14649 -> b
    28:28:int getValueParameterCount():14531:14531 -> b
    28:28:boolean isInitialized():14653 -> b
    29:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getValueParameter(int):14537:14537 -> b
    29:29:boolean isInitialized():14654 -> b
    30:35:boolean isInitialized():14654:14659 -> b
    36:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():14559:14559 -> b
    36:36:boolean isInitialized():14660 -> b
    37:42:boolean isInitialized():14660:14665 -> b
    43:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract getContract():14608:14608 -> b
    43:43:boolean isInitialized():14666 -> b
    44:53:boolean isInitialized():14666:14675 -> b
    1:1:int access$13602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,int):14139:14139 -> c
    2:2:java.util.List access$14400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14139:14139 -> c
    3:3:java.util.List access$14402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,java.util.List):14139:14139 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder newBuilderForType():14851:14851 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():14139 -> c
    1:1:int access$13802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,int):14139:14139 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$14700(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14139:14139 -> d
    1:1:int access$14102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,int):14139:14139 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14853:14853 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder toBuilder():14855 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():14139 -> e
    1:1:int access$14602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,int):14139:14139 -> f
    1:1:int getFlags():14384:14384 -> getFlags
    1:1:int getName():14414:14414 -> getName
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract getContract():14608:14608 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getDefaultInstance():14153:14153 -> i
    1:1:int getOldFlags():14399:14399 -> j
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReceiverType():14494:14494 -> k
    1:1:int getReceiverTypeId():14509:14509 -> l
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReturnType():14429:14429 -> m
    1:1:int getReturnTypeId():14444:14444 -> n
    1:1:java.util.List getTypeParameterList():14453:14453 -> o
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():14559:14559 -> p
    1:1:java.util.List getValueParameterList():14518:14518 -> q
    1:1:java.util.List getVersionRequirementList():14573:14573 -> r
    1:1:boolean hasContract():14602:14602 -> s
    1:1:boolean hasFlags():14364:14364 -> t
    1:1:boolean hasName():14408:14408 -> u
    1:1:boolean hasOldFlags():14393:14393 -> v
    1:1:boolean hasReceiverType():14488:14488 -> w
    1:1:boolean hasReceiverTypeId():14503:14503 -> x
    1:1:boolean hasReturnType():14423:14423 -> y
    1:1:boolean hasReturnTypeId():14438:14438 -> z
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$1 -> com.android.tools.r8.d.b.a.b.a.Q:
    1:1:void <init>():14329:14329 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14334:14334 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14329 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder -> com.android.tools.r8.d.b.a.b.a.S:
    int receiverTypeId_ -> l
    java.util.List versionRequirement_ -> o
    int returnTypeId_ -> i
    int oldFlags_ -> f
    int name_ -> g
    int bitField0_ -> d
    int flags_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type receiverType_ -> k
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable typeTable_ -> n
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract contract_ -> p
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type returnType_ -> h
    java.util.List typeParameter_ -> j
    java.util.List valueParameter_ -> m
    1:987:void <init>():14866:15852 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):14860:14860 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14981:14983 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setFlags(int):15171:15172 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14983 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14985:14986 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setOldFlags(int):15217:15218 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14986 -> a
    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14988:14989 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setName(int):15249:15250 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14989 -> a
    15:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14991:14992 -> a
    17:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):15303:15311 -> a
    17:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14992 -> a
    26:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14994:14995 -> a
    28:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setReturnTypeId(int):15341:15342 -> a
    28:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14995 -> a
    30:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):14997:15000 -> a
    34:36:void ensureTypeParameterIsMutable():15359:15361 -> a
    34:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15002 -> a
    37:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15003:15008 -> a
    43:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeReceiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):15520:15528 -> a
    43:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15008 -> a
    52:53:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15010:15011 -> a
    54:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder setReceiverTypeId(int):15558:15559 -> a
    54:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15011 -> a
    56:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15013:15016 -> a
    60:62:void ensureValueParameterIsMutable():15576:15578 -> a
    60:62:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15018 -> a
    63:68:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15019:15024 -> a
    69:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):15737:15745 -> a
    69:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15024 -> a
    78:81:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15026:15029 -> a
    82:84:void ensureVersionRequirementIsMutable():15760:15762 -> a
    82:84:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15031 -> a
    85:90:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15032:15037 -> a
    91:99:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeContract(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Contract):15891:15899 -> a
    91:99:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15037 -> a
    100:101:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function):15039:15040 -> a
    102:108:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):15099:15105 -> a
    102:108:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14860 -> a
    109:113:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):15101:15105 -> a
    109:113:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14860 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function build():14914:14916 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():14860 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder clone():14906:14906 -> clone
    1:1:java.lang.Object clone():14860 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder create():14873:14873 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder access$13200():14860 -> e
    1:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function buildPartial():14922:14976 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function$Builder create():14873:14873 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$FunctionOrBuilder -> com.android.tools.r8.d.b.a.b.a.U:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$MemberKind -> com.android.tools.r8.d.b.a.b.a.V:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$MemberKind SYNTHESIZED -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$MemberKind FAKE_OVERRIDE -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$MemberKind DELEGATION -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$MemberKind[] $VALUES -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$MemberKind DECLARATION -> b
    int value -> a
    1:13:void <clinit>():205:217 -> <clinit>
    14:14:void <clinit>():196:196 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):268:269 -> <init>
    1:1:int getNumber():242:242 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$MemberKind[] values():196:196 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality -> com.android.tools.r8.d.b.a.b.a.W:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality ABSTRACT -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality SEALED -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality FINAL -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality[] $VALUES -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality OPEN -> c
    int value -> a
    1:13:void <clinit>():23:35 -> <clinit>
    14:14:void <clinit>() -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):86:87 -> <init>
    1:1:int getNumber():60:60 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Modality[] values():14:14 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package -> com.android.tools.r8.d.b.a.b.a.Z:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable versionRequirementTable_ -> h
    byte memoizedIsInitialized -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    java.util.List typeAlias_ -> f
    java.util.List property_ -> e
    java.util.List function_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> k
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package defaultInstance -> j
    int bitField0_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable typeTable_ -> g
    1:997:void <clinit>():11509:12505 -> <clinit>
    1:277:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):11391:11667 -> <init>
    1:277:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):11384 -> <init>
    278:278:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):11392:11392 -> <init>
    278:278:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):11384 -> <init>
    279:552:void <init>(boolean):11394:11667 -> <init>
    553:553:void <init>(boolean):11394:11394 -> <init>
    554:812:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11409:11667 -> <init>
    554:812:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):11384 -> <init>
    813:882:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11410:11479 -> <init>
    813:882:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):11384 -> <init>
    883:891:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11458:11466 -> <init>
    883:891:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):11384 -> <init>
    892:895:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11450:11453 -> <init>
    892:895:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):11384 -> <init>
    896:899:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11442:11445 -> <init>
    896:899:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):11384 -> <init>
    900:953:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11434:11487 -> <init>
    900:953:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):11384 -> <init>
    954:975:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11485:11506 -> <init>
    954:975:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):11384 -> <init>
    976:991:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11491:11506 -> <init>
    976:991:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):11384 -> <init>
    1:1:java.util.List access$10900(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11384:11384 -> a
    2:2:java.util.List access$10902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,java.util.List):11384:11384 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable access$11202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):11384:11384 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable access$11302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):11384:11384 -> a
    5:5:int access$11402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,int):11384:11384 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package getDefaultInstanceForType():11402:11402 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():11384 -> a
    1:1:java.util.List access$11000(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11384:11384 -> b
    2:2:java.util.List access$11002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,java.util.List):11384:11384 -> b
    3:3:boolean isInitialized():11669:11669 -> b
    4:4:int getFunctionCount():11544:11544 -> b
    4:4:boolean isInitialized():11673 -> b
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function getFunction(int):11550:11550 -> b
    5:5:boolean isInitialized():11674 -> b
    6:7:boolean isInitialized():11674:11675 -> b
    8:8:int getPropertyCount():11579:11579 -> b
    8:8:boolean isInitialized():11679 -> b
    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getProperty(int):11585:11585 -> b
    9:9:boolean isInitialized():11680 -> b
    10:11:boolean isInitialized():11680:11681 -> b
    12:12:int getTypeAliasCount():11614:11614 -> b
    12:12:boolean isInitialized():11685 -> b
    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getTypeAlias(int):11620:11620 -> b
    13:13:boolean isInitialized():11686 -> b
    14:19:boolean isInitialized():11686:11691 -> b
    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():11642:11642 -> b
    20:20:boolean isInitialized():11692 -> b
    21:30:boolean isInitialized():11692:11701 -> b
    1:1:java.util.List access$11100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11384:11384 -> c
    2:2:java.util.List access$11102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,java.util.List):11384:11384 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder newBuilderForType():11823:11823 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():11384 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$11500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11384:11384 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11825:11825 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder toBuilder():11827 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():11384 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package getDefaultInstance():11398:11398 -> h
    1:1:java.util.List getFunctionList():11531:11531 -> i
    1:1:java.util.List getPropertyList():11566:11566 -> j
    1:1:java.util.List getTypeAliasList():11601:11601 -> k
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getTypeTable():11642:11642 -> l
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable getVersionRequirementTable():11657:11657 -> m
    1:1:boolean hasTypeTable():11636:11636 -> n
    1:1:boolean hasVersionRequirementTable():11651:11651 -> o
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder newBuilder():11822:11822 -> p
    1:5:void initFields():11661:11665 -> q
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$1 -> com.android.tools.r8.d.b.a.b.a.X:
    1:1:void <init>():11510:11510 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11515:11515 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11510 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder -> com.android.tools.r8.d.b.a.b.a.Y:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable versionRequirementTable_ -> i
    java.util.List property_ -> f
    java.util.List function_ -> e
    int bitField0_ -> d
    java.util.List typeAlias_ -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable typeTable_ -> h
    1:603:void <init>():11838:12440 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):11832:11832 -> a
    2:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11911:11915 -> a
    7:9:void ensureFunctionIsMutable():12008:12010 -> a
    7:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11917 -> a
    10:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11918:11925 -> a
    18:20:void ensurePropertyIsMutable():12133:12135 -> a
    18:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11927 -> a
    21:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11928:11935 -> a
    29:31:void ensureTypeAliasIsMutable():12258:12260 -> a
    29:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11937 -> a
    32:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11938:11943 -> a
    38:46:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeTypeTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12419:12427 -> a
    38:46:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11943 -> a
    47:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11945:11946 -> a
    49:57:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeVersionRequirementTable(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):12479:12487 -> a
    49:57:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11946 -> a
    58:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package):11948:11949 -> a
    60:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11992:11998 -> a
    60:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11832 -> a
    67:71:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11994:11998 -> a
    67:71:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11832 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package build():11872:11874 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():11832 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder clone():11864:11864 -> clone
    1:1:java.lang.Object clone():11832 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder create():11845:11845 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder access$10700():11832 -> e
    1:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package buildPartial():11880:11906 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package$Builder create():11845:11845 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$PackageOrBuilder -> com.android.tools.r8.d.b.a.b.a.aa:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property -> com.android.tools.r8.d.b.a.b.a.da:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property defaultInstance -> q
    int setterFlags_ -> n
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter setterValueParameter_ -> l
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    int getterFlags_ -> m
    java.util.List versionRequirement_ -> o
    int receiverTypeId_ -> k
    int returnTypeId_ -> h
    int name_ -> f
    int flags_ -> d
    int oldFlags_ -> e
    int bitField0_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type receiverType_ -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type returnType_ -> g
    byte memoizedIsInitialized -> p
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> r
    java.util.List typeParameter_ -> i
    1:1501:void <clinit>():16291:17791 -> <clinit>
    1:474:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):16123:16596 -> <init>
    1:474:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    475:475:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):16124:16124 -> <init>
    475:475:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    476:946:void <init>(boolean):16126:16596 -> <init>
    947:947:void <init>(boolean):16126:16126 -> <init>
    948:1403:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16141:16596 -> <init>
    948:1403:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1404:1524:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16142:16262 -> <init>
    1404:1524:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1525:1525:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1525:1525:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16262 -> <init>
    1525:1525:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1526:1528:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16262:16264 -> <init>
    1526:1528:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1529:1532:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16248:16251 -> <init>
    1529:1532:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1533:1533:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1533:1533:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16251 -> <init>
    1533:1533:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1534:1534:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16251:16251 -> <init>
    1534:1534:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1535:1535:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16242:16242 -> <init>
    1535:1535:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1536:1536:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1536:1536:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16243 -> <init>
    1536:1536:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1537:1537:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16243:16243 -> <init>
    1537:1537:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1538:1538:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16237:16237 -> <init>
    1538:1538:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1539:1539:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1539:1539:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16238 -> <init>
    1539:1539:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1540:1540:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16238:16238 -> <init>
    1540:1540:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1541:1541:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16232:16232 -> <init>
    1541:1541:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1542:1542:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1542:1542:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16233 -> <init>
    1542:1542:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1543:1543:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16233:16233 -> <init>
    1543:1543:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1544:1544:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16227:16227 -> <init>
    1544:1544:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1545:1545:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1545:1545:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16228 -> <init>
    1545:1545:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1546:1546:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16228:16228 -> <init>
    1546:1546:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1547:1547:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16222:16222 -> <init>
    1547:1547:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1548:1548:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1548:1548:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16223 -> <init>
    1548:1548:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1549:1549:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16223:16223 -> <init>
    1549:1549:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1550:1558:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16210:16218 -> <init>
    1550:1558:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1559:1567:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16197:16205 -> <init>
    1559:1567:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1568:1571:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16189:16192 -> <init>
    1568:1571:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1572:1580:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16176:16184 -> <init>
    1572:1580:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1581:1581:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16170:16170 -> <init>
    1581:1581:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1582:1582:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1582:1582:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16171 -> <init>
    1582:1582:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1583:1583:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16171:16171 -> <init>
    1583:1583:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1584:1584:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16165:16165 -> <init>
    1584:1584:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1585:1585:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1585:1585:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16166 -> <init>
    1585:1585:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1586:1692:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16166:16272 -> <init>
    1586:1692:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1693:1711:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16270:16288 -> <init>
    1693:1711:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1712:1724:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16276:16288 -> <init>
    1712:1724:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):16116 -> <init>
    1:1:boolean hasSetterFlags():16539:16539 -> A
    1:1:boolean hasSetterValueParameter():16485:16485 -> B
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder newBuilder():16809:16809 -> C
    1:12:void initFields():16583:16594 -> D
    1:1:int access$15102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16116:16116 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$15402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):16116:16116 -> a
    3:3:java.util.List access$15600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16116:16116 -> a
    4:4:java.util.List access$15602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,java.util.List):16116:16116 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter access$15902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):16116:16116 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getDefaultInstanceForType():16134:16134 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():16116 -> a
    1:1:int access$15202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16116:16116 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$15702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):16116:16116 -> b
    3:3:java.util.List access$16200(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16116:16116 -> b
    4:4:java.util.List access$16202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,java.util.List):16116:16116 -> b
    5:13:boolean isInitialized():16598:16606 -> b
    14:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReturnType():16396:16396 -> b
    14:14:boolean isInitialized():16607 -> b
    15:16:boolean isInitialized():16607:16608 -> b
    17:17:int getTypeParameterCount():16433:16433 -> b
    17:17:boolean isInitialized():16612 -> b
    18:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):16439:16439 -> b
    18:18:boolean isInitialized():16613 -> b
    19:24:boolean isInitialized():16613:16618 -> b
    25:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReceiverType():16461:16461 -> b
    25:25:boolean isInitialized():16619 -> b
    26:31:boolean isInitialized():16619:16624 -> b
    32:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getSetterValueParameter():16491:16491 -> b
    32:32:boolean isInitialized():16625 -> b
    33:42:boolean isInitialized():16625:16634 -> b
    1:1:int access$15302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16116:16116 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$16400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16116:16116 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder newBuilderForType():16810:16810 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():16116 -> c
    1:1:int access$15502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16116:16116 -> d
    1:1:int access$15802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16116:16116 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16812:16812 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder toBuilder():16814 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():16116 -> e
    1:1:int access$16002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16116:16116 -> f
    1:1:int access$16102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16116:16116 -> g
    1:1:int getFlags():16351:16351 -> getFlags
    1:1:int getName():16381:16381 -> getName
    1:1:int access$16302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,int):16116:16116 -> h
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property getDefaultInstance():16130:16130 -> h
    1:1:int getGetterFlags():16530:16530 -> i
    1:1:int getOldFlags():16366:16366 -> j
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReceiverType():16461:16461 -> k
    1:1:int getReceiverTypeId():16476:16476 -> l
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getReturnType():16396:16396 -> m
    1:1:int getReturnTypeId():16411:16411 -> n
    1:1:int getSetterFlags():16545:16545 -> o
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getSetterValueParameter():16491:16491 -> p
    1:1:java.util.List getTypeParameterList():16420:16420 -> q
    1:1:java.util.List getVersionRequirementList():16559:16559 -> r
    1:1:boolean hasFlags():16329:16329 -> s
    1:1:boolean hasGetterFlags():16512:16512 -> t
    1:1:boolean hasName():16375:16375 -> u
    1:1:boolean hasOldFlags():16360:16360 -> v
    1:1:boolean hasReceiverType():16455:16455 -> w
    1:1:boolean hasReceiverTypeId():16470:16470 -> x
    1:1:boolean hasReturnType():16390:16390 -> y
    1:1:boolean hasReturnTypeId():16405:16405 -> z
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$1 -> com.android.tools.r8.d.b.a.b.a.ba:
    1:1:void <init>():16292:16292 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16297:16297 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16292 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder -> com.android.tools.r8.d.b.a.b.a.ca:
    int getterFlags_ -> n
    int setterFlags_ -> o
    int receiverTypeId_ -> l
    java.util.List versionRequirement_ -> p
    int returnTypeId_ -> i
    int oldFlags_ -> f
    int name_ -> g
    int bitField0_ -> d
    int flags_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type receiverType_ -> k
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type returnType_ -> h
    java.util.List typeParameter_ -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter setterValueParameter_ -> m
    1:868:void <init>():16825:17692 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):16819:16819 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16939:16941 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setFlags(int):17116:17117 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16941 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16943:16944 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setOldFlags(int):17164:17165 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16944 -> a
    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16946:16947 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setName(int):17196:17197 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16947 -> a
    15:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16949:16950 -> a
    17:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeReturnType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17250:17258 -> a
    17:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16950 -> a
    26:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16952:16953 -> a
    28:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setReturnTypeId(int):17288:17289 -> a
    28:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16953 -> a
    30:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16955:16958 -> a
    34:36:void ensureTypeParameterIsMutable():17306:17308 -> a
    34:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16960 -> a
    37:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16961:16966 -> a
    43:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeReceiverType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17467:17475 -> a
    43:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16966 -> a
    52:53:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16968:16969 -> a
    54:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setReceiverTypeId(int):17505:17506 -> a
    54:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16969 -> a
    56:57:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16971:16972 -> a
    58:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeSetterValueParameter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):17559:17567 -> a
    58:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16972 -> a
    67:68:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16974:16975 -> a
    69:70:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setGetterFlags(int):17633:17634 -> a
    69:70:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16975 -> a
    71:72:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16977:16978 -> a
    73:74:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder setSetterFlags(int):17677:17678 -> a
    73:74:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16978 -> a
    75:78:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16980:16983 -> a
    79:81:void ensureVersionRequirementIsMutable():17694:17696 -> a
    79:81:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16985 -> a
    82:87:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property):16986:16991 -> a
    88:94:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17038:17044 -> a
    88:94:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16819 -> a
    95:99:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17040:17044 -> a
    95:99:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):16819 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property build():16873:16875 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():16819 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder clone():16865:16865 -> clone
    1:1:java.lang.Object clone():16819 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder create():16832:16832 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder access$14900():16819 -> e
    1:54:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property buildPartial():16881:16934 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property$Builder create():16832:16832 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$PropertyOrBuilder -> com.android.tools.r8.d.b.a.b.a.ea:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type -> com.android.tools.r8.d.b.a.b.a.ma:
    int outerTypeId_ -> n
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    int typeAliasName_ -> l
    int typeParameter_ -> j
    int typeParameterName_ -> k
    int flexibleUpperBoundId_ -> h
    int className_ -> i
    int flexibleTypeCapabilitiesId_ -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type defaultInstance -> s
    int bitField0_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type abbreviatedType_ -> o
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type outerType_ -> m
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> t
    java.util.List argument_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type flexibleUpperBound_ -> g
    boolean nullable_ -> e
    byte memoizedIsInitialized -> r
    int abbreviatedTypeId_ -> p
    int flags_ -> q
    1:2203:void <clinit>():4797:6999 -> <clinit>
    1:1154:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):4638:5791 -> <init>
    1:1154:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    1155:1155:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):4639:4639 -> <init>
    1155:1155:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    1156:2306:void <init>(boolean):4641:5791 -> <init>
    2307:2307:void <init>(boolean):4641:4641 -> <init>
    2308:3443:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4656:5791 -> <init>
    2308:3443:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3444:3559:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4657:4772 -> <init>
    3444:3559:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3560:3560:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    3560:3560:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4773 -> <init>
    3560:3560:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3561:3561:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4773:4773 -> <init>
    3561:3561:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3562:3570:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4760:4768 -> <init>
    3562:3570:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3571:3571:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4754:4754 -> <init>
    3571:3571:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3572:3572:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    3572:3572:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4755 -> <init>
    3572:3572:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3573:3573:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4755:4755 -> <init>
    3573:3573:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3574:3574:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4749:4749 -> <init>
    3574:3574:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3575:3575:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    3575:3575:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4750 -> <init>
    3575:3575:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3576:3576:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4750:4750 -> <init>
    3576:3576:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3577:3585:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4737:4745 -> <init>
    3577:3585:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3586:3586:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4731:4731 -> <init>
    3586:3586:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3587:3587:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    3587:3587:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4732 -> <init>
    3587:3587:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3588:3588:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4732:4732 -> <init>
    3588:3588:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3589:3589:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4726:4726 -> <init>
    3589:3589:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3590:3590:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    3590:3590:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4727 -> <init>
    3590:3590:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3591:3591:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4727:4727 -> <init>
    3591:3591:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3592:3592:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4721:4721 -> <init>
    3592:3592:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3593:3593:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    3593:3593:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4722 -> <init>
    3593:3593:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3594:3594:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4722:4722 -> <init>
    3594:3594:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3595:3595:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4716:4716 -> <init>
    3595:3595:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3596:3596:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    3596:3596:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4717 -> <init>
    3596:3596:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3597:3597:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4717:4717 -> <init>
    3597:3597:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3598:3606:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4704:4712 -> <init>
    3598:3606:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3607:3607:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4698:4698 -> <init>
    3607:3607:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3608:3608:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    3608:3608:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4699 -> <init>
    3608:3608:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3609:3609:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4699:4699 -> <init>
    3609:3609:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3610:3611:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4693:4694 -> <init>
    3610:3611:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3612:3615:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4686:4689 -> <init>
    3612:3615:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3616:3616:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4680:4680 -> <init>
    3616:3616:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3617:3617:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    3617:3617:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4681 -> <init>
    3617:3617:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3618:3718:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4681:4781 -> <init>
    3618:3718:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3719:3734:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4779:4794 -> <init>
    3719:3734:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    3735:3744:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4785:4794 -> <init>
    3735:3744:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4631 -> <init>
    1:1:boolean hasFlexibleUpperBoundId():5589:5589 -> A
    1:1:boolean hasNullable():5534:5534 -> B
    1:1:boolean hasOuterType():5694:5694 -> C
    1:1:boolean hasOuterTypeId():5713:5713 -> D
    1:1:boolean hasTypeAliasName():5670:5670 -> E
    1:1:boolean hasTypeParameter():5623:5623 -> F
    1:1:boolean hasTypeParameterName():5646:5646 -> G
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder():6009:6009 -> H
    1:3:void initFields():5776:5778 -> I
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getDefaultInstance():4645:4645 -> I
    4:4:void initFields():5779 -> I
    5:15:void initFields():5779:5789 -> I
    1:1:java.util.List access$5800(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):4631:4631 -> a
    2:2:java.util.List access$5802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,java.util.List):4631:4631 -> a
    3:3:boolean access$5902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,boolean):4631:4631 -> a
    4:4:int access$6002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4631:4631 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$6102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):4631:4631 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getDefaultInstanceForType():4649:4649 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():4631 -> a
    1:1:int access$6202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4631:4631 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$6702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):4631:4631 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$7300(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):4631:4631 -> b
    4:4:boolean isInitialized():5793:5793 -> b
    5:5:int getArgumentCount():5512:5512 -> b
    5:5:boolean isInitialized():5797 -> b
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument getArgument(int):5518:5518 -> b
    6:6:boolean isInitialized():5798 -> b
    7:12:boolean isInitialized():5798:5803 -> b
    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getFlexibleUpperBound():5580:5580 -> b
    13:13:boolean isInitialized():5804 -> b
    14:19:boolean isInitialized():5804:5809 -> b
    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getOuterType():5704:5704 -> b
    20:20:boolean isInitialized():5810 -> b
    21:26:boolean isInitialized():5810:5815 -> b
    27:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getAbbreviatedType():5734:5734 -> b
    27:27:boolean isInitialized():5816 -> b
    28:37:boolean isInitialized():5816:5825 -> b
    1:1:int access$6302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4631:4631 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$6902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):4631:4631 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder():6009:6009 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6012 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6012:6012 -> c
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder newBuilderForType():6010:6010 -> c
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():4631 -> c
    1:1:int access$6402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4631:4631 -> d
    1:1:int access$6502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4631:4631 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder toBuilder():6014:6014 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder toBuilder():6014:6014 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():4631 -> e
    1:1:int access$6602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4631:4631 -> f
    1:1:int access$6802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4631:4631 -> g
    1:1:int getFlags():5772:5772 -> getFlags
    1:1:int access$7002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4631:4631 -> h
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getAbbreviatedType():5734:5734 -> h
    1:1:int access$7102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4631:4631 -> i
    2:2:int getAbbreviatedTypeId():5749:5749 -> i
    1:1:int access$7202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,int):4631:4631 -> j
    2:2:int getClassName():5610:5610 -> j
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getDefaultInstance():4645:4645 -> k
    1:1:int getFlexibleTypeCapabilitiesId():5565:5565 -> l
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getFlexibleUpperBound():5580:5580 -> m
    1:1:int getFlexibleUpperBoundId():5595:5595 -> n
    1:1:boolean getNullable():5540:5540 -> o
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getOuterType():5704:5704 -> p
    1:1:int getOuterTypeId():5719:5719 -> q
    1:1:int getTypeAliasName():5681:5681 -> r
    1:1:int getTypeParameter():5633:5633 -> s
    1:1:int getTypeParameterName():5656:5656 -> t
    1:1:boolean hasAbbreviatedType():5728:5728 -> u
    1:1:boolean hasAbbreviatedTypeId():5743:5743 -> v
    1:1:boolean hasClassName():5604:5604 -> w
    1:1:boolean hasFlags():5762:5762 -> x
    1:1:boolean hasFlexibleTypeCapabilitiesId():5554:5554 -> y
    1:1:boolean hasFlexibleUpperBound():5574:5574 -> z
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$1 -> com.android.tools.r8.d.b.a.b.a.fa:
    1:1:void <init>():4798:4798 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4803:4803 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4798 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument -> com.android.tools.r8.d.b.a.b.a.ja:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection projection_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument defaultInstance -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type type_ -> d
    int typeId_ -> e
    int bitField0_ -> b
    byte memoizedIsInitialized -> f
    1:538:void <clinit>():4949:5486 -> <clinit>
    1:238:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):4860:5097 -> <init>
    1:238:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4854 -> <init>
    239:239:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):4861:4861 -> <init>
    239:239:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4854 -> <init>
    240:474:void <init>(boolean):4863:5097 -> <init>
    475:475:void <init>(boolean):4863:4863 -> <init>
    476:695:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4878:5097 -> <init>
    476:695:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4854 -> <init>
    696:706:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4879:4889 -> <init>
    696:706:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4854 -> <init>
    707:707:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):73:73 -> <init>
    707:707:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4895 -> <init>
    707:707:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4854 -> <init>
    708:708:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4927:4927 -> <init>
    708:708:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4854 -> <init>
    709:709:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    709:709:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4928 -> <init>
    709:709:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4854 -> <init>
    710:710:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4928:4928 -> <init>
    710:710:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4854 -> <init>
    711:719:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4915:4923 -> <init>
    711:719:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4854 -> <init>
    720:720:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readEnum():570:570 -> <init>
    720:720:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4902 -> <init>
    720:720:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4854 -> <init>
    721:754:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4903:4936 -> <init>
    721:754:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4854 -> <init>
    755:767:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4934:4946 -> <init>
    755:767:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4854 -> <init>
    768:772:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4940:4944 -> <init>
    768:772:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):4854 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection access$5102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection):4854:4854 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$5202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):4854:4854 -> a
    3:3:int access$5302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument,int):4854:4854 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$5500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):4854:4854 -> a
    1:1:int access$5402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument,int):4854:4854 -> b
    2:6:boolean isInitialized():5099:5103 -> b
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType():5074:5074 -> b
    7:7:boolean isInitialized():5104 -> b
    8:13:boolean isInitialized():5104:5109 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder newBuilderForType():5212:5212 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():4854 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5214:5214 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder toBuilder():5216 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():4854 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument getDefaultInstance():4867:4867 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection getProjection():5051:5051 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType():5074:5074 -> h
    1:1:int getTypeId():5089:5089 -> i
    1:1:boolean hasProjection():5045:5045 -> j
    1:1:boolean hasType():5064:5064 -> k
    1:1:boolean hasTypeId():5083:5083 -> l
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder newBuilder():5211:5211 -> m
    1:3:void initFields():5093:5095 -> n
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$1 -> com.android.tools.r8.d.b.a.b.a.ga:
    1:1:void <init>():4950:4950 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4955:4955 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):4950 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder -> com.android.tools.r8.d.b.a.b.a.ha:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection projection_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type type_ -> d
    int typeId_ -> e
    int bitField0_ -> b
    1:138:void <init>():5228:5365 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):5221:5221 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5286:5288 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder setProjection(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection):5350:5351 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5288 -> a
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder setProjection(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection):5348:5348 -> a
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5288 -> a
    8:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5290:5291 -> a
    10:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):5424:5432 -> a
    10:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5291 -> a
    19:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5293:5294 -> a
    21:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder setTypeId(int):5466:5467 -> a
    21:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5294 -> a
    23:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument):5296:5296 -> a
    24:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5317:5323 -> a
    24:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5221 -> a
    31:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5319:5323 -> a
    31:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):5221 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument build():5258:5260 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():5221 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder clone():5250:5250 -> clone
    1:1:java.lang.Object clone():5221 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder create():5235:5235 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder access$4900():5221 -> e
    1:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument buildPartial():5266:5281 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Builder create():5235:5235 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection -> com.android.tools.r8.d.b.a.b.a.ia:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection STAR -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection IN -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection OUT -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection INV -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection[] $VALUES -> f
    int value -> a
    1:13:void <clinit>():4972:4984 -> <clinit>
    14:14:void <clinit>():4967:4967 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):5031:5032 -> <init>
    1:1:int getNumber():5005:5005 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection[] values():4967:4967 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection valueOf(int):5012:5012 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection valueOf(int):5011:5011 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection valueOf(int):5010:5010 -> b
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Argument$Projection valueOf(int):5009:5009 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$ArgumentOrBuilder -> com.android.tools.r8.d.b.a.b.a.ka:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder -> com.android.tools.r8.d.b.a.b.a.la:
    int outerTypeId_ -> o
    int typeParameterName_ -> l
    int typeAliasName_ -> m
    int className_ -> j
    int typeParameter_ -> k
    int flexibleUpperBoundId_ -> i
    int flexibleTypeCapabilitiesId_ -> g
    int bitField0_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type abbreviatedType_ -> p
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type outerType_ -> n
    java.util.List argument_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type flexibleUpperBound_ -> h
    boolean nullable_ -> f
    int flags_ -> r
    int abbreviatedTypeId_ -> q
    1:830:void <init>():6025:6854 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):6019:6019 -> a
    2:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6150:6154 -> a
    7:9:void ensureArgumentIsMutable():6260:6262 -> a
    7:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6156 -> a
    10:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6157:6165 -> a
    19:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setFlexibleTypeCapabilitiesId(int):6446:6447 -> a
    19:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6165 -> a
    21:22:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6167:6168 -> a
    23:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFlexibleUpperBound(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6505:6513 -> a
    23:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6168 -> a
    32:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6170:6171 -> a
    34:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setFlexibleUpperBoundId(int):6543:6544 -> a
    34:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6171 -> a
    36:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6173:6174 -> a
    38:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setClassName(int):6575:6576 -> a
    38:39:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6174 -> a
    40:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6176:6177 -> a
    42:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setTypeParameter(int):6619:6620 -> a
    42:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6177 -> a
    44:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6179:6180 -> a
    46:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setTypeParameterName(int):6667:6668 -> a
    46:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6180 -> a
    48:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6182:6183 -> a
    50:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setTypeAliasName(int):6718:6719 -> a
    50:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6183 -> a
    52:53:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6185:6186 -> a
    54:62:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeOuterType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6797:6805 -> a
    54:62:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6186 -> a
    63:64:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6188:6189 -> a
    65:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setOuterTypeId(int):6839:6840 -> a
    65:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6189 -> a
    67:68:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6191:6192 -> a
    69:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeAbbreviatedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6893:6901 -> a
    69:77:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6192 -> a
    78:79:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6194:6195 -> a
    80:81:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setAbbreviatedTypeId(int):6931:6932 -> a
    80:81:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6195 -> a
    82:83:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6197:6198 -> a
    84:85:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setFlags(int):6975:6976 -> a
    84:85:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6198 -> a
    86:87:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):6200:6201 -> a
    88:94:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):6244:6250 -> a
    88:94:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):6019 -> a
    95:99:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):6246:6250 -> a
    95:99:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):6019 -> a
    100:101:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder setNullable(boolean):6399:6400 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():6019:6019 -> c
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type build():6077:6079 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder clone():6069:6069 -> clone
    1:1:java.lang.Object clone():6019 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder create():6032:6032 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder access$5600():6019 -> e
    1:61:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type buildPartial():6085:6145 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type$Builder create():6032:6032 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias -> com.android.tools.r8.d.b.a.b.a.pa:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    int expandedTypeId_ -> j
    int underlyingTypeId_ -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias defaultInstance -> n
    int flags_ -> d
    int name_ -> e
    int bitField0_ -> c
    java.util.List typeParameter_ -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type expandedType_ -> i
    byte memoizedIsInitialized -> m
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type underlyingType_ -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> o
    java.util.List versionRequirement_ -> l
    java.util.List annotation_ -> k
    1:1264:void <clinit>():18997:20260 -> <clinit>
    1:383:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):18846:19228 -> <init>
    1:383:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    384:384:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):18847:18847 -> <init>
    384:384:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    385:764:void <init>(boolean):18849:19228 -> <init>
    765:765:void <init>(boolean):18849:18849 -> <init>
    766:1130:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18864:19228 -> <init>
    766:1130:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1131:1231:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18865:18965 -> <init>
    1131:1231:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1232:1232:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1232:1232:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18965 -> <init>
    1232:1232:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1233:1235:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18965:18967 -> <init>
    1233:1235:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1236:1239:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18951:18954 -> <init>
    1236:1239:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1240:1240:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1240:1240:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18954 -> <init>
    1240:1240:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1241:1241:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18954:18954 -> <init>
    1241:1241:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1242:1245:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18943:18946 -> <init>
    1242:1245:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1246:1246:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18937:18937 -> <init>
    1246:1246:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1247:1247:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1247:1247:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18938 -> <init>
    1247:1247:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1248:1248:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18938:18938 -> <init>
    1248:1248:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1249:1257:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18925:18933 -> <init>
    1249:1257:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1258:1258:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18919:18919 -> <init>
    1258:1258:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1259:1259:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1259:1259:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18920 -> <init>
    1259:1259:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1260:1260:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18920:18920 -> <init>
    1260:1260:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1261:1269:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18907:18915 -> <init>
    1261:1269:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1270:1273:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18899:18902 -> <init>
    1270:1273:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1274:1274:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18893:18893 -> <init>
    1274:1274:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1275:1275:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1275:1275:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18894 -> <init>
    1275:1275:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1276:1276:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18894:18894 -> <init>
    1276:1276:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1277:1277:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18888:18888 -> <init>
    1277:1277:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1278:1278:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1278:1278:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18889 -> <init>
    1278:1278:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1279:1365:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18889:18975 -> <init>
    1279:1365:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1366:1387:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18973:18994 -> <init>
    1366:1387:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1388:1403:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18979:18994 -> <init>
    1388:1403:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):18839 -> <init>
    1:1:int access$17902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,int):18839:18839 -> a
    2:2:java.util.List access$18100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):18839:18839 -> a
    3:3:java.util.List access$18102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,java.util.List):18839:18839 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$18202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18839:18839 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getDefaultInstanceForType():18857:18857 -> a
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():18839 -> a
    1:1:int access$18002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,int):18839:18839 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$18402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18839:18839 -> b
    3:3:java.util.List access$18600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):18839:18839 -> b
    4:4:java.util.List access$18602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,java.util.List):18839:18839 -> b
    5:10:boolean isInitialized():19230:19235 -> b
    11:11:int getTypeParameterCount():19072:19072 -> b
    11:11:boolean isInitialized():19238 -> b
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getTypeParameter(int):19078:19078 -> b
    12:12:boolean isInitialized():19239 -> b
    13:18:boolean isInitialized():19239:19244 -> b
    19:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getUnderlyingType():19100:19100 -> b
    19:19:boolean isInitialized():19245 -> b
    20:25:boolean isInitialized():19245:19250 -> b
    26:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getExpandedType():19130:19130 -> b
    26:26:boolean isInitialized():19251 -> b
    27:28:boolean isInitialized():19251:19252 -> b
    29:29:int getAnnotationCount():19167:19167 -> b
    29:29:boolean isInitialized():19256 -> b
    30:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Annotation getAnnotation(int):19173:19173 -> b
    30:30:boolean isInitialized():19257 -> b
    31:40:boolean isInitialized():19257:19266 -> b
    1:1:int access$18302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,int):18839:18839 -> c
    2:2:java.util.List access$18700(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):18839:18839 -> c
    3:3:java.util.List access$18702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,java.util.List):18839:18839 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder newBuilderForType():19421:19421 -> c
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():18839 -> c
    1:1:int access$18502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,int):18839:18839 -> d
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$18900(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):18839:18839 -> d
    1:1:int access$18802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias,int):18839:18839 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19423:19423 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder toBuilder():19425 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():18839 -> e
    1:1:int getFlags():19035:19035 -> getFlags
    1:1:int getName():19050:19050 -> getName
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias getDefaultInstance():18853:18853 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getExpandedType():19130:19130 -> i
    1:1:int getExpandedTypeId():19145:19145 -> j
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getUnderlyingType():19100:19100 -> k
    1:1:int getUnderlyingTypeId():19115:19115 -> l
    1:1:boolean hasExpandedType():19124:19124 -> m
    1:1:boolean hasExpandedTypeId():19139:19139 -> n
    1:1:boolean hasFlags():19024:19024 -> o
    1:1:boolean hasName():19044:19044 -> p
    1:1:boolean hasUnderlyingType():19094:19094 -> q
    1:1:boolean hasUnderlyingTypeId():19109:19109 -> r
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder newBuilder():19420:19420 -> s
    1:9:void initFields():19218:19226 -> t
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$1 -> com.android.tools.r8.d.b.a.b.a.na:
    1:1:void <init>():18998:18998 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19003:19003 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18998 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder -> com.android.tools.r8.d.b.a.b.a.oa:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type expandedType_ -> j
    int expandedTypeId_ -> k
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type underlyingType_ -> h
    int underlyingTypeId_ -> i
    int name_ -> f
    int bitField0_ -> d
    int flags_ -> e
    java.util.List typeParameter_ -> g
    java.util.List versionRequirement_ -> m
    java.util.List annotation_ -> l
    1:726:void <init>():19436:20161 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):19430:19430 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19533:19535 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder setFlags(int):19675:19676 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19535 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19537:19538 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder setName(int):19712:19713 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19538 -> a
    11:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19540:19543 -> a
    15:17:void ensureTypeParameterIsMutable():19730:19732 -> a
    15:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19545 -> a
    18:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19546:19551 -> a
    24:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeUnderlyingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):19891:19899 -> a
    24:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19551 -> a
    33:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19553:19554 -> a
    35:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder setUnderlyingTypeId(int):19929:19930 -> a
    35:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19554 -> a
    37:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19556:19557 -> a
    39:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeExpandedType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):19983:19991 -> a
    39:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19557 -> a
    48:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19559:19560 -> a
    50:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder setExpandedTypeId(int):20021:20022 -> a
    50:51:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19560 -> a
    52:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19562:19565 -> a
    56:58:void ensureAnnotationIsMutable():20039:20041 -> a
    56:58:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19567 -> a
    59:66:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19568:19575 -> a
    67:69:void ensureVersionRequirementIsMutable():20163:20165 -> a
    67:69:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19577 -> a
    70:75:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias):19578:19583 -> a
    76:82:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19630:19636 -> a
    76:82:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19430 -> a
    83:87:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19632:19636 -> a
    83:87:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):19430 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias build():19478:19480 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():19430 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder clone():19470:19470 -> clone
    1:1:java.lang.Object clone():19430 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder create():19443:19443 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder access$17700():19430 -> e
    1:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias buildPartial():19486:19528 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAlias$Builder create():19443:19443 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeAliasOrBuilder -> com.android.tools.r8.d.b.a.b.a.qa:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeOrBuilder -> com.android.tools.r8.d.b.a.b.a.ra:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter -> com.android.tools.r8.d.b.a.b.a.va:
    byte memoizedIsInitialized -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter defaultInstance -> k
    boolean reified_ -> f
    java.util.List upperBoundId_ -> i
    int id_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance variance_ -> g
    java.util.List upperBound_ -> h
    int name_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> l
    int bitField0_ -> c
    1:875:void <clinit>():7204:8078 -> <clinit>
    1:329:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):7083:7411 -> <init>
    1:329:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7076 -> <init>
    330:330:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):7084:7084 -> <init>
    330:330:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7076 -> <init>
    331:656:void <init>(boolean):7086:7411 -> <init>
    657:657:void <init>(boolean):7086:7086 -> <init>
    658:968:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7101:7411 -> <init>
    658:968:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7076 -> <init>
    969:1042:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7102:7175 -> <init>
    969:1042:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7076 -> <init>
    1043:1043:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1043:1043:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7175 -> <init>
    1043:1043:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7076 -> <init>
    1044:1046:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7175:7177 -> <init>
    1044:1046:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7076 -> <init>
    1047:1050:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7161:7164 -> <init>
    1047:1050:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7076 -> <init>
    1051:1051:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1051:1051:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7164 -> <init>
    1051:1051:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7076 -> <init>
    1052:1052:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7164:7164 -> <init>
    1052:1052:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7076 -> <init>
    1053:1056:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7153:7156 -> <init>
    1053:1056:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7076 -> <init>
    1057:1057:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readEnum():570:570 -> <init>
    1057:1057:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7140 -> <init>
    1057:1057:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7076 -> <init>
    1058:1064:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7141:7147 -> <init>
    1058:1064:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7076 -> <init>
    1065:1066:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7135:7136 -> <init>
    1065:1066:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7076 -> <init>
    1067:1067:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7130:7130 -> <init>
    1067:1067:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7076 -> <init>
    1068:1068:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1068:1068:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7131 -> <init>
    1068:1068:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7076 -> <init>
    1069:1069:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7131:7131 -> <init>
    1069:1069:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7076 -> <init>
    1070:1070:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7125:7125 -> <init>
    1070:1070:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7076 -> <init>
    1071:1071:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1071:1071:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7126 -> <init>
    1071:1071:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7076 -> <init>
    1072:1131:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7126:7185 -> <init>
    1072:1131:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7076 -> <init>
    1132:1150:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7183:7201 -> <init>
    1132:1150:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7076 -> <init>
    1151:1163:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7189:7201 -> <init>
    1151:1163:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):7076 -> <init>
    1:1:int access$7702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,int):7076:7076 -> a
    2:2:boolean access$7902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,boolean):7076:7076 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance access$8002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance):7076:7076 -> a
    4:4:java.util.List access$8100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7076:7076 -> a
    5:5:java.util.List access$8102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,java.util.List):7076:7076 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getDefaultInstanceForType():7094:7094 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():7076 -> a
    1:1:int access$7802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,int):7076:7076 -> b
    2:2:java.util.List access$8200(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7076:7076 -> b
    3:3:java.util.List access$8202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,java.util.List):7076:7076 -> b
    4:13:boolean isInitialized():7413:7422 -> b
    14:14:int getUpperBoundCount():7364:7364 -> b
    14:14:boolean isInitialized():7425 -> b
    15:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getUpperBound(int):7370:7370 -> b
    15:15:boolean isInitialized():7426 -> b
    16:25:boolean isInitialized():7426:7435 -> b
    1:1:int access$8302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter,int):7076:7076 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$8400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7076:7076 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder newBuilderForType():7578:7578 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():7076 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7580:7580 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder toBuilder():7582 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():7076 -> e
    1:1:int getName():7312:7312 -> getName
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter getDefaultInstance():7090:7090 -> h
    1:1:int getId():7297:7297 -> i
    1:1:boolean getReified():7327:7327 -> j
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance getVariance():7342:7342 -> k
    1:1:boolean hasId():7291:7291 -> l
    1:1:boolean hasName():7306:7306 -> m
    1:1:boolean hasReified():7321:7321 -> n
    1:1:boolean hasVariance():7336:7336 -> o
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder newBuilder():7577:7577 -> p
    1:6:void initFields():7404:7409 -> q
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$1 -> com.android.tools.r8.d.b.a.b.a.sa:
    1:1:void <init>():7205:7205 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7210:7210 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7205 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder -> com.android.tools.r8.d.b.a.b.a.ta:
    int name_ -> f
    java.util.List upperBoundId_ -> j
    java.util.List upperBound_ -> i
    int bitField0_ -> d
    boolean reified_ -> g
    int id_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance variance_ -> h
    1:415:void <init>():7593:8007 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):7587:7587 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7671:7673 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder setId(int):7768:7769 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7673 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7675:7676 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder setName(int):7800:7801 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7676 -> a
    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7678:7679 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder setReified(boolean):7832:7833 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7679 -> a
    15:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7681:7682 -> a
    17:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder setVariance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance):7867:7868 -> a
    17:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7682 -> a
    19:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder setVariance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance):7865:7865 -> a
    19:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7682 -> a
    20:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7684:7687 -> a
    24:26:void ensureUpperBoundIsMutable():7885:7887 -> a
    24:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7689 -> a
    27:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7690:7697 -> a
    35:37:void ensureUpperBoundIdIsMutable():8009:8011 -> a
    35:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7699 -> a
    38:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter):7700:7705 -> a
    44:50:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7738:7744 -> a
    44:50:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7587 -> a
    51:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7740:7744 -> a
    51:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):7587 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter build():7629:7631 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():7587 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder clone():7621:7621 -> clone
    1:1:java.lang.Object clone():7587 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder create():7600:7600 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder access$7500():7587 -> e
    1:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter buildPartial():7637:7666 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Builder create():7600:7600 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance -> com.android.tools.r8.d.b.a.b.a.ua:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance IN -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance[] $VALUES -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance OUT -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance INV -> d
    int value -> a
    1:9:void <clinit>():7227:7235 -> <clinit>
    10:10:void <clinit>():7222:7222 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):7277:7278 -> <init>
    1:1:int getNumber():7252:7252 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance[] values():7222:7222 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance valueOf(int):7258:7258 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance valueOf(int):7257:7257 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameter$Variance valueOf(int):7256:7256 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeParameterOrBuilder -> com.android.tools.r8.d.b.a.b.a.wa:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable -> com.android.tools.r8.d.b.a.b.a.za:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    java.util.List type_ -> c
    int firstNullable_ -> d
    int bitField0_ -> b
    byte memoizedIsInitialized -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable defaultInstance -> f
    1:488:void <clinit>():12632:13119 -> <clinit>
    1:156:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):12557:12712 -> <init>
    1:156:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):12551 -> <init>
    157:157:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):12558:12558 -> <init>
    157:157:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):12551 -> <init>
    158:310:void <init>(boolean):12560:12712 -> <init>
    311:311:void <init>(boolean):12560:12560 -> <init>
    312:449:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12575:12712 -> <init>
    312:449:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):12551 -> <init>
    450:460:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12576:12586 -> <init>
    450:460:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):12551 -> <init>
    461:461:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):73:73 -> <init>
    461:461:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12592 -> <init>
    461:461:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):12551 -> <init>
    462:462:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12607:12607 -> <init>
    462:462:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):12551 -> <init>
    463:463:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    463:463:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12608 -> <init>
    463:463:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):12551 -> <init>
    464:464:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12608:12608 -> <init>
    464:464:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):12551 -> <init>
    465:481:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12600:12616 -> <init>
    465:481:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):12551 -> <init>
    482:497:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12614:12629 -> <init>
    482:497:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):12551 -> <init>
    498:505:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12620:12627 -> <init>
    498:505:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):12551 -> <init>
    1:1:java.util.List access$11900(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12551:12551 -> a
    2:2:java.util.List access$11902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable,java.util.List):12551:12551 -> a
    3:3:int access$12002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable,int):12551:12551 -> a
    1:1:int access$12102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable,int):12551:12551 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$12200(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12551:12551 -> b
    3:3:boolean isInitialized():12714:12714 -> b
    4:4:int getTypeCount():12667:12667 -> b
    4:4:boolean isInitialized():12718 -> b
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType(int):12673:12673 -> b
    5:5:boolean isInitialized():12719 -> b
    6:11:boolean isInitialized():12719:12724 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilder():12819:12819 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12822 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12822:12822 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilderForType():12820:12820 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():12551 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder toBuilder():12824:12824 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder toBuilder():12824:12824 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():12551 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable getDefaultInstance():12564:12564 -> f
    1:1:int getFirstNullable():12705:12705 -> g
    1:1:java.util.List getTypeList():12654:12654 -> h
    1:1:boolean hasFirstNullable():12694:12694 -> i
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder newBuilder():12819:12819 -> j
    1:2:void initFields():12709:12710 -> k
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$1 -> com.android.tools.r8.d.b.a.b.a.xa:
    1:1:void <init>():12633:12633 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12638:12638 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12633 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder -> com.android.tools.r8.d.b.a.b.a.ya:
    java.util.List type_ -> c
    int firstNullable_ -> d
    int bitField0_ -> b
    1:227:void <init>():12836:13062 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):12829:12829 -> a
    2:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12889:12893 -> a
    7:9:void ensureTypeIsMutable():12940:12942 -> a
    7:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12895 -> a
    10:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12896:12901 -> a
    16:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder setFirstNullable(int):13094:13095 -> a
    16:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12901 -> a
    18:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):12903:12903 -> a
    19:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12924:12930 -> a
    19:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12829 -> a
    26:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12926:12930 -> a
    26:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):12829 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable build():12864:12866 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():12829 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder clone():12856:12856 -> clone
    1:1:java.lang.Object clone():12829 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder create():12843:12843 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder access$11700():12829 -> e
    1:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable buildPartial():12872:12884 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable$Builder create():12843:12843 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTableOrBuilder -> com.android.tools.r8.d.b.a.b.a.Aa:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter -> com.android.tools.r8.d.b.a.b.a.Da:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter defaultInstance -> k
    byte memoizedIsInitialized -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type varargElementType_ -> h
    int varargElementTypeId_ -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type type_ -> f
    int typeId_ -> g
    int flags_ -> d
    int name_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> l
    int bitField0_ -> c
    1:724:void <clinit>():17985:18708 -> <clinit>
    1:234:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):17880:18113 -> <init>
    1:234:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):17873 -> <init>
    235:235:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):17881:17881 -> <init>
    235:235:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):17873 -> <init>
    236:466:void <init>(boolean):17883:18113 -> <init>
    467:467:void <init>(boolean):17883:17883 -> <init>
    468:683:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17898:18113 -> <init>
    468:683:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):17873 -> <init>
    684:748:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17899:17963 -> <init>
    684:748:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):17873 -> <init>
    749:749:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    749:749:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17964 -> <init>
    749:749:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):17873 -> <init>
    750:750:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17964:17964 -> <init>
    750:750:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):17873 -> <init>
    751:751:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17958:17958 -> <init>
    751:751:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):17873 -> <init>
    752:752:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    752:752:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17959 -> <init>
    752:752:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):17873 -> <init>
    753:753:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17959:17959 -> <init>
    753:753:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):17873 -> <init>
    754:762:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17946:17954 -> <init>
    754:762:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):17873 -> <init>
    763:771:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17933:17941 -> <init>
    763:771:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):17873 -> <init>
    772:772:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17927:17927 -> <init>
    772:772:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):17873 -> <init>
    773:773:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    773:773:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17928 -> <init>
    773:773:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):17873 -> <init>
    774:774:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17928:17928 -> <init>
    774:774:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):17873 -> <init>
    775:775:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17922:17922 -> <init>
    775:775:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):17873 -> <init>
    776:776:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    776:776:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17923 -> <init>
    776:776:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):17873 -> <init>
    777:826:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17923:17972 -> <init>
    777:826:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):17873 -> <init>
    827:839:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17970:17982 -> <init>
    827:839:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):17873 -> <init>
    840:846:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17976:17982 -> <init>
    840:846:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):17873 -> <init>
    1:1:int access$16802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,int):17873:17873 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$17002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17873:17873 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$17500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):17873:17873 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getDefaultInstanceForType():17891:17891 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType():17873 -> a
    1:1:int access$16902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,int):17873:17873 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type access$17202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):17873:17873 -> b
    3:11:boolean isInitialized():18115:18123 -> b
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType():18057:18057 -> b
    12:12:boolean isInitialized():18124 -> b
    13:18:boolean isInitialized():18124:18129 -> b
    19:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getVarargElementType():18087:18087 -> b
    19:19:boolean isInitialized():18130 -> b
    20:29:boolean isInitialized():18130:18139 -> b
    30:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder():18267:18267 -> b
    30:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18270 -> b
    31:31:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18270:18270 -> b
    1:1:int access$17102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,int):17873:17873 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilderForType():18268:18268 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():17873 -> c
    1:1:int access$17302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,int):17873:17873 -> d
    1:1:int access$17402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter,int):17873:17873 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():17873:17873 -> e
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder toBuilder():18272:18272 -> e
    1:1:int getFlags():18027:18027 -> getFlags
    1:1:int getName():18042:18042 -> getName
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter getDefaultInstance():17887:17887 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getType():18057:18057 -> i
    1:1:int getTypeId():18072:18072 -> j
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type getVarargElementType():18087:18087 -> k
    1:1:int getVarargElementTypeId():18102:18102 -> l
    1:1:boolean hasFlags():18014:18014 -> m
    1:1:boolean hasName():18036:18036 -> n
    1:1:boolean hasType():18051:18051 -> o
    1:1:boolean hasTypeId():18066:18066 -> p
    1:1:boolean hasVarargElementType():18081:18081 -> q
    1:1:boolean hasVarargElementTypeId():18096:18096 -> r
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder newBuilder():18267:18267 -> s
    1:6:void initFields():18106:18111 -> t
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$1 -> com.android.tools.r8.d.b.a.b.a.Ba:
    1:1:void <init>():17986:17986 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17991:17991 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):17986 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder -> com.android.tools.r8.d.b.a.b.a.Ca:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type varargElementType_ -> i
    int varargElementTypeId_ -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type type_ -> g
    int typeId_ -> h
    int name_ -> f
    int bitField0_ -> d
    int flags_ -> e
    1:329:void <init>():18283:18611 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):18277:18277 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18359:18361 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder setFlags(int):18465:18466 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18361 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18363:18364 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder setName(int):18504:18505 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18364 -> a
    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18366:18367 -> a
    13:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18558:18566 -> a
    13:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18367 -> a
    22:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18369:18370 -> a
    24:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder setTypeId(int):18596:18597 -> a
    24:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18370 -> a
    26:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18372:18373 -> a
    28:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeVarargElementType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type):18650:18658 -> a
    28:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18373 -> a
    37:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18375:18376 -> a
    39:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder setVarargElementTypeId(int):18688:18689 -> a
    39:40:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18376 -> a
    41:42:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter):18378:18379 -> a
    43:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18414:18420 -> a
    43:49:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18277 -> a
    50:54:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18416:18420 -> a
    50:54:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):18277 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter build():18319:18321 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():18277 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder clone():18311:18311 -> clone
    1:1:java.lang.Object clone():18277 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder create():18290:18290 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder access$16600():18277 -> e
    1:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter buildPartial():18327:18354 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameter$Builder create():18290:18290 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$ValueParameterOrBuilder -> com.android.tools.r8.d.b.a.b.a.Ea:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement -> com.android.tools.r8.d.b.a.b.a.Ja:
    byte memoizedIsInitialized -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level level_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement defaultInstance -> j
    int errorCode_ -> f
    int message_ -> g
    int versionFull_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind versionKind_ -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> k
    int bitField0_ -> b
    int version_ -> c
    1:885:void <clinit>():20859:21743 -> <clinit>
    1:404:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):20756:21159 -> <init>
    1:404:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    405:405:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):20757:20757 -> <init>
    405:405:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    406:806:void <init>(boolean):20759:21159 -> <init>
    807:807:void <init>(boolean):20759:20759 -> <init>
    808:1193:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20774:21159 -> <init>
    808:1193:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    1194:1204:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20775:20785 -> <init>
    1194:1204:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    1205:1205:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):73:73 -> <init>
    1205:1205:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20791 -> <init>
    1205:1205:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    1206:1206:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readEnum():570:570 -> <init>
    1206:1206:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20830 -> <init>
    1206:1206:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    1207:1213:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20831:20837 -> <init>
    1207:1213:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    1214:1214:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20825:20825 -> <init>
    1214:1214:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    1215:1215:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1215:1215:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20826 -> <init>
    1215:1215:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    1216:1216:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20826:20826 -> <init>
    1216:1216:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    1217:1217:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20820:20820 -> <init>
    1217:1217:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    1218:1218:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1218:1218:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20821 -> <init>
    1218:1218:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    1219:1219:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20821:20821 -> <init>
    1219:1219:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    1220:1220:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readEnum():570:570 -> <init>
    1220:1220:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20808 -> <init>
    1220:1220:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    1221:1227:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20809:20815 -> <init>
    1221:1227:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    1228:1228:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20803:20803 -> <init>
    1228:1228:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    1229:1229:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1229:1229:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20804 -> <init>
    1229:1229:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    1230:1230:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20804:20804 -> <init>
    1230:1230:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    1231:1231:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20798:20798 -> <init>
    1231:1231:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    1232:1232:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1232:1232:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20799 -> <init>
    1232:1232:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    1233:1280:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20799:20846 -> <init>
    1233:1280:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    1281:1293:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20844:20856 -> <init>
    1281:1293:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    1294:1298:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20850:20854 -> <init>
    1294:1298:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):20750 -> <init>
    1:1:int access$19902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement,int):20750:20750 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level access$20102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level):20750:20750 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind access$20402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind):20750:20750 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$20600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):20750:20750 -> a
    1:1:int access$20002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement,int):20750:20750 -> b
    2:6:boolean isInitialized():21161:21165 -> b
    1:1:int access$20202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement,int):20750:20750 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder newBuilderForType():21289:21289 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():20750 -> c
    1:1:int access$20302(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement,int):20750:20750 -> d
    1:1:int access$20502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement,int):20750:20750 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21291:21291 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder toBuilder():21293 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():20750 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement getDefaultInstance():20763:20763 -> f
    1:1:int getErrorCode():21100:21100 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level getLevel():21077:21077 -> h
    1:1:int getMessage():21123:21123 -> i
    1:1:int getVersion():21029:21029 -> j
    1:1:int getVersionFull():21054:21054 -> k
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind getVersionKind():21148:21148 -> l
    1:1:boolean hasErrorCode():21090:21090 -> m
    1:1:boolean hasLevel():21067:21067 -> n
    1:1:boolean hasMessage():21113:21113 -> o
    1:1:boolean hasVersion():21017:21017 -> p
    1:1:boolean hasVersionFull():21043:21043 -> q
    1:1:boolean hasVersionKind():21137:21137 -> r
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder newBuilder():21288:21288 -> s
    1:6:void initFields():21152:21157 -> t
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$1 -> com.android.tools.r8.d.b.a.b.a.Fa:
    1:1:void <init>():20860:20860 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20865:20865 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):20860 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder -> com.android.tools.r8.d.b.a.b.a.Ga:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level level_ -> e
    int errorCode_ -> f
    int message_ -> g
    int versionFull_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind versionKind_ -> h
    int bitField0_ -> b
    int version_ -> c
    1:379:void <init>():21305:21683 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):21298:21298 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21381:21383 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setVersion(int):21463:21464 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21383 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21385:21386 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setVersionFull(int):21516:21517 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21386 -> a
    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21388:21389 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setLevel(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level):21568:21569 -> a
    13:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21389 -> a
    15:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setLevel(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level):21566:21566 -> a
    15:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21389 -> a
    16:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21391:21392 -> a
    18:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setErrorCode(int):21616:21617 -> a
    18:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21392 -> a
    20:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21394:21395 -> a
    22:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setMessage(int):21664:21665 -> a
    22:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21395 -> a
    24:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21397:21398 -> a
    26:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setVersionKind(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind):21718:21719 -> a
    26:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21398 -> a
    28:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder setVersionKind(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind):21716:21716 -> a
    28:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21398 -> a
    29:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement):21400:21400 -> a
    30:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21415:21421 -> a
    30:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21298 -> a
    37:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21417:21421 -> a
    37:41:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21298 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement build():21341:21343 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():21298 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder clone():21333:21333 -> clone
    1:1:java.lang.Object clone():21298 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder create():21312:21312 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder access$19700():21298 -> e
    1:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement buildPartial():21349:21376 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Builder create():21312:21312 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level -> com.android.tools.r8.d.b.a.b.a.Ha:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level[] $VALUES -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level HIDDEN -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level ERROR -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level WARNING -> b
    int value -> a
    1:9:void <clinit>():20882:20890 -> <clinit>
    10:10:void <clinit>():20877:20877 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):20932:20933 -> <init>
    1:1:int getNumber():20907:20907 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level valueOf(int):20913:20913 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level valueOf(int):20912:20912 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$Level valueOf(int):20911:20911 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind -> com.android.tools.r8.d.b.a.b.a.Ia:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind COMPILER_VERSION -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind LANGUAGE_VERSION -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind API_VERSION -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind[] $VALUES -> e
    int value -> a
    1:9:void <clinit>():20947:20955 -> <clinit>
    10:10:void <clinit>():20942:20942 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):20997:20998 -> <init>
    1:1:int getNumber():20972:20972 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind[] values():20942:20942 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind valueOf(int):20978:20978 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind valueOf(int):20977:20977 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirement$VersionKind valueOf(int):20976:20976 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementOrBuilder -> com.android.tools.r8.d.b.a.b.a.Ka:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable -> com.android.tools.r8.d.b.a.b.a.Na:
    java.util.List requirement_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    byte memoizedIsInitialized -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable defaultInstance -> d
    1:379:void <clinit>():21846:22224 -> <clinit>
    1:124:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):21776:21899 -> <init>
    1:124:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):21770 -> <init>
    125:125:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):21777:21777 -> <init>
    125:125:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):21770 -> <init>
    126:246:void <init>(boolean):21779:21899 -> <init>
    247:247:void <init>(boolean):21779:21779 -> <init>
    248:353:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21794:21899 -> <init>
    248:353:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):21770 -> <init>
    354:364:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21795:21805 -> <init>
    354:364:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):21770 -> <init>
    365:365:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):73:73 -> <init>
    365:365:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21811 -> <init>
    365:365:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):21770 -> <init>
    366:377:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21819:21830 -> <init>
    366:377:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):21770 -> <init>
    378:393:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21828:21843 -> <init>
    378:393:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):21770 -> <init>
    394:401:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21834:21841 -> <init>
    394:401:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$1):21770 -> <init>
    1:1:java.util.List access$21000(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):21770:21770 -> a
    2:2:java.util.List access$21002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable,java.util.List):21770:21770 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$21100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):21770:21770 -> b
    2:6:boolean isInitialized():21901:21905 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder():21993:21993 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):21996 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):21996:21996 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilderForType():21994:21994 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():21770 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder toBuilder():21998:21998 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder toBuilder():21998:21998 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():21770 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable getDefaultInstance():21783:21783 -> f
    1:1:int getRequirementCount():21880:21880 -> g
    1:1:java.util.List getRequirementList():21867:21867 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder newBuilder():21993:21993 -> i
    1:1:void initFields():21897:21897 -> j
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$1 -> com.android.tools.r8.d.b.a.b.a.La:
    1:1:void <init>():21847:21847 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21852:21852 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):21847 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder -> com.android.tools.r8.d.b.a.b.a.Ma:
    java.util.List requirement_ -> c
    int bitField0_ -> b
    1:85:void <init>():22010:22094 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):22003:22003 -> a
    2:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22055:22059 -> a
    7:9:void ensureRequirementIsMutable():22097:22099 -> a
    7:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22061 -> a
    10:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):22062:22066 -> a
    15:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):22081:22087 -> a
    15:21:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):22003 -> a
    22:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):22083:22087 -> a
    22:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):22003 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable build():22036:22038 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():22003 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder clone():22028:22028 -> clone
    1:1:java.lang.Object clone():22003 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder create():22017:22017 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder access$20800():22003 -> e
    1:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable buildPartial():22044:22050 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable$Builder create():22017:22017 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTableOrBuilder -> com.android.tools.r8.d.b.a.b.a.Oa:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility -> com.android.tools.r8.d.b.a.b.a.Pa:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility LOCAL -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility PRIVATE_TO_THIS -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility PUBLIC -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility PROTECTED -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility PRIVATE -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility INTERNAL -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility[] $VALUES -> h
    int value -> a
    1:21:void <clinit>():105:125 -> <clinit>
    22:22:void <clinit>():96:96 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):186:187 -> <init>
    1:1:int getNumber():158:158 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Visibility[] values():96:96 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.BinaryVersion -> com.android.tools.r8.d.b.a.b.a.a.a:
    java.util.List rest -> d
    int[] numbers -> e
    int minor -> b
    int patch -> c
    int major -> a
    1:5:void <init>(int[]):17:21 -> <init>
    6:6:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.emptyList():70:70 -> <init>
    6:6:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.emptyList():0 -> <init>
    6:6:void <init>(int[]):21 -> <init>
    7:7:void <init>(int[]):21:21 -> <init>
    1:1:int getMajor():18:18 -> a
    1:1:int getMinor():19:19 -> b
    1:1:int[] toArray():25:25 -> c
    1:1:boolean equals(java.lang.Object):55:55 -> equals
    1:4:int hashCode():59:62 -> hashCode
    1:1:int[] toArray():25:25 -> toString
    1:1:java.lang.String toString():49 -> toString
    2:6:java.lang.String toString():77:81 -> toString
    7:7:java.lang.String toString():50:50 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags -> com.android.tools.r8.d.b.a.b.a.a.f:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField MEMBER_KIND -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_SUSPEND -> p
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField HAS_GETTER -> r
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_CONST -> t
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField HAS_CONSTANT -> v
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_EXTERNAL_CLASS -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField MODALITY -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_INFIX -> l
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_TAILREC -> n
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_CROSSINLINE -> A
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_EXTERNAL_ACCESSOR -> C
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField HAS_ANNOTATIONS -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_NEGATED -> E
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_INNER -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_EXPECT_PROPERTY -> y
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_VAR -> q
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField HAS_SETTER -> s
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_LATEINIT -> u
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_EXTERNAL_PROPERTY -> w
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_EXPECT_CLASS -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField VISIBILITY -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_OPERATOR -> k
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField CLASS_KIND -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_INLINE -> m
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_EXTERNAL_FUNCTION -> o
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField SUSPEND_TYPE -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_NOT_DEFAULT -> B
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_INLINE_ACCESSOR -> D
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_DATA -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField IS_DELEGATED -> x
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField DECLARES_DEFAULT_VALUE -> z
    1:65:void <clinit>():17:81 -> <clinit>
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$1 -> com.android.tools.r8.d.b.a.b.a.a.b:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField -> com.android.tools.r8.d.b.a.b.a.a.c:
    1:1:void <init>(int):259:259 -> <init>
    1:1:java.lang.Object get(int):256:256 -> a
    2:2:int toFlags(java.lang.Object):256:256 -> a
    3:3:java.lang.Boolean get(int):265:265 -> a
    4:4:int toFlags(java.lang.Boolean):270:270 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$EnumLiteFlagField -> com.android.tools.r8.d.b.a.b.a.a.d:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite[] values -> c
    1:1:int bitWidth(java.lang.Object[]):285:285 -> <init>
    1:1:void <init>(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite[]):280 -> <init>
    2:3:void <init>(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite[]):280:281 -> <init>
    4:4:int bitWidth(java.lang.Object[]):290:290 -> <init>
    4:4:void <init>(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite[]):280 -> <init>
    1:1:int toFlags(java.lang.Object):276:276 -> a
    2:2:int toFlags(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite):309:309 -> a
    2:2:int toFlags(java.lang.Object):276 -> a
    3:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite get(int):296:300 -> a
    3:7:java.lang.Object get(int):276 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField -> com.android.tools.r8.d.b.a.b.a.a.e:
    int bitWidth -> b
    int offset -> a
    1:3:void <init>(int,int):246:248 -> <init>
    1:3:void <init>(int,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$1):224 -> <init>
    java.lang.Object get(int) -> a
    int toFlags(java.lang.Object) -> a
    1:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField after(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite[]):226:227 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField booleanFirst():235:235 -> a
    4:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$BooleanFlagField booleanAfter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.Flags$FlagField):239:240 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver -> com.android.tools.r8.d.b.a.b.a.a.g:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable -> com.android.tools.r8.d.b.a.b.a.a.h:
    java.util.List types -> a
    1:20:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):21:40 -> <init>
    21:24:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):28:31 -> <init>
    25:25:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$TypeTable):22:22 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type get(int):34:34 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable -> com.android.tools.r8.d.b.a.b.a.a.j:
    java.util.List infos -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable$Companion Companion -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable EMPTY -> b
    1:1:void <clinit>():15:15 -> <clinit>
    2:2:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.emptyList():70:70 -> <clinit>
    2:2:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.emptyList():0 -> <clinit>
    2:2:void <clinit>():15 -> <clinit>
    3:3:void <clinit>():15:15 -> <clinit>
    1:1:void <init>(java.util.List):11:11 -> <init>
    2:2:void <init>(java.util.List):11:11 -> <init>
    2:2:void <init>(java.util.List,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):11 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable access$getEMPTY$cp():11:11 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable$Companion -> com.android.tools.r8.d.b.a.b.a.a.i:
    1:1:void <init>():14:14 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):14 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable getEMPTY():15:15 -> a
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable create(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):18:19 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.VersionRequirementTable create(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$VersionRequirementTable):18:18 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf -> com.android.tools.r8.d.b.a.b.a.b.w:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension constructorSignature -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension propertySignature -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension flags -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension methodSignature -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension lambdaClassOriginName -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension typeParameterAnnotation -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension classModuleName -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension typeAnnotation -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension isRaw -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension packageModuleName -> l
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension packageLocalVariable -> m
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension classLocalVariable -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension anonymousObjectOriginName -> k
    1:212:void <clinit>():3800:4011 -> <clinit>
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1 -> com.android.tools.r8.d.b.a.b.a.b.a:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature -> com.android.tools.r8.d.b.a.b.a.b.d:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature defaultInstance -> f
    int desc_ -> d
    int bitField0_ -> b
    int name_ -> c
    byte memoizedIsInitialized -> e
    1:349:void <clinit>():2669:3017 -> <clinit>
    350:351:void initFields():2724:2725 -> <clinit>
    350:351:void <clinit>():3017 -> <clinit>
    1:128:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2600:2727 -> <init>
    1:128:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2594 -> <init>
    129:129:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2601:2601 -> <init>
    129:129:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2594 -> <init>
    130:254:void <init>(boolean):2603:2727 -> <init>
    255:255:void <init>(boolean):2603:2603 -> <init>
    256:365:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2618:2727 -> <init>
    256:365:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2594 -> <init>
    366:376:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2619:2629 -> <init>
    366:376:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2594 -> <init>
    377:377:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):73:73 -> <init>
    377:377:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2635 -> <init>
    377:377:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2594 -> <init>
    378:378:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2647:2647 -> <init>
    378:378:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2594 -> <init>
    379:379:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    379:379:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2648 -> <init>
    379:379:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2594 -> <init>
    380:380:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2648:2648 -> <init>
    380:380:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2594 -> <init>
    381:381:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2642:2642 -> <init>
    381:381:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2594 -> <init>
    382:382:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    382:382:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2643 -> <init>
    382:382:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2594 -> <init>
    383:396:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2643:2656 -> <init>
    383:396:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2594 -> <init>
    397:409:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2654:2666 -> <init>
    397:409:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2594 -> <init>
    410:414:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2660:2664 -> <init>
    410:414:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2594 -> <init>
    1:1:int access$2702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature,int):2594:2594 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$3000(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2594:2594 -> a
    1:1:int access$2802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature,int):2594:2594 -> b
    2:6:boolean isInitialized():2729:2733 -> b
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder():2828:2828 -> b
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2831 -> b
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2831:2831 -> b
    1:1:int access$2902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature,int):2594:2594 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilderForType():2829:2829 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():2594 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():2594:2594 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder toBuilder():2833:2833 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature getDefaultInstance():2607:2607 -> f
    1:1:int getDesc():2720:2720 -> g
    1:1:int getName():2697:2697 -> getName
    1:1:boolean hasDesc():2710:2710 -> h
    1:1:boolean hasName():2691:2691 -> i
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder newBuilder():2828:2828 -> j
    1:2:void initFields():2724:2725 -> k
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$1 -> com.android.tools.r8.d.b.a.b.a.b.b:
    1:1:void <init>():2670:2670 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2675:2675 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2670 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder -> com.android.tools.r8.d.b.a.b.a.b.c:
    int desc_ -> d
    int bitField0_ -> b
    int name_ -> c
    1:1:void <init>():2845:2845 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):2838:2838 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2897:2899 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder setName(int):2949:2950 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2899 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2901:2902 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder setDesc(int):2993:2994 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2902 -> a
    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):2904:2904 -> a
    12:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2919:2925 -> a
    12:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2838 -> a
    19:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2921:2925 -> a
    19:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2838 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature build():2873:2875 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():2838 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder clone():2865:2865 -> clone
    1:1:java.lang.Object clone():2838 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder create():2852:2852 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder access$2500():2838 -> e
    1:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature buildPartial():2881:2892 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature$Builder create():2852:2852 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignatureOrBuilder -> com.android.tools.r8.d.b.a.b.a.b.e:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature -> com.android.tools.r8.d.b.a.b.a.b.h:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature defaultInstance -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    int desc_ -> d
    int bitField0_ -> b
    int name_ -> c
    byte memoizedIsInitialized -> e
    1:349:void <clinit>():2207:2555 -> <clinit>
    350:351:void initFields():2262:2263 -> <clinit>
    350:351:void <clinit>():2555 -> <clinit>
    1:128:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2138:2265 -> <init>
    1:128:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2132 -> <init>
    129:129:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):2139:2139 -> <init>
    129:129:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2132 -> <init>
    130:254:void <init>(boolean):2141:2265 -> <init>
    255:255:void <init>(boolean):2141:2141 -> <init>
    256:365:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2156:2265 -> <init>
    256:365:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2132 -> <init>
    366:376:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2157:2167 -> <init>
    366:376:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2132 -> <init>
    377:377:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):73:73 -> <init>
    377:377:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2173 -> <init>
    377:377:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2132 -> <init>
    378:378:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2185:2185 -> <init>
    378:378:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2132 -> <init>
    379:379:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    379:379:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2186 -> <init>
    379:379:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2132 -> <init>
    380:380:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2186:2186 -> <init>
    380:380:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2132 -> <init>
    381:381:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2180:2180 -> <init>
    381:381:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2132 -> <init>
    382:382:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    382:382:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2181 -> <init>
    382:382:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2132 -> <init>
    383:396:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2181:2194 -> <init>
    383:396:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2132 -> <init>
    397:409:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2192:2204 -> <init>
    397:409:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2132 -> <init>
    410:414:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2198:2202 -> <init>
    410:414:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):2132 -> <init>
    1:1:int access$2002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature,int):2132:2132 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$2300(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2132:2132 -> a
    1:1:int access$2102(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature,int):2132:2132 -> b
    2:6:boolean isInitialized():2267:2271 -> b
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder():2366:2366 -> b
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369 -> b
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2369:2369 -> b
    1:1:int access$2202(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature,int):2132:2132 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilderForType():2367:2367 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():2132 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder toBuilder():2371:2371 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder toBuilder():2371:2371 -> e
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():2132 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getDefaultInstance():2145:2145 -> f
    1:1:int getDesc():2258:2258 -> g
    1:1:int getName():2235:2235 -> getName
    1:1:boolean hasDesc():2248:2248 -> h
    1:1:boolean hasName():2229:2229 -> i
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder newBuilder():2366:2366 -> j
    1:2:void initFields():2262:2263 -> k
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$1 -> com.android.tools.r8.d.b.a.b.a.b.f:
    1:1:void <init>():2208:2208 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2213:2213 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2208 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder -> com.android.tools.r8.d.b.a.b.a.b.g:
    int desc_ -> d
    int bitField0_ -> b
    int name_ -> c
    1:1:void <init>():2383:2383 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):2376:2376 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2435:2437 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder setName(int):2487:2488 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2437 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2439:2440 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder setDesc(int):2531:2532 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2440 -> a
    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):2442:2442 -> a
    12:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2457:2463 -> a
    12:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2376 -> a
    19:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2459:2463 -> a
    19:23:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):2376 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature build():2411:2413 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():2376 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder clone():2403:2403 -> clone
    1:1:java.lang.Object clone():2376 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder create():2390:2390 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder access$1800():2376 -> e
    1:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature buildPartial():2419:2430 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature$Builder create():2390:2390 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignatureOrBuilder -> com.android.tools.r8.d.b.a.b.a.b.i:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature -> com.android.tools.r8.d.b.a.b.a.b.l:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getter_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature setter_ -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature defaultInstance -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature syntheticMethod_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature field_ -> c
    int bitField0_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> i
    byte memoizedIsInitialized -> g
    1:597:void <clinit>():3191:3787 -> <clinit>
    1:202:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):3080:3281 -> <init>
    1:202:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):3074 -> <init>
    203:203:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):3081:3081 -> <init>
    203:203:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):3074 -> <init>
    204:402:void <init>(boolean):3083:3281 -> <init>
    403:403:void <init>(boolean):3083:3083 -> <init>
    404:587:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3098:3281 -> <init>
    404:587:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):3074 -> <init>
    588:598:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3099:3109 -> <init>
    588:598:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):3074 -> <init>
    599:599:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):73:73 -> <init>
    599:599:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3115 -> <init>
    599:599:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):3074 -> <init>
    600:608:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3162:3170 -> <init>
    600:608:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):3074 -> <init>
    609:617:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3149:3157 -> <init>
    609:617:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):3074 -> <init>
    618:626:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3136:3144 -> <init>
    618:626:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):3074 -> <init>
    627:682:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3123:3178 -> <init>
    627:682:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):3074 -> <init>
    683:695:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3176:3188 -> <init>
    683:695:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):3074 -> <init>
    696:700:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3182:3186 -> <init>
    696:700:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):3074 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature access$3402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):3074:3074 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature access$3502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3074:3074 -> a
    3:3:int access$3802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature,int):3074:3074 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$3900(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3074:3074 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature access$3602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3074:3074 -> b
    2:6:boolean isInitialized():3283:3287 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature access$3702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3074:3074 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder newBuilderForType():3397:3397 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():3074 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3399:3399 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder toBuilder():3401 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():3074 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature getDefaultInstance():3087:3087 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature getField():3219:3219 -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getGetter():3257:3257 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getSetter():3272:3272 -> i
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getSyntheticMethod():3242:3242 -> j
    1:1:boolean hasField():3213:3213 -> k
    1:1:boolean hasGetter():3251:3251 -> l
    1:1:boolean hasSetter():3266:3266 -> m
    1:1:boolean hasSyntheticMethod():3232:3232 -> n
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder newBuilder():3396:3396 -> o
    1:4:void initFields():3276:3279 -> p
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$1 -> com.android.tools.r8.d.b.a.b.a.b.j:
    1:1:void <init>():3192:3192 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3197:3197 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3192 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder -> com.android.tools.r8.d.b.a.b.a.b.k:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature getter_ -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature setter_ -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature syntheticMethod_ -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature field_ -> c
    int bitField0_ -> b
    1:310:void <init>():3413:3722 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):3406:3406 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3477:3479 -> a
    5:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmFieldSignature):3557:3565 -> a
    5:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3479 -> a
    14:15:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3481:3482 -> a
    16:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeSyntheticMethod(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3637:3645 -> a
    16:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3482 -> a
    25:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3484:3485 -> a
    27:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeGetter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3701:3709 -> a
    27:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3485 -> a
    36:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3487:3488 -> a
    38:46:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeSetter(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmMethodSignature):3761:3769 -> a
    38:46:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3488 -> a
    47:47:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature):3490:3490 -> a
    48:54:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3505:3511 -> a
    48:54:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3406 -> a
    55:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3507:3511 -> a
    55:59:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):3406 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature build():3445:3447 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():3406 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder clone():3437:3437 -> clone
    1:1:java.lang.Object clone():3406 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder create():3420:3420 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder access$3200():3406 -> e
    1:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature buildPartial():3453:3472 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignature$Builder create():3420:3420 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$JvmPropertySignatureOrBuilder -> com.android.tools.r8.d.b.a.b.a.b.m:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes -> com.android.tools.r8.d.b.a.b.a.b.u:
    java.util.List record_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    java.util.List localName_ -> c
    byte memoizedIsInitialized -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes defaultInstance -> e
    1:1924:void <clinit>():170:2093 -> <clinit>
    1:1561:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):76:1636 -> <init>
    1:1561:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):70 -> <init>
    1562:1562:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):77:77 -> <init>
    1562:1562:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):70 -> <init>
    1563:3120:void <init>(boolean):79:1636 -> <init>
    3121:3121:void <init>(boolean):79:79 -> <init>
    3122:4664:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):94:1636 -> <init>
    3122:4664:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):70 -> <init>
    4665:4675:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):95:105 -> <init>
    4665:4675:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):70 -> <init>
    4676:4676:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):73:73 -> <init>
    4676:4676:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):111 -> <init>
    4676:4676:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):70 -> <init>
    4677:4684:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):134:141 -> <init>
    4677:4684:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):70 -> <init>
    4685:4685:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    4685:4685:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):141 -> <init>
    4685:4685:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):70 -> <init>
    4686:4688:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):141:143 -> <init>
    4686:4688:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):70 -> <init>
    4689:4692:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):127:130 -> <init>
    4689:4692:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):70 -> <init>
    4693:4693:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    4693:4693:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):130 -> <init>
    4693:4693:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):70 -> <init>
    4694:4694:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):130:130 -> <init>
    4694:4694:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):70 -> <init>
    4695:4727:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):119:151 -> <init>
    4695:4727:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):70 -> <init>
    4728:4746:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):149:167 -> <init>
    4728:4746:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):70 -> <init>
    4747:4757:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):155:165 -> <init>
    4747:4757:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):70 -> <init>
    1:1:java.util.List access$1400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes):70:70 -> a
    2:2:java.util.List access$1402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes,java.util.List):70:70 -> a
    1:1:java.util.List access$1500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes):70:70 -> b
    2:2:java.util.List access$1502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes,java.util.List):70:70 -> b
    3:7:boolean isInitialized():1638:1642 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$1600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes):70:70 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder newBuilderForType():1752:1752 -> c
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():70 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes):1754:1754 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder toBuilder():1756 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():70 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes getDefaultInstance():83:83 -> f
    1:1:java.util.List getLocalNameList():1608:1608 -> g
    1:1:java.util.List getRecordList():1568:1568 -> h
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder newBuilder():1751:1751 -> i
    1:2:void initFields():1633:1634 -> j
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$1 -> com.android.tools.r8.d.b.a.b.a.b.n:
    1:1:void <init>():171:171 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):176:176 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):171 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder -> com.android.tools.r8.d.b.a.b.a.b.o:
    java.util.List localName_ -> d
    java.util.List record_ -> c
    int bitField0_ -> b
    1:227:void <init>():1768:1994 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):1761:1761 -> a
    2:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes):1820:1824 -> a
    7:9:void ensureRecordIsMutable():1872:1874 -> a
    7:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes):1826 -> a
    10:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes):1827:1834 -> a
    18:20:void ensureLocalNameIsMutable():1996:1998 -> a
    18:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes):1836 -> a
    21:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes):1837:1841 -> a
    26:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1856:1862 -> a
    26:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1761 -> a
    33:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1858:1862 -> a
    33:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1761 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes build():1796:1798 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():1761 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder clone():1788:1788 -> clone
    1:1:java.lang.Object clone():1761 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder create():1775:1775 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder access$1200():1761 -> e
    1:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes buildPartial():1804:1815 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Builder create():1775:1775 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record -> com.android.tools.r8.d.b.a.b.a.b.s:
    byte memoizedIsInitialized -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    java.lang.Object string_ -> e
    int predefinedIndex_ -> d
    java.util.List replaceChar_ -> h
    java.util.List substringIndex_ -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser PARSER -> k
    int bitField0_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation operation_ -> f
    int range_ -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record defaultInstance -> j
    1:1088:void <clinit>():469:1556 -> <clinit>
    1:447:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):334:780 -> <init>
    1:447:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    448:448:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):335:335 -> <init>
    448:448:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    449:892:void <init>(boolean):337:780 -> <init>
    893:893:void <init>(boolean):337:337 -> <init>
    894:1322:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):352:780 -> <init>
    894:1322:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1323:1333:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):353:363 -> <init>
    1323:1333:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1334:1334:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):73:73 -> <init>
    1334:1334:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):369 -> <init>
    1334:1334:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1335:1337:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):440:442 -> <init>
    1335:1337:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1338:1345:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):427:434 -> <init>
    1338:1345:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1346:1346:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1346:1346:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):434 -> <init>
    1346:1346:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1347:1349:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):434:436 -> <init>
    1347:1349:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1350:1353:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):420:423 -> <init>
    1350:1353:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1354:1354:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1354:1354:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):423 -> <init>
    1354:1354:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1355:1355:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):423:423 -> <init>
    1355:1355:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1356:1363:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):406:413 -> <init>
    1356:1363:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1364:1364:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1364:1364:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):413 -> <init>
    1364:1364:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1365:1367:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):413:415 -> <init>
    1365:1367:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1368:1371:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):399:402 -> <init>
    1368:1371:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1372:1372:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1372:1372:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):402 -> <init>
    1372:1372:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1373:1373:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):402:402 -> <init>
    1373:1373:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1374:1374:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readEnum():570:570 -> <init>
    1374:1374:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):386 -> <init>
    1374:1374:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1375:1381:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):387:393 -> <init>
    1375:1381:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1382:1382:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):381:381 -> <init>
    1382:1382:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1383:1383:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1383:1383:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):382 -> <init>
    1383:1383:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1384:1384:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):382:382 -> <init>
    1384:1384:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1385:1385:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):376:376 -> <init>
    1385:1385:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1386:1386:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> <init>
    1386:1386:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):377 -> <init>
    1386:1386:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1387:1460:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):377:450 -> <init>
    1387:1460:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1461:1479:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):448:466 -> <init>
    1461:1479:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1480:1490:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):454:464 -> <init>
    1480:1490:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$1):328 -> <init>
    1:1:int access$1002(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record,int):328:328 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$1100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):328:328 -> a
    3:3:java.lang.Object access$602(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record,java.lang.Object):328:328 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation access$702(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation):328:328 -> a
    5:5:java.util.List access$802(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record,java.util.List):328:328 -> a
    1:1:int access$402(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record,int):328:328 -> b
    2:2:java.lang.Object access$600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):328:328 -> b
    3:3:java.util.List access$902(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record,java.util.List):328:328 -> b
    4:8:boolean isInitialized():782:786 -> b
    1:1:int access$502(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record,int):328:328 -> c
    2:2:java.util.List access$800(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):328:328 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilderForType():938:938 -> c
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder newBuilderForType():328 -> c
    1:1:java.util.List access$900(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):328:328 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilder(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):940:940 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder toBuilder():942 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder toBuilder():328 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record getDefaultInstance():341:341 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation getOperation():690:690 -> g
    1:1:int getPredefinedIndex():613:613 -> h
    1:1:int getRange():590:590 -> i
    1:1:int getReplaceCharCount():757:757 -> j
    1:1:java.util.List getReplaceCharList():746:746 -> k
    1:9:java.lang.String getString():636:644 -> l
    1:1:int getSubstringIndexCount():718:718 -> m
    1:1:java.util.List getSubstringIndexList():706:706 -> n
    1:1:boolean hasOperation():680:680 -> o
    1:1:boolean hasPredefinedIndex():603:603 -> p
    1:1:boolean hasRange():580:580 -> q
    1:1:boolean hasString():626:626 -> r
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder newBuilder():937:937 -> s
    1:6:void initFields():773:778 -> t
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$1 -> com.android.tools.r8.d.b.a.b.a.b.p:
    1:1:void <init>():470:470 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):475:475 -> a
    1:1:java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):470 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder -> com.android.tools.r8.d.b.a.b.a.b.q:
    java.lang.Object string_ -> e
    int predefinedIndex_ -> d
    java.util.List replaceChar_ -> h
    java.util.List substringIndex_ -> g
    int bitField0_ -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation operation_ -> f
    int range_ -> c
    1:497:void <init>():954:1450 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite):947:947 -> a
    2:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1032:1034 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder setRange(int):1124:1125 -> a
    5:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1034 -> a
    7:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1036:1037 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder setPredefinedIndex(int):1172:1173 -> a
    9:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1037 -> a
    11:17:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1039:1045 -> a
    18:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder setOperation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation):1323:1324 -> a
    18:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1045 -> a
    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder setOperation(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation):1321:1321 -> a
    20:20:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1045 -> a
    21:24:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1047:1050 -> a
    25:27:void ensureSubstringIndexIsMutable():1344:1346 -> a
    25:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1052 -> a
    28:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1053:1060 -> a
    36:38:void ensureReplaceCharIsMutable():1452:1454 -> a
    36:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1062 -> a
    39:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record):1063:1067 -> a
    44:50:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1082:1088 -> a
    44:50:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):947 -> a
    51:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1084:1088 -> a
    51:55:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):947 -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record build():990:992 -> c
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite build():947 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder clone():982:982 -> clone
    1:1:java.lang.Object clone():947 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder create():961:961 -> e
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder access$200():947 -> e
    1:30:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record buildPartial():998:1027 -> f
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Builder create():961:961 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation -> com.android.tools.r8.d.b.a.b.a.b.r:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation NONE -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation[] $VALUES -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation DESC_TO_CLASS_ID -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation INTERNAL_TO_CLASS_ID -> c
    int value -> a
    1:19:void <clinit>():492:510 -> <clinit>
    20:20:void <clinit>():487:487 -> <clinit>
    1:2:void <init>(java.lang.String,int,int,int):562:563 -> <init>
    1:1:int getNumber():537:537 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation[] values():487:487 -> b
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation valueOf(int):543:543 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation valueOf(int):542:542 -> b
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$Record$Operation valueOf(int):541:541 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes$RecordOrBuilder -> com.android.tools.r8.d.b.a.b.a.b.t:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypesOrBuilder -> com.android.tools.r8.d.b.a.b.a.b.v:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.BitEncoding -> com.android.tools.r8.d.b.a.b.a.b.a.a:
    boolean $assertionsDisabled -> a
    1:13:void <clinit>():15:27 -> <clinit>
    1:4:byte[] decodeBytes(java.lang.String[]):179:182 -> a
    5:82:byte[] com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.UtfEncodingKt.stringsToBytes(java.lang.String[]):0:77 -> a
    5:82:byte[] decodeBytes(java.lang.String[]):182 -> a
    83:93:byte[] com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.UtfEncodingKt.stringsToBytes(java.lang.String[]):59:69 -> a
    83:93:byte[] decodeBytes(java.lang.String[]):182 -> a
    94:94:byte[] decodeBytes(java.lang.String[]):185:185 -> a
    95:104:byte[] combineStringArrayIntoBytes(java.lang.String[]):210:219 -> a
    95:104:byte[] decodeBytes(java.lang.String[]):189 -> a
    105:106:void addModuloByte(byte[],int):114:115 -> a
    105:106:byte[] decodeBytes(java.lang.String[]):191 -> a
    107:123:byte[] decode7to8(byte[]):247:263 -> a
    107:123:byte[] decodeBytes(java.lang.String[]):192 -> a
    1:2:java.lang.String[] dropMarker(java.lang.String[]):199:200 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.ClassMapperLite -> com.android.tools.r8.d.b.a.b.a.b.a.c:
    java.util.Map map -> a
    1:15:void <clinit>():15:29 -> <clinit>
    16:16:void <clinit>():21:21 -> <clinit>
    17:171:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.getIndices(java.util.Collection):0:154 -> <clinit>
    17:171:com.android.tools.r8.jetbrains.kotlin.ranges.IntRange com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.getIndices(java.util.Collection):0 -> <clinit>
    17:171:void <clinit>():32 -> <clinit>
    172:627:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt___RangesKt.step(com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression,int):0:455 -> <clinit>
    172:627:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt.step(com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression,int):0 -> <clinit>
    172:627:void <clinit>():32 -> <clinit>
    628:628:void com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt__RangesKt.checkStepIsPositive(boolean,java.lang.Number):0:0 -> <clinit>
    628:628:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt___RangesKt.step(com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression,int):455 -> <clinit>
    628:628:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt.step(com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression,int):0 -> <clinit>
    628:628:void <clinit>():32 -> <clinit>
    629:629:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt___RangesKt.step(com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression,int):456:456 -> <clinit>
    629:629:com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression com.android.tools.r8.jetbrains.kotlin.ranges.RangesKt.step(com.android.tools.r8.jetbrains.kotlin.ranges.IntProgression,int):0 -> <clinit>
    629:629:void <clinit>():32 -> <clinit>
    630:665:void <clinit>():32:67 -> <clinit>
    666:666:void <clinit>():20:20 -> <clinit>
    1:1:void <init>():15:15 -> <init>
    1:1:java.lang.String mapClass(java.lang.String):76:76 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.ClassMapperLite$map$1$1 -> com.android.tools.r8.d.b.a.b.a.b.a.b:
    java.util.Map receiver$0 -> a
    1:1:java.lang.Object invoke(java.lang.Object,java.lang.Object):15:15 -> a
    2:2:void invoke(java.lang.String,java.lang.String):40:40 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmBytecodeBinaryVersion -> com.android.tools.r8.d.b.a.b.a.b.a.d:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmBytecodeBinaryVersion INSTANCE -> f
    1:4:void <clinit>():19:22 -> <clinit>
    1:1:void <init>(int[]):14:14 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature -> com.android.tools.r8.d.b.a.b.a.b.a.g:
    1:1:void <init>():14:14 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):14 -> <init>
    java.lang.String asString() -> a
    1:1:java.lang.String toString():27:27 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Field -> com.android.tools.r8.d.b.a.b.a.b.a.e:
    java.lang.String name -> a
    java.lang.String desc -> b
    1:1:void <init>(java.lang.String,java.lang.String):23:23 -> <init>
    1:1:java.lang.String asString():24:24 -> a
    2:2:java.lang.String getName():23:23 -> a
    2:2:java.lang.String asString():24 -> a
    3:3:java.lang.String asString():24:24 -> a
    4:4:java.lang.String getDesc():23:23 -> a
    4:4:java.lang.String asString():24 -> a
    5:5:java.lang.String asString():24:24 -> a
    1:1:java.lang.String getDesc():23:23 -> b
    1:1:java.lang.String getName():23:23 -> c
    1:1:java.lang.String getName():23:23 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:java.lang.String getName():23:23 -> equals
    2:2:boolean equals(java.lang.Object):0 -> equals
    3:3:boolean equals(java.lang.Object):0:0 -> equals
    4:4:java.lang.String getDesc():23:23 -> equals
    4:4:boolean equals(java.lang.Object):0 -> equals
    5:5:java.lang.String getDesc():23:23 -> equals
    5:5:boolean equals(java.lang.Object):0 -> equals
    6:6:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.lang.String getName():23:23 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    3:3:java.lang.String getDesc():23:23 -> hashCode
    3:3:int hashCode():0 -> hashCode
    4:4:int hashCode():0:0 -> hashCode
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method -> com.android.tools.r8.d.b.a.b.a.b.a.f:
    java.lang.String name -> a
    java.lang.String desc -> b
    1:1:void <init>(java.lang.String,java.lang.String):19:19 -> <init>
    1:1:java.lang.String asString():20:20 -> a
    2:2:java.lang.String getName():19:19 -> a
    2:2:java.lang.String asString():20 -> a
    3:3:java.lang.String asString():20:20 -> a
    4:4:java.lang.String getDesc():19:19 -> a
    4:4:java.lang.String asString():20 -> a
    5:5:java.lang.String asString():20:20 -> a
    1:1:java.lang.String getDesc():19:19 -> b
    1:1:java.lang.String getName():19:19 -> c
    1:1:java.lang.String getName():19:19 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:java.lang.String getName():19:19 -> equals
    2:2:boolean equals(java.lang.Object):0 -> equals
    3:3:boolean equals(java.lang.Object):0:0 -> equals
    4:4:java.lang.String getDesc():19:19 -> equals
    4:4:boolean equals(java.lang.Object):0 -> equals
    5:5:java.lang.String getDesc():19:19 -> equals
    5:5:boolean equals(java.lang.Object):0 -> equals
    6:6:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.lang.String getName():19:19 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    3:3:java.lang.String getDesc():19:19 -> hashCode
    3:3:int hashCode():0 -> hashCode
    4:4:int hashCode():0:0 -> hashCode
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMetadataVersion -> com.android.tools.r8.d.b.a.b.a.b.a.h:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMetadataVersion INSTANCE -> f
    1:4:void <clinit>():21:24 -> <clinit>
    1:1:void <init>(int[]):14:14 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver -> com.android.tools.r8.d.b.a.b.a.b.a.j:
    java.util.List records -> b
    java.util.List PREDEFINED_STRINGS -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes types -> c
    java.lang.String[] strings -> d
    java.util.Set localNameIndices -> a
    1:31:void <clinit>():78:108 -> <clinit>
    32:74:void <clinit>():78:120 -> <clinit>
    75:75:void <clinit>():111:111 -> <clinit>
    1:5:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes,java.lang.String[]):13:17 -> <init>
    6:6:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.SetsKt__SetsKt.emptySet():34:34 -> <init>
    6:6:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.SetsKt.emptySet():0 -> <init>
    6:6:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes,java.lang.String[]):17 -> <init>
    7:1122:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toSet(java.lang.Iterable):0:1115 -> <init>
    7:1122:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toSet(java.lang.Iterable):0 -> <init>
    7:1122:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes,java.lang.String[]):17 -> <init>
    1123:1123:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toSet(java.lang.Iterable):1114:1114 -> <init>
    1123:1123:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toSet(java.lang.Iterable):0 -> <init>
    1123:1123:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes,java.lang.String[]):17 -> <init>
    1124:1124:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.SetsKt__SetsKt.emptySet():34:34 -> <init>
    1124:1124:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.SetsKt.emptySet():0 -> <init>
    1124:1124:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.toSet(java.lang.Iterable):1113 -> <init>
    1124:1124:java.util.Set com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.toSet(java.lang.Iterable):0 -> <init>
    1124:1124:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes,java.lang.String[]):17 -> <init>
    1125:1136:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes,java.lang.String[]):17:28 -> <init>
    1137:1137:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes,java.lang.String[]):20:20 -> <init>
    1:33:java.lang.String getString(int):32:64 -> a
    34:44:java.lang.String getString(int):58:68 -> a
    1:1:boolean isLocalClassName(int):75:75 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver$WhenMappings -> com.android.tools.r8.d.b.a.b.a.b.a.i:
    int[] $EnumSwitchMapping$0 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmProtoBufUtil -> com.android.tools.r8.d.b.a.b.a.b.a.k:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite EXTENSION_REGISTRY -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmProtoBufUtil INSTANCE -> b
    1:2:void <clinit>():18:19 -> <clinit>
    3:15:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf.registerAllExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):10:22 -> <clinit>
    3:15:void <clinit>():19 -> <clinit>
    16:16:void <clinit>():19:19 -> <clinit>
    1:1:void <init>():18:18 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(java.lang.String[],java.lang.String[]):25:25 -> a
    2:32:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(byte[],java.lang.String[]):0:30 -> a
    2:32:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(java.lang.String[],java.lang.String[]):25 -> a
    33:33:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class.parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):9476:9476 -> a
    33:33:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(byte[],java.lang.String[]):30 -> a
    33:33:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(java.lang.String[],java.lang.String[]):25 -> a
    34:34:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(byte[],java.lang.String[]):30:30 -> a
    34:34:com.android.tools.r8.jetbrains.kotlin.Pair readClassDataFrom(java.lang.String[],java.lang.String[]):25 -> a
    35:35:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver readNameResolver(java.io.InputStream,java.lang.String[]):50:50 -> a
    36:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.JvmProtoBuf$StringTableTypes.parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):1737:1737 -> a
    36:36:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver readNameResolver(java.io.InputStream,java.lang.String[]):50 -> a
    37:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver readNameResolver(java.io.InputStream,java.lang.String[]):50:50 -> a
    38:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):68:73 -> a
    44:44:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.listOfNotNull(java.lang.Object):119:119 -> a
    44:44:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.listOfNotNull(java.lang.Object):0 -> a
    44:44:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):73 -> a
    45:45:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.emptyList():70:70 -> a
    45:45:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.emptyList():0 -> a
    45:45:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt__CollectionsKt.listOfNotNull(java.lang.Object):119 -> a
    45:45:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.listOfNotNull(java.lang.Object):0 -> a
    45:45:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):73 -> a
    46:100:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):73:127 -> a
    101:101:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):73:73 -> a
    102:2072:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt___CollectionsKt.plus(java.util.Collection,java.lang.Iterable):0:1970 -> a
    102:2072:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.CollectionsKt.plus(java.util.Collection,java.lang.Iterable):0 -> a
    102:2072:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):73 -> a
    2073:2075:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):129:131 -> a
    2076:2081:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmMethodSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):75:80 -> a
    2082:2129:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmConstructorSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):88:135 -> a
    2130:2133:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method getJvmConstructorSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):93:96 -> a
    2134:2142:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Field getJvmFieldSignature(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.TypeTable):104:112 -> a
    2143:2143:java.lang.String mapTypeDefault(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):117:117 -> a
    2144:2144:java.lang.String com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmNameResolver.getQualifiedClassName(int):72:72 -> a
    2144:2144:java.lang.String mapTypeDefault(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):117 -> a
    2145:2145:java.lang.String mapTypeDefault(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Type,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.deserialization.NameResolver):117:117 -> a
    1:2:com.android.tools.r8.jetbrains.kotlin.Pair readFunctionDataFrom(java.lang.String[],java.lang.String[]):45:46 -> b
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function.parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):14826:14826 -> b
    3:3:com.android.tools.r8.jetbrains.kotlin.Pair readFunctionDataFrom(java.lang.String[],java.lang.String[]):46 -> b
    4:4:com.android.tools.r8.jetbrains.kotlin.Pair readFunctionDataFrom(java.lang.String[],java.lang.String[]):46:46 -> b
    1:1:com.android.tools.r8.jetbrains.kotlin.Pair readPackageDataFrom(java.lang.String[],java.lang.String[]):35:35 -> c
    2:42:com.android.tools.r8.jetbrains.kotlin.Pair readPackageDataFrom(byte[],java.lang.String[]):0:40 -> c
    2:42:com.android.tools.r8.jetbrains.kotlin.Pair readPackageDataFrom(java.lang.String[],java.lang.String[]):35 -> c
    43:43:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package.parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):11798:11798 -> c
    43:43:com.android.tools.r8.jetbrains.kotlin.Pair readPackageDataFrom(byte[],java.lang.String[]):40 -> c
    43:43:com.android.tools.r8.jetbrains.kotlin.Pair readPackageDataFrom(java.lang.String[],java.lang.String[]):35 -> c
    44:44:com.android.tools.r8.jetbrains.kotlin.Pair readPackageDataFrom(byte[],java.lang.String[]):40:40 -> c
    44:44:com.android.tools.r8.jetbrains.kotlin.Pair readPackageDataFrom(java.lang.String[],java.lang.String[]):35 -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite -> com.android.tools.r8.d.b.a.b.b.c:
    1:1:void <init>():46:46 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite.newBuilderForType() -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException newUninitializedMessageException():102:102 -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite.toBuilder() -> e
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder -> com.android.tools.r8.d.b.a.b.b.b:
    1:1:void <init>():118:118 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder.mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite) -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):316:316 -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder.build() -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractMessageLite$Builder$LimitedInputStream -> com.android.tools.r8.d.b.a.b.b.a:
    int limit -> a
    1:2:void <init>(java.io.InputStream,int):245:246 -> <init>
    1:1:int available():251:251 -> available
    1:6:int read():256:261 -> read
    7:13:int read(byte[],int,int):269:275 -> read
    1:3:long skip(long):282:284 -> skip
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.AbstractParser -> com.android.tools.r8.d.b.a.b.b.d:
    1:1:void <clinit>():78:78 -> <clinit>
    1:1:void <init>():49:49 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite checkMessageInitialized(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):70:70 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException newUninitializedMessageException(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):57:57 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite checkMessageInitialized(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):71 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite checkMessageInitialized(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):71:71 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):224:224 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
    4:4:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
    5:16:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readRawVarint32(int,java.io.InputStream):692:703 -> a
    5:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):228 -> a
    5:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
    5:16:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
    17:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):232:233 -> a
    17:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
    17:18:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
    19:19:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245:245 -> a
    19:19:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
    20:26:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readRawVarint32(int,java.io.InputStream):705:711 -> a
    20:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):228 -> a
    20:26:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
    20:26:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
    27:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):230:230 -> a
    27:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):245 -> a
    27:27:java.lang.Object parseDelimitedFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):209:209 -> b
    1:1:java.lang.Object parseFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):49 -> b
    1:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite parsePartialFrom(java.io.InputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):191:196 -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.BoundedByteString -> com.android.tools.r8.d.b.a.b.b.g:
    int bytesLength -> f
    int bytesOffset -> e
    1:14:void <init>(byte[],int,int):64:77 -> <init>
    15:15:void <init>(byte[],int,int):72:72 -> <init>
    16:16:void <init>(byte[],int,int):69:69 -> <init>
    17:17:void <init>(byte[],int,int):66:66 -> <init>
    1:1:void copyToInternal(byte[],int,int,int):121:121 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$ByteIterator iterator():130:130 -> iterator
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$ByteIterator iterator():130:130 -> iterator
    2:2:java.util.Iterator iterator():47 -> iterator
    1:1:int getOffsetIntoBytes():112:112 -> k
    1:1:int size():107:107 -> size
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.BoundedByteString$1 -> com.android.tools.r8.d.b.a.b.b.e:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.BoundedByteString$BoundedByteIterator -> com.android.tools.r8.d.b.a.b.b.f:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.BoundedByteString this$0 -> c
    int limit -> b
    int position -> a
    1:3:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.BoundedByteString):138:140 -> <init>
    1:3:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.BoundedByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.BoundedByteString$1):133 -> <init>
    1:1:boolean hasNext():144:144 -> hasNext
    1:4:byte nextByte():153:156 -> next
    1:4:java.lang.Byte next():149 -> next
    1:4:java.lang.Object next():133 -> next
    5:5:java.lang.Byte next():149:149 -> next
    5:5:java.lang.Object next():133 -> next
    6:6:byte nextByte():154:154 -> next
    6:6:java.lang.Byte next():149 -> next
    6:6:java.lang.Object next():133 -> next
    1:4:byte nextByte():153:156 -> nextByte
    5:5:byte nextByte():154:154 -> nextByte
    1:1:void remove():160:160 -> remove
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString -> com.android.tools.r8.d.b.a.b.b.j:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString EMPTY -> a
    boolean $assertionsDisabled -> b
    1:22:void <clinit>():60:81 -> <clinit>
    1:1:void <init>():84:84 -> <init>
    int partialHash(int,int,int) -> a
    java.lang.String toString(java.lang.String) -> a
    void writeToInternal(java.io.OutputStream,int,int) -> a
    1:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString copyFrom(byte[],int,int):206:208 -> a
    4:11:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString concat(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):396:403 -> a
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString concat(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):399:399 -> a
    13:25:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString copyFrom(java.lang.Iterable):420:432 -> a
    26:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString balancedConcat(java.util.Iterator,int):442:450 -> a
    35:44:void copyTo(byte[],int,int,int):490:499 -> a
    45:45:void copyTo(byte[],int,int,int):495:495 -> a
    46:46:void copyTo(byte[],int,int,int):491:491 -> a
    47:47:void copyTo(byte[],int,int,int):488:488 -> a
    48:48:void copyTo(byte[],int,int,int):485:485 -> a
    49:49:void copyTo(byte[],int,int,int):482:482 -> a
    void copyToInternal(byte[],int,int,int) -> b
    int partialIsValidUtf8(int,int,int) -> b
    int getTreeDepth() -> c
    boolean isBalanced() -> e
    boolean isValidUtf8() -> g
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$Output newOutput():751:751 -> h
    int peekCachedHashCode() -> i
    1:3:java.lang.String toStringUtf8():624:626 -> j
    1:1:java.lang.String toString():1019:1019 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$ByteIterator -> com.android.tools.r8.d.b.a.b.b.h:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$Output -> com.android.tools.r8.d.b.a.b.b.i:
    int bufferPos -> e
    byte[] buffer -> d
    java.util.ArrayList flushedBuffers -> b
    int flushedBuffersTotalBytes -> c
    byte[] EMPTY_BYTE_ARRAY -> f
    int initialCapacity -> a
    1:1:void <clinit>():765:765 -> <clinit>
    1:7:void <init>(int):783:789 -> <init>
    8:8:void <init>(int):785:785 -> <init>
    1:9:void flushFullBuffer(int):898:906 -> a
    10:10:void flushLastBuffer():914:914 -> a
    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString toByteString():827 -> a
    11:12:byte[] copyArray(byte[],int):835:836 -> a
    11:12:void flushLastBuffer():916 -> a
    11:12:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString toByteString():827 -> a
    13:27:void flushLastBuffer():917:931 -> a
    13:27:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString toByteString():827 -> a
    28:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString toByteString():828:828 -> a
    1:1:int size():872:872 -> size
    1:1:java.lang.String toString():888:888 -> toString
    1:4:void write(int):794:797 -> write
    5:19:void write(byte[],int,int):802:816 -> write
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream -> com.android.tools.r8.d.b.a.b.b.k:
    int recursionLimit -> l
    int sizeLimit -> m
    int currentLimit -> j
    int recursionDepth -> k
    int totalBytesRetired -> i
    int lastTag -> g
    int bufferSizeAfterLimit -> d
    int bufferPos -> e
    int bufferSize -> c
    byte[] buffer -> a
    java.io.InputStream input -> f
    boolean enableAliasing -> h
    boolean bufferIsImmutable -> b
    1:1:void <init>(java.io.InputStream):898:898 -> <init>
    2:42:void <init>(java.io.InputStream):864:904 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream newInstance(java.io.InputStream):58:58 -> a
    2:2:void checkLastTagWas(int):173:173 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.invalidEndTag():94:94 -> a
    3:3:void checkLastTagWas(int):174 -> a
    4:4:void checkLastTagWas(int):174:174 -> a
    5:6:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):256:257 -> a
    7:10:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeRawLittleEndian32(int):1246:1249 -> a
    7:10:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeFixed32NoTag(int):410 -> a
    7:10:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):258 -> a
    11:11:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):244:244 -> a
    12:13:void skipMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):286:287 -> a
    12:13:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):245 -> a
    14:17:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):246:249 -> a
    18:20:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):238:240 -> a
    21:22:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):232:233 -> a
    23:30:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeRawLittleEndian64(long):1256:1263 -> a
    23:30:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeFixed64NoTag(long):405 -> a
    23:30:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):234 -> a
    31:31:long readInt64():343:343 -> a
    31:31:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):226 -> a
    32:32:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):227:227 -> a
    33:36:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeRawVarint64(long):1221:1224 -> a
    33:36:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeUInt64NoTag(long):385 -> a
    33:36:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):228 -> a
    37:37:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.invalidWireType():99:99 -> a
    37:37:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):262 -> a
    38:38:boolean skipField(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream):262:262 -> a
    39:46:void readGroup(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):420:427 -> a
    47:47:void readGroup(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):421:421 -> a
    48:57:void readMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):471:480 -> a
    58:58:void readMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):473:473 -> a
    59:68:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite readMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):489:498 -> a
    69:69:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite readMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite):491:491 -> a
    70:74:int getBytesUntilLimit():1027:1031 -> a
    1:1:boolean readBool():363:363 -> b
    2:3:void popLimit(int):1018:1019 -> b
    1:14:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString readBytes():504:517 -> c
    15:22:int pushLimit(int):988:995 -> c
    23:23:int pushLimit(int):991:991 -> c
    24:24:int pushLimit(int):986:986 -> c
    1:1:double readDouble():328:328 -> d
    2:4:void skipRawBytes(int):1272:1274 -> d
    5:25:void skipRawBytesSlowPath(int):1289:1309 -> d
    5:25:void skipRawBytes(int):1276 -> d
    26:28:void skipRawBytesSlowPath(int):1291:1293 -> d
    26:28:void skipRawBytes(int):1276 -> d
    29:29:void skipRawBytesSlowPath(int):1286:1286 -> d
    29:29:void skipRawBytes(int):1276 -> d
    1:1:float readFloat():333:333 -> e
    2:23:byte[] readRawBytesSlowPath(int):1177:1198 -> e
    24:24:void ensureAvailable(int):1067:1067 -> e
    24:24:byte[] readRawBytesSlowPath(int):1203 -> e
    25:26:void refillBuffer(int):1081:1082 -> e
    25:26:void ensureAvailable(int):1068 -> e
    25:26:byte[] readRawBytesSlowPath(int):1203 -> e
    27:63:byte[] readRawBytesSlowPath(int):1204:1240 -> e
    64:83:byte[] readRawBytesSlowPath(int):1238:1257 -> e
    84:86:byte[] readRawBytesSlowPath(int):1185:1187 -> e
    1:1:int readInt32():348:348 -> f
    2:3:void refillBuffer(int):1081:1082 -> f
    1:11:int readRawLittleEndian32():789:799 -> g
    12:51:boolean tryRefillBuffer(int):1095:1134 -> g
    52:52:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.sizeLimitExceeded():110:110 -> g
    52:52:boolean tryRefillBuffer(int):1131 -> g
    53:53:boolean tryRefillBuffer(int):1131:1131 -> g
    54:54:boolean tryRefillBuffer(int):1123:1123 -> g
    55:55:boolean tryRefillBuffer(int):1096:1096 -> g
    1:11:long readRawLittleEndian64():807:817 -> h
    1:36:int readRawVarint32():602:637 -> i
    37:37:int readRawVarint32():634:634 -> i
    1:43:long readRawVarint64():728:770 -> j
    44:44:long readRawVarint64():767:767 -> j
    1:4:byte readRawByte():1148:1151 -> k
    1:4:long readRawVarint64SlowPath():778 -> k
    5:5:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.malformedVarint():84:84 -> k
    5:5:long readRawVarint64SlowPath():784 -> k
    6:6:long readRawVarint64SlowPath():784:784 -> k
    1:1:long readSInt64():590:590 -> l
    1:12:java.lang.String readString():372:383 -> m
    1:13:java.lang.String readStringRequireUtf8():393:405 -> n
    14:14:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Utf8.isValidUtf8(byte[],int,int):122:122 -> n
    14:14:java.lang.String readStringRequireUtf8():409 -> n
    15:15:java.lang.String readStringRequireUtf8():412:412 -> n
    16:16:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.invalidUtf8():120:120 -> n
    16:16:java.lang.String readStringRequireUtf8():410 -> n
    17:17:java.lang.String readStringRequireUtf8():410:410 -> n
    1:1:boolean isAtEnd():1041:1041 -> o
    1:1:int readTag():149 -> o
    2:7:int readTag():150:155 -> o
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException.invalidTag():89:89 -> o
    8:8:int readTag():158 -> o
    9:9:int readTag():158:158 -> o
    1:8:void recomputeBufferSizeAfterLimit():1001:1008 -> p
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream -> com.android.tools.r8.d.b.a.b.b.m:
    byte[] buffer -> a
    java.io.OutputStream output -> e
    int totalBytesWritten -> d
    int limit -> b
    int position -> c
    1:1:void <init>(java.io.OutputStream,byte[]):85:85 -> <init>
    2:35:void <init>(java.io.OutputStream,byte[]):56:89 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream newInstance(java.io.OutputStream,int):106:106 -> a
    2:2:void writeBytesNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):455:455 -> a
    3:3:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047:1047 -> a
    3:3:void writeBytesNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):456 -> a
    4:28:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1147:1171 -> a
    4:28:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> a
    4:28:void writeBytesNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):456 -> a
    29:34:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.writeTo(java.io.OutputStream,int,int):564:569 -> a
    29:34:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1171 -> a
    29:34:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> a
    29:34:void writeBytesNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):456 -> a
    35:35:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1173:1173 -> a
    35:35:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> a
    35:35:void writeBytesNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):456 -> a
    36:36:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.writeTo(java.io.OutputStream,int,int):565:565 -> a
    36:36:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1171 -> a
    36:36:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> a
    36:36:void writeBytesNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):456 -> a
    37:37:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.writeTo(java.io.OutputStream,int,int):562:562 -> a
    37:37:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1171 -> a
    37:37:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> a
    37:37:void writeBytesNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):456 -> a
    38:38:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.writeTo(java.io.OutputStream,int,int):559:559 -> a
    38:38:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,int,int):1171 -> a
    38:38:void writeRawBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):1047 -> a
    38:38:void writeBytesNoTag(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):456 -> a
    39:40:void flush():974:975 -> a
    41:46:void writeRawByte(byte):1032:1037 -> a
    41:46:void writeRawByte(int):1042 -> a
    1:9:void refreshBuffer():958:966 -> b
    10:10:void refreshBuffer():960:960 -> b
    11:14:void writeRawVarint32(int):1195:1198 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream$OutOfSpaceException -> com.android.tools.r8.d.b.a.b.b.l:
    1:1:void <init>():1016:1016 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite -> com.android.tools.r8.d.b.a.b.b.o:
    java.util.Map extensionsByNumber -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite EMPTY -> b
    1:1:void <clinit>():159:159 -> <clinit>
    1:2:void <init>():137:138 -> <init>
    3:4:void <init>(boolean):156:157 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite getEmptyRegistry():97:97 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension findLiteExtensionByNumber(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,int):117:117 -> a
    3:3:void add(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):125:125 -> a
    4:4:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getContainingTypeDefaultInstance():825:825 -> a
    4:4:void add(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):125 -> a
    5:5:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getNumber():830:830 -> a
    5:5:void add(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):125 -> a
    6:6:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getNumber():694:694 -> a
    6:6:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getNumber():830 -> a
    6:6:void add(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):125 -> a
    7:7:void add(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):125:125 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite newInstance():92:92 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite$ObjectIntPair -> com.android.tools.r8.d.b.a.b.b.n:
    java.lang.Object object -> a
    int number -> b
    1:3:void <init>(java.lang.Object,int):167:169 -> <init>
    1:5:boolean equals(java.lang.Object):178:182 -> equals
    1:1:int hashCode():174:174 -> hashCode
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet -> com.android.tools.r8.d.b.a.b.b.q:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet DEFAULT_INSTANCE -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap fields -> a
    boolean isImmutable -> b
    boolean hasLazyField -> c
    1:1:void <clinit>():102:102 -> <clinit>
    1:1:void <init>():76:76 -> <init>
    2:6:void <init>():73:77 -> <init>
    7:7:void <init>(boolean):84:84 -> <init>
    8:21:void <init>(boolean):73:86 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet emptySet():99:99 -> a
    2:2:java.lang.Object getField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):224:224 -> a
    3:3:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):340:340 -> a
    4:4:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> a
    4:4:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):340 -> a
    5:5:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):345:345 -> a
    6:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
    6:6:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):345 -> a
    7:7:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):345:345 -> a
    8:8:java.lang.Object getField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):224:224 -> a
    8:8:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):347 -> a
    9:15:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):350:356 -> a
    16:16:void addRepeatedField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):341:341 -> a
    17:34:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):373:390 -> a
    35:35:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):385:385 -> a
    36:36:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):381:381 -> a
    37:37:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):379:379 -> a
    38:38:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):378:378 -> a
    39:39:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):377:377 -> a
    40:40:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):376:376 -> a
    41:41:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):375:375 -> a
    42:71:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):374:403 -> a
    72:72:void verifyType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Object):369:369 -> a
    73:74:boolean isInitialized(java.util.Map$Entry):435:436 -> a
    75:75:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> a
    75:75:boolean isInitialized(java.util.Map$Entry):437 -> a
    76:90:boolean isInitialized(java.util.Map$Entry):439:453 -> a
    91:91:int getWireFormatForFieldType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):472:472 -> a
    92:97:void mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet):481:486 -> a
    98:101:java.lang.Object cloneIfMutable(java.lang.Object):491:494 -> a
    102:136:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):556:590 -> a
    137:137:long com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readSInt64():590:590 -> a
    137:137:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):575 -> a
    138:138:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):575:575 -> a
    139:139:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readSInt32():585:585 -> a
    139:139:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):574 -> a
    140:140:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):574:574 -> a
    141:141:long com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readSFixed64():580:580 -> a
    141:141:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):573 -> a
    142:142:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):573:573 -> a
    143:143:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readSFixed32():575:575 -> a
    143:143:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):572 -> a
    144:158:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):572:586 -> a
    159:159:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readUInt32():562:562 -> a
    159:159:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):571 -> a
    160:160:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):571:571 -> a
    161:172:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):570:581 -> a
    173:173:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):578:578 -> a
    174:176:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):566:568 -> a
    177:177:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):564:564 -> a
    178:178:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readFixed32():358:358 -> a
    178:178:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):563 -> a
    179:179:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):563:563 -> a
    180:180:long com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readFixed64():353:353 -> a
    180:180:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):562 -> a
    181:181:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):562:562 -> a
    182:182:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt32():348:348 -> a
    182:182:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):561 -> a
    183:183:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):561:561 -> a
    184:184:long com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readUInt64():338:338 -> a
    184:184:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):560 -> a
    185:185:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):560:560 -> a
    186:186:long com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readInt64():343:343 -> a
    186:186:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):559 -> a
    187:187:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):559:559 -> a
    188:188:float com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readFloat():333:333 -> a
    188:188:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):558 -> a
    189:189:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):558:558 -> a
    190:190:double com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readDouble():328:328 -> a
    190:190:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):557 -> a
    191:191:java.lang.Object readPrimitiveField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean):557:557 -> a
    1:1:boolean hasField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):209:209 -> b
    2:2:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> b
    2:2:boolean hasField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):209 -> b
    3:3:boolean hasField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):214:214 -> b
    4:4:boolean hasField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):210:210 -> b
    5:5:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):238:238 -> b
    6:6:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> b
    6:6:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):238 -> b
    7:17:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):239:249 -> b
    18:18:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> b
    18:18:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):249 -> b
    19:19:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):249:249 -> b
    20:33:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):240:253 -> b
    34:34:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> b
    34:34:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):253 -> b
    35:41:void setField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite,java.lang.Object):253:259 -> b
    42:49:boolean isInitialized():418:425 -> b
    50:56:void mergeFromField(java.util.Map$Entry):504:510 -> b
    57:57:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> b
    57:57:void mergeFromField(java.util.Map$Entry):510 -> b
    58:58:java.lang.Object getField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):224:224 -> b
    58:58:void mergeFromField(java.util.Map$Entry):511 -> b
    59:65:void mergeFromField(java.util.Map$Entry):513:519 -> b
    66:66:java.lang.Object getField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite):224:224 -> b
    66:66:void mergeFromField(java.util.Map$Entry):520 -> b
    67:70:void mergeFromField(java.util.Map$Entry):522:525 -> b
    71:71:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.internalMergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite$Builder,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):720:720 -> b
    71:71:void mergeFromField(java.util.Map$Entry):525 -> b
    72:79:void mergeFromField(java.util.Map$Entry):525:532 -> b
    1:5:void makeImmutable():107:111 -> c
    1:1:java.lang.Object clone():50:50 -> clone
    2:13:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet clone():134:145 -> clone
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet newFieldSet():92:92 -> d
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet$FieldDescriptorLite -> com.android.tools.r8.d.b.a.b.b.p:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite -> com.android.tools.r8.d.b.a.b.b.x:
    1:1:void <init>():53:53 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder):56:56 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension newSingularGeneratedExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLiteMap,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,java.lang.Class):639:639 -> a
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension newRepeatedGeneratedExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLiteMap,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean,java.lang.Class):661:662 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder -> com.android.tools.r8.d.b.a.b.b.r:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString unknownFields -> a
    1:45:void <init>():87:131 -> <init>
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder mergeFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite) -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$Builder setUnknownFields(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):127:127 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString getUnknownFields():123:123 -> d
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder -> com.android.tools.r8.d.b.a.b.b.s:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet extensions -> b
    boolean extensionsIsMutable -> c
    1:3:void <init>():332:334 -> <init>
    1:3:void ensureExtensionsIsMutable():350:352 -> a
    1:3:void mergeExtensionFields(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage):495 -> a
    4:4:void mergeExtensionFields(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage):496:496 -> a
    5:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet buildExtensions():361:363 -> a
    5:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet access$000(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):327 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage -> com.android.tools.r8.d.b.a.b.b.t:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet extensions -> a
    1:2:void <init>():171:172 -> <init>
    3:4:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableBuilder):175:176 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet access$200(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessage):164:164 -> a
    2:5:java.lang.Object getExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):211:214 -> a
    6:6:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.fromFieldSetType(java.lang.Object):844:844 -> a
    6:6:java.lang.Object getExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):216 -> a
    7:7:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> a
    7:7:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.fromFieldSetType(java.lang.Object):844 -> a
    7:7:java.lang.Object getExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):216 -> a
    8:18:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.fromFieldSetType(java.lang.Object):845:855 -> a
    8:18:java.lang.Object getExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):216 -> a
    19:19:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246:246 -> a
    20:31:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):514:525 -> a
    20:31:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    20:31:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    32:32:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
    32:32:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):525 -> a
    32:32:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    32:32:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    33:37:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):525:529 -> a
    33:37:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    33:37:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    38:38:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
    38:38:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):529 -> a
    38:38:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    38:38:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    39:56:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):529:546 -> a
    39:56:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    39:56:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    57:57:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
    57:57:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):546 -> a
    57:57:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    57:57:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    58:59:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):546:547 -> a
    58:59:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    58:59:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    60:60:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readEnum():570:570 -> a
    60:60:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):548 -> a
    60:60:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    60:60:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    61:73:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):549:561 -> a
    61:73:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    61:73:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    74:74:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
    74:74:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):561 -> a
    74:74:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    74:74:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    75:122:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):561:608 -> a
    75:122:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    75:122:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    123:123:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
    123:123:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):608 -> a
    123:123:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    123:123:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    124:124:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):608:608 -> a
    124:124:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    124:124:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    125:125:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):574:574 -> a
    125:125:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    125:125:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    126:126:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> a
    126:126:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):574 -> a
    126:126:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    126:126:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    127:130:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):575:578 -> a
    127:130:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    127:130:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    131:131:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getMessageDefaultInstance():839:839 -> a
    131:131:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):582 -> a
    131:131:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    131:131:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    132:135:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):582:585 -> a
    132:135:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    132:135:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    136:136:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> a
    136:136:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):585 -> a
    136:136:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    136:136:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    137:144:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):585:592 -> a
    137:144:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    137:144:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    145:145:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream.readEnum():570:570 -> a
    145:145:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):596 -> a
    145:145:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    145:145:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    146:151:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):597:602 -> a
    146:151:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    146:151:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    152:152:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream.writeUInt32NoTag(int):489:489 -> a
    152:152:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):603 -> a
    152:152:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    152:152:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    153:153:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):614:614 -> a
    153:153:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    153:153:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    154:154:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> a
    154:154:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):614 -> a
    154:154:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    154:154:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    155:158:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):615:618 -> a
    155:158:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.FieldSet,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):49 -> a
    155:158:boolean parseUnknownField(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedOutputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite,int):246 -> a
    1:2:boolean hasExtension(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):194:195 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension.getContainingTypeDefaultInstance():825:825 -> c
    1:1:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):181 -> c
    2:5:void verifyExtensionContainingType(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension):181:184 -> c
    1:1:boolean extensionsAreInitialized():233:233 -> f
    1:1:void makeExtensionsImmutable():261:261 -> g
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtendableMessageOrBuilder -> com.android.tools.r8.d.b.a.b.b.u:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor -> com.android.tools.r8.d.b.a.b.b.v:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLiteMap enumTypeMap -> a
    int number -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType type -> c
    boolean isRepeated -> d
    1:5:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLiteMap,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType,boolean,boolean):679:683 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLiteMap getEnumType():714:714 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType getLiteJavaType():702:702 -> b
    1:1:int compareTo(java.lang.Object):671:671 -> compareTo
    2:2:int compareTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor):725:725 -> compareTo
    2:2:int compareTo(java.lang.Object):671 -> compareTo
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$GeneratedExtension -> com.android.tools.r8.d.b.a.b.b.w:
    java.lang.Object defaultValue -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor descriptor -> d
    java.lang.reflect.Method enumValueOf -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite messageDefaultInstance -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite containingTypeDefaultInstance -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor,java.lang.Class):786:786 -> <init>
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getLiteType():698:698 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor,java.lang.Class):793 -> <init>
    3:17:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor,java.lang.Class):793:807 -> <init>
    18:18:java.lang.reflect.Method com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.getMethodOrDie(java.lang.Class,java.lang.String,java.lang.Class[]):735:735 -> <init>
    18:18:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor,java.lang.Class):807 -> <init>
    19:19:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor,java.lang.Class):807:807 -> <init>
    20:20:java.lang.reflect.Method com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.getMethodOrDie(java.lang.Class,java.lang.String,java.lang.Class[]):737:737 -> <init>
    20:20:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor,java.lang.Class):807 -> <init>
    21:21:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor,java.lang.Class):810:810 -> <init>
    22:22:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,java.lang.Object,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor,java.lang.Class):790:790 -> <init>
    1:1:int getNumber():830:830 -> a
    2:2:int com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.getNumber():694:694 -> a
    2:2:int getNumber():830 -> a
    3:4:java.lang.Object singularFromFieldSetType(java.lang.Object):860:861 -> a
    5:17:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.invokeOrDie(java.lang.reflect.Method,java.lang.Object,java.lang.Object[]):746:758 -> a
    5:17:java.lang.Object singularFromFieldSetType(java.lang.Object):861 -> a
    18:18:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.invokeOrDie(java.lang.reflect.Method,java.lang.Object,java.lang.Object[]):754:754 -> a
    18:18:java.lang.Object singularFromFieldSetType(java.lang.Object):861 -> a
    19:19:java.lang.Object com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite.invokeOrDie(java.lang.reflect.Method,java.lang.Object,java.lang.Object[]):748:748 -> a
    19:19:java.lang.Object singularFromFieldSetType(java.lang.Object):861 -> a
    1:2:java.lang.Object singularToFieldSetType(java.lang.Object):885:886 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal -> com.android.tools.r8.d.b.a.b.b.A:
    byte[] EMPTY_BYTE_ARRAY -> a
    1:6:void <clinit>():383:388 -> <clinit>
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite -> com.android.tools.r8.d.b.a.b.b.y:
    int getNumber() -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLiteMap -> com.android.tools.r8.d.b.a.b.b.z:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Internal$EnumLite findValueByNumber(int) -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException -> com.android.tools.r8.d.b.a.b.b.B:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite unfinishedMessage -> a
    1:1:void <init>(java.lang.String):46:46 -> <init>
    2:2:void <init>(java.lang.String):43:43 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException setUnfinishedMessage(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):57:57 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getUnfinishedMessage():66:66 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException malformedVarint():84:84 -> b
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException negativeSize():78:78 -> c
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException recursionLimitExceeded():104:104 -> d
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException truncatedMessage():70:70 -> e
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString -> com.android.tools.r8.d.b.a.b.b.E:
    int hash -> d
    byte[] bytes -> c
    1:180:void <init>(byte[]):62:241 -> <init>
    181:181:void <init>(byte[]):63:63 -> <init>
    1:1:void writeToInternal(java.io.OutputStream,int,int):148:148 -> a
    2:2:java.lang.String toString(java.lang.String):155:155 -> a
    3:19:boolean equalsRange(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString,int,int):213:229 -> a
    20:20:boolean equalsRange(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString,int,int):218:218 -> a
    21:21:boolean equalsRange(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString,int,int):214:214 -> a
    22:22:int partialHash(int,int,int):271:271 -> a
    23:23:int hashCode(int,byte[],int,int):276:276 -> a
    23:23:int partialHash(int,int,int):271 -> a
    1:1:void copyToInternal(byte[],int,int,int):117:117 -> b
    2:3:int partialIsValidUtf8(int,int,int):169:170 -> b
    int getTreeDepth() -> c
    boolean isBalanced() -> e
    1:17:boolean equals(java.lang.Object):181:197 -> equals
    1:2:boolean isValidUtf8():163:164 -> g
    3:3:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Utf8.isValidUtf8(byte[],int,int):122:122 -> g
    3:3:boolean isValidUtf8():164 -> g
    1:4:int hashCode():251:254 -> hashCode
    5:5:int partialHash(int,int,int):271:271 -> hashCode
    5:5:int hashCode():255 -> hashCode
    6:6:int hashCode(int,byte[],int,int):276:276 -> hashCode
    6:6:int partialHash(int,int,int):271 -> hashCode
    6:6:int hashCode():255 -> hashCode
    7:7:int hashCode():259:259 -> hashCode
    1:1:int peekCachedHashCode():266:266 -> i
    1:1:java.util.Iterator iterator():52:52 -> iterator
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$ByteIterator iterator():307:307 -> iterator
    int getOffsetIntoBytes() -> k
    1:1:int size():76:76 -> size
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString$1 -> com.android.tools.r8.d.b.a.b.b.C:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString$LiteralByteIterator -> com.android.tools.r8.d.b.a.b.b.D:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString this$0 -> c
    int limit -> b
    int position -> a
    1:3:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString):314:316 -> <init>
    1:3:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString$1):310 -> <init>
    1:1:boolean hasNext():320:320 -> hasNext
    1:1:byte nextByte():330:330 -> next
    1:1:java.lang.Byte next():325 -> next
    1:1:java.lang.Object next():310 -> next
    2:2:java.lang.Byte next():325:325 -> next
    2:2:java.lang.Object next():310 -> next
    3:3:byte nextByte():332:332 -> next
    3:3:java.lang.Byte next():325 -> next
    3:3:java.lang.Object next():310 -> next
    1:3:byte nextByte():330:332 -> nextByte
    1:1:void remove():337:337 -> remove
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLiteOrBuilder -> com.android.tools.r8.d.b.a.b.b.F:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite getDefaultInstanceForType() -> a
    boolean isInitialized() -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Parser -> com.android.tools.r8.d.b.a.b.b.G:
    java.lang.Object parsePartialFrom(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.CodedInputStream,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ExtensionRegistryLite) -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString -> com.android.tools.r8.d.b.a.b.b.L:
    int[] minLengthByDepth -> i
    int hash -> h
    int leftLength -> f
    int treeDepth -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString left -> d
    int totalLength -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString right -> e
    1:22:void <clinit>():89:110 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$1):70:70 -> <init>
    2:416:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):129:543 -> <init>
    417:421:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):130:134 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString):70:70 -> a
    2:28:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString concatenate(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):153:179 -> a
    29:29:int getTreeDepth():277:277 -> a
    29:29:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString concatenate(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):179 -> a
    30:48:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString concatenate(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):179:197 -> a
    49:56:void writeToInternal(java.io.OutputStream,int,int):407:414 -> a
    57:57:java.lang.String toString(java.lang.String):421:421 -> a
    58:63:byte[] com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.toByteArray():528:533 -> a
    58:63:java.lang.String toString(java.lang.String):421 -> a
    64:64:java.lang.String toString(java.lang.String):421:421 -> a
    65:72:int partialHash(int,int,int):568:575 -> a
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString):70:70 -> b
    2:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString concatenateBytes(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):214:219 -> b
    8:16:void copyToInternal(byte[],int,int,int):360:368 -> b
    17:24:int partialIsValidUtf8(int,int,int):437:444 -> b
    1:1:int getTreeDepth():277:277 -> c
    1:1:boolean isBalanced():290:290 -> e
    1:20:boolean equals(java.lang.Object):456:475 -> equals
    21:58:boolean equalsFragments(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):494:531 -> equals
    21:58:boolean equals(java.lang.Object):480 -> equals
    1:2:boolean isValidUtf8():429:430 -> g
    1:4:int hashCode():547:550 -> hashCode
    5:12:int partialHash(int,int,int):568:575 -> hashCode
    5:12:int hashCode():551 -> hashCode
    13:13:int hashCode():555:555 -> hashCode
    1:1:int peekCachedHashCode():562:562 -> i
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$ByteIterator iterator():779:779 -> iterator
    1:1:java.util.Iterator iterator():70 -> iterator
    1:1:int[] access$600():70:70 -> k
    1:1:int size():269:269 -> size
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$1 -> com.android.tools.r8.d.b.a.b.b.H:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$Balancer -> com.android.tools.r8.d.b.a.b.b.I:
    java.util.Stack prefixesStack -> a
    1:5:void <init>():602:606 -> <init>
    1:5:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$1):602 -> <init>
    1:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString balance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):609:616 -> a
    1:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString access$100(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$Balancer,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):602 -> a
    9:9:void doBalance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):628:628 -> a
    10:44:void insert(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):656:690 -> a
    10:44:void doBalance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):629 -> a
    45:45:void insert(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):664:664 -> a
    45:45:void doBalance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):629 -> a
    46:51:void doBalance(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):630:635 -> a
    52:52:int getDepthBinForLength(int):695:695 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$PieceIterator -> com.android.tools.r8.d.b.a.b.b.J:
    java.util.Stack breadCrumbs -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next -> b
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):722:722 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$1):716 -> <init>
    2:7:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):718:723 -> <init>
    2:7:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$1):716 -> <init>
    1:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString getLeafByLeft(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString):728:733 -> a
    1:1:boolean hasNext():752:752 -> hasNext
    1:1:java.lang.Object next():716:716 -> next
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():761:761 -> next
    3:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString getNextNonEmptyLeaf():740:743 -> next
    3:6:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():765 -> next
    7:7:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString.isEmpty():135:135 -> next
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString getNextNonEmptyLeaf():744 -> next
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():765 -> next
    8:8:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():765:765 -> next
    9:9:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.LiteralByteString next():762:762 -> next
    1:1:void remove():770:770 -> remove
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$RopeByteIterator -> com.android.tools.r8.d.b.a.b.b.K:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.ByteString$ByteIterator bytes -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$PieceIterator pieces -> a
    int bytesRemaining -> c
    1:4:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString):788:791 -> <init>
    1:4:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.RopeByteString$1):782 -> <init>
    1:1:boolean hasNext():795:795 -> hasNext
    1:5:byte nextByte():803:807 -> next
    1:5:java.lang.Byte next():799 -> next
    1:5:java.lang.Object next():782 -> next
    6:6:java.lang.Byte next():799:799 -> next
    6:6:java.lang.Object next():782 -> next
    1:5:byte nextByte():803:807 -> nextByte
    1:1:void remove():811:811 -> remove
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap -> com.android.tools.r8.d.b.a.b.b.Q:
    java.util.List entryList -> b
    java.util.Map overflowEntries -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$EntrySet lazyEntrySet -> e
    int maxArraySize -> a
    boolean isImmutable -> d
    1:4:void <init>(int):153:156 -> <init>
    1:4:void <init>(int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$1):87 -> <init>
    1:1:void access$200(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap):87:87 -> a
    2:2:java.lang.Object access$500(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap,int):87:87 -> a
    3:7:java.lang.Object put(java.lang.Comparable,java.lang.Object):237:241 -> a
    8:10:void ensureEntryArrayMutable():389:391 -> a
    8:10:java.lang.Object put(java.lang.Comparable,java.lang.Object):243 -> a
    11:22:java.lang.Object put(java.lang.Comparable,java.lang.Object):245:256 -> a
    23:39:int binarySearchInArray(java.lang.Comparable):316:332 -> a
    1:1:java.util.List access$400(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap):87:87 -> b
    1:1:java.util.Map access$600(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap):87:87 -> c
    2:2:java.util.Map$Entry getArrayEntryAt(int):185:185 -> c
    1:6:void clear():262:267 -> clear
    1:2:boolean containsKey(java.lang.Object):214:215 -> containsKey
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap newFieldMap(int):100:100 -> d
    1:8:java.lang.Object removeArrayEntryAt(int):296:303 -> e
    9:9:void com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$Entry.<init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap,java.util.Map$Entry):406:406 -> e
    9:9:java.lang.Object removeArrayEntryAt(int):303 -> e
    10:11:java.lang.Object removeArrayEntryAt(int):303:304 -> e
    1:4:java.util.Set entrySet():353:356 -> entrySet
    1:6:java.lang.Object get(java.lang.Object):227:232 -> get
    1:1:int getNumArrayEntries():180:180 -> h
    1:1:java.lang.Iterable getOverflowEntries():195:195 -> i
    1:1:boolean isImmutable():175:175 -> j
    1:9:void makeImmutable():161:169 -> k
    1:2:void checkMutable():364:365 -> l
    1:5:java.util.SortedMap getOverflowEntriesMutable():377:381 -> m
    1:13:java.lang.Object remove(java.lang.Object):279:291 -> remove
    1:1:int size():202:202 -> size
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$1 -> com.android.tools.r8.d.b.a.b.b.M:
    1:1:void <init>(int):100:100 -> <init>
    1:5:void makeImmutable():104:108 -> k
    6:6:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> k
    6:6:void makeImmutable():108 -> k
    7:13:void makeImmutable():109:115 -> k
    14:14:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.GeneratedMessageLite$ExtensionDescriptor.isRepeated():706:706 -> k
    14:14:void makeImmutable():115 -> k
    15:20:void makeImmutable():116:121 -> k
    1:1:java.lang.Object put(java.lang.Object,java.lang.Object):100:100 -> put
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$EmptySet -> com.android.tools.r8.d.b.a.b.b.P:
    java.util.Iterator ITERATOR -> a
    java.lang.Iterable ITERABLE -> b
    1:16:void <clinit>():591:606 -> <clinit>
    1:1:java.util.Iterator access$700():589:589 -> a
    1:1:java.lang.Iterable iterable():615:615 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$EmptySet$1 -> com.android.tools.r8.d.b.a.b.b.N:
    1:1:void <init>():591:591 -> <init>
    1:1:java.lang.Object next():598:598 -> next
    1:1:void remove():602:602 -> remove
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$EmptySet$2 -> com.android.tools.r8.d.b.a.b.b.O:
    1:1:void <init>():606:606 -> <init>
    1:1:java.util.Iterator iterator():609:609 -> iterator
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$Entry -> com.android.tools.r8.d.b.a.b.b.Q$a:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap this$0 -> c
    java.lang.Object value -> b
    java.lang.Comparable key -> a
    1:3:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap,java.lang.Comparable,java.lang.Object):409:411 -> <init>
    1:1:int compareTo(java.lang.Object):400:400 -> compareTo
    2:2:java.lang.Comparable getKey():416:416 -> compareTo
    2:2:int compareTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$Entry):426 -> compareTo
    2:2:int compareTo(java.lang.Object):400 -> compareTo
    3:3:int compareTo(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$Entry):426:426 -> compareTo
    3:3:int compareTo(java.lang.Object):400 -> compareTo
    1:6:boolean equals(java.lang.Object):442:447 -> equals
    7:7:boolean equals(java.lang.Object,java.lang.Object):463:463 -> equals
    7:7:boolean equals(java.lang.Object):447 -> equals
    8:8:boolean equals(java.lang.Object):447:447 -> equals
    9:9:boolean equals(java.lang.Object,java.lang.Object):463:463 -> equals
    9:9:boolean equals(java.lang.Object):447 -> equals
    1:1:java.lang.Comparable getKey():416:416 -> getKey
    2:2:java.lang.Comparable getKey():416:416 -> getKey
    2:2:java.lang.Object getKey():400 -> getKey
    1:1:java.lang.Object getValue():421:421 -> getValue
    1:1:int hashCode():452:452 -> hashCode
    1:3:java.lang.Object setValue(java.lang.Object):431:433 -> setValue
    1:1:java.lang.String toString():458:458 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$EntryIterator -> com.android.tools.r8.d.b.a.b.b.Q$b:
    java.util.Iterator lazyOverflowIterator -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap this$0 -> d
    boolean nextCalledBeforeRemove -> b
    int pos -> a
    1:3:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap):532:534 -> <init>
    1:3:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$1):532 -> <init>
    1:4:java.util.Iterator getOverflowIterator():577:580 -> c
    1:1:boolean hasNext():540:540 -> hasNext
    1:7:java.util.Map$Entry next():546:552 -> next
    1:7:java.lang.Object next():532 -> next
    1:10:void remove():557:566 -> remove
    11:11:void remove():558:558 -> remove
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$EntrySet -> com.android.tools.r8.d.b.a.b.b.Q$c:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap this$0 -> a
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap):470:470 -> <init>
    2:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.SmallSortedMap$1):470:470 -> <init>
    1:1:boolean add(java.lang.Object):470:470 -> add
    2:3:boolean add(java.util.Map$Entry):499:500 -> add
    2:3:boolean add(java.lang.Object):470 -> add
    1:1:void clear():524:524 -> clear
    1:4:boolean contains(java.lang.Object):490:493 -> contains
    1:1:java.util.Iterator iterator():474:474 -> iterator
    1:3:boolean remove(java.lang.Object):514:516 -> remove
    1:1:int size():479:479 -> size
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.UninitializedMessageException -> com.android.tools.r8.d.b.a.b.b.S:
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.MessageLite):53:53 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.InvalidProtocolBufferException asInvalidProtocolBufferException():81:81 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.Utf8 -> com.android.tools.r8.d.b.a.b.b.T:
    int incompleteStateFor(int,int) -> a
    int incompleteStateFor(int,int,int) -> a
    1:66:int partialIsValidUtf8(int,byte[],int,int):163:228 -> a
    67:67:int partialIsValidUtf8(byte[],int,int):252:252 -> a
    68:104:int partialIsValidUtf8NonAscii(byte[],int,int):270:306 -> a
    68:104:int partialIsValidUtf8(byte[],int,int):256 -> a
    1:6:int incompleteStateFor(byte[],int,int):341:346 -> b
    7:7:int incompleteStateFor(byte[],int,int):344:344 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat -> com.android.tools.r8.d.b.a.b.b.ba:
    int getTagWireType(int) -> a
    int makeTag(int,int) -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$1 -> com.android.tools.r8.d.b.a.b.b.U:
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType -> com.android.tools.r8.d.b.a.b.b.Z:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType DOUBLE -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType[] $VALUES -> u
    int wireType -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType INT64 -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType FLOAT -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType javaType -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType INT32 -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType UINT64 -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType FIXED32 -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType FIXED64 -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType STRING -> k
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType BOOL -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType MESSAGE -> m
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType GROUP -> l
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType UINT32 -> o
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType BYTES -> n
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType SFIXED32 -> q
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType ENUM -> p
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType SINT32 -> s
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType SFIXED64 -> r
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType SINT64 -> t
    1:26:void <clinit>():108:133 -> <clinit>
    27:27:void <clinit>():107:107 -> <clinit>
    1:3:void <init>(java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType,int):135:137 -> <init>
    4:6:void <init>(java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType,int):135:137 -> <init>
    4:6:void <init>(java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$1):107 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType getJavaType():143:143 -> a
    1:1:int getWireType():144:144 -> b
    boolean isPackable() -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType$1 -> com.android.tools.r8.d.b.a.b.b.V:
    1:1:void <init>(java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType,int):116:116 -> <init>
    boolean isPackable() -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType$2 -> com.android.tools.r8.d.b.a.b.b.W:
    1:1:void <init>(java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType,int):119:119 -> <init>
    boolean isPackable() -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType$3 -> com.android.tools.r8.d.b.a.b.b.X:
    1:1:void <init>(java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType,int):122:122 -> <init>
    boolean isPackable() -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$FieldType$4 -> com.android.tools.r8.d.b.a.b.b.Y:
    1:1:void <init>(java.lang.String,int,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType,int):125:125 -> <init>
    boolean isPackable() -> c
com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType -> com.android.tools.r8.d.b.a.b.b.aa:
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType STRING -> f
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType BYTE_STRING -> g
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType DOUBLE -> d
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType BOOLEAN -> e
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType[] $VALUES -> j
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType ENUM -> h
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType MESSAGE -> i
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType LONG -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType FLOAT -> c
    com.android.tools.r8.jetbrains.kotlinx.metadata.internal.protobuf.WireFormat$JavaType INT -> a
    1:9:void <clinit>():78:86 -> <clinit>
    10:10:void <clinit>():77:77 -> <clinit>
    1:1:void <init>(java.lang.String,int,java.lang.Object):88:88 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmClassExtensionVisitor -> com.android.tools.r8.d.b.a.c.a:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType TYPE -> a
    1:1:void <clinit>():68:68 -> <clinit>
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmConstructorExtensionVisitor -> com.android.tools.r8.d.b.a.c.b:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType TYPE -> a
    1:1:void <clinit>():221:221 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmConstructorExtensionVisitor):199:199 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmConstructorExtensionVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):200 -> <init>
    1:1:void <init>():0 -> <init>
    void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature) -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmDeclarationContainerExtensionVisitor -> com.android.tools.r8.d.b.a.c.c:
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature -> com.android.tools.r8.d.b.a.c.d:
    java.lang.String name -> a
    java.lang.String desc -> b
    1:1:void <init>(java.lang.String,java.lang.String):46:46 -> <init>
    1:1:java.lang.String asString():47:47 -> a
    2:2:java.lang.String getName():46:46 -> a
    2:2:java.lang.String asString():47 -> a
    3:3:java.lang.String asString():47:47 -> a
    4:4:java.lang.String getDesc():46:46 -> a
    4:4:java.lang.String asString():47 -> a
    5:5:java.lang.String asString():47:47 -> a
    1:1:java.lang.String getName():46:46 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:java.lang.String getName():46:46 -> equals
    2:2:boolean equals(java.lang.Object):0 -> equals
    3:3:boolean equals(java.lang.Object):0:0 -> equals
    4:4:java.lang.String getDesc():46:46 -> equals
    4:4:boolean equals(java.lang.Object):0 -> equals
    5:5:java.lang.String getDesc():46:46 -> equals
    5:5:boolean equals(java.lang.Object):0 -> equals
    6:6:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.lang.String getName():46:46 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    3:3:java.lang.String getDesc():46:46 -> hashCode
    3:3:int hashCode():0 -> hashCode
    4:4:int hashCode():0:0 -> hashCode
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFunctionExtensionVisitor -> com.android.tools.r8.d.b.a.c.e:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType TYPE -> b
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFunctionExtensionVisitor delegate -> a
    1:1:void <clinit>():139:139 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFunctionExtensionVisitor):102:102 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFunctionExtensionVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):103 -> <init>
    1:1:void <init>():0 -> <init>
    void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature) -> a
    1:1:void visitLambdaClassOriginName(java.lang.String):122:122 -> a
    2:2:void visitEnd():129:129 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignature -> com.android.tools.r8.d.b.a.c.f:
    1:1:void <init>():15:15 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):15 -> <init>
    java.lang.String asString() -> a
    1:1:java.lang.String toString():29:29 -> toString
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature -> com.android.tools.r8.d.b.a.c.g:
    java.lang.String name -> a
    java.lang.String desc -> b
    1:1:void <init>(java.lang.String,java.lang.String):37:37 -> <init>
    1:1:java.lang.String asString():38:38 -> a
    2:2:java.lang.String getName():37:37 -> a
    2:2:java.lang.String asString():38 -> a
    3:3:java.lang.String asString():38:38 -> a
    4:4:java.lang.String getDesc():37:37 -> a
    4:4:java.lang.String asString():38 -> a
    5:5:java.lang.String asString():38:38 -> a
    1:1:java.lang.String getDesc():37:37 -> b
    1:1:java.lang.String getName():37:37 -> c
    1:1:java.lang.String getName():37:37 -> equals
    1:1:boolean equals(java.lang.Object):0 -> equals
    2:2:java.lang.String getName():37:37 -> equals
    2:2:boolean equals(java.lang.Object):0 -> equals
    3:3:boolean equals(java.lang.Object):0:0 -> equals
    4:4:java.lang.String getDesc():37:37 -> equals
    4:4:boolean equals(java.lang.Object):0 -> equals
    5:5:java.lang.String getDesc():37:37 -> equals
    5:5:boolean equals(java.lang.Object):0 -> equals
    6:6:boolean equals(java.lang.Object):0:0 -> equals
    1:1:java.lang.String getName():37:37 -> hashCode
    1:1:int hashCode():0 -> hashCode
    2:2:int hashCode():0:0 -> hashCode
    3:3:java.lang.String getDesc():37:37 -> hashCode
    3:3:int hashCode():0 -> hashCode
    4:4:int hashCode():0:0 -> hashCode
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPackageExtensionVisitor -> com.android.tools.r8.d.b.a.c.h:
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType TYPE -> a
    1:1:void <clinit>():95:95 -> <clinit>
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPropertyExtensionVisitor -> com.android.tools.r8.d.b.a.c.i:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPropertyExtensionVisitor delegate -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType TYPE -> b
    1:1:void <clinit>():192:192 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPropertyExtensionVisitor):146:146 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmPropertyExtensionVisitor,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):147 -> <init>
    1:1:void <init>():0 -> <init>
    void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature) -> a
    1:1:void visitSyntheticMethodForAnnotations(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):175:175 -> a
    2:2:void visitEnd():182:182 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader -> com.android.tools.r8.d.b.a.c.j:
    int[] metadataVersion -> b
    java.lang.String[] data2 -> d
    java.lang.String[] data1 -> c
    int kind -> a
    1:9:void <clinit>():148:156 -> <clinit>
    1:135:void <init>(java.lang.Integer,int[],int[],java.lang.String[],java.lang.String[],java.lang.String,java.lang.String,java.lang.Integer):29:163 -> <init>
    136:136:void <init>(java.lang.Integer,int[],int[],java.lang.String[],java.lang.String[],java.lang.String,java.lang.String,java.lang.Integer):100:100 -> <init>
    1:1:java.lang.String[] getData1():72:72 -> a
    1:1:java.lang.String[] getData2():79:79 -> b
    1:1:int getKind():49:49 -> c
    1:1:int[] getMetadataVersion():57:57 -> d
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata -> com.android.tools.r8.d.b.a.c.v:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader header -> a
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion Companion -> b
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):28:28 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):28 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader getHeader():28:28 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class -> com.android.tools.r8.d.b.a.c.l:
    com.android.tools.r8.jetbrains.kotlin.reflect.KProperty[] $$delegatedProperties -> d
    com.android.tools.r8.jetbrains.kotlin.Lazy classData$delegate -> c
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):32:33 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlin.Pair getClassData():0:0 -> a
    1:1:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):45 -> a
    2:3:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor):45:46 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class$classData$2 -> com.android.tools.r8.d.b.a.c.k:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader $header -> a
    1:3:com.android.tools.r8.jetbrains.kotlin.Pair invoke():34:36 -> a
    1:3:java.lang.Object invoke():32 -> a
    4:4:com.android.tools.r8.jetbrains.kotlin.Pair invoke():35:35 -> a
    4:4:java.lang.Object invoke():32 -> a
    5:5:void com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException.<init>(java.lang.String,java.lang.Throwable,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> a
    5:5:com.android.tools.r8.jetbrains.kotlin.Pair invoke():35 -> a
    5:5:java.lang.Object invoke():32 -> a
    6:6:com.android.tools.r8.jetbrains.kotlin.Pair invoke():35:35 -> a
    6:6:java.lang.Object invoke():32 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Companion -> com.android.tools.r8.d.b.a.c.m:
    1:1:void <init>():303:303 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):303 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):316:316 -> a
    2:2:boolean com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMetadataVersion.isCompatible():17:17 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):316 -> a
    3:9:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):319:325 -> a
    10:10:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):324:324 -> a
    11:11:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):323:323 -> a
    12:12:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):322:322 -> a
    13:13:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):321:321 -> a
    14:24:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):320:330 -> a
    25:25:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):328:328 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade -> com.android.tools.r8.d.b.a.c.o:
    com.android.tools.r8.jetbrains.kotlin.reflect.KProperty[] $$delegatedProperties -> d
    com.android.tools.r8.jetbrains.kotlin.Lazy packageData$delegate -> c
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):81:82 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlin.Pair getPackageData():0:0 -> a
    1:1:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):94 -> a
    2:3:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):94:95 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade$packageData$2 -> com.android.tools.r8.d.b.a.c.n:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader $header -> a
    1:3:com.android.tools.r8.jetbrains.kotlin.Pair invoke():83:85 -> a
    1:3:java.lang.Object invoke():81 -> a
    4:4:com.android.tools.r8.jetbrains.kotlin.Pair invoke():84:84 -> a
    4:4:java.lang.Object invoke():81 -> a
    5:5:void com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException.<init>(java.lang.String,java.lang.Throwable,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> a
    5:5:com.android.tools.r8.jetbrains.kotlin.Pair invoke():84 -> a
    5:5:java.lang.Object invoke():81 -> a
    6:6:com.android.tools.r8.jetbrains.kotlin.Pair invoke():84:84 -> a
    6:6:java.lang.Object invoke():81 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade -> com.android.tools.r8.d.b.a.c.p:
    1:5:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):200:204 -> <init>
    6:6:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.asList(java.lang.Object[]):0:0 -> <init>
    6:6:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt.asList(java.lang.Object[]):0 -> <init>
    6:6:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):204 -> <init>
    7:7:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysUtilJVM.asList(java.lang.Object[]):13:13 -> <init>
    7:7:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.asList(java.lang.Object[]):40 -> <init>
    7:7:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt.asList(java.lang.Object[]):0 -> <init>
    7:7:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):204 -> <init>
    8:8:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt___ArraysJvmKt.asList(java.lang.Object[]):40:40 -> <init>
    8:8:java.util.List com.android.tools.r8.jetbrains.kotlin.collections.ArraysKt.asList(java.lang.Object[]):0 -> <init>
    8:8:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):204 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart -> com.android.tools.r8.d.b.a.c.r:
    com.android.tools.r8.jetbrains.kotlin.reflect.KProperty[] $$delegatedProperties -> d
    com.android.tools.r8.jetbrains.kotlin.Lazy packageData$delegate -> c
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):243:244 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlin.Pair getPackageData():0:0 -> a
    1:1:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):262 -> a
    2:3:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor):262:263 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart$packageData$2 -> com.android.tools.r8.d.b.a.c.q:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader $header -> a
    1:3:com.android.tools.r8.jetbrains.kotlin.Pair invoke():245:247 -> a
    1:3:java.lang.Object invoke():243 -> a
    4:4:com.android.tools.r8.jetbrains.kotlin.Pair invoke():246:246 -> a
    4:4:java.lang.Object invoke():243 -> a
    5:5:void com.android.tools.r8.jetbrains.kotlinx.metadata.InconsistentKotlinMetadataException.<init>(java.lang.String,java.lang.Throwable,int,com.android.tools.r8.jetbrains.kotlin.jvm.internal.DefaultConstructorMarker):8:8 -> a
    5:5:com.android.tools.r8.jetbrains.kotlin.Pair invoke():246 -> a
    5:5:java.lang.Object invoke():243 -> a
    6:6:com.android.tools.r8.jetbrains.kotlin.Pair invoke():246:246 -> a
    6:6:java.lang.Object invoke():243 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$SyntheticClass -> com.android.tools.r8.d.b.a.c.t:
    com.android.tools.r8.jetbrains.kotlin.reflect.KProperty[] $$delegatedProperties -> d
    com.android.tools.r8.jetbrains.kotlin.Lazy functionData$delegate -> c
    1:2:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):131:132 -> <init>
    1:1:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmLambdaVisitor):153:153 -> a
    2:2:com.android.tools.r8.jetbrains.kotlin.Pair getFunctionData():0:0 -> a
    2:2:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmLambdaVisitor):157 -> a
    3:4:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmLambdaVisitor):157:158 -> a
    5:5:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmLambdaVisitor):157:157 -> a
    6:6:void accept(com.android.tools.r8.jetbrains.kotlinx.metadata.KmLambdaVisitor):153:153 -> a
    1:1:boolean isLambda():142:142 -> b
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$SyntheticClass$functionData$2 -> com.android.tools.r8.d.b.a.c.s:
    com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader $header -> a
    1:2:com.android.tools.r8.jetbrains.kotlin.Pair invoke():133:134 -> a
    1:2:java.lang.Object invoke():131 -> a
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Unknown -> com.android.tools.r8.d.b.a.c.u:
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):301:301 -> <init>
com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.impl.JvmMetadataExtensions -> com.android.tools.r8.d.b.a.c.a.a:
    1:1:void <init>():17:17 -> <init>
    1:10:void readClassExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):19:28 -> a
    11:16:void readClassExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):27:32 -> a
    17:17:void readClassExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmClassVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Class,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):23:23 -> a
    18:22:void readPackageExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):36:40 -> a
    23:28:void readPackageExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPackageVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Package,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):39:44 -> a
    29:30:void readFunctionExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):48:49 -> a
    31:82:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignatureKt.wrapAsPublic(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method):0:51 -> a
    31:82:void readFunctionExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):49 -> a
    83:90:void readFunctionExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Function,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):49:56 -> a
    91:97:void readPropertyExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):60:66 -> a
    98:150:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignatureKt.wrapAsPublic(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Field):0:52 -> a
    98:150:void readPropertyExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):68 -> a
    151:152:void readPropertyExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):69:70 -> a
    153:163:void readPropertyExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Property,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):67:77 -> a
    164:165:void readConstructorExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):81:82 -> a
    166:217:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMemberSignatureKt.wrapAsPublic(com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.jvm.deserialization.JvmMemberSignature$Method):0:51 -> a
    166:217:void readConstructorExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):82 -> a
    218:218:void readConstructorExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor,com.android.tools.r8.jetbrains.kotlinx.metadata.internal.metadata.ProtoBuf$Constructor,com.android.tools.r8.jetbrains.kotlinx.metadata.impl.ReadContext):82:82 -> a
com.android.tools.r8.joptsimple.AbstractOptionSpec -> com.android.tools.r8.e.a:
    java.util.List options -> a
    java.lang.String description -> b
    boolean forHelp -> c
    1:1:void <init>(java.util.Collection,java.lang.String):52:52 -> <init>
    2:2:void <init>(java.util.Collection,java.lang.String):44:44 -> <init>
    3:22:void arrangeOptions(java.util.Collection):113:132 -> <init>
    3:22:void <init>(java.util.Collection,java.lang.String):53 -> <init>
    23:23:void <init>(java.util.Collection,java.lang.String):55:55 -> <init>
    java.lang.Object convert(java.lang.String) -> a
    void handleOption(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet,java.lang.String) -> a
    1:1:java.lang.Object com.android.tools.r8.joptsimple.internal.Reflection.convertWith(com.android.tools.r8.joptsimple.ValueConverter,java.lang.String):128:128 -> a
    1:1:java.lang.Object convertWith(com.android.tools.r8.joptsimple.ValueConverter,java.lang.String):91 -> a
    2:2:java.lang.Object convertWith(com.android.tools.r8.joptsimple.ValueConverter,java.lang.String):97:97 -> a
    3:3:java.lang.Object convertWith(com.android.tools.r8.joptsimple.ValueConverter,java.lang.String):94:94 -> a
    1:1:java.lang.String description():71:71 -> description
    1:5:boolean equals(java.lang.Object):137:141 -> equals
    1:1:com.android.tools.r8.joptsimple.AbstractOptionSpec forHelp():75:75 -> g
    1:1:boolean isForHelp():80:80 -> h
    1:1:int hashCode():146:146 -> hashCode
    1:1:java.util.Collection options():59:59 -> i
    1:1:java.lang.String toString():151:151 -> toString
com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec -> com.android.tools.r8.e.b:
    java.lang.String argumentDescription -> g
    java.lang.String valueSeparator -> h
    boolean argumentRequired -> e
    java.util.List defaultValues -> i
    com.android.tools.r8.joptsimple.ValueConverter converter -> f
    boolean optionRequired -> d
    1:1:void <init>(java.util.Collection,boolean,java.lang.String):75:75 -> <init>
    2:15:void <init>(java.util.Collection,boolean,java.lang.String):64:77 -> <init>
    void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet) -> a
    1:1:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class):106:106 -> a
    2:2:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withValuesConvertedBy(com.android.tools.r8.joptsimple.ValueConverter):126:126 -> a
    2:2:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class):106 -> a
    3:3:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withValuesConvertedBy(com.android.tools.r8.joptsimple.ValueConverter):124:124 -> a
    3:3:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec ofType(java.lang.Class):106 -> a
    4:4:void addDefaultValue(java.lang.Object):248:248 -> a
    4:4:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[]):210 -> a
    5:5:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object[]):224:224 -> a
    5:5:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[]):211 -> a
    6:6:void addDefaultValue(java.lang.Object):248:248 -> a
    6:6:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object[]):225 -> a
    6:6:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[]):211 -> a
    7:7:void com.android.tools.r8.joptsimple.internal.Objects.ensureNotNull(java.lang.Object):44:44 -> a
    7:7:void addDefaultValue(java.lang.Object):247 -> a
    7:7:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object[]):225 -> a
    7:7:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[]):211 -> a
    8:8:void com.android.tools.r8.joptsimple.internal.Objects.ensureNotNull(java.lang.Object):44:44 -> a
    8:8:void addDefaultValue(java.lang.Object):247 -> a
    8:8:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec defaultsTo(java.lang.Object,java.lang.Object[]):210 -> a
    9:12:void handleOption(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet,java.lang.String):255:258 -> a
    13:18:void addArguments(com.android.tools.r8.joptsimple.OptionSet,java.lang.String):262:267 -> a
    19:19:java.lang.Object convert(java.lang.String):276:276 -> a
    20:20:boolean requiresArgument():301:301 -> a
    1:5:boolean canConvertArgument(java.lang.String):280:284 -> b
    6:6:java.lang.Object convert(java.lang.String):276:276 -> b
    6:6:boolean canConvertArgument(java.lang.String):284 -> b
    7:7:java.lang.String argumentDescription():305:305 -> b
    1:1:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec describedAs(java.lang.String):138:138 -> c
    2:2:java.lang.String argumentTypeIndicator():309:309 -> c
    3:4:java.lang.String com.android.tools.r8.joptsimple.AbstractOptionSpec.argumentTypeIndicatorFrom(com.android.tools.r8.joptsimple.ValueConverter):105:106 -> c
    3:4:java.lang.String argumentTypeIndicator():309 -> c
    1:1:java.util.List defaultValues():313:313 -> d
    1:1:java.lang.String description():58:58 -> description
    boolean representsNonOptions() -> e
    1:4:boolean equals(java.lang.Object):318:321 -> equals
    5:5:boolean requiresArgument():301:301 -> equals
    5:5:boolean equals(java.lang.Object):322 -> equals
    6:6:boolean requiresArgument():301:301 -> equals
    6:6:boolean equals(java.lang.Object):322 -> equals
    boolean acceptsArguments() -> f
    1:1:int hashCode():327:327 -> hashCode
    1:1:boolean isRequired():243:243 -> isRequired
    1:1:boolean isArgumentOfNumberType():293:293 -> j
    1:1:java.lang.String toString():58:58 -> toString
com.android.tools.r8.joptsimple.ArgumentList -> com.android.tools.r8.e.c:
    java.lang.String[] arguments -> a
    int currentIndex -> b
    1:2:void <init>(java.lang.String[]):39:40 -> <init>
    1:1:boolean hasMore():44:44 -> a
    1:1:java.lang.String next():48:48 -> b
    1:1:java.lang.String peek():52:52 -> c
com.android.tools.r8.joptsimple.BuiltinHelpFormatter -> com.android.tools.r8.e.e:
    com.android.tools.r8.joptsimple.internal.Rows nonOptionRows -> a
    com.android.tools.r8.joptsimple.internal.Rows optionRows -> b
    1:3:void <init>(int,int):70:72 -> <init>
    1:3:void <init>():60 -> <init>
    1:9:java.lang.String format(java.util.Map):76:84 -> a
    10:13:com.android.tools.r8.joptsimple.OptionDescriptor findAndRemoveNonOptionsSpec(java.util.Collection):142:145 -> a
    10:13:void addNonOptionsDescription(java.util.Collection):115 -> a
    10:13:void addRows(java.util.Collection):102 -> a
    10:13:java.lang.String format(java.util.Map):86 -> a
    14:14:boolean shouldShowNonOptionArgumentDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):123:123 -> a
    14:14:void addNonOptionsDescription(java.util.Collection):116 -> a
    14:14:void addRows(java.util.Collection):102 -> a
    14:14:java.lang.String format(java.util.Map):86 -> a
    15:16:void addNonOptionsDescription(java.util.Collection):117:118 -> a
    15:16:void addRows(java.util.Collection):102 -> a
    15:16:java.lang.String format(java.util.Map):86 -> a
    17:18:java.lang.String createNonOptionArgumentsDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):129:130 -> a
    17:18:void addNonOptionsDescription(java.util.Collection):118 -> a
    17:18:void addRows(java.util.Collection):102 -> a
    17:18:java.lang.String format(java.util.Map):86 -> a
    19:19:void maybeAppendNonOptionsDescription(java.lang.StringBuilder,com.android.tools.r8.joptsimple.OptionDescriptor):137:137 -> a
    19:19:java.lang.String createNonOptionArgumentsDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):131 -> a
    19:19:void addNonOptionsDescription(java.util.Collection):118 -> a
    19:19:void addRows(java.util.Collection):102 -> a
    19:19:java.lang.String format(java.util.Map):86 -> a
    20:20:java.lang.String createNonOptionArgumentsDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):133:133 -> a
    20:20:void addNonOptionsDescription(java.util.Collection):118 -> a
    20:20:void addRows(java.util.Collection):102 -> a
    20:20:java.lang.String format(java.util.Map):86 -> a
    21:21:void addNonOptionsDescription(java.util.Collection):118:118 -> a
    21:21:void addRows(java.util.Collection):102 -> a
    21:21:java.lang.String format(java.util.Map):86 -> a
    22:23:void addRows(java.util.Collection):104:105 -> a
    22:23:java.lang.String format(java.util.Map):86 -> a
    24:25:boolean hasRequiredOption(java.util.Collection):164:165 -> a
    24:25:void addHeaders(java.util.Collection):154 -> a
    24:25:void addRows(java.util.Collection):107 -> a
    24:25:java.lang.String format(java.util.Map):86 -> a
    26:30:void addHeaders(java.util.Collection):155:159 -> a
    26:30:void addRows(java.util.Collection):107 -> a
    26:30:java.lang.String format(java.util.Map):86 -> a
    31:33:void addOptions(java.util.Collection):173:175 -> a
    31:33:void addRows(java.util.Collection):108 -> a
    31:33:java.lang.String format(java.util.Map):86 -> a
    34:47:java.lang.String createOptionDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):180:193 -> a
    34:47:void addOptions(java.util.Collection):175 -> a
    34:47:void addRows(java.util.Collection):108 -> a
    34:47:java.lang.String format(java.util.Map):86 -> a
    48:50:java.lang.String createDescriptionDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):236:238 -> a
    48:50:void addOptions(java.util.Collection):175 -> a
    48:50:void addRows(java.util.Collection):108 -> a
    48:50:java.lang.String format(java.util.Map):86 -> a
    51:51:java.lang.String createDefaultValuesDisplay(java.util.List):245:245 -> a
    51:51:java.lang.String createDescriptionDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):240 -> a
    51:51:void addOptions(java.util.Collection):175 -> a
    51:51:void addRows(java.util.Collection):108 -> a
    51:51:java.lang.String format(java.util.Map):86 -> a
    52:52:java.lang.String createDescriptionDisplay(com.android.tools.r8.joptsimple.OptionDescriptor):241:241 -> a
    52:52:void addOptions(java.util.Collection):175 -> a
    52:52:void addRows(java.util.Collection):108 -> a
    52:52:java.lang.String format(java.util.Map):86 -> a
    53:53:void addOptions(java.util.Collection):175:175 -> a
    53:53:void addRows(java.util.Collection):108 -> a
    53:53:java.lang.String format(java.util.Map):86 -> a
    54:55:void fitRowsToWidth():249:250 -> a
    54:55:void addRows(java.util.Collection):111 -> a
    54:55:java.lang.String format(java.util.Map):86 -> a
    56:62:java.lang.String formattedHelpOutput():92:98 -> a
    56:62:java.lang.String format(java.util.Map):88 -> a
    63:63:com.android.tools.r8.joptsimple.OptionDescriptor findAndRemoveNonOptionsSpec(java.util.Collection):150:150 -> a
    63:63:void addNonOptionsDescription(java.util.Collection):115 -> a
    63:63:void addRows(java.util.Collection):102 -> a
    63:63:java.lang.String format(java.util.Map):86 -> a
    64:67:java.lang.String extractTypeIndicator(com.android.tools.r8.joptsimple.OptionDescriptor):204:207 -> a
    64:67:void maybeAppendOptionInfo(java.lang.StringBuilder,com.android.tools.r8.joptsimple.OptionDescriptor):197 -> a
    68:70:void maybeAppendOptionInfo(java.lang.StringBuilder,com.android.tools.r8.joptsimple.OptionDescriptor):198:200 -> a
    71:73:void appendOptionHelp(java.lang.StringBuilder,java.lang.String,java.lang.String,boolean):214:216 -> a
    71:73:void maybeAppendOptionInfo(java.lang.StringBuilder,com.android.tools.r8.joptsimple.OptionDescriptor):200 -> a
    74:85:void appendTypeIndicator(java.lang.StringBuilder,java.lang.String,java.lang.String,char,char):221:232 -> a
com.android.tools.r8.joptsimple.BuiltinHelpFormatter$1 -> com.android.tools.r8.e.d:
    1:1:void <init>(com.android.tools.r8.joptsimple.BuiltinHelpFormatter):77:77 -> <init>
    1:1:int compare(com.android.tools.r8.joptsimple.OptionDescriptor,com.android.tools.r8.joptsimple.OptionDescriptor):79:79 -> compare
    1:1:int compare(java.lang.Object,java.lang.Object):77 -> compare
com.android.tools.r8.joptsimple.IllegalOptionSpecificationException -> com.android.tools.r8.e.f:
    1:1:void <init>(java.lang.String):39:39 -> <init>
    1:1:java.lang.String getMessage():44:44 -> getMessage
com.android.tools.r8.joptsimple.MissingRequiredOptionException -> com.android.tools.r8.e.g:
    1:1:void <init>(java.util.Collection):39:39 -> <init>
    1:1:java.lang.String getMessage():44:44 -> getMessage
com.android.tools.r8.joptsimple.MultipleArgumentsForOptionException -> com.android.tools.r8.e.h:
    1:1:void <init>(java.util.Collection):39:39 -> <init>
    1:1:java.lang.String getMessage():44:44 -> getMessage
com.android.tools.r8.joptsimple.NonOptionArgumentSpec -> com.android.tools.r8.e.i:
    com.android.tools.r8.joptsimple.ValueConverter converter -> d
    java.lang.String argumentDescription -> e
    1:1:void <init>(java.lang.String):64:64 -> <init>
    2:2:void <init>(java.lang.String):57:57 -> <init>
    boolean requiresArgument() -> a
    1:1:java.lang.Object convert(java.lang.String):133:133 -> a
    2:2:void handleOption(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet,java.lang.String):140:140 -> a
    1:1:java.lang.String argumentDescription():160:160 -> b
    1:1:java.lang.String argumentTypeIndicator():164:164 -> c
    2:3:java.lang.String com.android.tools.r8.joptsimple.AbstractOptionSpec.argumentTypeIndicatorFrom(com.android.tools.r8.joptsimple.ValueConverter):105:106 -> c
    2:3:java.lang.String argumentTypeIndicator():164 -> c
    1:1:java.util.List defaultValues():144:144 -> d
    1:1:java.lang.String description():53:53 -> description
    boolean representsNonOptions() -> e
    1:1:boolean equals(java.lang.Object):53:53 -> equals
    boolean acceptsArguments() -> f
    1:1:int hashCode():53:53 -> hashCode
    1:1:java.lang.String toString():53:53 -> toString
com.android.tools.r8.joptsimple.OptionArgumentConversionException -> com.android.tools.r8.e.j:
    java.lang.String argument -> b
    1:3:void <init>(java.util.Collection,java.lang.String,java.lang.Throwable):41:43 -> <init>
    1:1:java.lang.String getMessage():48:48 -> getMessage
com.android.tools.r8.joptsimple.OptionDescriptor -> com.android.tools.r8.e.k:
    boolean requiresArgument() -> a
    java.lang.String argumentDescription() -> b
    java.lang.String argumentTypeIndicator() -> c
    java.util.List defaultValues() -> d
    boolean representsNonOptions() -> e
    boolean acceptsArguments() -> f
com.android.tools.r8.joptsimple.OptionException -> com.android.tools.r8.e.l:
    java.util.List options -> a
    1:1:void <init>(java.util.Collection):47:47 -> <init>
    2:5:void <init>(java.util.Collection):45:48 -> <init>
    6:6:void <init>(java.util.Collection,java.lang.Throwable):52:52 -> <init>
    7:16:void <init>(java.util.Collection,java.lang.Throwable):45:54 -> <init>
    1:4:java.lang.String multipleOptionMessage():75:78 -> a
    5:5:java.lang.String singleOptionMessage(java.lang.String):71:71 -> a
    5:5:java.lang.String multipleOptionMessage():78 -> a
    6:13:java.lang.String multipleOptionMessage():78:85 -> a
    14:14:com.android.tools.r8.joptsimple.OptionException unrecognizedOption(java.lang.String):89:89 -> a
    1:1:java.lang.String singleOptionMessage():67:67 -> b
    2:2:java.lang.String singleOptionMessage(java.lang.String):71:71 -> b
    2:2:java.lang.String singleOptionMessage():67 -> b
com.android.tools.r8.joptsimple.OptionMissingRequiredArgumentException -> com.android.tools.r8.e.m:
    1:1:void <init>(java.util.Collection):39:39 -> <init>
    1:1:java.lang.String getMessage():44:44 -> getMessage
com.android.tools.r8.joptsimple.OptionParser -> com.android.tools.r8.e.n:
    java.util.Map requiredIf -> b
    java.util.Map requiredUnless -> c
    com.android.tools.r8.joptsimple.OptionParserState state -> d
    boolean posixlyCorrect -> e
    boolean allowsUnrecognizedOptions -> f
    com.android.tools.r8.joptsimple.internal.AbbreviationMap recognizedOptions -> a
    com.android.tools.r8.joptsimple.HelpFormatter helpFormatter -> g
    1:1:void <init>():206:206 -> <init>
    2:11:void <init>():200:209 -> <init>
    12:12:com.android.tools.r8.joptsimple.OptionParserState com.android.tools.r8.joptsimple.OptionParserState.moreOptions(boolean):47:47 -> <init>
    12:12:void <init>():210 -> <init>
    13:15:void <init>():210:212 -> <init>
    16:16:void com.android.tools.r8.joptsimple.NonOptionArgumentSpec.<init>():60:60 -> <init>
    16:16:void <init>():212 -> <init>
    17:17:void recognize(com.android.tools.r8.joptsimple.AbstractOptionSpec):293:293 -> <init>
    17:17:void <init>():212 -> <init>
    1:1:com.android.tools.r8.joptsimple.OptionSpecBuilder accepts(java.lang.String):232:232 -> a
    2:2:com.android.tools.r8.joptsimple.OptionSpecBuilder acceptsAll(java.util.Collection):240:240 -> a
    2:2:com.android.tools.r8.joptsimple.OptionSpecBuilder accepts(java.lang.String):232 -> a
    3:3:com.android.tools.r8.joptsimple.OptionSpecBuilder accepts(java.lang.String,java.lang.String):236:236 -> a
    4:9:com.android.tools.r8.joptsimple.OptionSpecBuilder acceptsAll(java.util.Collection,java.lang.String):244:249 -> a
    10:10:com.android.tools.r8.joptsimple.OptionSpecBuilder acceptsAll(java.util.Collection,java.lang.String):245:245 -> a
    11:11:boolean doesAllowsUnrecognizedOptions():282:282 -> a
    12:12:void recognize(com.android.tools.r8.joptsimple.AbstractOptionSpec):293:293 -> a
    13:13:void printHelpOn(java.io.OutputStream):307:307 -> a
    14:15:void printHelpOn(java.io.Writer):321:322 -> a
    14:15:void printHelpOn(java.io.OutputStream):307 -> a
    16:21:com.android.tools.r8.joptsimple.OptionSet parse(java.lang.String[]):356:361 -> a
    22:22:void reset():521:521 -> a
    22:22:com.android.tools.r8.joptsimple.OptionSet parse(java.lang.String[]):363 -> a
    23:42:java.util.Collection missingRequiredOptions(com.android.tools.r8.joptsimple.OptionSet):379:398 -> a
    23:42:void ensureRequiredOptions(com.android.tools.r8.joptsimple.OptionSet):371 -> a
    23:42:com.android.tools.r8.joptsimple.OptionSet parse(java.lang.String[]):365 -> a
    43:44:boolean isHelpOptionPresent(com.android.tools.r8.joptsimple.OptionSet):416:417 -> a
    43:44:void ensureRequiredOptions(com.android.tools.r8.joptsimple.OptionSet):372 -> a
    43:44:com.android.tools.r8.joptsimple.OptionSet parse(java.lang.String[]):365 -> a
    45:46:void ensureRequiredOptions(com.android.tools.r8.joptsimple.OptionSet):374:375 -> a
    45:46:com.android.tools.r8.joptsimple.OptionSet parse(java.lang.String[]):365 -> a
    47:48:boolean optionsHasAnyOf(com.android.tools.r8.joptsimple.OptionSet,java.util.Collection):406:407 -> a
    49:49:void requiredIf(java.util.Collection,com.android.tools.r8.joptsimple.OptionSpec):483:483 -> a
    50:62:void putRequiredOption(java.util.Collection,com.android.tools.r8.joptsimple.OptionSpec,java.util.Map):497:509 -> a
    50:62:void requiredIf(java.util.Collection,com.android.tools.r8.joptsimple.OptionSpec):483 -> a
    63:63:com.android.tools.r8.joptsimple.util.KeyValuePair parseLongOptionWithArgument(java.lang.String):544:544 -> a
    63:63:void handleLongOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):426 -> a
    64:68:void handleLongOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):428:432 -> a
    69:69:void handleLongOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):429:429 -> a
    1:1:com.android.tools.r8.joptsimple.OptionParserState com.android.tools.r8.joptsimple.OptionParserState.noMoreOptions():38:38 -> b
    1:1:void noMoreOptions():467 -> b
    2:2:void noMoreOptions():467:467 -> b
    3:3:boolean isRecognized(java.lang.String):475:475 -> b
    4:4:boolean com.android.tools.r8.joptsimple.internal.AbbreviationMap.contains(java.lang.String):74:74 -> b
    4:4:boolean isRecognized(java.lang.String):475 -> b
    5:5:com.android.tools.r8.joptsimple.AbstractOptionSpec specFor(java.lang.String):517:517 -> b
    5:5:void handleNonOptionArgument(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):463 -> b
    6:6:void handleNonOptionArgument(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):463:463 -> b
    1:1:boolean posixlyCorrect():274:274 -> c
    2:2:boolean looksLikeAnOption(java.lang.String):471:471 -> c
    3:3:com.android.tools.r8.joptsimple.util.KeyValuePair parseShortOptionWithArgument(java.lang.String):548:548 -> c
    3:3:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):436 -> c
    4:5:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):438:439 -> c
    6:7:char[] extractShortOptionsFrom(java.lang.String):525:526 -> c
    6:7:void handleShortOptionCluster(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):446 -> c
    6:7:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):442 -> c
    8:11:void validateOptionCharacters(char[]):532:535 -> c
    8:11:void handleShortOptionCluster(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):447 -> c
    8:11:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):442 -> c
    12:12:com.android.tools.r8.joptsimple.AbstractOptionSpec specFor(java.lang.String):517:517 -> c
    12:12:void validateOptionCharacters(char[]):538 -> c
    12:12:void handleShortOptionCluster(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):447 -> c
    12:12:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):442 -> c
    13:13:void validateOptionCharacters(char[]):538:538 -> c
    13:13:void handleShortOptionCluster(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):447 -> c
    13:13:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):442 -> c
    14:14:void validateOptionCharacters(char[]):536:536 -> c
    14:14:void handleShortOptionCluster(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):447 -> c
    14:14:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):442 -> c
    15:16:void handleShortOptionCluster(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):449:450 -> c
    15:16:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):442 -> c
    17:17:com.android.tools.r8.joptsimple.AbstractOptionSpec specFor(char):513:513 -> c
    17:17:void handleShortOptionCluster(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):450 -> c
    17:17:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):442 -> c
    18:24:void handleShortOptionCluster(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):452:458 -> c
    18:24:void handleShortOptionToken(java.lang.String,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):442 -> c
    1:1:com.android.tools.r8.joptsimple.NonOptionArgumentSpec nonOptions(java.lang.String):261:261 -> d
    2:2:void recognize(com.android.tools.r8.joptsimple.AbstractOptionSpec):293:293 -> d
    2:2:com.android.tools.r8.joptsimple.NonOptionArgumentSpec nonOptions(java.lang.String):263 -> d
    1:1:com.android.tools.r8.joptsimple.AbstractOptionSpec specFor(java.lang.String):517:517 -> e
com.android.tools.r8.joptsimple.OptionParserState -> com.android.tools.r8.e.q:
    1:1:void <init>():36:36 -> <init>
    void handleArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet) -> a
    1:1:com.android.tools.r8.joptsimple.OptionParserState moreOptions(boolean):47:47 -> a
com.android.tools.r8.joptsimple.OptionParserState$1 -> com.android.tools.r8.e.o:
    1:1:void <init>():38:38 -> <init>
    1:1:void handleArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):41:41 -> a
com.android.tools.r8.joptsimple.OptionParserState$2 -> com.android.tools.r8.e.p:
    boolean val$posixlyCorrect -> a
    1:1:void <init>(boolean):47:47 -> <init>
    1:21:void handleArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):50:70 -> a
    22:22:void handleArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):64:64 -> a
com.android.tools.r8.joptsimple.OptionSet -> com.android.tools.r8.e.r:
    java.util.List detectedSpecs -> a
    java.util.Map detectedOptions -> b
    java.util.Map optionsToArguments -> c
    java.util.Map defaultValues -> d
    1:4:void <init>(java.util.Map):49:52 -> <init>
    5:7:java.util.Map defaultValues(java.util.Map):316:318 -> <init>
    5:7:void <init>(java.util.Map):53 -> <init>
    8:8:void <init>(java.util.Map):53:53 -> <init>
    1:1:boolean has(com.android.tools.r8.joptsimple.OptionSpec):91:91 -> a
    2:2:void add(com.android.tools.r8.joptsimple.AbstractOptionSpec):259:259 -> a
    3:16:void addWithArgument(com.android.tools.r8.joptsimple.AbstractOptionSpec,java.lang.String):263:276 -> a
    1:8:java.lang.Object valueOf(com.android.tools.r8.joptsimple.OptionSpec):169:176 -> b
    9:9:void com.android.tools.r8.joptsimple.internal.Objects.ensureNotNull(java.lang.Object):44:44 -> b
    9:9:java.lang.Object valueOf(com.android.tools.r8.joptsimple.OptionSpec):167 -> b
    1:10:java.util.List valuesOf(com.android.tools.r8.joptsimple.OptionSpec):213:222 -> c
    11:11:java.util.List defaultValueFor(com.android.tools.r8.joptsimple.OptionSpec):312:312 -> c
    11:11:java.util.List valuesOf(com.android.tools.r8.joptsimple.OptionSpec):215 -> c
    12:15:java.util.List defaultValuesFor(java.lang.String):305:308 -> c
    12:15:java.util.List defaultValueFor(com.android.tools.r8.joptsimple.OptionSpec):312 -> c
    12:15:java.util.List valuesOf(com.android.tools.r8.joptsimple.OptionSpec):215 -> c
    16:16:void com.android.tools.r8.joptsimple.internal.Objects.ensureNotNull(java.lang.Object):44:44 -> c
    16:16:java.util.List valuesOf(com.android.tools.r8.joptsimple.OptionSpec):211 -> c
    1:9:boolean equals(java.lang.Object):284:292 -> equals
    1:3:int hashCode():298:300 -> hashCode
com.android.tools.r8.joptsimple.OptionSpec -> com.android.tools.r8.e.s:
com.android.tools.r8.joptsimple.OptionSpecBuilder -> com.android.tools.r8.e.t:
    com.android.tools.r8.joptsimple.OptionParser parser -> d
    1:1:void com.android.tools.r8.joptsimple.NoArgumentOptionSpec.<init>(java.util.Collection,java.lang.String):44:44 -> <init>
    1:1:void <init>(com.android.tools.r8.joptsimple.OptionParser,java.util.Collection,java.lang.String):64 -> <init>
    2:2:void <init>(com.android.tools.r8.joptsimple.OptionParser,java.util.Collection,java.lang.String):66:66 -> <init>
    3:3:void attachToParser():71:71 -> <init>
    3:3:void <init>(com.android.tools.r8.joptsimple.OptionParser,java.util.Collection,java.lang.String):67 -> <init>
    java.lang.Object com.android.tools.r8.joptsimple.NoArgumentOptionSpec.convert(java.lang.String) -> a
    boolean requiresArgument() -> a
    1:3:com.android.tools.r8.joptsimple.OptionSpecBuilder requiredIf(com.android.tools.r8.joptsimple.OptionSpec,com.android.tools.r8.joptsimple.OptionSpec[]):135:137 -> a
    4:4:void com.android.tools.r8.joptsimple.OptionSet.add(com.android.tools.r8.joptsimple.AbstractOptionSpec):259:259 -> a
    4:4:void com.android.tools.r8.joptsimple.NoArgumentOptionSpec.handleOption(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet,java.lang.String):51 -> a
    4:4:void com.android.tools.r8.joptsimple.NoArgumentOptionSpec.handleOption(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet,java.lang.String):0 -> a
    java.lang.String argumentDescription() -> b
    java.lang.String argumentTypeIndicator() -> c
    1:1:java.util.List com.android.tools.r8.joptsimple.NoArgumentOptionSpec.defaultValues():80:80 -> d
    1:1:java.util.List defaultValues():60 -> d
    1:1:java.lang.String description():60:60 -> description
    boolean representsNonOptions() -> e
    1:1:boolean equals(java.lang.Object):60:60 -> equals
    boolean acceptsArguments() -> f
    com.android.tools.r8.joptsimple.AbstractOptionSpec forHelp() -> g
    1:1:int hashCode():60:60 -> hashCode
    1:1:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withOptionalArg():93:93 -> j
    2:2:java.lang.String description():60:60 -> j
    2:2:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withOptionalArg():93 -> j
    3:5:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withOptionalArg():93:95 -> j
    1:1:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withRequiredArg():80:80 -> k
    2:2:java.lang.String description():60:60 -> k
    2:2:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withRequiredArg():80 -> k
    3:5:com.android.tools.r8.joptsimple.ArgumentAcceptingOptionSpec withRequiredArg():80:82 -> k
    1:1:java.lang.String toString():60:60 -> toString
com.android.tools.r8.joptsimple.OptionalArgumentOptionSpec -> com.android.tools.r8.e.u:
    1:1:void <init>(java.util.Collection,java.lang.String):42:42 -> <init>
    1:4:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):47:50 -> a
    5:5:void handleOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.joptsimple.ArgumentList):62:62 -> a
    5:5:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):51 -> a
    6:6:void com.android.tools.r8.joptsimple.OptionSet.add(com.android.tools.r8.joptsimple.AbstractOptionSpec):259:259 -> a
    6:6:void handleOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.joptsimple.ArgumentList):63 -> a
    6:6:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):51 -> a
    7:10:void handleOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.OptionSet,com.android.tools.r8.joptsimple.ArgumentList):64:67 -> a
    7:10:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):51 -> a
    11:12:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):52:53 -> a
    13:13:void com.android.tools.r8.joptsimple.OptionSet.add(com.android.tools.r8.joptsimple.AbstractOptionSpec):259:259 -> a
    13:13:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):55 -> a
    14:14:void com.android.tools.r8.joptsimple.OptionSet.add(com.android.tools.r8.joptsimple.AbstractOptionSpec):259:259 -> a
    14:14:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):58 -> a
com.android.tools.r8.joptsimple.ParserRules -> com.android.tools.r8.e.v:
    java.lang.String HYPHEN -> a
    1:1:void <clinit>():39:39 -> <clinit>
    1:1:boolean isLongOptionToken(java.lang.String):55:55 -> a
    2:2:void ensureLegalOptions(java.util.Collection):71:71 -> a
    3:7:void ensureLegalOption(java.lang.String):63:67 -> a
    3:7:void ensureLegalOptions(java.util.Collection):72 -> a
    8:8:void ensureLegalOptionCharacter(char):76:76 -> a
    8:8:void ensureLegalOption(java.lang.String):67 -> a
    8:8:void ensureLegalOptions(java.util.Collection):72 -> a
    9:9:boolean isAllowedPunctuation(char):82:82 -> a
    9:9:void ensureLegalOptionCharacter(char):76 -> a
    9:9:void ensureLegalOption(java.lang.String):67 -> a
    9:9:void ensureLegalOptions(java.util.Collection):72 -> a
    10:10:void ensureLegalOptionCharacter(char):77:77 -> a
    10:10:void ensureLegalOption(java.lang.String):67 -> a
    10:10:void ensureLegalOptions(java.util.Collection):72 -> a
    11:11:void ensureLegalOption(java.lang.String):64:64 -> a
    11:11:void ensureLegalOptions(java.util.Collection):72 -> a
    1:1:boolean isOptionTerminator(java.lang.String):59:59 -> b
    1:1:boolean isShortOptionToken(java.lang.String):49:49 -> c
com.android.tools.r8.joptsimple.RequiredArgumentOptionSpec -> com.android.tools.r8.e.w:
    1:1:void <init>(java.util.Collection,java.lang.String):42:42 -> <init>
    1:4:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):47:50 -> a
    5:5:void detectOptionArgument(com.android.tools.r8.joptsimple.OptionParser,com.android.tools.r8.joptsimple.ArgumentList,com.android.tools.r8.joptsimple.OptionSet):48:48 -> a
com.android.tools.r8.joptsimple.UnconfiguredOptionException -> com.android.tools.r8.e.x:
    1:1:void <init>(java.util.Collection):45:45 -> <init>
    1:1:java.lang.String getMessage():50:50 -> getMessage
com.android.tools.r8.joptsimple.UnrecognizedOptionException -> com.android.tools.r8.e.y:
    1:1:void <init>(java.lang.String):39:39 -> <init>
    1:1:java.lang.String getMessage():44:44 -> getMessage
com.android.tools.r8.joptsimple.ValueConversionException -> com.android.tools.r8.e.z:
com.android.tools.r8.joptsimple.ValueConverter -> com.android.tools.r8.e.A:
    java.lang.Object convert(java.lang.String) -> a
    java.lang.Class valueType() -> a
    java.lang.String valuePattern() -> b
com.android.tools.r8.joptsimple.internal.AbbreviationMap -> com.android.tools.r8.e.a.a:
    java.util.Map children -> c
    java.lang.Object value -> b
    java.lang.String key -> a
    int keysBeyond -> d
    1:4:void <init>():59:62 -> <init>
    1:1:void putAll(java.lang.Iterable,java.lang.Object):128:128 -> a
    2:6:void put(java.lang.String,java.lang.Object):111:115 -> a
    2:6:void putAll(java.lang.Iterable,java.lang.Object):129 -> a
    7:7:void put(java.lang.String,java.lang.Object):112:112 -> a
    7:7:void putAll(java.lang.Iterable,java.lang.Object):129 -> a
    8:8:void put(java.lang.String,java.lang.Object):110:110 -> a
    8:8:void putAll(java.lang.Iterable,java.lang.Object):129 -> a
    9:28:boolean add(char[],java.lang.Object,int,int):134:153 -> a
    29:30:java.util.Map toJavaUtilMap():216:217 -> a
    31:35:void addToMappings(java.util.Map):222:226 -> a
    36:37:char[] charsOf(java.lang.String):230:231 -> a
    36:37:java.lang.Object get(java.lang.String):87 -> a
    38:44:java.lang.Object get(java.lang.String):90:96 -> a
    1:2:char[] charsOf(java.lang.String):230:231 -> b
com.android.tools.r8.joptsimple.internal.Classes -> com.android.tools.r8.e.a.b:
    java.util.Map WRAPPERS -> a
    1:12:void <clinit>():35:46 -> <clinit>
    1:1:java.lang.String shortNameOf(java.lang.String):60:60 -> a
    2:2:java.lang.Class wrapperOf(java.lang.Class):73:73 -> a
com.android.tools.r8.joptsimple.internal.Columns -> com.android.tools.r8.e.a.c:
    int descriptionWidth -> b
    int optionWidth -> a
    1:3:void <init>(int,int):46:48 -> <init>
    1:6:java.util.List fit(com.android.tools.r8.joptsimple.internal.Row):52:57 -> a
    7:7:java.lang.String itemOrEmpty(java.util.List,int):63:63 -> a
    7:7:java.util.List fit(com.android.tools.r8.joptsimple.internal.Row):57 -> a
    8:8:java.lang.String itemOrEmpty(java.util.List,int):63:63 -> a
    8:8:java.util.List fit(com.android.tools.r8.joptsimple.internal.Row):57 -> a
    9:9:java.util.List fit(com.android.tools.r8.joptsimple.internal.Row):57:57 -> a
    10:12:java.util.List piecesOf(java.lang.String,int):67:69 -> a
    13:21:java.util.List piecesOfEmbeddedLine(java.lang.String,int):76:84 -> a
    13:21:java.util.List piecesOf(java.lang.String,int):70 -> a
    22:28:java.lang.StringBuilder processNextWord(java.lang.String,java.lang.StringBuilder,int,int,int,java.util.List):97:103 -> a
    22:28:java.util.List piecesOfEmbeddedLine(java.lang.String,int):85 -> a
    22:28:java.util.List piecesOf(java.lang.String,int):70 -> a
    29:33:java.util.List piecesOfEmbeddedLine(java.lang.String,int):84:88 -> a
    29:33:java.util.List piecesOf(java.lang.String,int):70 -> a
    34:34:java.util.List piecesOf(java.lang.String,int):70:70 -> a
com.android.tools.r8.joptsimple.internal.ConstructorInvokingValueConverter -> com.android.tools.r8.e.a.d:
    java.lang.reflect.Constructor ctor -> a
    1:2:void <init>(java.lang.reflect.Constructor):41:42 -> <init>
    1:1:java.lang.Object convert(java.lang.String):46:46 -> a
    2:2:java.lang.Class valueType():50:50 -> a
    java.lang.String valuePattern() -> b
com.android.tools.r8.joptsimple.internal.MethodInvokingValueConverter -> com.android.tools.r8.e.a.e:
    java.lang.Class clazz -> b
    java.lang.reflect.Method method -> a
    1:3:void <init>(java.lang.reflect.Method,java.lang.Class):42:44 -> <init>
    1:1:java.lang.Object convert(java.lang.String):48:48 -> a
    2:2:java.lang.Class valueType():52:52 -> a
    java.lang.String valuePattern() -> b
com.android.tools.r8.joptsimple.internal.Reflection -> com.android.tools.r8.e.a.f:
    1:1:com.android.tools.r8.joptsimple.ValueConverter findConverter(java.lang.Class):56:56 -> a
    2:2:com.android.tools.r8.joptsimple.ValueConverter valueOfConverter(java.lang.Class):71:71 -> a
    2:2:com.android.tools.r8.joptsimple.ValueConverter findConverter(java.lang.Class):58 -> a
    3:4:boolean meetsConverterRequirements(java.lang.reflect.Method,java.lang.Class):132:133 -> a
    3:4:com.android.tools.r8.joptsimple.ValueConverter valueOfConverter(java.lang.Class):72 -> a
    3:4:com.android.tools.r8.joptsimple.ValueConverter findConverter(java.lang.Class):58 -> a
    5:5:com.android.tools.r8.joptsimple.ValueConverter valueOfConverter(java.lang.Class):73:73 -> a
    5:5:com.android.tools.r8.joptsimple.ValueConverter findConverter(java.lang.Class):58 -> a
    6:6:com.android.tools.r8.joptsimple.ValueConverter constructorConverter(java.lang.Class):84:84 -> a
    6:6:com.android.tools.r8.joptsimple.ValueConverter findConverter(java.lang.Class):62 -> a
    7:7:com.android.tools.r8.joptsimple.ValueConverter findConverter(java.lang.Class):66:66 -> a
    8:11:java.lang.Object instantiate(java.lang.reflect.Constructor,java.lang.Object[]):102:105 -> a
    12:15:java.lang.Object invoke(java.lang.reflect.Method,java.lang.Object[]):119:122 -> a
    16:23:java.lang.RuntimeException reflectionException(java.lang.Exception):137:144 -> a
com.android.tools.r8.joptsimple.internal.ReflectionException -> com.android.tools.r8.e.a.g:
    1:1:void <init>(java.lang.Throwable):37:37 -> <init>
com.android.tools.r8.joptsimple.internal.Row -> com.android.tools.r8.e.a.h:
    java.lang.String option -> a
    java.lang.String description -> b
    1:3:void <init>(java.lang.String,java.lang.String):35:37 -> <init>
    1:5:boolean equals(java.lang.Object):44:48 -> equals
    1:1:int hashCode():53:53 -> hashCode
com.android.tools.r8.joptsimple.internal.Rows -> com.android.tools.r8.e.a.i:
    java.util.Set rows -> c
    int widthOfWidestOption -> d
    int widthOfWidestDescription -> e
    int columnSeparatorWidth -> b
    int overallWidth -> a
    1:1:void <init>(int,int):45:45 -> <init>
    2:8:void <init>(int,int):41:47 -> <init>
    1:1:void add(java.lang.String,java.lang.String):51:51 -> a
    2:4:void add(com.android.tools.r8.joptsimple.internal.Row):55:57 -> a
    5:5:void fitToWidth():67:67 -> a
    6:6:int optionWidth():91:91 -> a
    6:6:void fitToWidth():67 -> a
    7:7:int descriptionWidth():95:95 -> a
    7:7:void fitToWidth():67 -> a
    8:12:void fitToWidth():67:71 -> a
    13:15:void reset():61:63 -> a
    13:15:void fitToWidth():73 -> a
    16:17:void fitToWidth():75:76 -> a
    1:4:java.lang.String render():80:83 -> b
    5:5:int optionWidth():91:91 -> b
    5:5:java.lang.String render():83 -> b
    6:6:java.lang.StringBuilder pad(java.lang.StringBuilder,java.lang.String,int):99:99 -> b
    6:6:java.lang.String render():83 -> b
    7:8:java.lang.String render():83:84 -> b
    9:9:int descriptionWidth():95:95 -> b
    9:9:java.lang.String render():84 -> b
    10:10:java.lang.StringBuilder pad(java.lang.StringBuilder,java.lang.String,int):99:99 -> b
    10:10:java.lang.String render():84 -> b
    11:14:java.lang.String render():84:87 -> b
com.android.tools.r8.joptsimple.internal.Strings -> com.android.tools.r8.e.a.j:
    java.lang.String LINE_SEPARATOR -> a
    1:1:void <clinit>():40:40 -> <clinit>
    1:6:java.lang.String repeat(char,int):54:59 -> a
    7:7:boolean isNullOrEmpty(java.lang.String):69:69 -> a
    8:8:java.lang.String surround(java.lang.String,char,char):82:82 -> a
com.android.tools.r8.joptsimple.util.KeyValuePair -> com.android.tools.r8.e.b.a:
    java.lang.String key -> a
    java.lang.String value -> b
    1:3:void <init>(java.lang.String,java.lang.String):42:44 -> <init>
    1:8:com.android.tools.r8.joptsimple.util.KeyValuePair valueOf(java.lang.String):55:62 -> a
    1:5:boolean equals(java.lang.Object):67:71 -> equals
    1:1:int hashCode():76:76 -> hashCode
    1:1:java.lang.String toString():81:81 -> toString
com.android.tools.r8.kotlin.Kotlin -> com.android.tools.r8.f.e:
    java.lang.String KOTLIN -> f
    com.android.tools.r8.kotlin.Kotlin$Functional functional -> b
    com.android.tools.r8.kotlin.Kotlin$Metadata metadata -> d
    com.android.tools.r8.kotlin.Kotlin$Intrinsics intrinsics -> c
    java.lang.String NAME -> e
    com.android.tools.r8.graph.DexItemFactory factory -> a
    1:5:void <clinit>():21:25 -> <clinit>
    1:6:void <init>(com.android.tools.r8.graph.DexItemFactory):37:42 -> <init>
    1:1:java.lang.String addKotlinPrefix(java.lang.String):28:28 -> a
    2:2:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo(com.android.tools.r8.graph.DexClass,com.android.tools.r8.DiagnosticsHandler):106:106 -> a
com.android.tools.r8.kotlin.Kotlin$1 -> com.android.tools.r8.f.a:
com.android.tools.r8.kotlin.Kotlin$Functional -> com.android.tools.r8.f.b:
    com.android.tools.r8.graph.DexString kotlinStyleLambdaInstanceName -> b
    com.android.tools.r8.graph.DexType lambdaType -> c
    java.util.Set functions -> a
    com.android.tools.r8.graph.DexMethod lambdaInitializerMethod -> d
    com.android.tools.r8.kotlin.Kotlin this$0 -> e
    1:1:void <init>(com.android.tools.r8.kotlin.Kotlin):48:48 -> <init>
    1:1:void <init>(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.kotlin.Kotlin$1):45 -> <init>
    2:28:void <init>(com.android.tools.r8.kotlin.Kotlin):46:72 -> <init>
    2:28:void <init>(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.kotlin.Kotlin$1):45 -> <init>
    29:29:void <init>(com.android.tools.r8.kotlin.Kotlin):70:70 -> <init>
    29:29:void <init>(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.kotlin.Kotlin$1):45 -> <init>
    30:30:void <init>(com.android.tools.r8.kotlin.Kotlin):60:60 -> <init>
    30:30:void <init>(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.kotlin.Kotlin$1):45 -> <init>
    1:1:boolean isFunctionInterface(com.android.tools.r8.graph.DexType):76:76 -> a
com.android.tools.r8.kotlin.Kotlin$Intrinsics -> com.android.tools.r8.f.c:
    com.android.tools.r8.graph.DexType type -> a
    com.android.tools.r8.graph.DexMethod throwNpe -> d
    com.android.tools.r8.graph.DexMethod checkParameterIsNotNull -> c
    com.android.tools.r8.graph.DexMethod throwParameterIsNullException -> b
    com.android.tools.r8.kotlin.Kotlin this$0 -> e
    1:4:void <init>(com.android.tools.r8.kotlin.Kotlin):93:96 -> <init>
    5:8:void <init>(com.android.tools.r8.kotlin.Kotlin):95:98 -> <init>
    9:13:void <init>(com.android.tools.r8.kotlin.Kotlin):97:101 -> <init>
    14:14:void <init>(com.android.tools.r8.kotlin.Kotlin):100:100 -> <init>
com.android.tools.r8.kotlin.Kotlin$Metadata -> com.android.tools.r8.f.d:
    com.android.tools.r8.graph.DexString kind -> b
    com.android.tools.r8.graph.DexString metadataVersion -> c
    com.android.tools.r8.graph.DexString bytecodeVersion -> d
    com.android.tools.r8.kotlin.Kotlin this$0 -> j
    com.android.tools.r8.graph.DexString data1 -> e
    com.android.tools.r8.graph.DexString data2 -> f
    com.android.tools.r8.graph.DexString extraString -> g
    com.android.tools.r8.graph.DexString packageName -> h
    com.android.tools.r8.graph.DexString extraInt -> i
    com.android.tools.r8.graph.DexType kotlinMetadataType -> a
    1:10:void <init>(com.android.tools.r8.kotlin.Kotlin):80:89 -> <init>
com.android.tools.r8.kotlin.KotlinClass -> com.android.tools.r8.f.g:
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():16:16 -> <clinit>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class,com.android.tools.r8.graph.DexClass):26:26 -> <init>
    1:1:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):16:16 -> a
    2:2:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$Class):32:32 -> a
    2:2:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):16 -> a
    3:5:com.android.tools.r8.kotlin.KotlinClass fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.graph.DexClass):20:22 -> a
com.android.tools.r8.kotlin.KotlinClass$1 -> com.android.tools.r8.f.f:
com.android.tools.r8.kotlin.KotlinClass$ClassVisitorForNonNullParameterHints -> com.android.tools.r8.f.g$a:
    com.android.tools.r8.kotlin.KotlinClass this$0 -> b
    1:1:void <init>(com.android.tools.r8.kotlin.KotlinClass):35:35 -> <init>
    1:1:void <init>(com.android.tools.r8.kotlin.KotlinClass,com.android.tools.r8.kotlin.KotlinClass$1):35 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):38:38 -> a
    2:2:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorVisitor visitConstructor(int):43:43 -> a
    3:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitProperty(int,java.lang.String,int,int):49:50 -> a
com.android.tools.r8.kotlin.KotlinClassFacade -> com.android.tools.r8.f.h:
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():9:9 -> <clinit>
    1:1:void com.android.tools.r8.kotlin.KotlinInfo.<init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):22:22 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassFacade):19 -> <init>
    1:1:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):9:9 -> a
    1:4:com.android.tools.r8.kotlin.KotlinClassFacade fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):12:15 -> b
com.android.tools.r8.kotlin.KotlinClassMetadataReader -> com.android.tools.r8.f.j:
    1:15:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.DiagnosticsHandler):27:41 -> a
    16:16:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.DiagnosticsHandler):39:39 -> a
    17:19:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.DiagnosticsHandler):35:37 -> a
    20:20:com.android.tools.r8.kotlin.KotlinInfo getKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.DiagnosticsHandler):35:35 -> a
    21:46:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexAnnotation):51:76 -> a
    47:47:com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata.read(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassHeader):0:0 -> a
    47:47:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexAnnotation):77 -> a
    48:59:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexAnnotation):79:90 -> a
    60:60:com.android.tools.r8.kotlin.KotlinInfo createKotlinInfo(com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexAnnotation):58:58 -> a
    61:68:int[] getUnboxedIntArray(com.android.tools.r8.graph.DexValue,java.lang.String):95:102 -> a
    69:69:int[] getUnboxedIntArray(com.android.tools.r8.graph.DexValue,java.lang.String):96:96 -> a
    1:4:java.lang.String getUnboxedString(com.android.tools.r8.graph.DexValue,java.lang.String):121:124 -> b
    5:5:java.lang.String getUnboxedString(com.android.tools.r8.graph.DexValue,java.lang.String):122:122 -> b
    1:8:java.lang.String[] getUnboxedStringArray(com.android.tools.r8.graph.DexValue,java.lang.String):108:115 -> c
    9:9:java.lang.String[] getUnboxedStringArray(com.android.tools.r8.graph.DexValue,java.lang.String):109:109 -> c
com.android.tools.r8.kotlin.KotlinClassMetadataReader$MetadataError -> com.android.tools.r8.f.i:
    1:1:void <init>(java.lang.String):129:129 -> <init>
com.android.tools.r8.kotlin.KotlinClassPart -> com.android.tools.r8.f.l:
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():14:14 -> <clinit>
    1:1:void com.android.tools.r8.kotlin.KotlinInfo.<init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):22:22 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart):24 -> <init>
    1:1:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):14:14 -> a
    2:2:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$MultiFileClassPart):30:30 -> a
    2:2:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):14 -> a
    1:4:com.android.tools.r8.kotlin.KotlinClassPart fromKotlinClassMetdata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):17:20 -> b
com.android.tools.r8.kotlin.KotlinClassPart$1 -> com.android.tools.r8.f.k:
com.android.tools.r8.kotlin.KotlinClassPart$PackageVisitorForNonNullParameterHints -> com.android.tools.r8.f.l$a:
    com.android.tools.r8.kotlin.KotlinClassPart this$0 -> b
    1:1:void <init>(com.android.tools.r8.kotlin.KotlinClassPart):33:33 -> <init>
    1:1:void <init>(com.android.tools.r8.kotlin.KotlinClassPart,com.android.tools.r8.kotlin.KotlinClassPart$1):33 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):36:36 -> a
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitProperty(int,java.lang.String,int,int):42:43 -> a
com.android.tools.r8.kotlin.KotlinFile -> com.android.tools.r8.f.n:
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():14:14 -> <clinit>
    1:1:void com.android.tools.r8.kotlin.KotlinInfo.<init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):22:22 -> <init>
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade):24 -> <init>
    1:1:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):14:14 -> a
    2:2:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$FileFacade):30:30 -> a
    2:2:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):14 -> a
    1:4:com.android.tools.r8.kotlin.KotlinFile fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):17:20 -> b
com.android.tools.r8.kotlin.KotlinFile$1 -> com.android.tools.r8.f.m:
com.android.tools.r8.kotlin.KotlinFile$PackageVisitorForNonNullParameterHints -> com.android.tools.r8.f.n$a:
    com.android.tools.r8.kotlin.KotlinFile this$0 -> b
    1:1:void <init>(com.android.tools.r8.kotlin.KotlinFile):33:33 -> <init>
    1:1:void <init>(com.android.tools.r8.kotlin.KotlinFile,com.android.tools.r8.kotlin.KotlinFile$1):33 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):36:36 -> a
    2:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyVisitor visitProperty(int,java.lang.String,int,int):42:43 -> a
com.android.tools.r8.kotlin.KotlinInfo -> com.android.tools.r8.f.o:
    com.android.tools.r8.graph.DexClass clazz -> a
    com.android.tools.r8.com.google.common.collect.HashBasedTable nonNullparamHints -> b
    1:1:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.graph.DexClass):25:25 -> <init>
    2:13:void <init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.graph.DexClass):16:27 -> <init>
    com.android.tools.r8.kotlin.KotlinSyntheticClass asSyntheticClass() -> a
    void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata) -> a
    1:1:java.util.BitSet lookupNonNullParameterHint(java.lang.String,java.lang.String):85:85 -> a
    1:1:boolean hasNonNullParameterHints():81:81 -> b
    boolean isSyntheticClass() -> c
com.android.tools.r8.kotlin.KotlinSyntheticClass -> com.android.tools.r8.f.r:
    com.android.tools.r8.kotlin.KotlinSyntheticClass$Flavour flavour -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():12:12 -> <clinit>
    1:1:void com.android.tools.r8.kotlin.KotlinInfo.<init>(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):22:22 -> <init>
    1:1:void <init>(com.android.tools.r8.kotlin.KotlinSyntheticClass$Flavour,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$SyntheticClass):36 -> <init>
    2:2:void <init>(com.android.tools.r8.kotlin.KotlinSyntheticClass$Flavour,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$SyntheticClass):37:37 -> <init>
    com.android.tools.r8.kotlin.KotlinSyntheticClass asSyntheticClass() -> a
    1:1:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):12:12 -> a
    2:4:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$SyntheticClass):42:44 -> a
    2:4:void processMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata):12 -> a
    5:6:com.android.tools.r8.kotlin.KotlinSyntheticClass fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):23:24 -> a
    7:7:boolean isKotlinStyleLambda(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$SyntheticClass,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):90:90 -> a
    7:7:com.android.tools.r8.kotlin.KotlinSyntheticClass fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):26 -> a
    8:8:com.android.tools.r8.kotlin.KotlinSyntheticClass fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):27:27 -> a
    9:11:boolean isJavaStyleLambda(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata$SyntheticClass,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):103:105 -> a
    9:11:com.android.tools.r8.kotlin.KotlinSyntheticClass fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):28 -> a
    12:14:com.android.tools.r8.kotlin.KotlinSyntheticClass fromKotlinClassMetadata(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.KotlinClassMetadata,com.android.tools.r8.kotlin.Kotlin,com.android.tools.r8.graph.DexClass):29:31 -> a
    boolean isSyntheticClass() -> c
    1:1:boolean isJavaStyleLambda():64:64 -> d
    1:1:boolean isKotlinStyleLambda():60:60 -> e
    1:1:boolean isLambda():56:56 -> f
com.android.tools.r8.kotlin.KotlinSyntheticClass$1 -> com.android.tools.r8.f.p:
com.android.tools.r8.kotlin.KotlinSyntheticClass$Flavour -> com.android.tools.r8.f.q:
    com.android.tools.r8.kotlin.KotlinSyntheticClass$Flavour Unclassified -> c
    com.android.tools.r8.kotlin.KotlinSyntheticClass$Flavour JavaStyleLambda -> b
    com.android.tools.r8.kotlin.KotlinSyntheticClass$Flavour KotlinStyleLambda -> a
    1:3:void <clinit>():14:16 -> <clinit>
    4:4:void <clinit>():13:13 -> <clinit>
    1:1:void <init>(java.lang.String,int):13:13 -> <init>
com.android.tools.r8.kotlin.KotlinSyntheticClass$LambdaVisitorForNonNullParameterHints -> com.android.tools.r8.f.r$a:
    com.android.tools.r8.kotlin.KotlinSyntheticClass this$0 -> b
    1:1:void <init>(com.android.tools.r8.kotlin.KotlinSyntheticClass):48:48 -> <init>
    1:1:void <init>(com.android.tools.r8.kotlin.KotlinSyntheticClass,com.android.tools.r8.kotlin.KotlinSyntheticClass$1):48 -> <init>
    1:1:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionVisitor visitFunction(int,java.lang.String):51:51 -> a
com.android.tools.r8.kotlin.NonNullParameterHintCollector -> com.android.tools.r8.f.A:
com.android.tools.r8.kotlin.NonNullParameterHintCollector$ConstructorVisitor -> com.android.tools.r8.f.u:
    int paramIndex -> d
    java.util.BitSet paramHint -> c
    java.lang.String descriptor -> e
    com.android.tools.r8.com.google.common.collect.HashBasedTable paramHints -> b
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.HashBasedTable,com.android.tools.r8.graph.DexClass):98:98 -> <init>
    2:17:void <init>(com.android.tools.r8.com.google.common.collect.HashBasedTable,com.android.tools.r8.graph.DexClass):93:108 -> <init>
    1:1:int access$400(com.android.tools.r8.kotlin.NonNullParameterHintCollector$ConstructorVisitor):90:90 -> a
    2:2:java.lang.String access$602(com.android.tools.r8.kotlin.NonNullParameterHintCollector$ConstructorVisitor,java.lang.String):90:90 -> a
    3:3:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitValueParameter(int,java.lang.String):114:114 -> a
    4:7:com.android.tools.r8.jetbrains.kotlinx.metadata.KmConstructorExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):128:131 -> a
    8:11:void visitEnd():142:145 -> a
    1:1:int access$408(com.android.tools.r8.kotlin.NonNullParameterHintCollector$ConstructorVisitor):90:90 -> b
    1:1:java.util.BitSet access$500(com.android.tools.r8.kotlin.NonNullParameterHintCollector$ConstructorVisitor):90:90 -> c
com.android.tools.r8.kotlin.NonNullParameterHintCollector$ConstructorVisitor$1 -> com.android.tools.r8.f.s:
    com.android.tools.r8.kotlin.NonNullParameterHintCollector$ConstructorVisitor this$0 -> b
    1:1:void <init>(com.android.tools.r8.kotlin.NonNullParameterHintCollector$ConstructorVisitor):114:114 -> <init>
    1:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitType(int):117:120 -> a
com.android.tools.r8.kotlin.NonNullParameterHintCollector$ConstructorVisitor$2 -> com.android.tools.r8.f.t:
    com.android.tools.r8.kotlin.NonNullParameterHintCollector$ConstructorVisitor this$0 -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():131:131 -> <clinit>
    1:1:void <init>(com.android.tools.r8.kotlin.NonNullParameterHintCollector$ConstructorVisitor):131:131 -> <init>
    1:2:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):134:135 -> a
com.android.tools.r8.kotlin.NonNullParameterHintCollector$FunctionVisitor -> com.android.tools.r8.f.x:
    java.lang.String descriptor -> f
    int paramIndex -> d
    java.util.BitSet paramHint -> c
    java.lang.String name -> e
    com.android.tools.r8.com.google.common.collect.HashBasedTable paramHints -> b
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.HashBasedTable):38:38 -> <init>
    2:8:void <init>(com.android.tools.r8.com.google.common.collect.HashBasedTable):33:39 -> <init>
    1:1:int access$000(com.android.tools.r8.kotlin.NonNullParameterHintCollector$FunctionVisitor):29:29 -> a
    2:2:java.lang.String access$202(com.android.tools.r8.kotlin.NonNullParameterHintCollector$FunctionVisitor,java.lang.String):29:29 -> a
    3:6:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReceiverParameterType(int):44:47 -> a
    7:7:com.android.tools.r8.jetbrains.kotlinx.metadata.KmValueParameterVisitor visitValueParameter(int,java.lang.String):53:53 -> a
    8:11:com.android.tools.r8.jetbrains.kotlinx.metadata.KmFunctionExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):67:70 -> a
    1:1:int access$008(com.android.tools.r8.kotlin.NonNullParameterHintCollector$FunctionVisitor):29:29 -> b
    2:2:java.lang.String access$302(com.android.tools.r8.kotlin.NonNullParameterHintCollector$FunctionVisitor,java.lang.String):29:29 -> b
    3:6:void visitEnd():83:86 -> b
    1:1:java.util.BitSet access$100(com.android.tools.r8.kotlin.NonNullParameterHintCollector$FunctionVisitor):29:29 -> c
com.android.tools.r8.kotlin.NonNullParameterHintCollector$FunctionVisitor$1 -> com.android.tools.r8.f.v:
    com.android.tools.r8.kotlin.NonNullParameterHintCollector$FunctionVisitor this$0 -> b
    1:1:void <init>(com.android.tools.r8.kotlin.NonNullParameterHintCollector$FunctionVisitor):53:53 -> <init>
    1:4:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitType(int):56:59 -> a
com.android.tools.r8.kotlin.NonNullParameterHintCollector$FunctionVisitor$2 -> com.android.tools.r8.f.w:
    com.android.tools.r8.kotlin.NonNullParameterHintCollector$FunctionVisitor this$0 -> c
    1:1:void <init>(com.android.tools.r8.kotlin.NonNullParameterHintCollector$FunctionVisitor):70:70 -> <init>
    1:2:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):74:75 -> a
com.android.tools.r8.kotlin.NonNullParameterHintCollector$PropertyVisitor -> com.android.tools.r8.f.z:
    java.lang.String descriptor -> f
    int paramIndex -> d
    java.util.BitSet paramHint -> c
    java.lang.String name -> e
    com.android.tools.r8.com.google.common.collect.HashBasedTable paramHints -> b
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.HashBasedTable):157:157 -> <init>
    2:8:void <init>(com.android.tools.r8.com.google.common.collect.HashBasedTable):152:158 -> <init>
    1:1:java.lang.String access$702(com.android.tools.r8.kotlin.NonNullParameterHintCollector$PropertyVisitor,java.lang.String):149:149 -> a
    2:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmPropertyExtensionVisitor visitExtensions(com.android.tools.r8.jetbrains.kotlinx.metadata.KmExtensionType):172:175 -> a
    6:9:void visitEnd():191:194 -> a
    1:1:java.lang.String access$802(com.android.tools.r8.kotlin.NonNullParameterHintCollector$PropertyVisitor,java.lang.String):149:149 -> b
    2:5:com.android.tools.r8.jetbrains.kotlinx.metadata.KmTypeVisitor visitReturnType(int):163:166 -> b
com.android.tools.r8.kotlin.NonNullParameterHintCollector$PropertyVisitor$1 -> com.android.tools.r8.f.y:
    com.android.tools.r8.kotlin.NonNullParameterHintCollector$PropertyVisitor this$0 -> c
    1:1:void <init>(com.android.tools.r8.kotlin.NonNullParameterHintCollector$PropertyVisitor):175:175 -> <init>
    1:2:void visit(com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmFieldSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature,com.android.tools.r8.jetbrains.kotlinx.metadata.jvm.JvmMethodSignature):182:183 -> a
com.android.tools.r8.naming.ApplyMappingError -> com.android.tools.r8.naming.a:
    1:1:void <init>(java.lang.String,com.android.tools.r8.position.Position):26:26 -> <init>
    1:2:com.android.tools.r8.naming.ApplyMappingError mapToExistingClass(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):31:32 -> a
    1:2:com.android.tools.r8.naming.ApplyMappingError mapToExistingMember(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):38:39 -> b
com.android.tools.r8.naming.ClassNameMapper -> com.android.tools.r8.naming.ClassNameMapper:
    java.util.Map signatureMap -> c
    com.android.tools.r8.utils.BiMapContainer nameMapping -> b
    com.android.tools.r8.com.google.common.collect.ImmutableMap classNameMappings -> a
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():37:37 -> <clinit>
    1:1:void <init>(java.util.Map):104:104 -> <init>
    1:1:void <init>(java.util.Map,com.android.tools.r8.naming.ClassNameMapper$1):37 -> <init>
    2:9:void <init>(java.util.Map):102:109 -> <init>
    2:9:void <init>(java.util.Map,com.android.tools.r8.naming.ClassNameMapper$1):37 -> <init>
    1:6:com.android.tools.r8.naming.ClassNameMapper mapperFromInputStream(java.io.InputStream):71:76 -> a
    7:11:com.android.tools.r8.naming.ClassNameMapper mapperFromInputStream(java.io.InputStream):72:76 -> a
    12:15:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):122:125 -> a
    16:16:java.lang.String deobfuscateType(java.lang.String):154:154 -> a
    16:16:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):125 -> a
    17:19:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):125:127 -> a
    20:20:java.lang.String deobfuscateType(java.lang.String):154:154 -> a
    20:20:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):127 -> a
    21:21:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):129:129 -> a
    22:26:com.android.tools.r8.naming.MemberNaming$Signature canonicalizeSignature(com.android.tools.r8.naming.MemberNaming$Signature):113:117 -> a
    22:26:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):131 -> a
    27:27:com.android.tools.r8.naming.MemberNaming$MethodSignature getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):131:131 -> a
    28:28:com.android.tools.r8.naming.MemberNaming$FieldSignature getRenamedFieldSignature(com.android.tools.r8.graph.DexField):135:135 -> a
    29:29:java.lang.String deobfuscateType(java.lang.String):154:154 -> a
    29:29:com.android.tools.r8.naming.MemberNaming$FieldSignature getRenamedFieldSignature(com.android.tools.r8.graph.DexField):135 -> a
    30:30:com.android.tools.r8.naming.MemberNaming$FieldSignature getRenamedFieldSignature(com.android.tools.r8.graph.DexField):136:136 -> a
    31:35:com.android.tools.r8.naming.MemberNaming$Signature canonicalizeSignature(com.android.tools.r8.naming.MemberNaming$Signature):113:117 -> a
    31:35:com.android.tools.r8.naming.MemberNaming$FieldSignature getRenamedFieldSignature(com.android.tools.r8.graph.DexField):136 -> a
    36:36:com.android.tools.r8.naming.MemberNaming$FieldSignature getRenamedFieldSignature(com.android.tools.r8.graph.DexField):136:136 -> a
    37:41:void write(java.io.Writer):176:180 -> a
    42:42:java.lang.String lambda$write$0(com.android.tools.r8.naming.ClassNamingForNameMapper):178:178 -> a
    43:50:java.lang.String originalNameOf(com.android.tools.r8.graph.IndexedDexItem):219:226 -> a
    51:60:java.lang.String lookupName(com.android.tools.r8.naming.MemberNaming$Signature,com.android.tools.r8.graph.DexType):231:240 -> a
    1:11:com.android.tools.r8.naming.MemberNaming$MethodSignature originalSignatureOf(com.android.tools.r8.graph.DexMethod):244:254 -> b
    12:22:com.android.tools.r8.naming.MemberNaming$FieldSignature originalSignatureOf(com.android.tools.r8.graph.DexField):258:268 -> b
    1:1:com.android.tools.r8.naming.ClassNameMapper$Builder builder():67:67 -> builder
    1:5:java.lang.String deobfuscateClassName(java.lang.String):146:150 -> deobfuscateClassName
    1:2:boolean equals(java.lang.Object):209:210 -> equals
    1:1:com.android.tools.r8.naming.ClassNamingForNameMapper getClassNaming(java.lang.String):170:170 -> getClassNaming
    1:9:com.android.tools.r8.utils.BiMapContainer getObfuscatedToOriginalMapping():196:204 -> getObfuscatedToOriginalMapping
    1:1:int hashCode():215:215 -> hashCode
    1:1:com.android.tools.r8.naming.ClassNameMapper mapperFromFile(java.nio.file.Path):80:80 -> mapperFromFile
    2:8:com.android.tools.r8.naming.ClassNameMapper mapperFromFile(java.nio.file.Path,com.android.tools.r8.naming.ClassNameMapper$MissingFileAction):85:91 -> mapperFromFile
    1:2:com.android.tools.r8.naming.ClassNameMapper mapperFromString(java.lang.String):95:96 -> mapperFromString
    3:3:com.android.tools.r8.naming.ClassNameMapper mapperFromString(java.lang.String):95:95 -> mapperFromString
    1:1:java.lang.String originalNameOf(com.android.tools.r8.graph.DexType):272:272 -> originalNameOf
    2:2:java.lang.String deobfuscateType(java.lang.String):154:154 -> originalNameOf
    2:2:java.lang.String originalNameOf(com.android.tools.r8.graph.DexType):272 -> originalNameOf
    1:5:java.lang.String toString():187:191 -> toString
com.android.tools.r8.naming.ClassNameMapper$1 -> com.android.tools.r8.naming.b:
com.android.tools.r8.naming.ClassNameMapper$Builder -> com.android.tools.r8.naming.ClassNameMapper$Builder:
    com.android.tools.r8.com.google.common.collect.ImmutableMap$Builder mapBuilder -> a
    1:2:void <init>():47:48 -> <init>
    1:2:void <init>(com.android.tools.r8.naming.ClassNameMapper$1):44 -> <init>
    1:1:com.android.tools.r8.naming.ClassNameMapper build():62:62 -> build
    1:1:com.android.tools.r8.naming.ClassNaming$Builder classNamingBuilder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):44:44 -> classNamingBuilder
    2:3:com.android.tools.r8.naming.ClassNamingForNameMapper$Builder classNamingBuilder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):55:56 -> classNamingBuilder
com.android.tools.r8.naming.ClassNameMapper$MissingFileAction -> com.android.tools.r8.naming.ClassNameMapper$MissingFileAction:
    1:2:void <clinit>():40:41 -> <clinit>
    3:3:void <clinit>():39:39 -> <clinit>
    1:1:void <init>(java.lang.String,int):39:39 -> <init>
com.android.tools.r8.naming.ClassNameMinifier -> com.android.tools.r8.naming.ClassNameMinifier:
    boolean keepInnerClassStructure -> n
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.naming.ClassNameMinifier$Namespace topLevelState -> q
    java.lang.Iterable classes -> d
    boolean $assertionsDisabled -> r
    java.util.Set noObfuscationPrefixes -> g
    com.android.tools.r8.naming.ClassNameMinifier$ClassNamingStrategy classNamingStrategy -> b
    java.util.Set usedPackagePrefixes -> h
    java.util.Set usedTypeNames -> i
    com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode packageObfuscationMode -> e
    com.android.tools.r8.naming.ClassNameMinifier$PackageNamingStrategy packageNamingStrategy -> c
    java.util.Set noObfuscationTypes -> o
    boolean isAccessModificationAllowed -> f
    java.util.Map renaming -> j
    java.util.Set keepPackageName -> p
    java.util.Map states -> k
    java.util.List classDictionary -> m
    java.util.List packageDictionary -> l
    1:1:void <clinit>():40:40 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.RootSetBuilder$RootSet,com.android.tools.r8.naming.ClassNameMinifier$ClassNamingStrategy,com.android.tools.r8.naming.ClassNameMinifier$PackageNamingStrategy,java.lang.Iterable):68:68 -> <init>
    2:43:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.RootSetBuilder$RootSet,com.android.tools.r8.naming.ClassNameMinifier$ClassNamingStrategy,com.android.tools.r8.naming.ClassNameMinifier$PackageNamingStrategy,java.lang.Iterable):48:89 -> <init>
    44:44:void com.android.tools.r8.naming.ClassNameMinifier$Namespace.<init>(com.android.tools.r8.naming.ClassNameMinifier,java.lang.String):357:357 -> <init>
    44:44:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.RootSetBuilder$RootSet,com.android.tools.r8.naming.ClassNameMinifier$ClassNamingStrategy,com.android.tools.r8.naming.ClassNameMinifier$PackageNamingStrategy,java.lang.Iterable):89 -> <init>
    45:47:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.RootSetBuilder$RootSet,com.android.tools.r8.naming.ClassNameMinifier$ClassNamingStrategy,com.android.tools.r8.naming.ClassNameMinifier$PackageNamingStrategy,java.lang.Iterable):89:91 -> <init>
    1:1:java.util.List access$100(com.android.tools.r8.naming.ClassNameMinifier):40:40 -> a
    2:35:com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming computeRenaming(com.android.tools.r8.utils.Timing):107:140 -> a
    36:44:java.util.Map getPackageRenaming():144:152 -> a
    36:44:com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming computeRenaming(com.android.tools.r8.utils.Timing):140 -> a
    45:45:com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming computeRenaming(com.android.tools.r8.utils.Timing):140:140 -> a
    46:47:void renameDanglingTypes(com.android.tools.r8.graph.DexClass):156:157 -> a
    48:48:void renameDanglingTypesInField(com.android.tools.r8.graph.DexEncodedField):161:161 -> a
    49:52:void renameDanglingTypesInMethod(com.android.tools.r8.graph.DexEncodedMethod):165:168 -> a
    53:56:com.android.tools.r8.graph.DexString computeName(com.android.tools.r8.graph.DexType):244:247 -> a
    57:73:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForOuterClass(com.android.tools.r8.graph.DexType):311:327 -> a
    57:73:com.android.tools.r8.graph.DexString computeName(com.android.tools.r8.graph.DexType):249 -> a
    74:76:com.android.tools.r8.graph.DexString computeName(com.android.tools.r8.graph.DexType):253:255 -> a
    77:93:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForPackagePrefix(java.lang.String):288:304 -> a
    94:94:void com.android.tools.r8.naming.ClassNameMinifier$Namespace.<init>(com.android.tools.r8.naming.ClassNameMinifier,java.lang.String):357:357 -> a
    94:94:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForPackagePrefix(java.lang.String):304 -> a
    95:95:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForPackagePrefix(java.lang.String):305:305 -> a
    96:97:boolean isNotKotlinMetadata(com.android.tools.r8.graph.DexAnnotation):451:452 -> a
    1:1:java.util.List access$200(com.android.tools.r8.naming.ClassNameMinifier):40:40 -> b
    2:20:com.android.tools.r8.graph.DexType getOutClassForType(com.android.tools.r8.graph.DexType):218:236 -> b
    21:21:com.android.tools.r8.naming.ClassNameMinifier$Namespace lambda$getStateForClass$0(java.lang.String):264:264 -> b
    22:22:void com.android.tools.r8.naming.ClassNameMinifier$Namespace.<init>(com.android.tools.r8.naming.ClassNameMinifier,java.lang.String):357:357 -> b
    22:22:com.android.tools.r8.naming.ClassNameMinifier$Namespace lambda$getStateForClass$0(java.lang.String):264 -> b
    1:1:com.android.tools.r8.graph.AppView access$300(com.android.tools.r8.naming.ClassNameMinifier):40:40 -> c
    2:21:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForClass(com.android.tools.r8.graph.DexType):259:278 -> c
    22:22:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForClass(com.android.tools.r8.graph.DexType):274:274 -> c
    23:23:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForClass(com.android.tools.r8.graph.DexType):270:270 -> c
    24:24:com.android.tools.r8.naming.ClassNameMinifier$Namespace getStateForClass(com.android.tools.r8.graph.DexType):264:264 -> c
    25:26:com.android.tools.r8.naming.ClassNameMinifier$Namespace lambda$getStateForClass$1(java.lang.String):279:280 -> c
    27:27:void com.android.tools.r8.naming.ClassNameMinifier$Namespace.<init>(com.android.tools.r8.naming.ClassNameMinifier,java.lang.String):357:357 -> c
    27:27:com.android.tools.r8.naming.ClassNameMinifier$Namespace lambda$getStateForClass$1(java.lang.String):280 -> c
    1:1:java.util.Set access$400(com.android.tools.r8.naming.ClassNameMinifier):40:40 -> d
    2:4:void registerClassAsUsed(com.android.tools.r8.graph.DexType):185:187 -> d
    5:11:void registerPackagePrefixesAsUsed(java.lang.String):207:213 -> d
    5:11:void registerClassAsUsed(com.android.tools.r8.graph.DexType):186 -> d
    12:19:void registerClassAsUsed(com.android.tools.r8.graph.DexType):188:195 -> d
    20:20:com.android.tools.r8.naming.ClassNameMinifier$Namespace lambda$getStateForPackagePrefix$2(java.lang.String):295:295 -> d
    21:21:void com.android.tools.r8.naming.ClassNameMinifier$Namespace.<init>(com.android.tools.r8.naming.ClassNameMinifier,java.lang.String):357:357 -> d
    21:21:com.android.tools.r8.naming.ClassNameMinifier$Namespace lambda$getStateForPackagePrefix$2(java.lang.String):295 -> d
    1:1:com.android.tools.r8.naming.ClassNameMinifier$ClassNamingStrategy access$500(com.android.tools.r8.naming.ClassNameMinifier):40:40 -> e
    2:13:void renameArrayTypeIfNeeded(com.android.tools.r8.graph.DexType):333:344 -> e
    1:1:com.android.tools.r8.naming.ClassNameMinifier$PackageNamingStrategy access$600(com.android.tools.r8.naming.ClassNameMinifier):40:40 -> f
    2:9:void renameDanglingType(com.android.tools.r8.graph.DexType):173:180 -> f
    1:1:java.util.Set access$700(com.android.tools.r8.naming.ClassNameMinifier):40:40 -> g
    1:5:java.lang.String getParentPackagePrefix(java.lang.String):443:447 -> getParentPackagePrefix
com.android.tools.r8.naming.ClassNameMinifier$1 -> com.android.tools.r8.naming.c:
    int[] $SwitchMap$com$android$tools$r8$utils$InternalOptions$PackageObfuscationMode -> a
    1:1:void <clinit>():267:267 -> <clinit>
com.android.tools.r8.naming.ClassNameMinifier$ClassNamingStrategy -> com.android.tools.r8.naming.ClassNameMinifier$a:
    boolean bypassDictionary() -> a
    com.android.tools.r8.graph.DexString next(com.android.tools.r8.naming.ClassNameMinifier$Namespace,com.android.tools.r8.graph.DexType,char[]) -> a
com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming -> com.android.tools.r8.naming.ClassNameMinifier$b:
    java.util.Map packageRenaming -> a
    java.util.Map classRenaming -> b
    1:3:void <init>(java.util.Map,java.util.Map):99:101 -> <init>
    1:3:void <init>(java.util.Map,java.util.Map,com.android.tools.r8.naming.ClassNameMinifier$1):94 -> <init>
com.android.tools.r8.naming.ClassNameMinifier$Namespace -> com.android.tools.r8.naming.ClassNameMinifier$c:
    java.util.Iterator classDictionaryIterator -> d
    char[] packagePrefix -> b
    java.util.Iterator packageDictionaryIterator -> c
    com.android.tools.r8.naming.ClassNameMinifier this$0 -> e
    java.lang.String packageName -> a
    1:13:void <init>(com.android.tools.r8.naming.ClassNameMinifier,java.lang.String,char):360:372 -> <init>
    1:1:java.lang.String getPackageName():376:376 -> a
    2:7:com.android.tools.r8.graph.DexString nextSuggestedNameForClass(com.android.tools.r8.graph.DexType):380:385 -> a
    2:7:com.android.tools.r8.graph.DexString nextTypeName(com.android.tools.r8.graph.DexType):392 -> a
    8:9:com.android.tools.r8.graph.DexString nextTypeName(com.android.tools.r8.graph.DexType):393:394 -> a
    1:6:java.lang.String nextSuggestedNameForSubpackage():403:408 -> b
    1:6:java.lang.String nextPackagePrefix():415 -> b
    7:8:java.lang.String nextPackagePrefix():416:417 -> b
com.android.tools.r8.naming.ClassNameMinifier$PackageNamingStrategy -> com.android.tools.r8.naming.ClassNameMinifier$d:
com.android.tools.r8.naming.ClassNaming -> com.android.tools.r8.naming.d:
com.android.tools.r8.naming.ClassNaming$Builder -> com.android.tools.r8.naming.d$a:
    1:1:void <init>():16:16 -> <init>
    void addMappedRange(com.android.tools.r8.naming.Range,com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.Object,java.lang.String) -> a
    com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming) -> a
com.android.tools.r8.naming.ClassNamingForMapApplier -> com.android.tools.r8.naming.f:
    com.android.tools.r8.com.google.common.collect.ImmutableMap methodMembers -> d
    com.android.tools.r8.position.Position position -> c
    com.android.tools.r8.com.google.common.collect.ImmutableMap fieldMembers -> e
    boolean $assertionsDisabled -> f
    java.lang.String originalName -> a
    java.lang.String renamedName -> b
    1:1:void <clinit>():32:32 -> <clinit>
    1:6:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.position.Position,java.util.Map,java.util.Map):118:123 -> <init>
    1:6:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.position.Position,java.util.Map,java.util.Map,com.android.tools.r8.naming.ClassNamingForMapApplier$1):32 -> <init>
    1:1:com.android.tools.r8.naming.ClassNamingForMapApplier$Builder builder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position,com.android.tools.r8.utils.Reporter):93:93 -> a
    2:3:void forAllFieldNaming(com.android.tools.r8.utils.ThrowingConsumer):136:137 -> a
    1:2:void forAllMethodNaming(com.android.tools.r8.utils.ThrowingConsumer):144:145 -> b
    1:10:boolean equals(java.lang.Object):212:221 -> equals
    1:4:int hashCode():226:229 -> hashCode
    1:11:com.android.tools.r8.naming.MemberNaming lookup(com.android.tools.r8.naming.MemberNaming$Signature):153:163 -> lookup
com.android.tools.r8.naming.ClassNamingForMapApplier$1 -> com.android.tools.r8.naming.e:
com.android.tools.r8.naming.ClassNamingForMapApplier$Builder -> com.android.tools.r8.naming.f$a:
    com.android.tools.r8.position.Position position -> c
    com.android.tools.r8.utils.Reporter reporter -> d
    java.lang.String originalName -> a
    java.util.Map methodMembers -> e
    java.lang.String renamedName -> b
    java.util.Map fieldMembers -> f
    1:1:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.position.Position,com.android.tools.r8.utils.Reporter):42:42 -> <init>
    1:1:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.position.Position,com.android.tools.r8.utils.Reporter,com.android.tools.r8.naming.ClassNamingForMapApplier$1):34 -> <init>
    2:9:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.position.Position,com.android.tools.r8.utils.Reporter):39:46 -> <init>
    2:9:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.position.Position,com.android.tools.r8.utils.Reporter,com.android.tools.r8.naming.ClassNamingForMapApplier$1):34 -> <init>
    void addMappedRange(com.android.tools.r8.naming.Range,com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.Object,java.lang.String) -> a
    1:11:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):53:63 -> a
    12:12:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):62:62 -> a
    13:22:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):61:70 -> a
    23:23:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):69:69 -> a
    24:24:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):68:68 -> a
    25:25:com.android.tools.r8.naming.ClassNamingForMapApplier build():78:78 -> a
com.android.tools.r8.naming.ClassNamingForNameMapper -> com.android.tools.r8.naming.ClassNamingForNameMapper:
    com.android.tools.r8.com.google.common.collect.ImmutableMap fieldMembers -> c
    java.lang.String renamedName -> a
    com.android.tools.r8.com.google.common.collect.ImmutableMap methodMembers -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():28:28 -> <clinit>
    1:6:void <init>(java.lang.String,java.lang.String,java.util.Map,java.util.Map,java.util.Map):184:189 -> <init>
    1:6:void <init>(java.lang.String,java.lang.String,java.util.Map,java.util.Map,java.util.Map,com.android.tools.r8.naming.ClassNamingForNameMapper$1):28 -> <init>
    1:1:com.android.tools.r8.naming.ClassNamingForNameMapper$Builder builder(java.lang.String,java.lang.String):161:161 -> a
    2:3:void forAllFieldNaming(com.android.tools.r8.utils.ThrowingConsumer):249:250 -> a
    4:25:void write(java.io.Writer):263:284 -> a
    26:27:void lambda$write$0(java.io.Writer,com.android.tools.r8.naming.MemberNaming):271:272 -> a
    28:28:int lambda$write$1(com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange):282:282 -> a
    1:2:void forAllMemberNaming(com.android.tools.r8.utils.ThrowingConsumer):242:243 -> b
    1:2:void forAllMethodNaming(com.android.tools.r8.utils.ThrowingConsumer):257:258 -> c
    1:11:boolean equals(java.lang.Object):304:314 -> equals
    1:5:int hashCode():319:323 -> hashCode
    1:7:com.android.tools.r8.naming.MemberNaming lookup(com.android.tools.r8.naming.MemberNaming$Signature):194:200 -> lookup
    1:9:java.util.List lookupByOriginalName(java.lang.String):225:233 -> lookupByOriginalName
    1:11:com.android.tools.r8.naming.MemberNaming lookupByOriginalSignature(com.android.tools.r8.naming.MemberNaming$Signature):206:216 -> lookupByOriginalSignature
    1:5:java.lang.String toString():291:295 -> toString
com.android.tools.r8.naming.ClassNamingForNameMapper$1 -> com.android.tools.r8.naming.g:
com.android.tools.r8.naming.ClassNamingForNameMapper$Builder -> com.android.tools.r8.naming.ClassNamingForNameMapper$Builder:
    java.util.Map methodMembers -> c
    java.util.Map fieldMembers -> d
    java.lang.String originalName -> a
    java.util.Map mappedRangesByName -> e
    java.lang.String renamedName -> b
    1:1:void <init>(java.lang.String,java.lang.String):37:37 -> <init>
    1:1:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.naming.ClassNamingForNameMapper$1):30 -> <init>
    2:8:void <init>(java.lang.String,java.lang.String):33:39 -> <init>
    2:8:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.naming.ClassNamingForNameMapper$1):30 -> <init>
    1:4:com.android.tools.r8.naming.ClassNaming$Builder addMemberEntry(com.android.tools.r8.naming.MemberNaming):44:47 -> a
    5:14:com.android.tools.r8.naming.ClassNamingForNameMapper build():56:65 -> a
    15:17:void addMappedRange(com.android.tools.r8.naming.Range,com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.Object,java.lang.String):76:78 -> a
    18:18:java.util.List lambda$addMappedRange$0(java.lang.String):77:77 -> a
com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange -> com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange:
    com.android.tools.r8.naming.Range minifiedRange -> a
    boolean $assertionsDisabled -> e
    int nextSequenceNumber -> d
    java.lang.String renamedName -> b
    int sequenceNumber -> c
    1:3:void <clinit>():345:347 -> <clinit>
    1:1:void <init>(com.android.tools.r8.naming.Range,com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.Object,java.lang.String):365:365 -> <init>
    1:1:void <init>(com.android.tools.r8.naming.Range,com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.Object,java.lang.String,com.android.tools.r8.naming.ClassNamingForNameMapper$1):345 -> <init>
    2:15:void <init>(com.android.tools.r8.naming.Range,com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.Object,java.lang.String):362:375 -> <init>
    2:15:void <init>(com.android.tools.r8.naming.Range,com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.Object,java.lang.String,com.android.tools.r8.naming.ClassNamingForNameMapper$1):345 -> <init>
    1:1:int access$400(com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange):345:345 -> a
    2:2:int getNextSequenceNumber():350:350 -> a
    1:10:boolean equals(java.lang.Object):418:427 -> equals
    1:15:int getOriginalLineNumber(int):379:393 -> getOriginalLineNumber
    1:4:int hashCode():433:436 -> hashCode
    1:10:java.lang.String toString():399:408 -> toString
com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRangesOfName -> com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRangesOfName:
    java.util.List mappedRanges -> a
    1:2:void <init>(java.util.List):86:87 -> <init>
    1:1:java.util.List access$300(com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRangesOfName):83:83 -> a
    1:20:java.util.List allRangesForLine(int):118:137 -> allRangesForLine
    1:7:boolean equals(java.lang.Object):145:151 -> equals
    1:8:com.android.tools.r8.naming.ClassNamingForNameMapper$MappedRange firstRangeForLine(int):96:103 -> firstRangeForLine
    1:1:int hashCode():156:156 -> hashCode
com.android.tools.r8.naming.DictionaryReader -> com.android.tools.r8.naming.h:
    java.io.BufferedReader reader -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():16:16 -> <clinit>
    1:2:void <init>(java.nio.file.Path):20:21 -> <init>
    1:23:java.lang.String readName():25:47 -> a
    24:31:com.android.tools.r8.com.google.common.collect.ImmutableList readAllNames(java.nio.file.Path,com.android.tools.r8.utils.Reporter):59:66 -> a
    32:43:com.android.tools.r8.com.google.common.collect.ImmutableList readAllNames(java.nio.file.Path,com.android.tools.r8.utils.Reporter):60:71 -> a
    1:2:void close():52:53 -> close
com.android.tools.r8.naming.FieldNameMinifier -> com.android.tools.r8.naming.k:
    boolean $assertionsDisabled -> k
    1:1:void <clinit>():22:22 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.RootSetBuilder$RootSet,com.android.tools.r8.naming.MemberNameMinifier$MemberNamingStrategy):26:26 -> <init>
    1:6:java.util.function.Function getKeyTransform():31:36 -> a
    7:13:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(com.android.tools.r8.utils.Timing):45:51 -> a
    14:14:void com.android.tools.r8.graph.DexType.forAllInterfaces(com.android.tools.r8.graph.DexItemFactory,java.util.function.Consumer):287:287 -> a
    14:14:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(com.android.tools.r8.utils.Timing):50 -> a
    15:17:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(com.android.tools.r8.utils.Timing):52:54 -> a
    18:18:void renameFieldsInClasses():100:100 -> a
    18:18:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(com.android.tools.r8.utils.Timing):55 -> a
    19:19:void renameFieldsInInterfaces():122:122 -> a
    19:19:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(com.android.tools.r8.utils.Timing):56 -> a
    20:28:void renameFieldsInInterface(com.android.tools.r8.graph.DexType):128:136 -> a
    20:28:void renameFieldsInInterfaces():123 -> a
    20:28:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(com.android.tools.r8.utils.Timing):56 -> a
    29:34:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming computeRenaming(com.android.tools.r8.utils.Timing):57:62 -> a
    35:35:void lambda$computeRenaming$1(com.android.tools.r8.graph.DexType):51:51 -> a
    36:45:void reserveNamesInSubtypes(com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.NamingState):79:88 -> a
    46:46:com.android.tools.r8.naming.NamingState lambda$reserveNamesInSubtypes$2(com.android.tools.r8.naming.NamingState,com.android.tools.r8.graph.DexType):85:85 -> a
    47:47:void lambda$reserveNamesInSubtypes$3(com.android.tools.r8.naming.NamingState,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):87:87 -> a
    48:50:void reserveFieldName(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.naming.NamingState,boolean):93:95 -> a
    48:50:void lambda$reserveNamesInSubtypes$3(com.android.tools.r8.naming.NamingState,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):87 -> a
    51:64:void renameFieldsInSubclasses(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):104:117 -> a
    65:76:void renameField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.naming.NamingState):141:152 -> a
    77:77:void renameField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.naming.NamingState):151:151 -> a
    78:103:void renameNonReboundReference(com.android.tools.r8.graph.DexField):167:192 -> a
    104:108:void print(com.android.tools.r8.graph.DexField,com.android.tools.r8.naming.NamingState,java.io.PrintStream):197:201 -> a
    1:1:java.lang.Object lambda$getKeyTransform$0(com.android.tools.r8.graph.DexType):36:36 -> b
    2:2:void lambda$reserveNamesInSubtypes$4(com.android.tools.r8.naming.NamingState,com.android.tools.r8.graph.DexType):88:88 -> b
    3:6:void renameNonReboundReferences():158:161 -> b
    7:10:void renameNonReboundReferences():159:162 -> b
com.android.tools.r8.naming.FieldNameMinifier$1 -> com.android.tools.r8.naming.i:
com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming -> com.android.tools.r8.naming.j:
    java.util.Map renaming -> a
    1:2:void <init>(java.util.Map):69:70 -> <init>
    3:4:void <init>(java.util.Map):69:70 -> <init>
    3:4:void <init>(java.util.Map,com.android.tools.r8.naming.FieldNameMinifier$1):65 -> <init>
    1:1:com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming empty():74:74 -> a
com.android.tools.r8.naming.IdentifierMinifier -> com.android.tools.r8.naming.l:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.naming.NamingLens lens -> c
    com.android.tools.r8.shaking.ProguardClassFilter adaptClassStrings -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():35:35 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.NamingLens):41:44 -> <init>
    1:4:void run():48:51 -> a
    5:24:void adaptClassStringsInMethod(com.android.tools.r8.graph.DexEncodedMethod):76:95 -> a
    25:36:com.android.tools.r8.graph.DexString getRenamedStringLiteral(com.android.tools.r8.graph.DexString):102:113 -> a
    37:37:boolean lambda$getRenamedStringLiteral$0(java.lang.String,com.android.tools.r8.graph.DexType):106:106 -> a
    1:3:void adaptClassStrings():55:57 -> b
    4:8:void adaptClassStringsInStaticField(com.android.tools.r8.graph.DexEncodedField):66:70 -> b
    4:8:void adaptClassStrings():58 -> b
    9:9:void adaptClassStrings():60:60 -> b
    10:33:void replaceDexItemBasedConstStringInMethod(com.android.tools.r8.graph.DexEncodedMethod):148:171 -> b
    34:58:void replaceDexItemBasedConstStringInMethod(com.android.tools.r8.graph.DexEncodedMethod):167:191 -> b
    59:65:void replaceDexItemBasedConstStringInMethod(com.android.tools.r8.graph.DexEncodedMethod):187:193 -> b
    1:3:void replaceDexItemBasedConstString():120:122 -> c
    4:15:void replaceDexItemBasedConstStringInStaticField(com.android.tools.r8.graph.DexEncodedField):130:141 -> c
    4:15:void replaceDexItemBasedConstString():123 -> c
    16:22:void replaceDexItemBasedConstStringInStaticField(com.android.tools.r8.graph.DexEncodedField):137:143 -> c
    16:22:void replaceDexItemBasedConstString():123 -> c
    23:23:void replaceDexItemBasedConstString():125:125 -> c
com.android.tools.r8.naming.IdentifierNameStringMarker -> com.android.tools.r8.naming.m:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap identifierNameStrings -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():47:47 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.AppView):52:55 -> <init>
    1:2:void decoupleIdentifierNameStringsInFields():59:60 -> a
    3:14:void decoupleIdentifierNameStringInStaticField(com.android.tools.r8.graph.DexEncodedField):67:78 -> a
    3:14:void decoupleIdentifierNameStringsInFields():61 -> a
    15:199:void decoupleIdentifierNameStringsInMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):83:267 -> a
    200:209:void decoupleIdentifierNameStringsInMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):266:275 -> a
    210:210:void decoupleIdentifierNameStringsInMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):271:271 -> a
    211:218:void decoupleIdentifierNameStringsInMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):270:277 -> a
    219:275:void decoupleIdentifierNameStringsInMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.IRCode):106:162 -> a
    276:276:com.android.tools.r8.ir.code.Value lambda$decoupleIdentifierNameStringsInMethod$0(com.android.tools.r8.ir.code.Value[],com.android.tools.r8.ir.code.Value,long):268:268 -> a
    277:306:void warnUndeterminedIdentifierIfNecessary(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexType,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexString):289:318 -> a
com.android.tools.r8.naming.IdentifierNameStringUtils -> com.android.tools.r8.naming.n:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():33:33 -> <clinit>
    boolean lambda$evaluateTypeArrayContentFromConstructionToUse$0(com.android.tools.r8.ir.code.NewArrayEmpty,com.android.tools.r8.ir.code.Instruction) -> a
    1:79:boolean isReflectionMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod):53:131 -> a
    80:86:boolean isReflectionMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod):84:90 -> a
    87:137:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.ir.code.InvokeMethod):150:200 -> a
    138:176:com.android.tools.r8.graph.DexTypeList retrieveDexTypeListFromClassList(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):425:463 -> a
    138:176:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.ir.code.InvokeMethod):200 -> a
    177:183:com.android.tools.r8.graph.DexTypeList retrieveDexTypeListFromClassList(com.android.tools.r8.ir.code.InvokeMethod,com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):462:468 -> a
    177:183:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.ir.code.InvokeMethod):200 -> a
    184:184:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.ir.code.InvokeMethod):204:204 -> a
    185:189:com.android.tools.r8.graph.DexReference inferMethodInHolder(com.android.tools.r8.graph.DexClass,java.lang.String,com.android.tools.r8.graph.DexTypeList):290:294 -> a
    185:189:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.ir.code.InvokeMethod):204 -> a
    190:192:com.android.tools.r8.graph.DexReference identifyIdentifier(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.ir.code.InvokeMethod):206:208 -> a
    193:210:com.android.tools.r8.graph.DexReference inferMemberFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):230:247 -> a
    193:210:com.android.tools.r8.graph.DexReference inferMemberOrTypeFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):217 -> a
    211:212:java.lang.String com.android.tools.r8.utils.DescriptorUtils.javaTypeToDescriptorIfValidJavaType(java.lang.String):89:90 -> a
    211:212:com.android.tools.r8.graph.DexReference inferMemberFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):253 -> a
    211:212:com.android.tools.r8.graph.DexReference inferMemberOrTypeFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):217 -> a
    213:218:com.android.tools.r8.graph.DexReference inferMemberFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):257:262 -> a
    213:218:com.android.tools.r8.graph.DexReference inferMemberOrTypeFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):217 -> a
    219:221:com.android.tools.r8.graph.DexReference inferMethodNameInHolder(com.android.tools.r8.graph.DexClass,java.lang.String):280:282 -> a
    219:221:com.android.tools.r8.graph.DexReference inferMemberFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):264 -> a
    219:221:com.android.tools.r8.graph.DexReference inferMemberOrTypeFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):217 -> a
    222:222:com.android.tools.r8.graph.DexReference inferMemberOrTypeFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):220:220 -> a
    223:224:java.lang.String com.android.tools.r8.utils.DescriptorUtils.javaTypeToDescriptorIfValidJavaType(java.lang.String):89:90 -> a
    223:224:com.android.tools.r8.graph.DexReference inferMemberOrTypeFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):220 -> a
    225:225:com.android.tools.r8.graph.DexReference inferMemberOrTypeFromNameString(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexString):222:222 -> a
    226:229:com.android.tools.r8.graph.DexReference inferFieldInHolder(com.android.tools.r8.graph.DexClass,java.lang.String,com.android.tools.r8.graph.DexType):270:273 -> a
    230:273:com.android.tools.r8.graph.DexType[] evaluateTypeArrayContentFromConstructionToUse(com.android.tools.r8.ir.code.NewArrayEmpty,java.util.List,int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexItemFactory):323:366 -> a
    274:282:com.android.tools.r8.graph.DexType getTypeFromConstClassOrBoxedPrimitive(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):302:310 -> a
    274:282:com.android.tools.r8.graph.DexType[] evaluateTypeArrayContentFromConstructionToUse(com.android.tools.r8.ir.code.NewArrayEmpty,java.util.List,int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexItemFactory):366 -> a
    283:283:com.android.tools.r8.graph.DexType getTypeFromConstClassOrBoxedPrimitive(com.android.tools.r8.ir.code.Value,com.android.tools.r8.graph.DexItemFactory):309:309 -> a
    283:283:com.android.tools.r8.graph.DexType[] evaluateTypeArrayContentFromConstructionToUse(com.android.tools.r8.ir.code.NewArrayEmpty,java.util.List,int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexItemFactory):366 -> a
    284:299:com.android.tools.r8.graph.DexType[] evaluateTypeArrayContentFromConstructionToUse(com.android.tools.r8.ir.code.NewArrayEmpty,java.util.List,int,com.android.tools.r8.ir.code.Instruction,com.android.tools.r8.graph.DexItemFactory):371:386 -> a
com.android.tools.r8.naming.InterfaceMethodNameMinifier -> com.android.tools.r8.naming.o:
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> j
    com.android.tools.r8.com.google.common.base.Equivalence equivalence -> c
    com.android.tools.r8.naming.MemberNameMinifier$State minifierState -> e
    java.util.Map sourceMethodsMap -> i
    java.util.Set desugaredCallSites -> b
    java.util.Map callSiteRenamings -> f
    com.android.tools.r8.naming.MethodNameMinifier$FrontierState frontierState -> d
    java.util.Map globalStateMap -> g
    java.util.Map originStates -> h
    1:1:void <clinit>():37:37 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.com.google.common.base.Equivalence,com.android.tools.r8.naming.MethodNameMinifier$FrontierState,com.android.tools.r8.naming.MemberNameMinifier$State):64:64 -> <init>
    2:26:void <init>(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.com.google.common.base.Equivalence,com.android.tools.r8.naming.MethodNameMinifier$FrontierState,com.android.tools.r8.naming.MemberNameMinifier$State):45:69 -> <init>
    1:1:java.util.Comparator createDefaultInterfaceMethodOrdering():73:73 -> a
    2:2:int lambda$createDefaultInterfaceMethodOrdering$0(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):73:73 -> a
    3:5:void reserveNamesInInterfaces():81:83 -> a
    3:5:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing):89 -> a
    6:95:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing):94:183 -> a
    96:108:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing):182:194 -> a
    109:109:com.android.tools.r8.graph.DexString com.android.tools.r8.naming.MemberNameMinifier$State.getRenaming(java.lang.Object):76:76 -> a
    109:109:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing):194 -> a
    110:118:void assignNamesToInterfaceMethods(com.android.tools.r8.utils.Timing):195:203 -> a
    119:140:void lambda$assignNamesToInterfaceMethods$1(java.util.Map,java.util.Map,com.android.tools.r8.graph.DexCallSite):124:145 -> a
    141:141:boolean lambda$assignNamesToInterfaceMethods$3(java.util.Map,com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):168:168 -> a
    142:166:void assignNameToInterfaceMethod(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,java.util.Map):226:250 -> a
    167:199:void assignNameForInterfaceMethodInAllStates(java.util.List,java.util.Set,com.android.tools.r8.naming.MethodNameMinifier$MethodNamingState):258:290 -> a
    167:199:void assignNameToInterfaceMethod(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,java.util.Map):251 -> a
    200:200:void com.android.tools.r8.naming.MemberNameMinifier$State.putRenaming(java.lang.Object,com.android.tools.r8.graph.DexString):80:80 -> a
    200:200:void assignNameForInterfaceMethodInAllStates(java.util.List,java.util.Set,com.android.tools.r8.naming.MethodNameMinifier$MethodNamingState):290 -> a
    200:200:void assignNameToInterfaceMethod(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,java.util.Map):251 -> a
    201:204:void addStatesToGlobalMapForMethod(com.android.tools.r8.graph.DexMethod,java.util.Set,com.android.tools.r8.graph.DexType):296:299 -> a
    205:205:java.util.Set lambda$addStatesToGlobalMapForMethod$6(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):297:297 -> a
    206:212:boolean anyIsReserved(java.util.List):320:326 -> a
    213:216:boolean anyIsReserved(java.util.List):325:328 -> a
    217:217:java.lang.Boolean lambda$anyIsReserved$8(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto):326:326 -> a
    218:218:boolean com.android.tools.r8.naming.MemberNameMinifier$State.isReservedInGlobalState(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.CachedHashValueDexItem):96:96 -> a
    218:218:java.lang.Boolean lambda$anyIsReserved$8(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto):326 -> a
    219:219:java.lang.Boolean lambda$anyIsReserved$8(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto):326:326 -> a
    220:220:java.util.Set getReachableStates(com.android.tools.r8.graph.DexType):336:336 -> a
    221:221:boolean com.android.tools.r8.naming.MemberNameMinifier$State.useUniqueMemberNames():100:100 -> a
    221:221:java.util.Set getReachableStates(com.android.tools.r8.graph.DexType):336 -> a
    222:222:com.android.tools.r8.naming.NamingState com.android.tools.r8.naming.MemberNameMinifier$State.globalState():92:92 -> a
    222:222:java.util.Set getReachableStates(com.android.tools.r8.graph.DexType):337 -> a
    223:240:java.util.Set getReachableStates(com.android.tools.r8.graph.DexType):337:354 -> a
    241:244:void collectSubInterfaces(com.android.tools.r8.graph.DexType,java.util.Set):374:377 -> a
    245:254:void print(com.android.tools.r8.graph.DexMethod,java.util.Set,java.util.List,java.io.PrintStream):387:396 -> a
    255:255:void lambda$print$9(java.io.PrintStream,com.android.tools.r8.naming.MethodNameMinifier$MethodNamingState):395:395 -> a
    1:1:java.util.Map getCallSiteRenamings():77:77 -> b
    2:9:boolean propagateReservedNames(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,java.util.Map):209:216 -> b
    10:10:java.util.Set lambda$addStatesToGlobalMapForMethod$7(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):298:298 -> b
    11:17:boolean anyIsReserved(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,java.util.Map):305:311 -> b
    11:17:boolean lambda$assignNamesToInterfaceMethods$4(java.util.Map,com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):175 -> b
    18:24:void collectSuperInterfaces(com.android.tools.r8.graph.DexType,java.util.Set):361:367 -> b
    1:1:java.util.Set lambda$assignNamesToInterfaceMethods$2(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):158:158 -> c
    2:2:boolean lambda$assignNamesToInterfaceMethods$5(java.util.Map,com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):183:183 -> c
com.android.tools.r8.naming.MemberNameMinifier -> com.android.tools.r8.naming.q:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.shaking.RootSetBuilder$RootSet rootSet -> b
    java.util.Map renaming -> d
    com.android.tools.r8.naming.MemberNameMinifier$State minifierState -> i
    com.android.tools.r8.naming.NamingState globalState -> e
    java.util.List dictionary -> c
    boolean useUniqueMemberNames -> f
    boolean overloadAggressively -> g
    boolean useApplyMapping -> h
    com.android.tools.r8.com.google.common.collect.BiMap states -> j
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.RootSetBuilder$RootSet,com.android.tools.r8.naming.MemberNameMinifier$MemberNamingStrategy):42:42 -> <init>
    2:27:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.RootSetBuilder$RootSet,com.android.tools.r8.naming.MemberNameMinifier$MemberNamingStrategy):29:54 -> <init>
    28:34:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.RootSetBuilder$RootSet,com.android.tools.r8.naming.MemberNameMinifier$MemberNamingStrategy):51:57 -> <init>
    java.util.function.Function getKeyTransform() -> a
    1:1:com.android.tools.r8.com.google.common.collect.BiMap access$000(com.android.tools.r8.naming.MemberNameMinifier):23:23 -> a
    2:2:com.android.tools.r8.naming.NamingState computeStateIfAbsent(com.android.tools.r8.graph.DexType,java.util.function.Function):64:64 -> a
    3:3:boolean alwaysReserveMemberNames(com.android.tools.r8.graph.DexClass):68:68 -> a
com.android.tools.r8.naming.MemberNameMinifier$MemberNamingStrategy -> com.android.tools.r8.naming.p:
    boolean breakOnNotAvailable(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexString) -> a
    boolean bypassDictionary() -> a
    com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.NamingState$InternalState) -> a
com.android.tools.r8.naming.MemberNameMinifier$State -> com.android.tools.r8.naming.q$a:
    com.android.tools.r8.naming.MemberNameMinifier this$0 -> a
    1:1:void <init>(com.android.tools.r8.naming.MemberNameMinifier):73:73 -> <init>
    1:1:com.android.tools.r8.naming.NamingState getState(com.android.tools.r8.graph.DexType):84:84 -> a
    2:2:com.android.tools.r8.graph.DexType getStateKey(com.android.tools.r8.naming.NamingState):88:88 -> a
    3:3:boolean useUniqueMemberNames():100:100 -> a
com.android.tools.r8.naming.MemberNaming -> com.android.tools.r8.naming.MemberNaming:
    com.android.tools.r8.naming.MemberNaming$Signature signature -> a
    com.android.tools.r8.naming.MemberNaming$Signature renamedSignature -> b
    com.android.tools.r8.position.Position position -> c
    1:4:void <init>(com.android.tools.r8.naming.MemberNaming$Signature,java.lang.String,com.android.tools.r8.position.Position):63:66 -> <init>
    1:1:com.android.tools.r8.naming.MemberNaming$Signature getRenamedSignature():78:78 -> a
    1:1:boolean isMethodNaming():86:86 -> b
    1:6:boolean equals(java.lang.Object):37:42 -> equals
    1:1:com.android.tools.r8.naming.MemberNaming$Signature getOriginalSignature():70:70 -> getOriginalSignature
    1:1:java.lang.String getRenamedName():82:82 -> getRenamedName
    1:2:int hashCode():47:48 -> hashCode
    1:1:java.lang.String toString():95:95 -> toString
com.android.tools.r8.naming.MemberNaming$FieldSignature -> com.android.tools.r8.naming.MemberNaming$FieldSignature:
    1:2:void <init>(java.lang.String,java.lang.String):143:144 -> <init>
    1:3:com.android.tools.r8.naming.MemberNaming$FieldSignature fromDexField(com.android.tools.r8.graph.DexField,boolean):152:154 -> a
    4:7:com.android.tools.r8.graph.DexField toDexField(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):158:161 -> a
    8:8:com.android.tools.r8.graph.DexField toDexField(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):158:158 -> a
    9:9:com.android.tools.r8.naming.MemberNaming$Signature asRenamed(java.lang.String):166:166 -> a
    10:12:void write(java.io.Writer):198:200 -> a
    1:1:com.android.tools.r8.naming.MemberNaming$Signature$SignatureKind kind():171:171 -> b
    1:5:boolean equals(java.lang.Object):179:183 -> equals
    1:1:com.android.tools.r8.naming.MemberNaming$FieldSignature fromDexField(com.android.tools.r8.graph.DexField):148:148 -> fromDexField
    1:1:int hashCode():188:188 -> hashCode
    1:1:java.lang.String toString():193:193 -> toString
com.android.tools.r8.naming.MemberNaming$MethodSignature -> com.android.tools.r8.naming.MemberNaming$MethodSignature:
    1:3:void <init>(java.lang.String,java.lang.String,java.lang.String[]):210:212 -> <init>
    4:6:void <init>(java.lang.String,java.lang.String,java.util.Collection):216:218 -> <init>
    1:8:com.android.tools.r8.naming.MemberNaming$MethodSignature fromDexMethod(com.android.tools.r8.graph.DexMethod,boolean):226:233 -> a
    9:17:com.android.tools.r8.graph.DexMethod toDexMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):252:260 -> a
    18:18:com.android.tools.r8.graph.DexMethod toDexMethod(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):257:257 -> a
    19:19:com.android.tools.r8.naming.MemberNaming$Signature asRenamed(java.lang.String):269:269 -> a
    20:30:void write(java.io.Writer):306:316 -> a
    1:1:com.android.tools.r8.naming.MemberNaming$Signature$SignatureKind kind():274:274 -> b
    1:8:boolean equals(java.lang.Object):282:289 -> equals
    1:1:com.android.tools.r8.naming.MemberNaming$MethodSignature fromDexMethod(com.android.tools.r8.graph.DexMethod):222:222 -> fromDexMethod
    1:10:com.android.tools.r8.naming.MemberNaming$MethodSignature fromSignature(java.lang.String,java.lang.String):238:247 -> fromSignature
    1:3:int hashCode():294:296 -> hashCode
    1:1:com.android.tools.r8.naming.MemberNaming$MethodSignature initializer(java.lang.String[]):264:264 -> initializer
    1:8:java.lang.String toDescriptor():320:327 -> toDescriptor
    1:1:java.lang.String toString():301:301 -> toString
com.android.tools.r8.naming.MemberNaming$Signature -> com.android.tools.r8.naming.MemberNaming$Signature:
    1:2:void <init>(java.lang.String):102:103 -> <init>
    com.android.tools.r8.naming.MemberNaming$Signature asRenamed(java.lang.String) -> a
    void write(java.io.Writer) -> a
    1:1:boolean isQualified():118:118 -> a
    com.android.tools.r8.naming.MemberNaming$Signature$SignatureKind kind() -> b
    1:6:java.lang.String toString():123:128 -> toString
com.android.tools.r8.naming.MemberNaming$Signature$SignatureKind -> com.android.tools.r8.naming.MemberNaming$Signature$a:
    com.android.tools.r8.naming.MemberNaming$Signature$SignatureKind FIELD -> b
    com.android.tools.r8.naming.MemberNaming$Signature$SignatureKind METHOD -> a
    1:2:void <clinit>():133:134 -> <clinit>
    3:3:void <clinit>():132:132 -> <clinit>
    1:1:void <init>(java.lang.String,int):132:132 -> <init>
com.android.tools.r8.naming.MethodNameMinifier -> com.android.tools.r8.naming.s:
    boolean $assertionsDisabled -> n
    com.android.tools.r8.naming.MethodNameMinifier$FrontierState frontierState -> l
    com.android.tools.r8.naming.MemberNameMinifier$MemberNamingStrategy strategy -> m
    com.android.tools.r8.com.google.common.base.Equivalence equivalence -> k
    1:1:void <clinit>():89:89 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.RootSetBuilder$RootSet,com.android.tools.r8.naming.MemberNameMinifier$MemberNamingStrategy):98:98 -> <init>
    2:12:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.RootSetBuilder$RootSet,com.android.tools.r8.naming.MemberNameMinifier$MemberNamingStrategy):93:103 -> <init>
    java.lang.Object lambda$getKeyTransform$0(com.android.tools.r8.graph.DexProto) -> a
    1:1:com.android.tools.r8.naming.MemberNameMinifier$MemberNamingStrategy access$100(com.android.tools.r8.naming.MethodNameMinifier):89:89 -> a
    2:7:java.util.function.Function getKeyTransform():108:113 -> a
    8:8:com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming computeRenaming(java.util.Set,com.android.tools.r8.utils.Timing):136:136 -> a
    9:10:void reserveNamesInClasses():202:203 -> a
    9:10:com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming computeRenaming(java.util.Set,com.android.tools.r8.utils.Timing):137 -> a
    11:11:void reserveNamesInClasses():202:202 -> a
    11:11:com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming computeRenaming(java.util.Set,com.android.tools.r8.utils.Timing):137 -> a
    12:31:com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming computeRenaming(java.util.Set,com.android.tools.r8.utils.Timing):138:157 -> a
    32:49:void assignNamesToClassesMethods(com.android.tools.r8.graph.DexType,boolean):161:178 -> a
    50:50:com.android.tools.r8.naming.NamingState lambda$assignNamesToClassesMethods$2(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexType):166:166 -> a
    51:52:void lambda$assignNamesToClassesMethods$3(com.android.tools.r8.naming.NamingState,com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,com.android.tools.r8.graph.DexString):173:174 -> a
    53:53:void lambda$assignNamesToClassesMethods$4(boolean,com.android.tools.r8.graph.DexType):178:178 -> a
    54:62:void assignNameToMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.NamingState,java.util.Map,boolean):186:194 -> a
    63:67:void assignNameToMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.naming.NamingState,java.util.Map,boolean):193:197 -> a
    68:68:com.android.tools.r8.graph.DexString lambda$assignNameToMethod$5(com.android.tools.r8.naming.NamingState,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):196:196 -> a
    69:79:void reserveNamesInClasses(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.NamingState):208:218 -> a
    80:80:void reserveNamesInClasses(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.NamingState):217:217 -> a
    81:81:java.lang.Iterable shuffleMethods(java.lang.Iterable,com.android.tools.r8.utils.InternalOptions):338:338 -> a
    1:1:java.lang.Object lambda$getKeyTransform$1(com.android.tools.r8.graph.DexProto):113:113 -> b
com.android.tools.r8.naming.MethodNameMinifier$1 -> com.android.tools.r8.naming.r:
com.android.tools.r8.naming.MethodNameMinifier$FrontierState -> com.android.tools.r8.naming.s$a:
    java.util.Map frontiers -> a
    com.android.tools.r8.naming.MethodNameMinifier this$0 -> b
    1:1:void <clinit>():222:222 -> <clinit>
    1:3:void <init>(com.android.tools.r8.naming.MethodNameMinifier):222:224 -> <init>
    1:24:com.android.tools.r8.naming.NamingState allocateNamingStateAndReserve(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.NamingState):229:252 -> a
    25:26:void reserveNamesForMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.naming.NamingState):261:262 -> a
    25:26:com.android.tools.r8.naming.NamingState allocateNamingStateAndReserve(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.naming.NamingState):252 -> a
    27:31:com.android.tools.r8.naming.NamingState lambda$allocateNamingStateAndReserve$0(com.android.tools.r8.naming.NamingState,com.android.tools.r8.graph.DexType):237:241 -> a
    32:38:com.android.tools.r8.naming.NamingState lambda$allocateNamingStateAndReserve$0(com.android.tools.r8.naming.NamingState,com.android.tools.r8.graph.DexType):237:243 -> a
    39:39:com.android.tools.r8.graph.DexType get(com.android.tools.r8.graph.DexType):266:266 -> a
com.android.tools.r8.naming.MethodNameMinifier$MethodNamingState -> com.android.tools.r8.naming.t:
    com.android.tools.r8.graph.DexString name -> b
    com.android.tools.r8.graph.DexProto proto -> c
    boolean $assertionsDisabled -> e
    com.android.tools.r8.naming.NamingState parent -> a
    com.android.tools.r8.graph.DexMethod method -> d
    1:1:void <clinit>():280:280 -> <clinit>
    1:6:void <init>(com.android.tools.r8.naming.NamingState,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexProto):288:293 -> <init>
    1:1:com.android.tools.r8.graph.DexString assignNewName():297:297 -> a
    2:2:void addRenaming(com.android.tools.r8.graph.DexString):309:309 -> a
    3:9:void print(java.lang.String,java.util.function.Function,java.io.PrintStream):324:330 -> a
    1:1:boolean isAvailable(com.android.tools.r8.graph.DexString):305:305 -> b
    2:2:com.android.tools.r8.graph.DexString getName():313:313 -> b
    1:1:com.android.tools.r8.graph.DexProto getProto():317:317 -> c
    1:1:boolean isReserved():301:301 -> d
com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming -> com.android.tools.r8.naming.u:
    java.util.Map renaming -> a
    java.util.Map callSiteRenaming -> b
    1:3:void <init>(java.util.Map,java.util.Map):123:125 -> <init>
    4:6:void <init>(java.util.Map,java.util.Map):123:125 -> <init>
    4:6:void <init>(java.util.Map,java.util.Map,com.android.tools.r8.naming.MethodNameMinifier$1):117 -> <init>
    1:1:com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming empty():129:129 -> a
com.android.tools.r8.naming.MinifiedNameMapPrinter -> com.android.tools.r8.naming.v:
    com.android.tools.r8.graph.DexApplication application -> a
    com.android.tools.r8.naming.NamingLens namingLens -> b
    java.util.Set seenTypes -> c
    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):31:31 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):29:33 -> <init>
    1:2:java.util.List sortedCopy(java.util.List,java.util.Comparator):43:44 -> a
    3:10:void writeClass(com.android.tools.r8.graph.DexProgramClass,java.lang.StringBuilder):49:56 -> a
    11:14:void writeClass(com.android.tools.r8.graph.DexProgramClass,java.lang.StringBuilder):55:58 -> a
    15:18:void writeClass(com.android.tools.r8.graph.DexProgramClass,java.lang.StringBuilder):57:60 -> a
    19:22:void writeClass(com.android.tools.r8.graph.DexProgramClass,java.lang.StringBuilder):59:62 -> a
    23:23:void writeClass(com.android.tools.r8.graph.DexProgramClass,java.lang.StringBuilder):61:61 -> a
    24:29:void writeType(com.android.tools.r8.graph.DexType,java.lang.StringBuilder):66:71 -> a
    24:29:void lambda$write$1(java.lang.StringBuilder,com.android.tools.r8.graph.DexType):115 -> a
    30:39:void writeFields(java.util.List,java.lang.StringBuilder):76:85 -> a
    40:44:void write(java.lang.StringBuilder):111:115 -> a
    45:45:void lambda$write$0(java.lang.StringBuilder,com.android.tools.r8.graph.DexProgramClass):113:113 -> a
    1:6:void writeMethods(java.util.List,java.lang.StringBuilder):98:103 -> b
    7:10:void writeMethod(com.android.tools.r8.naming.MemberNaming$MethodSignature,java.lang.String,java.lang.StringBuilder):91:94 -> b
    7:10:void writeMethods(java.util.List,java.lang.StringBuilder):104 -> b
com.android.tools.r8.naming.MinifiedRenaming -> com.android.tools.r8.naming.w:
    java.util.Map packageRenaming -> c
    java.util.Map renaming -> d
    com.android.tools.r8.graph.AppView appView -> b
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():32:32 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming,com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming,com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming):42:42 -> <init>
    2:14:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.naming.ClassNameMinifier$ClassRenaming,com.android.tools.r8.naming.MethodNameMinifier$MethodRenaming,com.android.tools.r8.naming.FieldNameMinifier$FieldRenaming):36:48 -> <init>
    com.android.tools.r8.graph.DexItem lambda$getRenamedItems$1(com.android.tools.r8.graph.DexItem) -> a
    1:1:java.lang.String lookupPackageName(java.lang.String):53:53 -> a
    2:15:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):63:76 -> a
    16:16:com.android.tools.r8.graph.DexString lookupDescriptor(com.android.tools.r8.graph.DexType):58:58 -> a
    16:16:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):83 -> a
    17:29:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):83:95 -> a
    30:30:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):77:77 -> a
    31:31:com.android.tools.r8.graph.DexString lookupMethodName(com.android.tools.r8.graph.DexCallSite):105:105 -> a
    32:33:void forAllRenamedTypes(java.util.function.Consumer):115:116 -> a
    34:37:java.util.Map getRenamedItems(java.lang.Class,java.util.function.Predicate,java.util.function.Function):122:125 -> a
    38:38:boolean lambda$getRenamedItems$0(java.lang.Class,java.util.function.Predicate,com.android.tools.r8.graph.DexItem):123:123 -> a
    39:64:boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod):140:165 -> a
    65:75:void lambda$toString$2(java.lang.StringBuilder,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexString):173:183 -> a
    1:1:com.android.tools.r8.graph.DexString lookupDescriptor(com.android.tools.r8.graph.DexType):58:58 -> lookupDescriptor
    1:1:com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexMethod):100:100 -> lookupName
    2:2:com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexField):110:110 -> lookupName
    1:16:java.lang.String toString():170:185 -> toString
com.android.tools.r8.naming.Minifier -> com.android.tools.r8.naming.Minifier:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.shaking.RootSetBuilder$RootSet rootSet -> b
    java.util.Set desugaredCallSites -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():28:28 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.Set):35:38 -> <init>
    1:16:com.android.tools.r8.naming.NamingLens run(com.android.tools.r8.utils.Timing):42:57 -> run
    17:29:com.android.tools.r8.naming.NamingLens run(com.android.tools.r8.utils.Timing):55:67 -> run
    30:43:com.android.tools.r8.naming.NamingLens run(com.android.tools.r8.utils.Timing):66:79 -> run
com.android.tools.r8.naming.Minifier$MinificationClassNamingStrategy -> com.android.tools.r8.naming.Minifier$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap namespaceCounters -> b
    com.android.tools.r8.graph.DexItemFactory factory -> a
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory):88:88 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.DexItemFactory):86:90 -> <init>
    boolean bypassDictionary() -> a
    1:3:com.android.tools.r8.graph.DexString next(com.android.tools.r8.naming.ClassNameMinifier$Namespace,com.android.tools.r8.graph.DexType,char[]):95:97 -> a
com.android.tools.r8.naming.Minifier$MinificationPackageNamingStrategy -> com.android.tools.r8.naming.Minifier$b:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2IntMap namespaceCounters -> a
    1:1:void <init>():111:111 -> <init>
    2:5:void <init>():109:112 -> <init>
    boolean bypassDictionary() -> a
    1:2:java.lang.String next(com.android.tools.r8.naming.ClassNameMinifier$Namespace,char[]):121:122 -> a
com.android.tools.r8.naming.Minifier$MinifierMemberNamingStrategy -> com.android.tools.r8.naming.Minifier$c:
    char[] EMPTY_CHAR_ARRAY -> b
    com.android.tools.r8.graph.DexItemFactory factory -> a
    1:1:void <clinit>():133:133 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexItemFactory):137:138 -> <init>
    boolean breakOnNotAvailable(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexString) -> a
    boolean bypassDictionary() -> a
    1:2:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.NamingState$InternalState):143:144 -> a
com.android.tools.r8.naming.NamingLens -> com.android.tools.r8.naming.NamingLens:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():45:45 -> <clinit>
    1:1:void <init>():45:45 -> <init>
    boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod) -> a
    void forAllRenamedTypes(java.util.function.Consumer) -> a
    java.util.Map getRenamedItems(java.lang.Class,java.util.function.Predicate,java.util.function.Function) -> a
    com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions) -> a
    com.android.tools.r8.graph.DexString lookupMethodName(com.android.tools.r8.graph.DexCallSite) -> a
    java.lang.String lookupPackageName(java.lang.String) -> a
    1:6:com.android.tools.r8.graph.DexString lookupSimpleName(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):52:57 -> a
    7:15:com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexItemFactory):69:77 -> a
    16:19:com.android.tools.r8.graph.DexField lookupField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexItemFactory):81:84 -> a
    20:20:com.android.tools.r8.graph.DexField lookupField(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexItemFactory):81:81 -> a
    21:24:com.android.tools.r8.graph.DexMethod lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):88:91 -> a
    25:25:com.android.tools.r8.graph.DexMethod lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexItemFactory):88:88 -> a
    26:30:com.android.tools.r8.graph.DexProto lookupProto(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexItemFactory):95:99 -> a
    31:31:com.android.tools.r8.graph.DexProto lookupProto(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexItemFactory):95:95 -> a
    32:32:com.android.tools.r8.graph.DexType lambda$lookupProto$0(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):98:98 -> a
    33:33:com.android.tools.r8.graph.DexType[] lambda$lookupProto$1(int):99:99 -> a
    34:34:boolean isIdentityLens():119:119 -> a
    35:36:java.lang.String lookupInternalName(com.android.tools.r8.graph.DexType):123:124 -> a
    37:57:boolean verifyNoCollisions(java.lang.Iterable,com.android.tools.r8.graph.DexItemFactory):143:163 -> a
    1:9:com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexItemFactory):103:111 -> b
    1:1:com.android.tools.r8.naming.NamingLens getIdentityLens():115:115 -> getIdentityLens
com.android.tools.r8.naming.NamingLens$1 -> com.android.tools.r8.naming.x:
com.android.tools.r8.naming.NamingLens$IdentityLens -> com.android.tools.r8.naming.NamingLens$a:
    1:1:void <init>():171:171 -> <init>
    1:1:void <init>(com.android.tools.r8.naming.NamingLens$1):169 -> <init>
    boolean checkTargetCanBeTranslated(com.android.tools.r8.graph.DexMethod) -> a
    void forAllRenamedTypes(java.util.function.Consumer) -> a
    java.lang.String lookupPackageName(java.lang.String) -> a
    1:1:com.android.tools.r8.graph.DexString lookupInnerName(com.android.tools.r8.graph.InnerClassAttribute,com.android.tools.r8.utils.InternalOptions):182:182 -> a
    2:2:com.android.tools.r8.graph.DexString lookupMethodName(com.android.tools.r8.graph.DexCallSite):192:192 -> a
    3:3:java.util.Map getRenamedItems(java.lang.Class,java.util.function.Predicate,java.util.function.Function):213:213 -> a
    1:1:com.android.tools.r8.graph.DexString lookupDescriptor(com.android.tools.r8.graph.DexType):177:177 -> lookupDescriptor
    1:1:com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexMethod):187:187 -> lookupName
    2:2:com.android.tools.r8.graph.DexString lookupName(com.android.tools.r8.graph.DexField):197:197 -> lookupName
com.android.tools.r8.naming.NamingState -> com.android.tools.r8.naming.z:
    java.util.Map usedNames -> b
    com.android.tools.r8.graph.DexItemFactory itemFactory -> c
    java.util.List dictionary -> d
    com.android.tools.r8.naming.NamingState parent -> a
    java.util.function.Function keyTransform -> e
    boolean useUniqueMemberNames -> g
    boolean $assertionsDisabled -> h
    com.android.tools.r8.naming.MemberNameMinifier$MemberNamingStrategy strategy -> f
    1:1:void <clinit>():28:28 -> <clinit>
    1:1:void <init>(com.android.tools.r8.naming.NamingState,com.android.tools.r8.graph.DexItemFactory,java.util.List,java.util.function.Function,com.android.tools.r8.naming.MemberNameMinifier$MemberNamingStrategy,boolean):54:54 -> <init>
    2:31:void <init>(com.android.tools.r8.naming.NamingState,com.android.tools.r8.graph.DexItemFactory,java.util.List,java.util.function.Function,com.android.tools.r8.naming.MemberNameMinifier$MemberNamingStrategy,boolean):31:60 -> <init>
    1:1:boolean access$300(com.android.tools.r8.naming.NamingState):28:28 -> a
    2:2:com.android.tools.r8.naming.NamingState createRoot(com.android.tools.r8.graph.DexItemFactory,java.util.List,java.util.function.Function,com.android.tools.r8.naming.MemberNameMinifier$MemberNamingStrategy,boolean):44:44 -> a
    3:3:com.android.tools.r8.naming.NamingState createChild():64:64 -> a
    4:6:com.android.tools.r8.naming.NamingState$InternalState findInternalStateFor(java.lang.Object):69:71 -> a
    7:7:com.android.tools.r8.graph.DexString assignNewNameFor(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.CachedHashValueDexItem,boolean):97:97 -> a
    8:12:com.android.tools.r8.graph.DexString getAssignedNameFor(com.android.tools.r8.graph.DexString,java.lang.Object):88:92 -> a
    8:12:com.android.tools.r8.graph.DexString assignNewNameFor(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.CachedHashValueDexItem,boolean):98 -> a
    13:14:com.android.tools.r8.graph.DexString assignNewNameFor(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.CachedHashValueDexItem,boolean):100:101 -> a
    15:20:boolean isReserved(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.CachedHashValueDexItem):113:118 -> a
    21:23:void addRenaming(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.CachedHashValueDexItem,com.android.tools.r8.graph.DexString):137:139 -> a
    24:38:void printState(com.android.tools.r8.graph.CachedHashValueDexItem,java.util.function.Function,java.lang.String,java.io.PrintStream):147:161 -> a
    1:1:com.android.tools.r8.naming.MemberNameMinifier$MemberNamingStrategy access$400(com.android.tools.r8.naming.NamingState):28:28 -> b
    2:6:com.android.tools.r8.naming.NamingState$InternalState getOrCreateInternalStateFor(java.lang.Object):78:82 -> b
    7:9:void reserveName(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.CachedHashValueDexItem):107:109 -> b
    10:16:boolean isAvailable(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.CachedHashValueDexItem,com.android.tools.r8.graph.DexString):122:128 -> b
    17:19:boolean isAvailable(com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.CachedHashValueDexItem,com.android.tools.r8.graph.DexString):127:129 -> b
    1:1:com.android.tools.r8.naming.NamingState access$500(com.android.tools.r8.naming.NamingState):28:28 -> c
com.android.tools.r8.naming.NamingState$1 -> com.android.tools.r8.naming.y:
com.android.tools.r8.naming.NamingState$InternalState -> com.android.tools.r8.naming.z$a:
    java.util.Iterator dictionaryIterator -> f
    java.util.Set reservedNames -> c
    com.android.tools.r8.naming.NamingState this$0 -> g
    com.android.tools.r8.naming.NamingState$InternalState parentInternalState -> b
    boolean $assertionsDisabled -> h
    com.android.tools.r8.com.google.common.collect.Table renamings -> d
    int nameCount -> e
    com.android.tools.r8.graph.DexItemFactory itemFactory -> a
    1:1:void <clinit>():165:165 -> <clinit>
    1:1:void <init>(com.android.tools.r8.naming.NamingState,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.naming.NamingState$InternalState,java.util.List):189:189 -> <init>
    1:1:void <init>(com.android.tools.r8.naming.NamingState,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.naming.NamingState$InternalState,java.util.List,com.android.tools.r8.naming.NamingState$1):165 -> <init>
    2:2:void <init>(com.android.tools.r8.naming.NamingState,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.naming.NamingState$InternalState,java.util.Iterator):179:179 -> <init>
    2:2:void <init>(com.android.tools.r8.naming.NamingState,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.naming.NamingState$InternalState,java.util.List):189 -> <init>
    2:2:void <init>(com.android.tools.r8.naming.NamingState,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.naming.NamingState$InternalState,java.util.List,com.android.tools.r8.naming.NamingState$1):165 -> <init>
    3:16:void <init>(com.android.tools.r8.naming.NamingState,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.naming.NamingState$InternalState,java.util.Iterator):171:184 -> <init>
    3:16:void <init>(com.android.tools.r8.naming.NamingState,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.naming.NamingState$InternalState,java.util.List):189 -> <init>
    3:16:void <init>(com.android.tools.r8.naming.NamingState,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.naming.NamingState$InternalState,java.util.List,com.android.tools.r8.naming.NamingState$1):165 -> <init>
    1:1:boolean access$100(com.android.tools.r8.naming.NamingState$InternalState,com.android.tools.r8.graph.DexString):165:165 -> a
    2:5:void reserveName(com.android.tools.r8.graph.DexString):204:207 -> a
    6:6:int incrementAndGet():211:211 -> a
    7:14:com.android.tools.r8.graph.DexString getAssignedNameFor(com.android.tools.r8.graph.DexString,java.lang.Object):216:223 -> a
    15:15:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.getOnlyElement(java.lang.Iterable,java.lang.Object):280:280 -> a
    15:15:com.android.tools.r8.graph.DexString getAssignedNameFor(com.android.tools.r8.graph.DexString,java.lang.Object):224 -> a
    16:16:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterators.getOnlyElement(java.util.Iterator,java.lang.Object):341:341 -> a
    16:16:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.getOnlyElement(java.lang.Iterable,java.lang.Object):280 -> a
    16:16:com.android.tools.r8.graph.DexString getAssignedNameFor(com.android.tools.r8.graph.DexString,java.lang.Object):224 -> a
    17:24:com.android.tools.r8.graph.DexString getAssignedNameFor(com.android.tools.r8.graph.DexString,java.lang.Object):224:231 -> a
    25:25:com.android.tools.r8.graph.DexString getNameFor(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexString,java.lang.Object,boolean):238:238 -> a
    26:29:com.android.tools.r8.graph.DexString nextSuggestedName(com.android.tools.r8.graph.DexReference):259:262 -> a
    26:29:com.android.tools.r8.graph.DexString getNameFor(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexString,java.lang.Object,boolean):243 -> a
    30:32:com.android.tools.r8.graph.DexString getNameFor(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexString,java.lang.Object,boolean):244:246 -> a
    33:36:void addRenaming(com.android.tools.r8.graph.DexString,java.lang.Object,com.android.tools.r8.graph.DexString):252:255 -> a
    37:45:void printInternalState(com.android.tools.r8.naming.NamingState,java.util.function.Function,java.lang.String,java.io.PrintStream):271:279 -> a
    46:56:void printLastName(java.lang.String,java.io.PrintStream):290:300 -> a
    46:56:void printInternalState(com.android.tools.r8.naming.NamingState,java.util.function.Function,java.lang.String,java.io.PrintStream):279 -> a
    57:57:void printInternalState(com.android.tools.r8.naming.NamingState,java.util.function.Function,java.lang.String,java.io.PrintStream):280:280 -> a
    58:67:void printReservedNames(java.lang.String,java.io.PrintStream):304:313 -> a
    58:67:void printInternalState(com.android.tools.r8.naming.NamingState,java.util.function.Function,java.lang.String,java.io.PrintStream):280 -> a
    68:77:void printReservedNames(java.lang.String,java.io.PrintStream):307:316 -> a
    68:77:void printInternalState(com.android.tools.r8.naming.NamingState,java.util.function.Function,java.lang.String,java.io.PrintStream):280 -> a
    78:78:void printInternalState(com.android.tools.r8.naming.NamingState,java.util.function.Function,java.lang.String,java.io.PrintStream):281:281 -> a
    79:93:void printRenamings(java.lang.String,java.io.PrintStream):320:334 -> a
    79:93:void printInternalState(com.android.tools.r8.naming.NamingState,java.util.function.Function,java.lang.String,java.io.PrintStream):281 -> a
    94:109:void printRenamings(java.lang.String,java.io.PrintStream):323:338 -> a
    94:109:void printInternalState(com.android.tools.r8.naming.NamingState,java.util.function.Function,java.lang.String,java.io.PrintStream):281 -> a
    110:112:void printInternalState(com.android.tools.r8.naming.NamingState,java.util.function.Function,java.lang.String,java.io.PrintStream):283:285 -> a
    113:113:void printInternalState(com.android.tools.r8.naming.NamingState,java.util.function.Function,java.lang.String,java.io.PrintStream):284:284 -> a
    1:1:boolean access$200(com.android.tools.r8.naming.NamingState$InternalState,com.android.tools.r8.graph.DexString):165:165 -> b
    2:4:boolean isAvailable(com.android.tools.r8.graph.DexString):198:200 -> b
    1:2:boolean isReserved(com.android.tools.r8.graph.DexString):193:194 -> c
com.android.tools.r8.naming.ProguardMap -> com.android.tools.r8.naming.B:
com.android.tools.r8.naming.ProguardMap$Builder -> com.android.tools.r8.naming.A:
    1:1:void <init>():11:11 -> <init>
com.android.tools.r8.naming.ProguardMapError -> com.android.tools.r8.naming.C:
    1:1:void <init>(java.lang.String,com.android.tools.r8.position.Position):21:21 -> <init>
    1:1:com.android.tools.r8.naming.ProguardMapError duplicateSourceClass(java.lang.String,com.android.tools.r8.position.Position):25:25 -> a
    2:3:com.android.tools.r8.naming.ProguardMapError duplicateSourceMember(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):30:31 -> a
    4:5:com.android.tools.r8.naming.ProguardMapError duplicateTargetClass(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.position.Position):36:37 -> a
    6:7:com.android.tools.r8.naming.ProguardMapError duplicateTargetSignature(com.android.tools.r8.naming.MemberNaming$Signature,com.android.tools.r8.naming.MemberNaming$Signature,java.lang.String,com.android.tools.r8.position.Position):42:43 -> a
com.android.tools.r8.naming.ProguardMapMinifier -> com.android.tools.r8.naming.D:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.shaking.RootSetBuilder$RootSet rootSet -> b
    com.android.tools.r8.naming.SeedMapper seedMapper -> c
    java.util.Set desugaredCallSites -> d
    boolean $assertionsDisabled -> e
    1:1:void <clinit>():38:38 -> <clinit>
    1:5:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.RootSetBuilder$RootSet,com.android.tools.r8.naming.SeedMapper,java.util.Set):49:53 -> <init>
    1:36:com.android.tools.r8.naming.NamingLens run(com.android.tools.r8.utils.Timing):57:92 -> a
    37:37:com.android.tools.r8.naming.NamingLens run(com.android.tools.r8.utils.Timing):91:91 -> a
    38:100:com.android.tools.r8.naming.NamingLens run(com.android.tools.r8.utils.Timing):90:152 -> a
    101:106:void lambda$run$0(com.android.tools.r8.graph.DexType,java.util.Map,com.android.tools.r8.naming.MemberNaming):98:103 -> a
    1:6:void lambda$run$1(com.android.tools.r8.graph.DexType,java.util.Map,com.android.tools.r8.naming.MemberNaming):107:112 -> b
com.android.tools.r8.naming.ProguardMapMinifier$ApplyMappingClassNamingStrategy -> com.android.tools.r8.naming.D$a:
    java.util.Map mappings -> a
    1:2:void <init>(java.util.Map):161:162 -> <init>
    boolean bypassDictionary() -> a
    1:1:com.android.tools.r8.graph.DexString next(com.android.tools.r8.naming.ClassNameMinifier$Namespace,com.android.tools.r8.graph.DexType,char[]):167:167 -> a
com.android.tools.r8.naming.ProguardMapMinifier$ApplyMappingMemberNamingStrategy -> com.android.tools.r8.naming.E:
    java.util.Map mappedNames -> a
    com.android.tools.r8.graph.DexItemFactory factory -> b
    boolean $assertionsDisabled -> d
    com.android.tools.r8.utils.Reporter reporter -> c
    1:1:void <clinit>():176:176 -> <clinit>
    1:4:void <init>(java.util.Map,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):183:186 -> <init>
    boolean bypassDictionary() -> a
    1:7:com.android.tools.r8.graph.DexString next(com.android.tools.r8.graph.DexReference,com.android.tools.r8.naming.NamingState$InternalState):191:197 -> a
    8:14:boolean breakOnNotAvailable(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexString):210:216 -> a
    15:15:boolean breakOnNotAvailable(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexString):213:213 -> a
    16:16:boolean breakOnNotAvailable(com.android.tools.r8.graph.DexReference,com.android.tools.r8.graph.DexString):212:212 -> a
com.android.tools.r8.naming.ProguardMapReader -> com.android.tools.r8.naming.G:
    java.io.BufferedReader reader -> a
    boolean $assertionsDisabled -> f
    int lineNo -> b
    int lineOffset -> c
    java.util.HashMap cache -> e
    java.lang.String line -> d
    1:1:void <clinit>():54:54 -> <clinit>
    1:283:void <init>(java.io.BufferedReader):65:347 -> <init>
    284:284:void <init>(java.io.BufferedReader):66:66 -> <init>
    1:1:int access$000(com.android.tools.r8.naming.ProguardMapReader):54:54 -> a
    2:3:char peekChar(int):79:80 -> a
    4:4:boolean hasNext():85:85 -> a
    4:4:char expect(char):149 -> a
    5:6:char expect(char):152:153 -> a
    7:7:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):474:474 -> a
    7:7:char expect(char):153 -> a
    8:8:char expect(char):153:153 -> a
    9:9:char expect(char):150:150 -> a
    10:14:boolean isEmptyOrCommentLine(java.lang.String):117:121 -> a
    15:17:void parse(com.android.tools.r8.naming.ProguardMap$Builder):161:163 -> a
    18:27:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):170:179 -> a
    18:27:void parse(com.android.tools.r8.naming.ProguardMap$Builder):164 -> a
    28:33:boolean acceptString(java.lang.String):427:432 -> a
    28:33:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):179 -> a
    28:33:void parse(com.android.tools.r8.naming.ProguardMap$Builder):164 -> a
    34:36:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):182:184 -> a
    34:36:void parse(com.android.tools.r8.naming.ProguardMap$Builder):164 -> a
    37:39:boolean acceptArrow():417:419 -> a
    37:39:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):185 -> a
    37:39:void parse(com.android.tools.r8.naming.ProguardMap$Builder):164 -> a
    40:45:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):187:192 -> a
    40:45:void parse(com.android.tools.r8.naming.ProguardMap$Builder):164 -> a
    46:58:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):214:226 -> a
    46:58:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):193 -> a
    46:58:void parse(com.android.tools.r8.naming.ProguardMap$Builder):164 -> a
    59:60:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):222:223 -> a
    59:60:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):193 -> a
    59:60:void parse(com.android.tools.r8.naming.ProguardMap$Builder):164 -> a
    61:61:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):474:474 -> a
    61:61:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):223 -> a
    61:61:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):193 -> a
    61:61:void parse(com.android.tools.r8.naming.ProguardMap$Builder):164 -> a
    62:62:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):223:223 -> a
    62:62:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):193 -> a
    62:62:void parse(com.android.tools.r8.naming.ProguardMap$Builder):164 -> a
    63:84:com.android.tools.r8.naming.MemberNaming$Signature parseSignature():385:406 -> a
    63:84:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):228 -> a
    63:84:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):193 -> a
    63:84:void parse(com.android.tools.r8.naming.ProguardMap$Builder):164 -> a
    85:90:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):229:234 -> a
    85:90:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):193 -> a
    85:90:void parse(com.android.tools.r8.naming.ProguardMap$Builder):164 -> a
    91:91:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):474:474 -> a
    91:91:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):234 -> a
    91:91:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):193 -> a
    91:91:void parse(com.android.tools.r8.naming.ProguardMap$Builder):164 -> a
    92:95:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):234:237 -> a
    92:95:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):193 -> a
    92:95:void parse(com.android.tools.r8.naming.ProguardMap$Builder):164 -> a
    96:97:void skipArrow():412:413 -> a
    96:97:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):238 -> a
    96:97:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):193 -> a
    96:97:void parse(com.android.tools.r8.naming.ProguardMap$Builder):164 -> a
    98:146:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):239:287 -> a
    98:146:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):193 -> a
    98:146:void parse(com.android.tools.r8.naming.ProguardMap$Builder):164 -> a
    147:147:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):281:281 -> a
    147:147:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):193 -> a
    147:147:void parse(com.android.tools.r8.naming.ProguardMap$Builder):164 -> a
    148:148:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):474:474 -> a
    148:148:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):281 -> a
    148:148:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):193 -> a
    148:148:void parse(com.android.tools.r8.naming.ProguardMap$Builder):164 -> a
    149:173:void parseMemberMappings(com.android.tools.r8.naming.ClassNaming$Builder):281:305 -> a
    149:173:void parseClassMappings(com.android.tools.r8.naming.ProguardMap$Builder):193 -> a
    149:173:void parse(com.android.tools.r8.naming.ProguardMap$Builder):164 -> a
    174:174:com.android.tools.r8.position.TextPosition getPosition():312:312 -> a
    175:187:java.lang.String parseType(boolean):369:381 -> a
    boolean isSimpleDigit(char) -> b
    1:1:int access$100(com.android.tools.r8.naming.ProguardMapReader):54:54 -> b
    2:2:boolean hasLine():138:138 -> b
    3:12:void skipIdentifier(boolean):319:328 -> b
    13:13:boolean com.android.tools.r8.utils.IdentifierUtils.isDexIdentifierStart(int):10:10 -> b
    13:13:void skipIdentifier(boolean):328 -> b
    14:15:void skipIdentifier(boolean):329:330 -> b
    16:16:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):474:474 -> b
    16:16:void skipIdentifier(boolean):330 -> b
    17:28:void skipIdentifier(boolean):330:341 -> b
    29:29:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):474:474 -> b
    29:29:void skipIdentifier(boolean):341 -> b
    30:30:void skipIdentifier(boolean):341:341 -> b
    31:31:void skipIdentifier(boolean):335:335 -> b
    32:36:java.lang.String substring(int):350:354 -> b
    1:10:java.lang.Object maybeParseRangeOrInt():442:451 -> c
    1:2:void close():60:61 -> close
    1:3:char nextChar():100:102 -> d
    4:4:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):474:474 -> d
    4:4:char nextChar():102 -> d
    5:5:char nextChar():102:102 -> d
    1:5:int nextCodePoint():90:94 -> e
    6:6:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):474:474 -> e
    6:6:int nextCodePoint():94 -> e
    7:7:int nextCodePoint():94:94 -> e
    1:4:boolean nextLine():107:110 -> f
    5:5:boolean nextLine():108:108 -> f
    6:6:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):474:474 -> f
    6:6:boolean nextLine():108 -> f
    7:7:boolean nextLine():108:108 -> f
    1:7:java.lang.String parseMethodName():359:365 -> g
    1:7:int parseNumber():456:462 -> h
    8:8:int parseNumber():457:457 -> h
    9:9:void com.android.tools.r8.naming.ProguardMapReader$ParseException.<init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String):474:474 -> h
    9:9:int parseNumber():457 -> h
    10:10:int parseNumber():457:457 -> h
    1:1:int peekCodePoint():75:75 -> i
    1:6:boolean skipLine():129:134 -> j
    1:2:void skipWhitespace():143:144 -> k
com.android.tools.r8.naming.ProguardMapReader$ParseException -> com.android.tools.r8.naming.F:
    int lineOffset -> b
    boolean eol -> c
    int lineNo -> a
    java.lang.String msg -> d
    1:5:void <init>(com.android.tools.r8.naming.ProguardMapReader,java.lang.String,boolean):477:481 -> <init>
    1:4:java.lang.String toString():486:489 -> toString
com.android.tools.r8.naming.ProguardMapSupplier -> com.android.tools.r8.naming.ProguardMapSupplier:
    com.android.tools.r8.naming.ClassNameMapper classNameMapper -> b
    java.lang.Integer minApiLevel -> e
    com.android.tools.r8.naming.NamingLens namingLens -> c
    boolean $assertionsDisabled -> f
    boolean useClassNameMapper -> a
    com.android.tools.r8.graph.DexApplication application -> d
    1:10:void <clinit>():17:26 -> <clinit>
    1:6:void <init>(boolean,com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.InternalOptions):54:59 -> <init>
    1:1:com.android.tools.r8.naming.ProguardMapSupplier fromClassNameMapper(com.android.tools.r8.naming.ClassNameMapper,com.android.tools.r8.utils.InternalOptions):30:30 -> a
    2:2:boolean lambda$getProguardMapAndId$0(int):76:76 -> a
    3:23:java.lang.String getBody():105:125 -> a
    3:23:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():69 -> a
    24:24:java.lang.String getBody():123:123 -> a
    24:24:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():69 -> a
    25:51:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():70:96 -> a
    52:58:com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId getProguardMapAndId():95:101 -> a
com.android.tools.r8.naming.ProguardMapSupplier$ProguardMapAndId -> com.android.tools.r8.naming.ProguardMapSupplier$a:
    java.lang.String map -> a
    java.lang.String id -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():38:38 -> <clinit>
    1:4:void <init>(java.lang.String,java.lang.String):42:45 -> <init>
com.android.tools.r8.naming.Range -> com.android.tools.r8.naming.Range:
    int to -> b
    int from -> a
    1:3:void <init>(int,int):12:14 -> <init>
    1:1:boolean contains(int):18:18 -> a
    1:6:boolean equals(java.lang.Object):31:36 -> equals
    1:2:int hashCode():41:42 -> hashCode
    1:1:java.lang.String toString():23:23 -> toString
com.android.tools.r8.naming.SeedMapper -> com.android.tools.r8.naming.SeedMapper:
    com.android.tools.r8.com.google.common.collect.ImmutableMap mappings -> a
    com.android.tools.r8.utils.Reporter reporter -> b
    1:8:void <init>(java.util.Map,com.android.tools.r8.utils.Reporter):87:94 -> <init>
    1:8:void <init>(java.util.Map,com.android.tools.r8.utils.Reporter,com.android.tools.r8.naming.SeedMapper$1):36 -> <init>
    1:8:void lambda$verifyMappingsAreConflictFree$0(java.util.Map,com.android.tools.r8.naming.MemberNaming):113:120 -> a
    9:9:void lambda$verifyMappingsAreConflictFree$0(java.util.Map,com.android.tools.r8.naming.MemberNaming):117:117 -> a
    10:10:void lambda$verifyMappingsAreConflictFree$0(java.util.Map,com.android.tools.r8.naming.MemberNaming):116:116 -> a
    11:11:java.util.Set getKeyset():139:139 -> a
    12:12:com.android.tools.r8.naming.ClassNamingForMapApplier getMapping(java.lang.String):143:143 -> a
    1:10:void verifyMappingsAreConflictFree():98:107 -> b
    11:11:void verifyMappingsAreConflictFree():104:104 -> b
    12:20:void verifyMappingsAreConflictFree():103:111 -> b
    21:22:void com.android.tools.r8.naming.ClassNamingForMapApplier.forAllMemberNaming(com.android.tools.r8.utils.ThrowingConsumer):129:130 -> b
    21:22:void verifyMappingsAreConflictFree():111 -> b
    23:23:void verifyMappingsAreConflictFree():125:125 -> b
    1:1:com.android.tools.r8.naming.SeedMapper seedMapperFromFile(com.android.tools.r8.utils.Reporter,java.nio.file.Path):81:81 -> seedMapperFromFile
    2:3:com.android.tools.r8.naming.SeedMapper seedMapperFromInputStream(com.android.tools.r8.utils.Reporter,java.io.InputStream):72:73 -> seedMapperFromFile
    2:3:com.android.tools.r8.naming.SeedMapper seedMapperFromFile(com.android.tools.r8.utils.Reporter,java.nio.file.Path):81 -> seedMapperFromFile
    4:4:com.android.tools.r8.naming.SeedMapper$Builder builder(com.android.tools.r8.utils.Reporter):67:67 -> seedMapperFromFile
    4:4:com.android.tools.r8.naming.SeedMapper seedMapperFromInputStream(com.android.tools.r8.utils.Reporter,java.io.InputStream):74 -> seedMapperFromFile
    4:4:com.android.tools.r8.naming.SeedMapper seedMapperFromFile(com.android.tools.r8.utils.Reporter,java.nio.file.Path):81 -> seedMapperFromFile
    5:7:com.android.tools.r8.naming.SeedMapper seedMapperFromInputStream(com.android.tools.r8.utils.Reporter,java.io.InputStream):75:77 -> seedMapperFromFile
    5:7:com.android.tools.r8.naming.SeedMapper seedMapperFromFile(com.android.tools.r8.utils.Reporter,java.nio.file.Path):81 -> seedMapperFromFile
    8:12:com.android.tools.r8.naming.SeedMapper seedMapperFromInputStream(com.android.tools.r8.utils.Reporter,java.io.InputStream):73:77 -> seedMapperFromFile
    8:12:com.android.tools.r8.naming.SeedMapper seedMapperFromFile(com.android.tools.r8.utils.Reporter,java.nio.file.Path):81 -> seedMapperFromFile
com.android.tools.r8.naming.SeedMapper$1 -> com.android.tools.r8.naming.H:
com.android.tools.r8.naming.SeedMapper$Builder -> com.android.tools.r8.naming.SeedMapper$a:
    java.util.Map map -> a
    com.android.tools.r8.utils.Reporter reporter -> b
    1:1:void <init>(com.android.tools.r8.utils.Reporter):42:42 -> <init>
    1:1:void <init>(com.android.tools.r8.utils.Reporter,com.android.tools.r8.naming.SeedMapper$1):38 -> <init>
    2:6:void <init>(com.android.tools.r8.utils.Reporter):39:43 -> <init>
    2:6:void <init>(com.android.tools.r8.utils.Reporter,com.android.tools.r8.naming.SeedMapper$1):38 -> <init>
    1:2:com.android.tools.r8.naming.SeedMapper build():61:62 -> build
    1:4:com.android.tools.r8.naming.ClassNamingForMapApplier$Builder classNamingBuilder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):49:52 -> classNamingBuilder
    1:4:com.android.tools.r8.naming.ClassNaming$Builder classNamingBuilder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):38 -> classNamingBuilder
    5:8:com.android.tools.r8.naming.ClassNamingForMapApplier$Builder classNamingBuilder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):51:54 -> classNamingBuilder
    5:8:com.android.tools.r8.naming.ClassNaming$Builder classNamingBuilder(java.lang.String,java.lang.String,com.android.tools.r8.position.Position):38 -> classNamingBuilder
com.android.tools.r8.naming.SourceFileRewriter -> com.android.tools.r8.naming.I:
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():22:22 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.AppView):26:27 -> <init>
    1:14:void run():31:44 -> a
    15:33:void lambda$run$2(com.android.tools.r8.graph.DexEncodedMethod):46:64 -> a
    34:34:boolean lambda$run$0(com.android.tools.r8.graph.DexDebugEvent):61:61 -> a
    35:35:com.android.tools.r8.graph.DexDebugEvent[] lambda$run$1(int):62:62 -> a
com.android.tools.r8.naming.signature.GenericSignatureParser -> com.android.tools.r8.naming.signature.GenericSignatureParser:
    com.android.tools.r8.naming.signature.GenericSignatureAction actions -> a
    char[] buffer -> e
    int pos -> f
    boolean $assertionsDisabled -> g
    char symbol -> b
    java.lang.String identifier -> c
    boolean eof -> d
    1:1:void <clinit>():51:51 -> <clinit>
    1:2:void <init>(com.android.tools.r8.naming.signature.GenericSignatureAction):73:74 -> <init>
    1:6:void setInput(java.lang.String):126:131 -> a
    7:14:void parseClassSignature():141:148 -> a
    15:21:void expect(char):376:382 -> a
    22:22:void expect(char):377:377 -> a
    23:25:void parseError(java.lang.String,int):441:443 -> a
    1:12:void parseOptFormalTypeParameters():155:166 -> b
    1:17:void updateFormalTypeParameter():172:188 -> c
    1:30:void parseClassTypeSignature():215:244 -> d
    1:15:void parseFieldTypeSignature():194:208 -> e
    16:16:void parseFieldTypeSignature():205:205 -> e
    17:17:void parseFieldTypeSignature():196:196 -> e
    1:11:void parseMethodTypeSignature():316:326 -> f
    12:16:void updateReturnType():347:351 -> f
    12:16:void parseMethodTypeSignature():328 -> f
    17:28:void parseMethodTypeSignature():330:341 -> f
    1:23:void scanIdentifier():402:424 -> g
    24:35:void scanIdentifier():417:428 -> g
    36:36:void parseError():437:437 -> g
    36:36:void scanIdentifier():429 -> g
    37:37:void scanIdentifier():432:432 -> g
    1:11:void scanSymbol():361:371 -> h
    1:11:void updateOptTypeArguments():249:259 -> i
    1:13:void updateTypeArgument():265:277 -> j
    1:15:void updateTypeSignature():295:309 -> k
    16:17:void updateTypeSignature():304:305 -> k
    1:9:void updateTypeVariableSignature():283:291 -> l
    1:11:void parseClassSignature(java.lang.String):79:89 -> parseClassSignature
    12:12:void parseClassSignature(java.lang.String):84:84 -> parseClassSignature
    1:11:void parseFieldSignature(java.lang.String):111:121 -> parseFieldSignature
    12:12:void parseFieldSignature(java.lang.String):116:116 -> parseFieldSignature
    1:11:void parseMethodSignature(java.lang.String):95:105 -> parseMethodSignature
    12:12:void parseMethodSignature(java.lang.String):100:100 -> parseMethodSignature
com.android.tools.r8.naming.signature.GenericSignatureRewriter -> com.android.tools.r8.naming.signature.b:
    java.util.Map renaming -> b
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> d
    com.android.tools.r8.utils.Reporter reporter -> c
    1:1:void <clinit>():29:29 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView):36:36 -> <init>
    2:5:void <init>(com.android.tools.r8.graph.AppView,java.util.Map):40:43 -> <init>
    1:1:com.android.tools.r8.graph.AppView access$100(com.android.tools.r8.naming.signature.GenericSignatureRewriter):29:29 -> a
    2:21:void run():47:66 -> a
    22:22:void lambda$run$0(com.android.tools.r8.graph.DexClass,java.lang.String,java.lang.reflect.GenericSignatureFormatError):57:57 -> a
    23:24:void lambda$run$2(com.android.tools.r8.naming.signature.GenericSignatureParser,com.android.tools.r8.naming.signature.GenericSignatureRewriter$GenericSignatureCollector,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):60:61 -> a
    25:25:void lambda$run$1(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexClass,java.lang.String,java.lang.reflect.GenericSignatureFormatError):65:65 -> a
    26:27:void lambda$run$4(com.android.tools.r8.naming.signature.GenericSignatureParser,com.android.tools.r8.naming.signature.GenericSignatureRewriter$GenericSignatureCollector,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):68:69 -> a
    28:28:void lambda$run$3(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,java.lang.String,java.lang.reflect.GenericSignatureFormatError):73:73 -> a
    29:58:com.android.tools.r8.graph.DexAnnotationSet rewriteGenericSignatures(com.android.tools.r8.graph.DexAnnotationSet,java.util.function.Consumer,java.util.function.Supplier,java.util.function.BiConsumer):85:114 -> a
    59:77:void parseError(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.origin.Origin,java.lang.String,java.lang.reflect.GenericSignatureFormatError):119:137 -> a
    1:1:java.util.Map access$200(com.android.tools.r8.naming.signature.GenericSignatureRewriter):29:29 -> b
    1:1:com.android.tools.r8.utils.Reporter access$300(com.android.tools.r8.naming.signature.GenericSignatureRewriter):29:29 -> c
com.android.tools.r8.naming.signature.GenericSignatureRewriter$1 -> com.android.tools.r8.naming.signature.a:
com.android.tools.r8.naming.signature.GenericSignatureRewriter$GenericSignatureCollector -> com.android.tools.r8.naming.signature.b$a:
    java.lang.StringBuilder renamedSignature -> a
    com.android.tools.r8.naming.signature.GenericSignatureRewriter this$0 -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():140:140 -> <clinit>
    1:1:void <init>(com.android.tools.r8.naming.signature.GenericSignatureRewriter):140:140 -> <init>
    1:1:void <init>(com.android.tools.r8.naming.signature.GenericSignatureRewriter,com.android.tools.r8.naming.signature.GenericSignatureRewriter$1):140 -> <init>
    1:1:java.lang.String getRenamedSignature():144:144 -> a
    1:1:void parsedIdentifier(java.lang.String):154:154 -> parsedIdentifier
    1:1:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):140:140 -> parsedInnerTypeName
    2:9:com.android.tools.r8.graph.DexType parsedInnerTypeName(com.android.tools.r8.graph.DexType,java.lang.String):171:178 -> parsedInnerTypeName
    2:9:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):140 -> parsedInnerTypeName
    10:10:com.android.tools.r8.graph.DexType parsedInnerTypeName(com.android.tools.r8.graph.DexType,java.lang.String):177:177 -> parsedInnerTypeName
    10:10:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):140 -> parsedInnerTypeName
    11:18:com.android.tools.r8.graph.DexType parsedInnerTypeName(com.android.tools.r8.graph.DexType,java.lang.String):176:183 -> parsedInnerTypeName
    11:18:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):140 -> parsedInnerTypeName
    19:34:com.android.tools.r8.graph.DexType parsedInnerTypeName(com.android.tools.r8.graph.DexType,java.lang.String):182:197 -> parsedInnerTypeName
    19:34:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):140 -> parsedInnerTypeName
    35:44:com.android.tools.r8.graph.DexType parsedInnerTypeName(com.android.tools.r8.graph.DexType,java.lang.String):194:203 -> parsedInnerTypeName
    35:44:java.lang.Object parsedInnerTypeName(java.lang.Object,java.lang.String):140 -> parsedInnerTypeName
    1:1:void parsedSymbol(char):149:149 -> parsedSymbol
    1:7:com.android.tools.r8.graph.DexType parsedTypeName(java.lang.String):159:165 -> parsedTypeName
    1:7:java.lang.Object parsedTypeName(java.lang.String):140 -> parsedTypeName
    1:1:void start():210:210 -> start
com.android.tools.r8.optimize.ClassAndMemberPublicizer -> com.android.tools.r8.g.a:
    com.android.tools.r8.graph.DexApplication application -> a
    com.android.tools.r8.shaking.RootSetBuilder$RootSet rootSet -> c
    com.android.tools.r8.ir.optimize.MethodPoolCollection methodPoolCollection -> d
    com.android.tools.r8.optimize.PublicizerLense$PublicizedLenseBuilder lenseBuilder -> e
    com.android.tools.r8.graph.AppView appView -> b
    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.RootSetBuilder$RootSet):33:33 -> <init>
    2:9:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.RootSetBuilder$RootSet):30:37 -> <init>
    1:1:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.RootSetBuilder$RootSet):53:53 -> a
    2:6:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):59:63 -> a
    7:7:void com.android.tools.r8.graph.DexType.forAllInterfaces(com.android.tools.r8.graph.DexItemFactory,java.util.function.Consumer):287:287 -> a
    7:7:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):63 -> a
    8:11:com.android.tools.r8.graph.GraphLense run(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):64:67 -> a
    12:27:void publicizeType(com.android.tools.r8.graph.DexType):71:86 -> a
    28:28:void lambda$publicizeType$0(com.android.tools.r8.graph.DexEncodedField):74:74 -> a
    29:73:boolean publicizeMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):90:134 -> a
    29:73:void lambda$publicizeType$1(com.android.tools.r8.graph.DexClass,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):77 -> a
    74:74:boolean publicizeMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):95:95 -> a
    74:74:void lambda$publicizeType$1(com.android.tools.r8.graph.DexClass,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):77 -> a
    75:75:void lambda$publicizeType$1(com.android.tools.r8.graph.DexClass,java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):78:78 -> a
com.android.tools.r8.optimize.InvokeSingleTargetExtractor -> com.android.tools.r8.g.c:
    com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind kind -> c
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.DexMethod target -> d
    1:1:void <clinit>():12:12 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory):17:17 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.DexItemFactory):13:13 -> <init>
    1:7:boolean setTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind):21:27 -> a
    8:8:com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind getKind():42:42 -> a
    9:9:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):52:52 -> a
    10:10:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):77:77 -> a
    1:1:com.android.tools.r8.graph.DexMethod getTarget():38:38 -> b
    2:2:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):62:62 -> b
    3:3:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):72:72 -> b
    1:1:boolean invalid():33:33 -> c
    2:2:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):57:57 -> c
    3:3:boolean registerNewInstance(com.android.tools.r8.graph.DexType):82:82 -> c
    4:4:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):87:87 -> c
    1:1:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):67:67 -> d
    2:2:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):92:92 -> d
    3:3:boolean registerTypeReference(com.android.tools.r8.graph.DexType):97:97 -> d
    1:1:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):47:47 -> e
com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind -> com.android.tools.r8.g.b:
    com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind ILLEGAL -> d
    com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind NONE -> e
    com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind STATIC -> b
    com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind SUPER -> c
    com.android.tools.r8.optimize.InvokeSingleTargetExtractor$InvokeKind VIRTUAL -> a
    1:5:void <clinit>():101:105 -> <clinit>
    6:6:void <clinit>():100:100 -> <clinit>
    1:1:void <init>(java.lang.String,int):100:100 -> <init>
com.android.tools.r8.optimize.MemberRebindingAnalysis -> com.android.tools.r8.g.d:
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.optimize.MemberRebindingLense$Builder builder -> d
    com.android.tools.r8.utils.InternalOptions options -> c
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.GraphLense lense -> b
    1:1:void <clinit>():30:30 -> <clinit>
    1:6:void <init>(com.android.tools.r8.graph.AppView):38:43 -> <init>
    1:13:com.android.tools.r8.graph.DexMethod validTargetFor(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):47:59 -> a
    14:31:com.android.tools.r8.graph.DexType firstLibraryClassForInterfaceTarget(java.lang.Object,com.android.tools.r8.graph.DexType,java.util.function.BiFunction):80:97 -> a
    32:37:com.android.tools.r8.graph.DexType firstLibraryClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):104:109 -> a
    38:38:com.android.tools.r8.graph.DexEncodedMethod anyLookup(com.android.tools.r8.graph.DexMethod):121:121 -> a
    39:53:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):128:142 -> a
    54:57:boolean needsBridgeForInterfaceMethod(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.ir.code.Invoke$Type):172:175 -> a
    54:57:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):148 -> a
    58:58:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):151:151 -> a
    59:65:com.android.tools.r8.graph.DexEncodedMethod insertBridgeForInterfaceMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexClass,java.util.function.Function):192:198 -> a
    59:65:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):150 -> a
    66:67:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):157:158 -> a
    68:76:com.android.tools.r8.graph.DexEncodedMethod insertBridgeForVisibilityIfNeeded(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,java.util.function.Function):241:249 -> a
    68:76:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):161 -> a
    77:77:void computeMethodRebinding(java.util.Map,java.util.function.Function,com.android.tools.r8.ir.code.Invoke$Type):165:165 -> a
    78:78:boolean lambda$computeMethodRebinding$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):159:159 -> a
    79:90:boolean mayNeedBridgeForVisibility(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):216:227 -> a
    79:90:boolean lambda$computeMethodRebinding$0(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):159 -> a
    91:100:com.android.tools.r8.graph.DexProgramClass findHolderForInterfaceMethodBridge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType):203:212 -> a
    101:123:com.android.tools.r8.graph.DexProgramClass findHolderForVisibilityBridge(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,java.lang.String):257:279 -> a
    124:139:void computeFieldRebinding(java.util.Map,java.util.function.BiFunction,java.util.function.BiFunction):288:303 -> a
    140:151:com.android.tools.r8.graph.DexField validTargetFor(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField,java.util.function.BiFunction):64:75 -> a
    140:151:void computeFieldRebinding(java.util.Map,java.util.function.BiFunction,java.util.function.BiFunction):304 -> a
    152:152:void computeFieldRebinding(java.util.Map,java.util.function.BiFunction,java.util.function.BiFunction):304:304 -> a
    153:153:void computeFieldRebinding(java.util.Map,java.util.function.BiFunction,java.util.function.BiFunction):303:303 -> a
    154:154:boolean lambda$computeFieldRebinding$1(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexEncodedMethod):298:298 -> a
    155:166:boolean isMemberVisibleFromOriginalContext(com.android.tools.r8.graph.DexDefinitionSupplier,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AccessFlags):314:325 -> a
    167:175:java.util.Map mergeFieldAccessContexts(java.util.Map,java.util.Map):331:339 -> a
    176:189:com.android.tools.r8.graph.GraphLense run():343:356 -> a
    190:194:com.android.tools.r8.graph.GraphLense run():355:359 -> a
    195:199:com.android.tools.r8.graph.GraphLense run():358:362 -> a
    1:1:com.android.tools.r8.graph.DexEncodedMethod classLookup(com.android.tools.r8.graph.DexMethod):113:113 -> b
    1:1:com.android.tools.r8.graph.DexEncodedMethod interfaceLookup(com.android.tools.r8.graph.DexMethod):117:117 -> c
com.android.tools.r8.optimize.MemberRebindingLense -> com.android.tools.r8.g.e:
    com.android.tools.r8.graph.AppView appView -> k
    1:7:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,java.util.Map,com.android.tools.r8.graph.GraphLense):44:50 -> <init>
    8:16:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,java.util.Map,com.android.tools.r8.graph.GraphLense):43:51 -> <init>
    1:1:com.android.tools.r8.optimize.MemberRebindingLense$Builder builder(com.android.tools.r8.graph.AppView):55:55 -> a
    1:1:com.android.tools.r8.ir.code.Invoke$Type mapInvocationType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):60:60 -> b
com.android.tools.r8.optimize.MemberRebindingLense$Builder -> com.android.tools.r8.g.e$a:
    com.android.tools.r8.graph.AppView appView -> f
    boolean $assertionsDisabled -> g
    1:1:void <clinit>():19:19 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.AppView):23:24 -> <init>
    1:5:com.android.tools.r8.graph.GraphLense build(com.android.tools.r8.graph.GraphLense):28:32 -> a
com.android.tools.r8.optimize.PublicizerLense -> com.android.tools.r8.g.h:
    boolean $assertionsDisabled -> m
    com.android.tools.r8.graph.AppView appView -> k
    java.util.Set publicizedMethods -> l
    1:1:void <clinit>():17:17 -> <clinit>
    1:7:void <init>(com.android.tools.r8.graph.AppView,java.util.Set):24:30 -> <init>
    1:7:void <init>(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.optimize.PublicizerLense$1):17 -> <init>
    8:17:void <init>(com.android.tools.r8.graph.AppView,java.util.Set):23:32 -> <init>
    8:17:void <init>(com.android.tools.r8.graph.AppView,java.util.Set,com.android.tools.r8.optimize.PublicizerLense$1):17 -> <init>
    1:5:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):44:48 -> a
    6:13:boolean publicizedMethodIsPresentOnHolder(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):55:62 -> a
    6:13:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):48 -> a
    14:16:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):49:51 -> a
    boolean isLegitimateToHaveEmptyMappings() -> d
    1:1:com.android.tools.r8.optimize.PublicizerLense$PublicizedLenseBuilder createBuilder():67:67 -> e
com.android.tools.r8.optimize.PublicizerLense$1 -> com.android.tools.r8.g.f:
com.android.tools.r8.optimize.PublicizerLense$PublicizedLenseBuilder -> com.android.tools.r8.g.g:
    java.util.Set publicizedMethods -> a
    1:1:void <init>():73:73 -> <init>
    1:1:void <init>(com.android.tools.r8.optimize.PublicizerLense$1):70 -> <init>
    2:2:void <init>():71:71 -> <init>
    2:2:void <init>(com.android.tools.r8.optimize.PublicizerLense$1):70 -> <init>
    1:4:com.android.tools.r8.graph.GraphLense build(com.android.tools.r8.graph.AppView):77:80 -> a
    5:5:void add(com.android.tools.r8.graph.DexMethod):84:84 -> a
com.android.tools.r8.optimize.VisibilityBridgeRemover -> com.android.tools.r8.g.i:
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():18:18 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.AppView):22:23 -> <init>
    1:1:com.android.tools.r8.graph.DexEncodedMethod[] removeUnneededVisibilityBridges(java.util.List):39:39 -> a
    2:22:boolean isUnneededVisibilityBridge(com.android.tools.r8.graph.DexEncodedMethod):57:77 -> a
    2:22:com.android.tools.r8.graph.DexEncodedMethod[] removeUnneededVisibilityBridges(java.util.List):40 -> a
    23:32:com.android.tools.r8.graph.DexEncodedMethod[] removeUnneededVisibilityBridges(java.util.List):42:51 -> a
    33:33:boolean lambda$removeUnneededVisibilityBridges$0(java.util.Set,com.android.tools.r8.graph.DexEncodedMethod):50:50 -> a
    34:34:com.android.tools.r8.graph.DexEncodedMethod[] lambda$removeUnneededVisibilityBridges$1(int):51:51 -> a
    35:35:void run():93:93 -> a
    36:42:void removeUnneededVisibilityBridgesFromClass(com.android.tools.r8.graph.DexProgramClass):27:33 -> a
    36:42:void run():94 -> a
com.android.tools.r8.org.objectweb.asm.AnnotationVisitor -> com.android.tools.r8.h.a.a.a:
    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor av -> a
    1:1:void <init>(int):57:57 -> <init>
    2:10:void <init>(int,com.android.tools.r8.org.objectweb.asm.AnnotationVisitor):69:77 -> <init>
    1:2:void visit(java.lang.String,java.lang.Object):92:93 -> a
    3:4:void visitEnum(java.lang.String,java.lang.String,java.lang.String):105:106 -> a
    5:6:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,java.lang.String):120:121 -> a
    7:8:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitArray(java.lang.String):138:139 -> a
    9:10:void visitEnd():146:147 -> a
com.android.tools.r8.org.objectweb.asm.AnnotationWriter -> com.android.tools.r8.h.a.a.b:
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter nextAnnotation -> h
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter previousAnnotation -> g
    com.android.tools.r8.org.objectweb.asm.SymbolTable symbolTable -> b
    int numElementValuePairs -> f
    com.android.tools.r8.org.objectweb.asm.ByteVector annotation -> d
    int numElementValuePairsOffset -> e
    boolean useNamedValues -> c
    1:9:void <init>(com.android.tools.r8.org.objectweb.asm.SymbolTable,boolean,com.android.tools.r8.org.objectweb.asm.ByteVector,com.android.tools.r8.org.objectweb.asm.AnnotationWriter):115:123 -> <init>
    10:10:void <init>(com.android.tools.r8.org.objectweb.asm.SymbolTable,com.android.tools.r8.org.objectweb.asm.ByteVector,com.android.tools.r8.org.objectweb.asm.AnnotationWriter):142:142 -> <init>
    1:68:void visit(java.lang.String,java.lang.Object):153:220 -> a
    69:75:void visitEnum(java.lang.String,java.lang.String,java.lang.String):228:234 -> a
    76:82:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,java.lang.String):241:247 -> a
    83:95:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitArray(java.lang.String):254:266 -> a
    96:99:void visitEnd():271:274 -> a
    100:112:void putAnnotations(int,com.android.tools.r8.org.objectweb.asm.ByteVector):322:334 -> a
    113:115:int computeParameterAnnotationsSize(java.lang.String,com.android.tools.r8.org.objectweb.asm.AnnotationWriter[],int):363:365 -> a
    116:139:void putParameterAnnotations(int,com.android.tools.r8.org.objectweb.asm.AnnotationWriter[],int,com.android.tools.r8.org.objectweb.asm.ByteVector):391:414 -> a
    1:8:int computeAnnotationsSize(java.lang.String):294:301 -> b
com.android.tools.r8.org.objectweb.asm.Attribute -> com.android.tools.r8.h.a.a.d:
    byte[] content -> b
    java.lang.String type -> a
    com.android.tools.r8.org.objectweb.asm.Attribute nextAttribute -> c
    1:2:void <init>(java.lang.String):64:65 -> <init>
    1:3:com.android.tools.r8.org.objectweb.asm.Attribute read(com.android.tools.r8.org.objectweb.asm.ClassReader,int,int,char[],int,com.android.tools.r8.org.objectweb.asm.Label[]):128:130 -> a
    4:4:int getAttributeCount():172:172 -> a
    5:5:int computeAttributesSize(com.android.tools.r8.org.objectweb.asm.SymbolTable):191:191 -> a
    6:10:int computeAttributesSize(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int):218:222 -> a
    11:11:com.android.tools.r8.org.objectweb.asm.ByteVector write(com.android.tools.r8.org.objectweb.asm.ClassWriter,byte[],int,int,int):159:159 -> a
    11:11:int computeAttributesSize(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int):223 -> a
    12:12:void com.android.tools.r8.org.objectweb.asm.ByteVector.<init>(byte[]):65:65 -> a
    12:12:com.android.tools.r8.org.objectweb.asm.ByteVector write(com.android.tools.r8.org.objectweb.asm.ClassWriter,byte[],int,int,int):159 -> a
    12:12:int computeAttributesSize(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int):223 -> a
    13:13:int computeAttributesSize(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int):224:224 -> a
    14:14:void putAttributes(com.android.tools.r8.org.objectweb.asm.SymbolTable,com.android.tools.r8.org.objectweb.asm.ByteVector):242:242 -> a
    15:15:void putAttributes(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int,com.android.tools.r8.org.objectweb.asm.ByteVector):269:269 -> a
    16:16:com.android.tools.r8.org.objectweb.asm.ByteVector write(com.android.tools.r8.org.objectweb.asm.ClassWriter,byte[],int,int,int):159:159 -> a
    16:16:void putAttributes(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int,com.android.tools.r8.org.objectweb.asm.ByteVector):273 -> a
    17:17:void com.android.tools.r8.org.objectweb.asm.ByteVector.<init>(byte[]):65:65 -> a
    17:17:com.android.tools.r8.org.objectweb.asm.ByteVector write(com.android.tools.r8.org.objectweb.asm.ClassWriter,byte[],int,int,int):159 -> a
    17:17:void putAttributes(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int,com.android.tools.r8.org.objectweb.asm.ByteVector):273 -> a
    18:20:void putAttributes(com.android.tools.r8.org.objectweb.asm.SymbolTable,byte[],int,int,int,com.android.tools.r8.org.objectweb.asm.ByteVector):275:277 -> a
    boolean isCodeAttribute() -> b
com.android.tools.r8.org.objectweb.asm.Attribute$Set -> com.android.tools.r8.h.a.a.c:
    com.android.tools.r8.org.objectweb.asm.Attribute[] data -> b
    int size -> a
    1:6:void <init>():282:287 -> <init>
    1:2:com.android.tools.r8.org.objectweb.asm.Attribute[] toArray():300:301 -> a
    3:4:boolean contains(com.android.tools.r8.org.objectweb.asm.Attribute):306:307 -> a
    3:4:void addAttributes(com.android.tools.r8.org.objectweb.asm.Attribute):292 -> a
    5:10:void add(com.android.tools.r8.org.objectweb.asm.Attribute):315:320 -> a
    5:10:void addAttributes(com.android.tools.r8.org.objectweb.asm.Attribute):293 -> a
    11:11:void addAttributes(com.android.tools.r8.org.objectweb.asm.Attribute):295:295 -> a
com.android.tools.r8.org.objectweb.asm.ByteVector -> com.android.tools.r8.h.a.a.e:
    byte[] data -> a
    int length -> b
    1:2:void <init>():45:46 -> <init>
    3:4:void <init>(int):54:55 -> <init>
    1:6:com.android.tools.r8.org.objectweb.asm.ByteVector putByte(int):75:80 -> a
    7:14:com.android.tools.r8.org.objectweb.asm.ByteVector put11(int,int):92:99 -> a
    15:24:com.android.tools.r8.org.objectweb.asm.ByteVector put112(int,int,int):152:161 -> a
    25:40:com.android.tools.r8.org.objectweb.asm.ByteVector putLong(long):216:231 -> a
    41:65:com.android.tools.r8.org.objectweb.asm.ByteVector putUTF8(java.lang.String):243:267 -> a
    66:66:com.android.tools.r8.org.objectweb.asm.ByteVector putUTF8(java.lang.String):245:245 -> a
    67:105:com.android.tools.r8.org.objectweb.asm.ByteVector encodeUTF8(java.lang.String,int,int):284:322 -> a
    106:106:com.android.tools.r8.org.objectweb.asm.ByteVector encodeUTF8(java.lang.String,int,int):297:297 -> a
    107:113:com.android.tools.r8.org.objectweb.asm.ByteVector putByteArray(byte[],int,int):338:344 -> a
    1:9:com.android.tools.r8.org.objectweb.asm.ByteVector put12(int,int):130:138 -> b
    10:19:com.android.tools.r8.org.objectweb.asm.ByteVector putInt(int):172:181 -> b
    20:30:com.android.tools.r8.org.objectweb.asm.ByteVector put122(int,int,int):195:205 -> b
    1:8:com.android.tools.r8.org.objectweb.asm.ByteVector putShort(int):110:117 -> c
    1:5:void enlarge(int):354:358 -> d
com.android.tools.r8.org.objectweb.asm.ClassReader -> com.android.tools.r8.h.a.a.f:
    byte[] b -> a
    java.lang.Object[] cpInfoValues -> c
    int[] cpInfoOffsets -> b
    int[] bootstrapMethodOffsets -> d
    int header -> f
    int maxStringLength -> e
    1:1:void <init>(byte[]):146:146 -> <init>
    2:2:void <init>(byte[],int,int):158:158 -> <init>
    2:2:void <init>(byte[]):146 -> <init>
    3:63:void <init>(byte[],int,boolean):170:230 -> <init>
    64:114:void <init>(byte[],int,boolean):211:261 -> <init>
    1:115:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):412:526 -> a
    116:122:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):525:531 -> a
    123:123:void readModule(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,int,java.lang.String):707:707 -> a
    123:123:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):536 -> a
    124:124:java.lang.String readStringish(int,char[]):3445:3445 -> a
    124:124:java.lang.String readModule(int,char[]):3473 -> a
    124:124:void readModule(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,int,java.lang.String):711 -> a
    124:124:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):536 -> a
    125:226:void readModule(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,int,java.lang.String):712:813 -> a
    125:226:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):536 -> a
    227:250:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):541:564 -> a
    251:270:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):563:582 -> a
    271:292:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):581:602 -> a
    293:318:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):601:626 -> a
    319:359:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):625:665 -> a
    360:370:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):661:671 -> a
    371:458:int readField(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):826:913 -> a
    371:458:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):674 -> a
    459:478:int readField(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):912:931 -> a
    459:478:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):674 -> a
    479:500:int readField(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):930:951 -> a
    479:500:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):674 -> a
    501:526:int readField(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):950:975 -> a
    501:526:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):674 -> a
    527:549:int readField(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):974:996 -> a
    527:549:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):674 -> a
    550:550:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):676:676 -> a
    551:658:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1010:1117 -> a
    551:658:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):679 -> a
    659:681:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1113:1135 -> a
    659:681:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):679 -> a
    682:703:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1129:1150 -> a
    682:703:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):679 -> a
    704:731:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1148:1175 -> a
    704:731:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):679 -> a
    732:751:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1174:1193 -> a
    732:751:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):679 -> a
    752:773:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1192:1213 -> a
    752:773:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):679 -> a
    774:799:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1212:1237 -> a
    774:799:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):679 -> a
    800:843:int readMethod(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1236:1279 -> a
    800:843:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):679 -> a
    844:844:void accept(com.android.tools.r8.org.objectweb.asm.ClassVisitor,com.android.tools.r8.org.objectweb.asm.Attribute[],int):683:683 -> a
    845:1146:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1300:1601 -> a
    1147:1200:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1503:1556 -> a
    1201:1206:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1538:1543 -> a
    1207:1478:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1482:1753 -> a
    1479:1534:void computeImplicitFrame(com.android.tools.r8.org.objectweb.asm.Context):2962:3017 -> a
    1479:1534:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1755 -> a
    1535:1553:void computeImplicitFrame(com.android.tools.r8.org.objectweb.asm.Context):2995:3013 -> a
    1535:1553:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1755 -> a
    1554:1554:void computeImplicitFrame(com.android.tools.r8.org.objectweb.asm.Context):2989:2989 -> a
    1554:1554:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1755 -> a
    1555:1561:void computeImplicitFrame(com.android.tools.r8.org.objectweb.asm.Context):2986:2992 -> a
    1555:1561:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1755 -> a
    1562:1562:void computeImplicitFrame(com.android.tools.r8.org.objectweb.asm.Context):2983:2983 -> a
    1562:1562:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1755 -> a
    1563:1634:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1765:1836 -> a
    1635:1635:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1829:1829 -> a
    1636:1711:int readStackMapFrame(int,boolean,boolean,com.android.tools.r8.org.objectweb.asm.Context):3043:3118 -> a
    1636:1711:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1849 -> a
    1712:1712:int readStackMapFrame(int,boolean,boolean,com.android.tools.r8.org.objectweb.asm.Context):3115:3115 -> a
    1712:1712:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1849 -> a
    1713:2116:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1858:2261 -> a
    2117:2117:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2106:2106 -> a
    2118:2118:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2105:2105 -> a
    2119:2130:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2083:2094 -> a
    2131:2131:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2086:2086 -> a
    2132:2132:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2051:2051 -> a
    2133:2341:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2049:2257 -> a
    2342:2342:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2256:2256 -> a
    2343:2346:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2115:2118 -> a
    2347:2477:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2117:2247 -> a
    2478:2493:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2223:2238 -> a
    2494:2504:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2202:2212 -> a
    2505:2515:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2147:2157 -> a
    2516:2525:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2130:2139 -> a
    2526:2526:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2044:2044 -> a
    2527:2735:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2043:2251 -> a
    2736:2736:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2022:2022 -> a
    2737:2929:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1998:2190 -> a
    2930:2931:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2184:2185 -> a
    2932:2932:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2184:2184 -> a
    2933:2933:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2180:2180 -> a
    2934:2934:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2176:2176 -> a
    2935:3239:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):1974:2278 -> a
    3240:3269:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2277:2306 -> a
    3270:3341:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2305:2376 -> a
    3342:3371:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2375:2404 -> a
    3372:3398:void readCode(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int):2403:2429 -> a
    3399:3399:void createDebugLabel(int,com.android.tools.r8.org.objectweb.asm.Label[]):2473:2473 -> a
    3400:3403:com.android.tools.r8.org.objectweb.asm.Label readLabel(int,com.android.tools.r8.org.objectweb.asm.Label[]):2443:2446 -> a
    3400:3403:void createDebugLabel(int,com.android.tools.r8.org.objectweb.asm.Label[]):2474 -> a
    3404:3404:void createDebugLabel(int,com.android.tools.r8.org.objectweb.asm.Label[]):2474:2474 -> a
    3405:3410:int getTypeAnnotationBytecodeOffset(int[],int):2601:2606 -> a
    3411:3469:int readTypeAnnotationTarget(com.android.tools.r8.org.objectweb.asm.Context,int):2622:2680 -> a
    3470:3516:int readTypeAnnotationTarget(com.android.tools.r8.org.objectweb.asm.Context,int):2639:2685 -> a
    3517:3530:void readParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,boolean):2708:2721 -> a
    3531:3531:void readParameterAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,boolean):2720:2720 -> a
    3532:3549:int readElementValues(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,boolean,char[]):2750:2767 -> a
    3550:3556:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2789:2795 -> a
    3557:3710:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2793:2946 -> a
    3711:3718:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2834:2841 -> a
    3719:3742:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2838:2861 -> a
    3743:3821:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2860:2938 -> a
    3822:3822:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2937:2937 -> a
    3823:3860:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2876:2913 -> a
    3861:3881:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2900:2920 -> a
    3882:3893:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2919:2930 -> a
    3894:3898:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2929:2933 -> a
    3899:3904:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2892:2897 -> a
    3905:3910:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2868:2873 -> a
    3911:3913:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2826:2828 -> a
    3914:3914:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2826:2826 -> a
    3915:3916:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2820:2821 -> a
    3917:3917:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2820:2820 -> a
    3918:3918:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2816:2816 -> a
    3919:3919:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2815:2815 -> a
    3920:3921:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2807:2808 -> a
    3922:3922:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2807:2807 -> a
    3923:3924:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2802:2803 -> a
    3925:3974:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2802:2851 -> a
    3975:3975:int readElementValue(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,int,java.lang.String,char[]):2850:2850 -> a
    3976:4008:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3143:3175 -> a
    4009:4009:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3171:3171 -> a
    4010:4010:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3167:3167 -> a
    4011:4011:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3164:3164 -> a
    4012:4012:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3161:3161 -> a
    4013:4013:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3158:3158 -> a
    4014:4014:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3155:3155 -> a
    4015:4015:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3152:3152 -> a
    4016:4016:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3149:3149 -> a
    4017:4017:int readVerificationTypeInfo(int,java.lang.Object[],int,char[],com.android.tools.r8.org.objectweb.asm.Label[]):3146:3146 -> a
    4018:4047:int getFirstAttributeOffset():3188:3217 -> a
    4048:4054:com.android.tools.r8.org.objectweb.asm.Attribute readAttribute(com.android.tools.r8.org.objectweb.asm.Attribute[],java.lang.String,int,int,char[],int,com.android.tools.r8.org.objectweb.asm.Label[]):3251:3257 -> a
    4055:4055:int getItem(int):3283:3283 -> a
    4056:4072:java.lang.String readUTF(int,int,char[]):3411:3427 -> a
    4073:4073:java.lang.String readStringish(int,char[]):3445:3445 -> a
    4073:4073:java.lang.String readClass(int,char[]):3459 -> a
    1:4:com.android.tools.r8.org.objectweb.asm.Label readLabel(int,com.android.tools.r8.org.objectweb.asm.Label[]):2443:2446 -> b
    1:4:com.android.tools.r8.org.objectweb.asm.Label createLabel(int,com.android.tools.r8.org.objectweb.asm.Label[]):2459 -> b
    5:5:com.android.tools.r8.org.objectweb.asm.Label createLabel(int,com.android.tools.r8.org.objectweb.asm.Label[]):2460:2460 -> b
    6:59:int[] readTypeAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,boolean):2501:2554 -> b
    60:112:int[] readTypeAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,boolean):2517:2569 -> b
    113:127:int[] readTypeAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.Context,int,boolean):2568:2582 -> b
    128:128:int getItemCount():3270:3270 -> b
    129:129:int readByte(int):3305:3305 -> b
    130:159:java.lang.Object readConst(int,char[]):3536:3565 -> b
    160:177:com.android.tools.r8.org.objectweb.asm.ConstantDynamic readConstantDynamic(int,char[]):3501:3518 -> b
    160:177:java.lang.Object readConst(int,char[]):3563 -> b
    178:188:java.lang.Object readConst(int,char[]):3551:3561 -> b
    189:189:java.lang.Object readConst(int,char[]):3549:3549 -> b
    190:190:java.lang.Object readConst(int,char[]):3547:3547 -> b
    191:191:java.lang.Object readConst(int,char[]):3545:3545 -> b
    192:192:java.lang.Object readConst(int,char[]):3543:3543 -> b
    193:193:java.lang.Object readConst(int,char[]):3541:3541 -> b
    194:194:java.lang.Object readConst(int,char[]):3539:3539 -> b
    1:1:int getMaxStringLength():3294:3294 -> c
    2:3:int readInt(int):3340:3341 -> c
    4:4:java.lang.String readStringish(int,char[]):3445:3445 -> c
    4:4:java.lang.String readModule(int,char[]):3473 -> c
    1:2:long readLong(int):3355:3356 -> d
    3:3:java.lang.String readStringish(int,char[]):3445:3445 -> d
    3:3:java.lang.String readPackage(int,char[]):3487 -> d
    1:2:short readShort(int):3328:3329 -> e
    3:9:java.lang.String readUTF(int,char[]):3388:3394 -> e
    1:2:int readUnsignedShort(int):3316:3317 -> f
    3:7:java.lang.String readUTF8(int,char[]):3371:3375 -> f
com.android.tools.r8.org.objectweb.asm.ClassTooLargeException -> com.android.tools.r8.h.a.a.g:
    1:1:void <init>(java.lang.String,int):48:48 -> <init>
com.android.tools.r8.org.objectweb.asm.ClassVisitor -> com.android.tools.r8.h.a.a.h:
    com.android.tools.r8.org.objectweb.asm.ClassVisitor cv -> b
    int api -> a
    1:9:void <init>(int,com.android.tools.r8.org.objectweb.asm.ClassVisitor):70:78 -> <init>
    1:9:void <init>(int):58 -> <init>
    com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]) -> a
    1:2:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):104:105 -> a
    3:4:void visitSource(java.lang.String,java.lang.String):118:119 -> a
    5:9:com.android.tools.r8.org.objectweb.asm.ModuleVisitor visitModule(java.lang.String,int,java.lang.String):134:138 -> a
    10:10:com.android.tools.r8.org.objectweb.asm.ModuleVisitor visitModule(java.lang.String,int,java.lang.String):135:135 -> a
    11:15:void visitNestHostExperimental(java.lang.String):157:161 -> a
    16:16:void visitNestHostExperimental(java.lang.String):158:158 -> a
    17:18:void visitOuterClass(java.lang.String,java.lang.String,java.lang.String):176:177 -> a
    19:20:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):190:191 -> a
    21:25:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):213:217 -> a
    26:26:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):214:214 -> a
    27:28:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):228:229 -> a
    29:30:void visitInnerClass(java.lang.String,java.lang.String,java.lang.String,int):269:270 -> a
    31:32:com.android.tools.r8.org.objectweb.asm.FieldVisitor visitField(int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):298:299 -> a
    33:34:void visitEnd():337:338 -> a
    1:5:void visitNestMemberExperimental(java.lang.String):247:251 -> b
    6:6:void visitNestMemberExperimental(java.lang.String):248:248 -> b
com.android.tools.r8.org.objectweb.asm.ClassWriter -> com.android.tools.r8.h.a.a.i:
    int numberOfInnerClasses -> n
    com.android.tools.r8.org.objectweb.asm.FieldWriter firstField -> j
    int interfaceCount -> h
    int thisClass -> f
    com.android.tools.r8.org.objectweb.asm.ByteVector debugExtension -> t
    com.android.tools.r8.org.objectweb.asm.ModuleWriter moduleWriter -> y
    int numberOfNestMemberClasses -> A
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeInvisibleTypeAnnotation -> x
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeInvisibleAnnotation -> v
    com.android.tools.r8.org.objectweb.asm.MethodWriter firstMethod -> l
    com.android.tools.r8.org.objectweb.asm.ByteVector nestMemberClasses -> B
    int sourceFileIndex -> s
    int enclosingMethodIndex -> q
    com.android.tools.r8.org.objectweb.asm.FieldWriter lastField -> k
    com.android.tools.r8.org.objectweb.asm.ByteVector innerClasses -> o
    int superClass -> g
    com.android.tools.r8.org.objectweb.asm.Attribute firstAttribute -> C
    int compute -> D
    int accessFlags -> e
    int version -> c
    com.android.tools.r8.org.objectweb.asm.SymbolTable symbolTable -> d
    int[] interfaces -> i
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeVisibleTypeAnnotation -> w
    int nestHostClassIndex -> z
    com.android.tools.r8.org.objectweb.asm.MethodWriter lastMethod -> m
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeVisibleAnnotation -> u
    int signatureIndex -> r
    int enclosingClassIndex -> p
    1:8:void <init>(com.android.tools.r8.org.objectweb.asm.ClassReader,int):237:244 -> <init>
    1:8:void <init>(int):209 -> <init>
    void visitEnd() -> a
    1:16:void visit(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):260:275 -> a
    17:20:void visitSource(java.lang.String,java.lang.String):282:285 -> a
    21:26:com.android.tools.r8.org.objectweb.asm.ModuleVisitor visitModule(java.lang.String,int,java.lang.String):292:297 -> a
    27:27:void visitNestHostExperimental(java.lang.String):302:302 -> a
    28:30:void visitOuterClass(java.lang.String,java.lang.String,java.lang.String):308:310 -> a
    31:38:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):318:325 -> a
    39:49:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):335:345 -> a
    50:51:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):353:354 -> a
    52:68:void visitInnerClass(java.lang.String,java.lang.String,java.lang.String,int):369:385 -> a
    69:76:com.android.tools.r8.org.objectweb.asm.FieldVisitor visitField(int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):399:406 -> a
    77:84:com.android.tools.r8.org.objectweb.asm.MethodVisitor visitMethod(int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):416:423 -> a
    85:85:int newConst(java.lang.Object):735:735 -> a
    1:5:void visitNestMemberExperimental(java.lang.String):359:363 -> b
    6:182:byte[] toByteArray():447:623 -> b
    183:188:byte[] toByteArray():622:627 -> b
    189:194:byte[] toByteArray():626:631 -> b
    195:200:byte[] toByteArray():630:635 -> b
    201:227:byte[] toByteArray():634:660 -> b
    228:240:com.android.tools.r8.org.objectweb.asm.Attribute[] getAttributePrototypes():706:718 -> b
    228:240:byte[] replaceAsmInstructions(byte[],boolean):677 -> b
    228:240:byte[] toByteArray():660 -> b
    241:260:byte[] replaceAsmInstructions(byte[],boolean):678:697 -> b
    241:260:byte[] toByteArray():660 -> b
    261:261:byte[] toByteArray():662:662 -> b
    262:262:byte[] toByteArray():550:550 -> b
    263:263:java.lang.ClassLoader getClassLoader():983:983 -> b
    263:263:java.lang.String getCommonSuperClass(java.lang.String,java.lang.String):946 -> b
    264:286:java.lang.String getCommonSuperClass(java.lang.String,java.lang.String):949:971 -> b
    287:287:java.lang.String getCommonSuperClass(java.lang.String,java.lang.String):957:957 -> b
    288:288:java.lang.String getCommonSuperClass(java.lang.String,java.lang.String):951:951 -> b
com.android.tools.r8.org.objectweb.asm.ConstantDynamic -> com.android.tools.r8.h.a.a.j:
    java.lang.Object[] bootstrapMethodArguments -> d
    java.lang.String name -> a
    java.lang.String descriptor -> b
    com.android.tools.r8.org.objectweb.asm.Handle bootstrapMethod -> c
    1:5:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):69:73 -> <init>
    1:1:com.android.tools.r8.org.objectweb.asm.Handle getBootstrapMethod():100:100 -> a
    1:1:java.lang.Object[] getBootstrapMethodArguments():111:111 -> b
    1:1:java.lang.String getDescriptor():91:91 -> c
    1:1:java.lang.String getName():82:82 -> d
    1:8:boolean equals(java.lang.Object):119:126 -> equals
    1:4:int hashCode():131:134 -> hashCode
    1:7:java.lang.String toString():139:145 -> toString
com.android.tools.r8.org.objectweb.asm.Context -> com.android.tools.r8.h.a.a.k:
    int currentFrameType -> n
    java.lang.String currentMethodDescriptor -> f
    int currentFrameLocalCount -> o
    char[] charBuffer -> c
    int currentFrameOffset -> m
    int currentTypeAnnotationTarget -> h
    com.android.tools.r8.org.objectweb.asm.Attribute[] attributePrototypes -> a
    int currentMethodAccessFlags -> d
    int parsingOptions -> b
    com.android.tools.r8.org.objectweb.asm.Label[] currentMethodLabels -> g
    com.android.tools.r8.org.objectweb.asm.Label[] currentLocalVariableAnnotationRangeEnds -> k
    com.android.tools.r8.org.objectweb.asm.Label[] currentLocalVariableAnnotationRangeStarts -> j
    com.android.tools.r8.org.objectweb.asm.TypePath currentTypeAnnotationTargetPath -> i
    java.lang.Object[] currentFrameStackTypes -> s
    java.lang.Object[] currentFrameLocalTypes -> q
    int currentFrameStackCount -> r
    java.lang.String currentMethodName -> e
    int[] currentLocalVariableAnnotationRangeIndices -> l
    int currentFrameLocalCountDelta -> p
    1:1:void <init>():36:36 -> <init>
com.android.tools.r8.org.objectweb.asm.CurrentFrame -> com.android.tools.r8.h.a.a.l:
    1:1:void <init>(com.android.tools.r8.org.objectweb.asm.Label):40:40 -> <init>
    1:4:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):51:54 -> a
com.android.tools.r8.org.objectweb.asm.Edge -> com.android.tools.r8.h.a.a.m:
    com.android.tools.r8.org.objectweb.asm.Label successor -> b
    int info -> a
    com.android.tools.r8.org.objectweb.asm.Edge nextEdge -> c
    1:4:void <init>(int,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Edge):86:89 -> <init>
com.android.tools.r8.org.objectweb.asm.FieldVisitor -> com.android.tools.r8.h.a.a.n:
    com.android.tools.r8.org.objectweb.asm.FieldVisitor fv -> a
    1:9:void <init>(int,com.android.tools.r8.org.objectweb.asm.FieldVisitor):68:76 -> <init>
    1:9:void <init>(int):56 -> <init>
    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean) -> a
    void visitEnd() -> a
    com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean) -> a
    1:2:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):124:125 -> a
com.android.tools.r8.org.objectweb.asm.FieldWriter -> com.android.tools.r8.h.a.a.o:
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeVisibleAnnotation -> h
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeInvisibleAnnotation -> i
    com.android.tools.r8.org.objectweb.asm.Attribute firstAttribute -> l
    com.android.tools.r8.org.objectweb.asm.SymbolTable symbolTable -> b
    int signatureIndex -> f
    int constantValueIndex -> g
    int nameIndex -> d
    int descriptorIndex -> e
    int accessFlags -> c
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeVisibleTypeAnnotation -> j
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeInvisibleTypeAnnotation -> k
    1:10:void <init>(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,java.lang.String,java.lang.String,java.lang.String,java.lang.Object):127:136 -> <init>
    void visitEnd() -> a
    1:8:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):148:155 -> a
    9:19:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):165:175 -> a
    20:21:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):183:184 -> a
    22:79:void putFieldInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):262:319 -> a
    80:85:void putFieldInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):318:323 -> a
    86:91:void putFieldInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):322:327 -> a
    92:97:void putFieldInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):326:331 -> a
    98:102:void putFieldInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):330:334 -> a
    103:103:void collectAttributePrototypes(com.android.tools.r8.org.objectweb.asm.Attribute$Set):344:344 -> a
    1:45:int computeFieldInfoSize():206:250 -> b
com.android.tools.r8.org.objectweb.asm.Frame -> com.android.tools.r8.h.a.a.p:
    short outputStackTop -> g
    short outputStackStart -> f
    int[] initializations -> i
    int[] inputLocals -> b
    int[] inputStack -> c
    int[] outputLocals -> d
    int initializationCount -> h
    int[] outputStack -> e
    com.android.tools.r8.org.objectweb.asm.Label owner -> a
    1:2:void <init>(com.android.tools.r8.org.objectweb.asm.Label):348:349 -> <init>
    1:8:int getAbstractTypeFromApiFormat(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.Object):242:249 -> a
    9:9:int getAbstractTypeFromInternalName(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.String):263:263 -> a
    10:68:int getAbstractTypeFromDescriptor(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.String,int):277:335 -> a
    69:103:int getAbstractTypeFromDescriptor(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.String,int):297:331 -> a
    104:105:int getAbstractTypeFromDescriptor(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.String,int):327:328 -> a
    106:107:int getAbstractTypeFromDescriptor(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.String,int):293:294 -> a
    108:115:void copyFrom(com.android.tools.r8.org.objectweb.asm.Frame):361:368 -> a
    116:136:void setInputFrameFromDescriptor(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,java.lang.String,int):390:410 -> a
    137:160:void setInputFrameFromApiFormat(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,java.lang.Object[],int,java.lang.Object[]):433:456 -> a
    161:161:int getInputStackSize():460:460 -> a
    162:171:int getLocal(int):474:483 -> a
    172:182:void setLocal(int,int):497:507 -> a
    183:189:void pop(java.lang.String):589:595 -> a
    190:190:void pop(java.lang.String):593:593 -> a
    191:206:int getInitializedType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int):637:652 -> a
    207:207:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1098:1098 -> a
    208:209:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1094:1095 -> a
    210:215:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1085:1090 -> a
    216:221:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1076:1081 -> a
    222:249:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1045:1072 -> a
    250:250:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1069:1069 -> a
    251:251:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1060:1060 -> a
    252:252:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1057:1057 -> a
    253:265:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1054:1066 -> a
    266:266:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1063:1063 -> a
    267:267:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1051:1051 -> a
    268:268:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1048:1048 -> a
    269:269:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1042:1042 -> a
    270:271:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1038:1039 -> a
    272:275:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1028:1031 -> a
    276:287:void addInitializedType(int):611:622 -> a
    276:287:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1032 -> a
    288:288:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1035:1035 -> a
    289:290:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1021:1022 -> a
    291:292:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1017:1018 -> a
    293:293:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1014:1014 -> a
    294:294:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1011:1011 -> a
    295:295:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1009:1009 -> a
    296:297:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):1004:1005 -> a
    298:299:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):998:999 -> a
    300:302:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):991:993 -> a
    303:304:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):986:987 -> a
    305:307:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):981:983 -> a
    308:308:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):977:977 -> a
    309:311:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):972:974 -> a
    312:314:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):965:967 -> a
    315:317:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):945:947 -> a
    318:321:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):910:913 -> a
    322:331:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):898:907 -> a
    332:339:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):888:895 -> a
    340:345:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):880:885 -> a
    346:352:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):871:877 -> a
    353:357:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):864:868 -> a
    358:360:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):859:861 -> a
    361:361:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):856:856 -> a
    362:362:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):843:843 -> a
    363:363:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):824:824 -> a
    364:364:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):820:820 -> a
    365:377:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):798:810 -> a
    378:378:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):805:805 -> a
    379:389:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):782:792 -> a
    390:390:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):787:787 -> a
    391:393:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):775:777 -> a
    394:582:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):770:958 -> a
    583:754:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):764:935 -> a
    755:755:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):760:760 -> a
    756:787:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):725:756 -> a
    788:788:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):753:753 -> a
    789:792:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):747:750 -> a
    793:793:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):744:744 -> a
    794:794:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):741:741 -> a
    795:796:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):737:738 -> a
    797:801:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):730:734 -> a
    802:802:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):727:727 -> a
    803:804:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):721:722 -> a
    805:805:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):716:716 -> a
    806:807:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):709:710 -> a
    808:808:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):704:704 -> a
    809:809:void execute(int,int,com.android.tools.r8.org.objectweb.asm.Symbol,com.android.tools.r8.org.objectweb.asm.SymbolTable):692:692 -> a
    810:923:boolean merge(com.android.tools.r8.org.objectweb.asm.SymbolTable,com.android.tools.r8.org.objectweb.asm.Frame,int):1125:1238 -> a
    924:991:boolean merge(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,int[],int):1262:1329 -> a
    992:1029:void accept(com.android.tools.r8.org.objectweb.asm.MethodWriter):1350:1387 -> a
    1:6:void push(com.android.tools.r8.org.objectweb.asm.SymbolTable,java.lang.String):543:548 -> b
    7:11:int pop():559:563 -> b
    12:18:void pop(int):573:579 -> b
    1:16:void push(int):517:532 -> c
com.android.tools.r8.org.objectweb.asm.Handle -> com.android.tools.r8.h.a.a.q:
    boolean isInterface -> e
    java.lang.String name -> c
    java.lang.String owner -> b
    int tag -> a
    java.lang.String descriptor -> d
    1:6:void <init>(int,java.lang.String,java.lang.String,java.lang.String,boolean):98:103 -> <init>
    1:1:java.lang.String getDesc():142:142 -> a
    1:1:java.lang.String getName():133:133 -> b
    1:1:java.lang.String getOwner():124:124 -> c
    1:1:int getTag():115:115 -> d
    1:1:boolean isInterface():151:151 -> e
    1:9:boolean equals(java.lang.Object):159:167 -> equals
    1:3:int hashCode():172:174 -> hashCode
    1:1:java.lang.String toString():187:187 -> toString
com.android.tools.r8.org.objectweb.asm.Handler -> com.android.tools.r8.h.a.a.r:
    com.android.tools.r8.org.objectweb.asm.Handler nextHandler -> f
    com.android.tools.r8.org.objectweb.asm.Label handlerPc -> c
    int catchType -> d
    com.android.tools.r8.org.objectweb.asm.Label endPc -> b
    com.android.tools.r8.org.objectweb.asm.Label startPc -> a
    java.lang.String catchTypeDescriptor -> e
    1:6:void <init>(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int,java.lang.String):90:95 -> <init>
    7:8:void <init>(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label):106:107 -> <init>
    1:26:com.android.tools.r8.org.objectweb.asm.Handler removeRange(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label):123:148 -> a
    27:27:int getExceptionTableLength(com.android.tools.r8.org.objectweb.asm.Handler):163:163 -> a
    27:27:int getExceptionTableSize(com.android.tools.r8.org.objectweb.asm.Handler):176 -> a
com.android.tools.r8.org.objectweb.asm.Label -> com.android.tools.r8.h.a.a.s:
    com.android.tools.r8.org.objectweb.asm.Frame frame -> k
    com.android.tools.r8.org.objectweb.asm.Edge outgoingEdges -> m
    int bytecodeOffset -> e
    int[] forwardReferences -> f
    short inputStackSize -> g
    short outputStackSize -> h
    com.android.tools.r8.org.objectweb.asm.Label nextBasicBlock -> l
    int[] otherLineNumbers -> d
    short outputStackMax -> i
    short subroutineId -> j
    java.lang.Object info -> a
    short lineNumber -> c
    com.android.tools.r8.org.objectweb.asm.Label EMPTY_LIST -> o
    short flags -> b
    com.android.tools.r8.org.objectweb.asm.Label nextListElement -> n
    1:1:void <clinit>():130:130 -> <clinit>
    1:1:void <init>():288:288 -> <init>
    1:1:com.android.tools.r8.org.objectweb.asm.Label getCanonicalInstance():321:321 -> a
    2:14:void addLineNumber(int):334:346 -> a
    15:20:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor,boolean):357:362 -> a
    21:33:void put(com.android.tools.r8.org.objectweb.asm.ByteVector,int,boolean):385:397 -> a
    34:45:void addForwardReference(int,int,int):416:427 -> a
    46:79:boolean resolve(byte[],int):445:478 -> a
    80:91:void markSubroutine(short):506:517 -> a
    92:126:void addSubroutineRetSuccessors(com.android.tools.r8.org.objectweb.asm.Label):541:575 -> a
    1:13:com.android.tools.r8.org.objectweb.asm.Label pushSuccessors(com.android.tools.r8.org.objectweb.asm.Label):591:603 -> b
    1:1:java.lang.String toString():619:619 -> toString
com.android.tools.r8.org.objectweb.asm.MethodTooLargeException -> com.android.tools.r8.h.a.a.t:
    1:1:void <init>(java.lang.String,java.lang.String,java.lang.String,int):56:56 -> <init>
com.android.tools.r8.org.objectweb.asm.MethodVisitor -> com.android.tools.r8.h.a.a.u:
    com.android.tools.r8.org.objectweb.asm.MethodVisitor mv -> b
    int api -> a
    1:1:void <init>(int):70:70 -> <init>
    2:10:void <init>(int,com.android.tools.r8.org.objectweb.asm.MethodVisitor):82:90 -> <init>
    1:2:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotationDefault():122:123 -> a
    3:4:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):137:138 -> a
    5:6:void visitAnnotableParameterCount(int,boolean):185:186 -> a
    7:8:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitParameterAnnotation(int,java.lang.String,boolean):206:207 -> a
    9:10:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):218:219 -> a
    11:12:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):293:294 -> a
    13:14:void visitInsn(int):317:318 -> a
    15:16:void visitTypeInsn(int,java.lang.String):367:368 -> a
    17:18:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):384:385 -> a
    19:23:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):430:434 -> a
    24:30:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):432:438 -> a
    31:35:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):458:462 -> a
    36:36:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):459:459 -> a
    37:38:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):477:478 -> a
    39:40:void visitLabel(com.android.tools.r8.org.objectweb.asm.Label):488:489 -> a
    41:50:void visitLdcInsn(java.lang.Object):541:550 -> a
    51:52:void visitIincInsn(int,int):561:562 -> a
    53:54:void visitTableSwitchInsn(int,int,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label[]):577:578 -> a
    55:56:void visitLookupSwitchInsn(com.android.tools.r8.org.objectweb.asm.Label,int[],com.android.tools.r8.org.objectweb.asm.Label[]):591:592 -> a
    57:58:void visitMultiANewArrayInsn(java.lang.String,int):603:604 -> a
    59:63:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):629:633 -> a
    64:64:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):630:630 -> a
    65:66:void visitTryCatchBlock(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,java.lang.String):655:656 -> a
    67:68:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):707:708 -> a
    69:73:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitLocalVariableAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.Label[],com.android.tools.r8.org.objectweb.asm.Label[],int[],java.lang.String,boolean):740:744 -> a
    74:74:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitLocalVariableAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.Label[],com.android.tools.r8.org.objectweb.asm.Label[],int[],java.lang.String,boolean):741:741 -> a
    1:5:void visitParameter(java.lang.String,int):105:109 -> b
    6:6:void visitParameter(java.lang.String,int):106:106 -> b
    7:8:void visitCode():225:226 -> b
    9:10:void visitIntInsn(int,int):337:338 -> b
    11:17:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String):403:409 -> b
    18:22:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTryCatchAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):677:681 -> b
    23:23:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTryCatchAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):678:678 -> b
    24:25:void visitLineNumber(int,com.android.tools.r8.org.objectweb.asm.Label):760:761 -> b
    1:5:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):161:165 -> c
    6:6:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):162:162 -> c
    7:8:void visitMaxs(int,int):772:773 -> c
    9:10:void visitEnd():782:783 -> c
    1:2:void visitVarInsn(int,int):352:353 -> d
com.android.tools.r8.org.objectweb.asm.MethodWriter -> com.android.tools.r8.h.a.a.v:
    int[] previousFrame -> V
    java.lang.String name -> f
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeInvisibleTypeAnnotation -> I
    int parametersCount -> K
    int accessFlags -> d
    boolean hasSubroutines -> X
    int[] STACK_SIZE_DELTA -> ca
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastCodeRuntimeVisibleTypeAnnotation -> v
    int sourceLength -> ba
    int numberOfExceptions -> y
    int currentLocals -> T
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter[] lastRuntimeVisibleParameterAnnotations -> E
    com.android.tools.r8.org.objectweb.asm.Label firstBasicBlock -> O
    com.android.tools.r8.org.objectweb.asm.ByteVector parameters -> L
    com.android.tools.r8.org.objectweb.asm.ByteVector localVariableTable -> q
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeVisibleAnnotation -> B
    int maxStack -> i
    com.android.tools.r8.org.objectweb.asm.ByteVector stackMapTableEntries -> u
    int visibleAnnotableParameterCount -> D
    int nameIndex -> e
    int[] exceptionIndexTable -> z
    com.android.tools.r8.org.objectweb.asm.Handler lastHandler -> m
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastCodeRuntimeInvisibleTypeAnnotation -> w
    boolean hasAsmInstructions -> Y
    com.android.tools.r8.org.objectweb.asm.Attribute firstCodeAttribute -> x
    int previousFrameOffset -> U
    int localVariableTypeTableLength -> r
    int lineNumberTableLength -> n
    java.lang.String descriptor -> h
    int maxLocals -> j
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeInvisibleAnnotation -> C
    int sourceOffset -> aa
    int signatureIndex -> A
    com.android.tools.r8.org.objectweb.asm.Handler firstHandler -> l
    int lastBytecodeOffset -> Z
    com.android.tools.r8.org.objectweb.asm.SymbolTable symbolTable -> c
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter[] lastRuntimeInvisibleParameterAnnotations -> G
    com.android.tools.r8.org.objectweb.asm.Label currentBasicBlock -> Q
    int relativeStackSize -> R
    com.android.tools.r8.org.objectweb.asm.ByteVector defaultValue -> J
    com.android.tools.r8.org.objectweb.asm.AnnotationWriter lastRuntimeVisibleTypeAnnotation -> H
    com.android.tools.r8.org.objectweb.asm.Attribute firstAttribute -> M
    int compute -> N
    int[] currentFrame -> W
    com.android.tools.r8.org.objectweb.asm.ByteVector code -> k
    com.android.tools.r8.org.objectweb.asm.ByteVector lineNumberTable -> o
    int invisibleAnnotableParameterCount -> F
    int descriptorIndex -> g
    com.android.tools.r8.org.objectweb.asm.ByteVector localVariableTypeTable -> s
    int stackMapTableNumberOfEntries -> t
    com.android.tools.r8.org.objectweb.asm.Label lastBasicBlock -> P
    int maxRelativeStackSize -> S
    int localVariableTableLength -> p
    1:1:void <clinit>():81:81 -> <clinit>
    1:1:void <init>(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],int):594:594 -> <init>
    2:305:void <init>(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[],int):320:623 -> <init>
    1:2:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotationDefault():650:651 -> a
    3:10:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):658:665 -> a
    11:13:void visitAnnotableParameterCount(int,boolean):693:695 -> a
    14:30:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitParameterAnnotation(int,java.lang.String,boolean):704:720 -> a
    31:36:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):729:734 -> a
    37:135:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):750:848 -> a
    136:142:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):839:845 -> a
    143:145:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):832:834 -> a
    146:147:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):827:828 -> a
    148:151:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):820:823 -> a
    152:211:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):809:868 -> a
    212:224:void visitInsn(int):873:885 -> a
    225:234:void visitInsn(int):879:888 -> a
    235:249:void visitTypeInsn(int,java.lang.String):981:995 -> a
    250:250:void visitTypeInsn(int,java.lang.String):988:988 -> a
    251:274:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):1003:1026 -> a
    275:275:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):1022:1022 -> a
    276:276:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):1019:1019 -> a
    277:293:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):1016:1032 -> a
    294:294:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):1010:1010 -> a
    295:320:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):1044:1069 -> a
    321:321:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):1056:1056 -> a
    322:340:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1080:1098 -> a
    341:341:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1090:1090 -> a
    342:441:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):1105:1204 -> a
    442:512:void visitLabel(com.android.tools.r8.org.objectweb.asm.Label):1212:1282 -> a
    513:536:void visitLdcInsn(java.lang.Object):1288:1311 -> a
    537:537:void visitLdcInsn(java.lang.Object):1305:1305 -> a
    538:543:void visitIincInsn(int,int):1318:1323 -> a
    544:556:void visitIincInsn(int,int):1321:1333 -> a
    557:566:void visitTableSwitchInsn(int,int,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label[]):1341:1350 -> a
    567:577:void visitLookupSwitchInsn(com.android.tools.r8.org.objectweb.asm.Label,int[],com.android.tools.r8.org.objectweb.asm.Label[]):1355:1365 -> a
    578:598:void visitSwitchInsn(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label[]):1369:1389 -> a
    599:610:void visitMultiANewArrayInsn(java.lang.String,int):1395:1406 -> a
    611:611:void visitMultiANewArrayInsn(java.lang.String,int):1402:1402 -> a
    612:622:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):1416:1426 -> a
    623:631:void visitTryCatchBlock(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,java.lang.String):1434:1442 -> a
    632:657:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):1474:1499 -> a
    658:674:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitLocalVariableAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.Label[],com.android.tools.r8.org.objectweb.asm.Label[],int[],java.lang.String,boolean):1515:1531 -> a
    675:680:int visitFrameStart(int,int,int):1824:1829 -> a
    681:709:boolean canCopyMethodAttributes(com.android.tools.r8.org.objectweb.asm.ClassReader,int,int,boolean,boolean,int,int,int):2030:2058 -> a
    710:814:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2200:2304 -> a
    815:815:int com.android.tools.r8.org.objectweb.asm.Handler.getExceptionTableLength(com.android.tools.r8.org.objectweb.asm.Handler):163:163 -> a
    815:815:void com.android.tools.r8.org.objectweb.asm.Handler.putExceptionTable(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.ByteVector):187 -> a
    815:815:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2304 -> a
    816:824:void com.android.tools.r8.org.objectweb.asm.Handler.putExceptionTable(com.android.tools.r8.org.objectweb.asm.Handler,com.android.tools.r8.org.objectweb.asm.ByteVector):187:195 -> a
    816:824:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2304 -> a
    825:830:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2305:2310 -> a
    831:861:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2309:2339 -> a
    862:867:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2338:2343 -> a
    868:899:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2342:2373 -> a
    900:905:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2372:2377 -> a
    906:911:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2376:2381 -> a
    912:922:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2380:2390 -> a
    923:933:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2389:2399 -> a
    934:939:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2398:2403 -> a
    940:957:void putMethodInfo(com.android.tools.r8.org.objectweb.asm.ByteVector):2402:2419 -> a
    958:959:void collectAttributePrototypes(com.android.tools.r8.org.objectweb.asm.Attribute$Set):2429:2430 -> a
    void visitCode() -> b
    1:5:void visitParameter(java.lang.String,int):641:645 -> b
    6:23:void visitIntInsn(int,int):895:912 -> b
    24:24:void visitIntInsn(int,int):905:905 -> b
    25:35:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTryCatchAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):1450:1460 -> b
    36:41:void visitLineNumber(int,com.android.tools.r8.org.objectweb.asm.Label):1538:1543 -> b
    42:51:void putFrameType(java.lang.Object):1972:1981 -> b
    void visitEnd() -> c
    1:11:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):675:685 -> c
    12:12:void visitMaxs(int,int):1548:1548 -> c
    13:109:void computeAllFrames():1563:1659 -> c
    13:109:void visitMaxs(int,int):1549 -> c
    110:211:void computeMaxStackAndLocal():1665:1766 -> c
    110:211:void visitMaxs(int,int):1551 -> c
    212:215:void visitMaxs(int,int):1553:1556 -> c
    216:216:void addSuccessorToCurrentBasicBlock(int,com.android.tools.r8.org.objectweb.asm.Label):1785:1785 -> c
    1:31:void visitVarInsn(int,int):919:949 -> d
    32:70:void visitVarInsn(int,int):937:975 -> d
    71:120:int computeMethodInfoSize():2070:2119 -> d
    121:230:int computeMethodInfoSize():2079:2188 -> d
    1:1:boolean hasAsmInstructions():632:632 -> e
    2:2:void visitAbstractType(int,int):1840:1840 -> e
    1:1:boolean hasFrames():628:628 -> f
    2:2:void putAbstractTypes(int,int):1957:1957 -> f
    3:6:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1416:1419 -> f
    3:6:void putAbstractTypes(int,int):1957 -> f
    7:8:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1412:1413 -> f
    7:8:void putAbstractTypes(int,int):1957 -> f
    9:60:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1408:1459 -> f
    9:60:void putAbstractTypes(int,int):1957 -> f
    61:61:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1444:1444 -> f
    61:61:void putAbstractTypes(int,int):1957 -> f
    62:62:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1441:1441 -> f
    62:62:void putAbstractTypes(int,int):1957 -> f
    63:63:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1438:1438 -> f
    63:63:void putAbstractTypes(int,int):1957 -> f
    64:85:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1435:1456 -> f
    64:85:void putAbstractTypes(int,int):1957 -> f
    86:86:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1450:1450 -> f
    86:86:void putAbstractTypes(int,int):1957 -> f
    87:104:void com.android.tools.r8.org.objectweb.asm.Frame.putAbstractType(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,com.android.tools.r8.org.objectweb.asm.ByteVector):1447:1464 -> f
    87:104:void putAbstractTypes(int,int):1957 -> f
    1:3:void visitFrameEnd():1849:1851 -> g
    4:86:void putFrame():1862:1944 -> g
    4:86:void visitFrameEnd():1853 -> g
    87:88:void putFrame():1936:1937 -> g
    87:88:void visitFrameEnd():1853 -> g
    89:92:void putFrame():1930:1933 -> g
    89:92:void visitFrameEnd():1853 -> g
    93:96:void putFrame():1924:1927 -> g
    93:96:void visitFrameEnd():1853 -> g
    97:98:void putFrame():1920:1921 -> g
    97:98:void visitFrameEnd():1853 -> g
    99:99:void putFrame():1917:1917 -> g
    99:99:void visitFrameEnd():1853 -> g
    100:103:void visitFrameEnd():1854:1857 -> g
    1:10:void endCurrentBasicBlockWithNoSuccessor():1797:1806 -> h
com.android.tools.r8.org.objectweb.asm.ModuleVisitor -> com.android.tools.r8.h.a.a.w:
    1:3:void <init>(int,com.android.tools.r8.org.objectweb.asm.ModuleVisitor):67:69 -> <init>
    1:3:void <init>(int):56 -> <init>
    void visitExport(java.lang.String,int,java.lang.String[]) -> a
    void visitMainClass(java.lang.String) -> a
    void visitProvide(java.lang.String,java.lang.String[]) -> a
    void visitRequire(java.lang.String,int,java.lang.String) -> a
    void visitOpen(java.lang.String,int,java.lang.String[]) -> b
    void visitPackage(java.lang.String) -> b
    void visitUse(java.lang.String) -> c
com.android.tools.r8.org.objectweb.asm.ModuleWriter -> com.android.tools.r8.h.a.a.x:
    com.android.tools.r8.org.objectweb.asm.ByteVector provides -> n
    int packageCount -> o
    com.android.tools.r8.org.objectweb.asm.ByteVector usesIndex -> l
    int providesCount -> m
    int usesCount -> k
    int opensCount -> i
    com.android.tools.r8.org.objectweb.asm.ByteVector packageIndex -> p
    int exportsCount -> g
    int moduleVersionIndex -> d
    int requiresCount -> e
    int moduleNameIndex -> b
    int moduleFlags -> c
    com.android.tools.r8.org.objectweb.asm.SymbolTable symbolTable -> a
    com.android.tools.r8.org.objectweb.asm.ByteVector requires -> f
    com.android.tools.r8.org.objectweb.asm.ByteVector opens -> j
    com.android.tools.r8.org.objectweb.asm.ByteVector exports -> h
    int mainClassIndex -> q
    1:11:void <init>(com.android.tools.r8.org.objectweb.asm.SymbolTable,int,int,int):97:107 -> <init>
    1:1:void visitMainClass(java.lang.String):112:112 -> a
    2:6:void visitRequire(java.lang.String,int,java.lang.String):123:127 -> a
    7:16:void visitExport(java.lang.String,int,java.lang.String[]):132:141 -> a
    17:22:void visitProvide(java.lang.String,java.lang.String[]):166:171 -> a
    23:33:int computeAttributesSize():196:206 -> a
    34:63:void putAttributes(com.android.tools.r8.org.objectweb.asm.ByteVector):221:250 -> a
    1:2:void visitPackage(java.lang.String):117:118 -> b
    3:12:void visitOpen(java.lang.String,int,java.lang.String[]):146:155 -> b
    13:13:int getAttributeCount():186:186 -> b
    1:2:void visitUse(java.lang.String):160:161 -> c
com.android.tools.r8.org.objectweb.asm.Opcodes -> com.android.tools.r8.h.a.a.y:
    java.lang.Integer FLOAT -> c
    java.lang.Integer DOUBLE -> d
    java.lang.Integer LONG -> e
    java.lang.Integer NULL -> f
    java.lang.Integer UNINITIALIZED_THIS -> g
    java.lang.Integer TOP -> a
    java.lang.Integer INTEGER -> b
    1:7:void <clinit>():179:185 -> <clinit>
com.android.tools.r8.org.objectweb.asm.SymbolTable -> com.android.tools.r8.h.a.a.A:
    com.android.tools.r8.org.objectweb.asm.ClassWriter classWriter -> a
    int typeCount -> k
    int bootstrapMethodCount -> i
    com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry[] typeTable -> l
    int constantPoolCount -> g
    int entryCount -> e
    int majorVersion -> c
    com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry[] entries -> f
    com.android.tools.r8.org.objectweb.asm.ByteVector bootstrapMethods -> j
    com.android.tools.r8.org.objectweb.asm.ClassReader sourceClassReader -> b
    java.lang.String className -> d
    com.android.tools.r8.org.objectweb.asm.ByteVector constantPool -> h
    1:6:void <init>(com.android.tools.r8.org.objectweb.asm.ClassWriter):173:178 -> <init>
    1:2:int setMajorVersionAndClassName(int,java.lang.String):342:343 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.Symbol addConstantClass(java.lang.String):527:527 -> a
    3:3:int setMajorVersionAndClassName(int,java.lang.String):344 -> a
    4:4:int setMajorVersionAndClassName(int,java.lang.String):344:344 -> a
    5:7:int computeBootstrapMethodsSize():374:376 -> a
    8:13:void putBootstrapMethods(com.android.tools.r8.org.objectweb.asm.ByteVector):389:394 -> a
    14:31:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):471:488 -> a
    32:32:com.android.tools.r8.org.objectweb.asm.Symbol addConstantString(java.lang.String):618:618 -> a
    32:32:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):488 -> a
    33:39:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):489:495 -> a
    40:40:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodType(java.lang.String):878:878 -> a
    40:40:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):495 -> a
    41:50:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):497:506 -> a
    51:63:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):501:513 -> a
    64:65:com.android.tools.r8.org.objectweb.asm.Symbol addConstantDynamic(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):897:898 -> a
    64:65:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):509 -> a
    66:66:com.android.tools.r8.org.objectweb.asm.Symbol addConstant(java.lang.Object):515:515 -> a
    67:67:com.android.tools.r8.org.objectweb.asm.Symbol addConstantClass(java.lang.String):527:527 -> a
    68:68:com.android.tools.r8.org.objectweb.asm.Symbol addConstantFieldref(java.lang.String,java.lang.String,java.lang.String):540:540 -> a
    69:69:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodref(java.lang.String,java.lang.String,java.lang.String,boolean):556:556 -> a
    70:70:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInteger(int):629:629 -> a
    71:71:com.android.tools.r8.org.objectweb.asm.Symbol addConstantFloat(float):640:640 -> a
    72:72:com.android.tools.r8.org.objectweb.asm.Symbol addConstantLong(long):684:684 -> a
    73:73:com.android.tools.r8.org.objectweb.asm.Symbol addConstantDouble(double):695:695 -> a
    74:84:com.android.tools.r8.org.objectweb.asm.Symbol addConstantLong(int,long):708:718 -> a
    85:102:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodHandle(int,java.lang.String,java.lang.String,java.lang.String,boolean):824:841 -> a
    103:106:com.android.tools.r8.org.objectweb.asm.Symbol addConstantMethodHandle(int,java.lang.String,java.lang.String,java.lang.String,boolean):840:843 -> a
    107:108:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInvokeDynamic(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):918:919 -> a
    109:122:com.android.tools.r8.org.objectweb.asm.Symbol addConstantDynamicOrInvokeDynamicReference(int,java.lang.String,java.lang.String,int):937:950 -> a
    123:146:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1053:1076 -> a
    147:147:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1071:1071 -> a
    148:166:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1070:1088 -> a
    167:167:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(int,int,int):1107:1107 -> a
    167:167:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1093 -> a
    168:168:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry get(int):408:408 -> a
    168:168:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(int,int,int):1108 -> a
    168:168:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1093 -> a
    169:185:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(int,int,int):1110:1126 -> a
    169:185:com.android.tools.r8.org.objectweb.asm.Symbol addBootstrapMethod(com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):1093 -> a
    186:197:int addMergedType(int,int):1199:1210 -> a
    198:207:int addType(com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry):1223:1232 -> a
    208:208:int hash(int,java.lang.String,int):1252:1252 -> a
    208:208:int addUninitializedType(java.lang.String,int):1170 -> a
    209:219:int addUninitializedType(java.lang.String,int):1171:1181 -> a
    220:220:int hash(int,java.lang.String,java.lang.String):1256:1256 -> a
    220:220:int addConstantNameAndType(java.lang.String,java.lang.String):742 -> a
    221:232:int addConstantNameAndType(java.lang.String,java.lang.String):743:754 -> a
    233:233:int hash(int,java.lang.String,java.lang.String,java.lang.String):1266:1266 -> a
    233:233:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry addConstantMemberReference(int,java.lang.String,java.lang.String,java.lang.String):573 -> a
    234:245:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry addConstantMemberReference(int,java.lang.String,java.lang.String,java.lang.String):574:585 -> a
    246:246:com.android.tools.r8.org.objectweb.asm.Symbol addConstantClass(java.lang.String):527:527 -> a
    246:246:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry addConstantMemberReference(int,java.lang.String,java.lang.String,java.lang.String):586 -> a
    247:247:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry addConstantMemberReference(int,java.lang.String,java.lang.String,java.lang.String):586:586 -> a
    248:250:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry addConstantMemberReference(int,java.lang.String,java.lang.String,java.lang.String):585:587 -> a
    251:251:int hash(int,java.lang.String,java.lang.String,java.lang.String,int):1275:1275 -> a
    1:1:java.lang.String getClassName():330:330 -> b
    2:2:void putConstantPool(com.android.tools.r8.org.objectweb.asm.ByteVector):364:364 -> b
    3:22:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry put(com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry):421:440 -> b
    23:32:com.android.tools.r8.org.objectweb.asm.Symbol addConstantInteger(int,int):652:661 -> b
    33:33:com.android.tools.r8.org.objectweb.asm.Symbol addConstantModule(java.lang.String):985:985 -> b
    34:34:com.android.tools.r8.org.objectweb.asm.Symbol getType(int):1138:1138 -> b
    35:35:int hash(int,java.lang.String):1248:1248 -> b
    35:35:com.android.tools.r8.org.objectweb.asm.Symbol addConstantUtf8Reference(int,java.lang.String):1012 -> b
    36:44:com.android.tools.r8.org.objectweb.asm.Symbol addConstantUtf8Reference(int,java.lang.String):1013:1021 -> b
    45:45:int hash(int,java.lang.String,java.lang.String,int):1261:1261 -> b
    int hash(int,int) -> c
    1:1:int getConstantPoolCount():349:349 -> c
    2:2:com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry get(int):408:408 -> c
    3:3:com.android.tools.r8.org.objectweb.asm.Symbol addConstantPackage(java.lang.String):996:996 -> c
    1:1:int getConstantPoolLength():354:354 -> d
    2:2:int hash(int,java.lang.String):1248:1248 -> d
    2:2:int addConstantUtf8(java.lang.String):777 -> d
    3:13:int addConstantUtf8(java.lang.String):778:788 -> d
    1:1:int getMajorVersion():325:325 -> e
    2:2:int hash(int,java.lang.String):1248:1248 -> e
    2:2:int addType(java.lang.String):1149 -> e
    3:10:int addType(java.lang.String):1150:1157 -> e
    1:1:com.android.tools.r8.org.objectweb.asm.ClassReader getSource():320:320 -> f
com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry -> com.android.tools.r8.h.a.a.z:
    long com.android.tools.r8.org.objectweb.asm.Symbol.data -> f
    int hashCode -> h
    int com.android.tools.r8.org.objectweb.asm.Symbol.info -> g
    int com.android.tools.r8.org.objectweb.asm.Symbol.tag -> b
    java.lang.String com.android.tools.r8.org.objectweb.asm.Symbol.owner -> c
    com.android.tools.r8.org.objectweb.asm.SymbolTable$Entry next -> i
    java.lang.String com.android.tools.r8.org.objectweb.asm.Symbol.value -> e
    int com.android.tools.r8.org.objectweb.asm.Symbol.index -> a
    java.lang.String com.android.tools.r8.org.objectweb.asm.Symbol.name -> d
    1:7:void com.android.tools.r8.org.objectweb.asm.Symbol.<init>(int,int,java.lang.String,java.lang.String,java.lang.String,long):219:225 -> <init>
    1:7:void <init>(int,int,long,int):89 -> <init>
    8:8:void <init>(int,int,long,int):90:90 -> <init>
    9:15:void com.android.tools.r8.org.objectweb.asm.Symbol.<init>(int,int,java.lang.String,java.lang.String,java.lang.String,long):219:225 -> <init>
    9:15:void <init>(int,int,java.lang.String,int):73 -> <init>
    16:16:void <init>(int,int,java.lang.String,int):74:74 -> <init>
    17:23:void com.android.tools.r8.org.objectweb.asm.Symbol.<init>(int,int,java.lang.String,java.lang.String,java.lang.String,long):219:225 -> <init>
    17:23:void <init>(int,int,java.lang.String,long,int):78 -> <init>
    24:24:void <init>(int,int,java.lang.String,long,int):79:79 -> <init>
    25:31:void com.android.tools.r8.org.objectweb.asm.Symbol.<init>(int,int,java.lang.String,java.lang.String,java.lang.String,long):219:225 -> <init>
    25:31:void <init>(int,int,java.lang.String,java.lang.String,int):84 -> <init>
    32:32:void <init>(int,int,java.lang.String,java.lang.String,int):85:85 -> <init>
    33:39:void com.android.tools.r8.org.objectweb.asm.Symbol.<init>(int,int,java.lang.String,java.lang.String,java.lang.String,long):219:225 -> <init>
    33:39:void <init>(int,int,java.lang.String,java.lang.String,java.lang.String,long,int):68 -> <init>
    40:40:void <init>(int,int,java.lang.String,java.lang.String,java.lang.String,long,int):69:69 -> <init>
    1:4:int com.android.tools.r8.org.objectweb.asm.Symbol.getArgumentsAndReturnSizes():235:238 -> a
    1:4:int com.android.tools.r8.org.objectweb.asm.Symbol.getArgumentsAndReturnSizes():0 -> a
com.android.tools.r8.org.objectweb.asm.Type -> com.android.tools.r8.h.a.a.B:
    com.android.tools.r8.org.objectweb.asm.Type FLOAT_TYPE -> k
    com.android.tools.r8.org.objectweb.asm.Type INT_TYPE -> j
    com.android.tools.r8.org.objectweb.asm.Type DOUBLE_TYPE -> m
    com.android.tools.r8.org.objectweb.asm.Type LONG_TYPE -> l
    int valueEnd -> d
    int valueBegin -> c
    int sort -> a
    com.android.tools.r8.org.objectweb.asm.Type VOID_TYPE -> e
    com.android.tools.r8.org.objectweb.asm.Type CHAR_TYPE -> g
    com.android.tools.r8.org.objectweb.asm.Type BOOLEAN_TYPE -> f
    java.lang.String valueBuffer -> b
    com.android.tools.r8.org.objectweb.asm.Type SHORT_TYPE -> i
    com.android.tools.r8.org.objectweb.asm.Type BYTE_TYPE -> h
    1:26:void <clinit>():85:110 -> <clinit>
    1:5:void <init>(int,java.lang.String,int,int):163:167 -> <init>
    1:30:com.android.tools.r8.org.objectweb.asm.Type[] getArgumentTypes(java.lang.String):281:310 -> a
    31:57:com.android.tools.r8.org.objectweb.asm.Type getType(java.lang.String,int,int):416:442 -> a
    58:58:com.android.tools.r8.org.objectweb.asm.Type getType(java.lang.String,int,int):436:436 -> a
    59:59:com.android.tools.r8.org.objectweb.asm.Type getType(java.lang.String,int,int):420:420 -> a
    60:80:com.android.tools.r8.org.objectweb.asm.Type getType(java.lang.String,int,int):418:438 -> a
    81:81:com.android.tools.r8.org.objectweb.asm.Type getType(java.lang.String,int,int):432:432 -> a
    82:88:com.android.tools.r8.org.objectweb.asm.Type getType(java.lang.String,int,int):428:434 -> a
    89:107:com.android.tools.r8.org.objectweb.asm.Type getType(java.lang.String,int,int):422:440 -> a
    108:137:java.lang.String getClassName():493:522 -> a
    138:138:java.lang.String getClassName():520:520 -> a
    139:139:java.lang.String getClassName():513:513 -> a
    140:141:com.android.tools.r8.org.objectweb.asm.Type getElementType():482:483 -> a
    140:141:java.lang.String getClassName():513 -> a
    142:146:java.lang.String getClassName():513:517 -> a
    1:20:int getArgumentsAndReturnSizes(java.lang.String):376:395 -> b
    21:30:java.lang.String getDescriptor():580:589 -> b
    1:1:com.android.tools.r8.org.objectweb.asm.Type getMethodType(java.lang.String):199:199 -> c
    2:2:int getDimensions():469:469 -> c
    1:2:com.android.tools.r8.org.objectweb.asm.Type getObjectType(java.lang.String):187:188 -> d
    3:3:java.lang.String getInternalName():534:534 -> d
    1:11:com.android.tools.r8.org.objectweb.asm.Type getReturnType(java.lang.String):340:350 -> e
    12:12:int getSort():458:458 -> e
    1:17:boolean equals(java.lang.Object):858:874 -> equals
    1:1:com.android.tools.r8.org.objectweb.asm.Type getType(java.lang.String):177:177 -> f
    1:4:int hashCode():888:891 -> hashCode
    1:1:java.lang.String toString():904:904 -> toString
com.android.tools.r8.org.objectweb.asm.TypePath -> com.android.tools.r8.h.a.a.C:
    byte[] typePathContainer -> a
    int typePathOffset -> b
    1:3:void <init>(byte[],int):72:74 -> <init>
    1:4:void put(com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.ByteVector):195:198 -> a
    1:1:int getLength():84:84 -> toString
    1:1:java.lang.String toString():163 -> toString
    2:2:java.lang.String toString():164:164 -> toString
    3:3:int getStep(int):96:96 -> toString
    3:3:java.lang.String toString():166 -> toString
    4:4:java.lang.String toString():180:180 -> toString
    5:5:int getStepArgument(int):108:108 -> toString
    5:5:java.lang.String toString():177 -> toString
    6:6:java.lang.String toString():177:177 -> toString
    7:7:java.lang.String toString():174:174 -> toString
    8:8:java.lang.String toString():171:171 -> toString
    9:24:java.lang.String toString():168:183 -> toString
com.android.tools.r8.org.objectweb.asm.TypeReference -> com.android.tools.r8.h.a.a.D:
    int targetTypeAndInfo -> a
    1:2:void <init>(int):193:194 -> <init>
    1:1:int getExceptionIndex():359:359 -> a
    2:2:void putTarget(int,com.android.tools.r8.org.objectweb.asm.ByteVector):433:433 -> a
    3:3:void putTarget(int,com.android.tools.r8.org.objectweb.asm.ByteVector):419:419 -> a
    4:22:void putTarget(int,com.android.tools.r8.org.objectweb.asm.ByteVector):412:430 -> a
    23:23:void putTarget(int,com.android.tools.r8.org.objectweb.asm.ByteVector):407:407 -> a
    1:1:int getFormalParameterIndex():348:348 -> b
    1:1:int getSort():303:303 -> c
    1:1:int getSuperTypeIndex():338:338 -> d
    1:1:int getTryCatchBlockIndex():370:370 -> e
    1:1:int getTypeArgumentIndex():382:382 -> f
    1:1:int getTypeParameterBoundIndex():327:327 -> g
    1:1:int getTypeParameterIndex():315:315 -> h
com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter -> com.android.tools.r8.h.a.a.a.b:
    java.util.BitSet mainSubroutineInsns -> y
    java.util.Map subroutinesInsns -> z
    java.util.BitSet sharedSubroutineInsns -> A
    1:1:void <init>(int,com.android.tools.r8.org.objectweb.asm.MethodVisitor,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):129:129 -> <init>
    1:1:void <init>(com.android.tools.r8.org.objectweb.asm.MethodVisitor,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):100 -> <init>
    2:68:void <init>(int,com.android.tools.r8.org.objectweb.asm.MethodVisitor,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):64:130 -> <init>
    2:68:void <init>(com.android.tools.r8.org.objectweb.asm.MethodVisitor,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):100 -> <init>
    69:70:void <init>(com.android.tools.r8.org.objectweb.asm.MethodVisitor,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):101:102 -> <init>
    1:4:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):135:138 -> a
    5:28:void findReachableInsns(int,java.util.BitSet,java.util.BitSet):231:254 -> a
    29:37:void findReachableInsns(int,java.util.BitSet,java.util.BitSet):253:261 -> a
    38:46:void findReachableInsns(int,java.util.BitSet,java.util.BitSet):260:268 -> a
    1:20:void findSubroutineInsns(int,java.util.BitSet,java.util.BitSet):181:200 -> b
    1:1:void visitEnd():144:144 -> c
    2:8:void findSubroutinesInsns():157:163 -> c
    2:8:void visitEnd():146 -> c
    9:18:void emitCode():295:304 -> c
    9:18:void visitEnd():147 -> c
    19:23:void emitInstantiation(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.List,com.android.tools.r8.org.objectweb.asm.tree.InsnList,java.util.List,java.util.List):333:337 -> c
    19:23:void emitCode():305 -> c
    19:23:void visitEnd():147 -> c
    24:24:com.android.tools.r8.org.objectweb.asm.tree.LabelNode com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation.getClonedLabel(com.android.tools.r8.org.objectweb.asm.tree.LabelNode):539:539 -> c
    24:24:void emitInstantiation(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.List,com.android.tools.r8.org.objectweb.asm.tree.InsnList,java.util.List,java.util.List):338 -> c
    24:24:void emitCode():305 -> c
    24:24:void visitEnd():147 -> c
    25:43:void emitInstantiation(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.List,com.android.tools.r8.org.objectweb.asm.tree.InsnList,java.util.List,java.util.List):340:358 -> c
    25:43:void emitCode():305 -> c
    25:43:void visitEnd():147 -> c
    44:55:void emitInstantiation(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.List,com.android.tools.r8.org.objectweb.asm.tree.InsnList,java.util.List,java.util.List):356:367 -> c
    44:55:void emitCode():305 -> c
    44:55:void visitEnd():147 -> c
    56:90:void emitInstantiation(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.List,com.android.tools.r8.org.objectweb.asm.tree.InsnList,java.util.List,java.util.List):364:398 -> c
    56:90:void emitCode():305 -> c
    56:90:void visitEnd():147 -> c
    91:102:void emitInstantiation(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.List,com.android.tools.r8.org.objectweb.asm.tree.InsnList,java.util.List,java.util.List):396:407 -> c
    91:102:void emitCode():305 -> c
    91:102:void visitEnd():147 -> c
    103:105:void emitCode():308:310 -> c
    103:105:void visitEnd():147 -> c
    106:107:void visitEnd():149:150 -> c
com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation -> com.android.tools.r8.h.a.a.a.a:
    java.util.Map clonedLabels -> c
    com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation parent -> a
    java.util.BitSet subroutineInsns -> b
    com.android.tools.r8.org.objectweb.asm.tree.LabelNode returnLabel -> d
    com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter this$0 -> e
    1:5:void <init>(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter,com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.BitSet):447:451 -> <init>
    6:29:void <init>(com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter,com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation,java.util.BitSet):450:473 -> <init>
    1:1:com.android.tools.r8.org.objectweb.asm.tree.LabelNode getClonedLabel(com.android.tools.r8.org.objectweb.asm.tree.LabelNode):539:539 -> a
    1:1:com.android.tools.r8.org.objectweb.asm.tree.LabelNode getClonedLabelForJumpInsn(com.android.tools.r8.org.objectweb.asm.tree.LabelNode):527:527 -> b
    1:11:com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation findOwner(int):500:510 -> c
    12:12:com.android.tools.r8.org.objectweb.asm.commons.JSRInlinerAdapter$Instantiation findOwner(int):509:509 -> c
    1:1:java.util.Set entrySet():546:546 -> entrySet
    1:1:boolean equals(java.lang.Object):556:556 -> equals
    1:1:com.android.tools.r8.org.objectweb.asm.tree.LabelNode get(java.lang.Object):551:551 -> get
    1:1:java.lang.Object get(java.lang.Object):420 -> get
    1:1:int hashCode():561:561 -> hashCode
com.android.tools.r8.org.objectweb.asm.signature.SignatureReader -> com.android.tools.r8.h.a.a.b.a:
    java.lang.String signatureValue -> a
    1:2:void <init>(java.lang.String):49:50 -> <init>
    1:17:void accept(com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor):64:80 -> a
    18:63:void accept(com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor):79:124 -> a
    64:159:int parseType(java.lang.String,int,com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor):154:249 -> a
    160:227:int parseType(java.lang.String,int,com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor):173:240 -> a
    228:228:int parseType(java.lang.String,int,com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor):236:236 -> a
    229:229:int parseType(java.lang.String,int,com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor):235:235 -> a
    230:230:int parseType(java.lang.String,int,com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor):229:229 -> a
    231:241:int parseType(java.lang.String,int,com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor):196:206 -> a
    242:242:int parseType(java.lang.String,int,com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor):168:168 -> a
com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor -> com.android.tools.r8.h.a.a.b.b:
    1:6:void <init>(int):75:80 -> <init>
    com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor visitArrayType() -> a
    void visitBaseType(char) -> a
    void visitClassType(java.lang.String) -> a
    com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor visitClassBound() -> b
    void visitFormalTypeParameter(java.lang.String) -> b
    com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor visitTypeArgument(char) -> b
    void visitEnd() -> c
    void visitInnerClassType(java.lang.String) -> c
    com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor visitExceptionType() -> d
    void visitTypeVariable(java.lang.String) -> d
    com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor visitInterface() -> e
    com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor visitInterfaceBound() -> f
    com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor visitParameterType() -> g
    com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor visitReturnType() -> h
    com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor visitSuperclass() -> i
    void visitTypeArgument() -> j
com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode -> com.android.tools.r8.h.a.a.c.a:
    java.util.List visibleTypeAnnotations -> b
    java.util.List invisibleTypeAnnotations -> c
    int index -> f
    com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode previousInsn -> d
    com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode nextInsn -> e
    int opcode -> a
    1:3:void <init>(int):126:128 -> <init>
    void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor) -> a
    com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map) -> a
    1:1:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode getNext():164:164 -> a
    2:4:com.android.tools.r8.org.objectweb.asm.tree.LabelNode[] clone(java.util.List,java.util.Map):227:229 -> a
    5:24:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode cloneAnnotations(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):241:260 -> a
    1:1:int getOpcode():137:137 -> b
    2:6:void acceptAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor):180:184 -> b
    7:16:void acceptAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor):183:192 -> b
    17:17:void acceptAnnotations(com.android.tools.r8.org.objectweb.asm.MethodVisitor):191:191 -> b
    1:1:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode getPrevious():154:154 -> c
    int getType() -> d
com.android.tools.r8.org.objectweb.asm.tree.AnnotationNode -> com.android.tools.r8.h.a.a.c.b:
    java.util.List values -> c
    java.lang.String desc -> b
    1:1:void com.android.tools.r8.org.objectweb.asm.AnnotationVisitor.<init>(int):57:57 -> <init>
    1:1:void <init>(int,java.lang.String):78 -> <init>
    2:2:void <init>(int,java.lang.String):79:79 -> <init>
    3:3:void com.android.tools.r8.org.objectweb.asm.AnnotationVisitor.<init>(int):57:57 -> <init>
    3:3:void <init>(int,java.lang.String):78 -> <init>
    3:3:void <init>(java.lang.String):63 -> <init>
    4:4:void <init>(int,java.lang.String):79:79 -> <init>
    4:4:void <init>(java.lang.String):63 -> <init>
    5:6:void <init>(java.lang.String):64:65 -> <init>
    7:8:void <init>(java.util.List):88:89 -> <init>
    void visitEnd() -> a
    1:8:void visit(java.lang.String,java.lang.Object):98:105 -> a
    9:13:java.util.List com.android.tools.r8.org.objectweb.asm.tree.Util.asArrayList(byte[]):64:68 -> a
    9:13:void visit(java.lang.String,java.lang.Object):105 -> a
    14:16:void visit(java.lang.String,java.lang.Object):105:107 -> a
    17:21:java.util.List com.android.tools.r8.org.objectweb.asm.tree.Util.asArrayList(boolean[]):75:79 -> a
    17:21:void visit(java.lang.String,java.lang.Object):107 -> a
    22:24:void visit(java.lang.String,java.lang.Object):107:109 -> a
    25:29:java.util.List com.android.tools.r8.org.objectweb.asm.tree.Util.asArrayList(short[]):86:90 -> a
    25:29:void visit(java.lang.String,java.lang.Object):109 -> a
    30:32:void visit(java.lang.String,java.lang.Object):109:111 -> a
    33:37:java.util.List com.android.tools.r8.org.objectweb.asm.tree.Util.asArrayList(char[]):97:101 -> a
    33:37:void visit(java.lang.String,java.lang.Object):111 -> a
    38:42:void visit(java.lang.String,java.lang.Object):111:115 -> a
    43:47:java.util.List com.android.tools.r8.org.objectweb.asm.tree.Util.asArrayList(long[]):130:134 -> a
    43:47:void visit(java.lang.String,java.lang.Object):115 -> a
    48:50:void visit(java.lang.String,java.lang.Object):115:117 -> a
    51:55:java.util.List com.android.tools.r8.org.objectweb.asm.tree.Util.asArrayList(float[]):119:123 -> a
    51:55:void visit(java.lang.String,java.lang.Object):117 -> a
    56:58:void visit(java.lang.String,java.lang.Object):117:119 -> a
    59:63:java.util.List com.android.tools.r8.org.objectweb.asm.tree.Util.asArrayList(double[]):141:145 -> a
    59:63:void visit(java.lang.String,java.lang.Object):119 -> a
    64:66:void visit(java.lang.String,java.lang.Object):119:121 -> a
    67:73:void visitEnum(java.lang.String,java.lang.String,java.lang.String):127:133 -> a
    74:81:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,java.lang.String):138:145 -> a
    82:90:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitArray(java.lang.String):151:159 -> a
    91:98:void accept(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor):190:197 -> a
    99:115:void accept(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,java.lang.String,java.lang.Object):211:227 -> a
com.android.tools.r8.org.objectweb.asm.tree.FieldInsnNode -> com.android.tools.r8.h.a.a.c.c:
    java.lang.String owner -> g
    java.lang.String desc -> i
    java.lang.String name -> h
    1:4:void <init>(int,java.lang.String,java.lang.String,java.lang.String):65:68 -> <init>
    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):88:89 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):94:94 -> a
    int getType() -> d
com.android.tools.r8.org.objectweb.asm.tree.FrameNode -> com.android.tools.r8.h.a.a.c.d:
    int type -> g
    java.util.List stack -> i
    java.util.List local -> h
    1:1:void <init>():73:73 -> <init>
    2:22:void <init>(int,int,java.lang.Object[],int,java.lang.Object[]):97:117 -> <init>
    23:23:void <init>(int,int,java.lang.Object[],int,java.lang.Object[]):114:114 -> <init>
    24:26:java.util.List com.android.tools.r8.org.objectweb.asm.tree.Util.asArrayList(int):44:46 -> <init>
    24:26:void <init>(int,int,java.lang.Object[],int,java.lang.Object[]):109 -> <init>
    27:27:void <init>(int,int,java.lang.Object[],int,java.lang.Object[]):109:109 -> <init>
    28:28:void <init>(int,int,java.lang.Object[],int,java.lang.Object[]):106:106 -> <init>
    29:30:void <init>(int,int,java.lang.Object[],int,java.lang.Object[]):102:103 -> <init>
    1:19:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):128:146 -> a
    20:20:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):143:143 -> a
    21:21:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):140:140 -> a
    22:22:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):137:137 -> a
    23:23:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):134:134 -> a
    24:24:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):131:131 -> a
    25:44:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):152:171 -> a
    45:51:java.lang.Object[] asArray(java.util.List):178:184 -> a
    int getType() -> d
com.android.tools.r8.org.objectweb.asm.tree.IincInsnNode -> com.android.tools.r8.h.a.a.c.e:
    int incr -> h
    int var -> g
    1:3:void <init>(int,int):54:56 -> <init>
    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):66:67 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):72:72 -> a
    int getType() -> d
com.android.tools.r8.org.objectweb.asm.tree.InsnList -> com.android.tools.r8.h.a.a.c.g:
    com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode[] cache -> d
    com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode firstInsn -> b
    int size -> a
    com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode lastInsn -> c
    1:1:void <init>():38:38 -> <init>
    1:1:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode getFirst():70:70 -> a
    2:8:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode get(int):93:99 -> a
    9:9:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode get(int):94:94 -> a
    10:13:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):142:145 -> a
    14:25:void add(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):225:236 -> a
    26:37:void insert(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):314:325 -> a
    1:1:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode getLast():79:79 -> b
    2:5:int indexOf(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):130:133 -> b
    6:17:void insertBefore(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):364:375 -> b
    1:1:java.util.ListIterator iterator(int):166:166 -> c
    1:1:java.util.ListIterator iterator():155 -> c
    2:25:void set(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode,com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):193:216 -> c
    26:49:void remove(com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode):412:435 -> c
    1:6:void resetLabels():470:475 -> d
    1:1:int size():61:61 -> e
    1:6:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode[] toArray():176:181 -> f
com.android.tools.r8.org.objectweb.asm.tree.InsnList$InsnListIterator -> com.android.tools.r8.h.a.a.c.f:
    com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode nextInsn -> a
    com.android.tools.r8.org.objectweb.asm.tree.InsnList this$0 -> d
    com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode previousInsn -> b
    com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode remove -> c
    1:7:void <init>(com.android.tools.r8.org.objectweb.asm.tree.InsnList,int):489:495 -> <init>
    1:9:void add(java.lang.Object):561:569 -> add
    1:1:boolean hasNext():500:500 -> hasNext
    1:1:boolean hasPrevious():529:529 -> hasPrevious
    1:7:java.lang.Object next():504:510 -> next
    8:8:java.lang.Object next():505:505 -> next
    1:7:int nextIndex():541:547 -> nextIndex
    1:4:java.lang.Object previous():533:536 -> previous
    1:7:int previousIndex():551:557 -> previousIndex
    1:10:void remove():515:524 -> remove
    1:9:void set(java.lang.Object):573:581 -> set
com.android.tools.r8.org.objectweb.asm.tree.InsnNode -> com.android.tools.r8.h.a.a.c.h:
    1:1:void <init>(int):55:55 -> <init>
    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):65:66 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):71:71 -> a
    int getType() -> d
com.android.tools.r8.org.objectweb.asm.tree.IntInsnNode -> com.android.tools.r8.h.a.a.c.i:
    int operand -> g
    1:2:void <init>(int,int):51:52 -> <init>
    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):71:72 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):77:77 -> a
    int getType() -> d
com.android.tools.r8.org.objectweb.asm.tree.InvokeDynamicInsnNode -> com.android.tools.r8.h.a.a.c.j:
    java.lang.String name -> g
    java.lang.String desc -> h
    com.android.tools.r8.org.objectweb.asm.Handle bsm -> i
    java.lang.Object[] bsmArgs -> j
    1:5:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):70:74 -> <init>
    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):84:85 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):90:90 -> a
    int getType() -> d
com.android.tools.r8.org.objectweb.asm.tree.JumpInsnNode -> com.android.tools.r8.h.a.a.c.k:
    com.android.tools.r8.org.objectweb.asm.tree.LabelNode label -> g
    1:2:void <init>(int,com.android.tools.r8.org.objectweb.asm.tree.LabelNode):57:58 -> <init>
    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):79:80 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):85:85 -> a
    4:4:com.android.tools.r8.org.objectweb.asm.tree.LabelNode com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode.clone(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,java.util.Map):215:215 -> a
    4:4:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):85 -> a
    5:5:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):85:85 -> a
    int getType() -> d
com.android.tools.r8.org.objectweb.asm.tree.LabelNode -> com.android.tools.r8.h.a.a.c.l:
    com.android.tools.r8.org.objectweb.asm.Label value -> g
    1:1:void <init>():40:40 -> <init>
    1:1:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):62:62 -> a
    2:2:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):67:67 -> a
    int getType() -> d
    1:4:com.android.tools.r8.org.objectweb.asm.Label getLabel():54:57 -> e
    1:1:void resetLabel():71:71 -> f
com.android.tools.r8.org.objectweb.asm.tree.LdcInsnNode -> com.android.tools.r8.h.a.a.c.m:
    java.lang.Object cst -> g
    1:2:void <init>(java.lang.Object):55:56 -> <init>
    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):66:67 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):72:72 -> a
    int getType() -> d
com.android.tools.r8.org.objectweb.asm.tree.LineNumberNode -> com.android.tools.r8.h.a.a.c.n:
    com.android.tools.r8.org.objectweb.asm.tree.LabelNode start -> h
    int line -> g
    1:3:void <init>(int,com.android.tools.r8.org.objectweb.asm.tree.LabelNode):55:57 -> <init>
    1:1:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):67:67 -> a
    2:2:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):72:72 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.LabelNode com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode.clone(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,java.util.Map):215:215 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):72 -> a
    4:4:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):72:72 -> a
    int getType() -> d
com.android.tools.r8.org.objectweb.asm.tree.LocalVariableAnnotationNode -> com.android.tools.r8.h.a.a.c.o:
    java.util.List start -> f
    java.util.List index -> h
    java.util.List end -> g
    1:4:void <init>(int,int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.tree.LabelNode[],com.android.tools.r8.org.objectweb.asm.tree.LabelNode[],int[],java.lang.String):116:119 -> <init>
    1:4:void <init>(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.tree.LabelNode[],com.android.tools.r8.org.objectweb.asm.tree.LabelNode[],int[],java.lang.String):87 -> <init>
    1:10:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor,boolean):129:138 -> a
    11:11:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor,boolean):137:137 -> a
com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode -> com.android.tools.r8.h.a.a.c.p:
    int index -> f
    java.lang.String name -> a
    java.lang.String signature -> c
    java.lang.String desc -> b
    com.android.tools.r8.org.objectweb.asm.tree.LabelNode end -> e
    com.android.tools.r8.org.objectweb.asm.tree.LabelNode start -> d
    1:7:void <init>(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.tree.LabelNode,com.android.tools.r8.org.objectweb.asm.tree.LabelNode,int):74:80 -> <init>
com.android.tools.r8.org.objectweb.asm.tree.LookupSwitchInsnNode -> com.android.tools.r8.h.a.a.c.q:
    com.android.tools.r8.org.objectweb.asm.tree.LabelNode dflt -> g
    java.util.List labels -> i
    java.util.List keys -> h
    1:4:void <init>(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,int[],com.android.tools.r8.org.objectweb.asm.tree.LabelNode[]):61:64 -> <init>
    1:10:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):74:83 -> a
    11:11:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):88:88 -> a
    12:12:com.android.tools.r8.org.objectweb.asm.tree.LabelNode com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode.clone(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,java.util.Map):215:215 -> a
    12:12:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):89 -> a
    13:15:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):89:91 -> a
    int getType() -> d
com.android.tools.r8.org.objectweb.asm.tree.MethodInsnNode -> com.android.tools.r8.h.a.a.c.r:
    java.lang.String owner -> g
    java.lang.String desc -> i
    java.lang.String name -> h
    boolean itf -> j
    1:5:void <init>(int,java.lang.String,java.lang.String,java.lang.String,boolean):93:97 -> <init>
    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):117:118 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):123:123 -> a
    int getType() -> d
com.android.tools.r8.org.objectweb.asm.tree.MethodNode -> com.android.tools.r8.h.a.a.c.t:
    java.util.List tryCatchBlocks -> r
    int invisibleAnnotableParameterCount -> o
    int visibleAnnotableParameterCount -> m
    java.util.List visibleLocalVariableAnnotations -> v
    java.util.List localVariables -> u
    com.android.tools.r8.org.objectweb.asm.tree.InsnList instructions -> q
    java.util.List invisibleLocalVariableAnnotations -> w
    boolean visited -> x
    int access -> c
    java.util.List[] visibleParameterAnnotations -> n
    java.lang.Object annotationDefault -> l
    java.util.List[] invisibleParameterAnnotations -> p
    java.util.List parameters -> f
    java.util.List invisibleTypeAnnotations -> j
    java.util.List visibleTypeAnnotations -> i
    java.util.List invisibleAnnotations -> h
    int maxLocals -> t
    java.util.List visibleAnnotations -> g
    int maxStack -> s
    java.lang.String desc -> e
    java.lang.String name -> d
    java.util.List attrs -> k
    1:1:void com.android.tools.r8.org.objectweb.asm.MethodVisitor.<init>(int):70:70 -> <init>
    1:1:void <init>(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):222 -> <init>
    2:11:void <init>(int,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String[]):223:232 -> <init>
    1:1:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotationDefault():250:250 -> a
    2:12:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):262:272 -> a
    13:15:void visitAnnotableParameterCount(int,boolean):298:300 -> a
    16:34:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitParameterAnnotation(int,java.lang.String,boolean):308:326 -> a
    35:38:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):333:336 -> a
    39:45:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):351:357 -> a
    46:46:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):351:351 -> a
    47:47:void visitInsn(int):362:362 -> a
    48:48:void visitTypeInsn(int,java.lang.String):377:377 -> a
    49:49:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):383:383 -> a
    50:54:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):405:409 -> a
    55:55:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):418:418 -> a
    56:56:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):425:425 -> a
    57:57:void visitLabel(com.android.tools.r8.org.objectweb.asm.Label):430:430 -> a
    58:58:void visitLdcInsn(java.lang.Object):435:435 -> a
    59:59:void visitIincInsn(int,int):440:440 -> a
    60:60:void visitTableSwitchInsn(int,int,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label[]):446:446 -> a
    61:61:void visitLookupSwitchInsn(com.android.tools.r8.org.objectweb.asm.Label,int[],com.android.tools.r8.org.objectweb.asm.Label[]):451:451 -> a
    62:62:void visitMultiANewArrayInsn(java.lang.String,int):456:456 -> a
    63:63:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):463:463 -> a
    64:64:int com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode.getOpcode():137:137 -> a
    64:64:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):464 -> a
    65:78:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):465:478 -> a
    79:80:void visitTryCatchBlock(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,java.lang.String):486:487 -> a
    81:81:void visitTryCatchBlock(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,java.lang.String):486:486 -> a
    82:84:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):517:519 -> a
    85:85:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):517:517 -> a
    86:98:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitLocalVariableAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.Label[],com.android.tools.r8.org.objectweb.asm.Label[],int[],java.lang.String,boolean):531:543 -> a
    99:101:com.android.tools.r8.org.objectweb.asm.tree.LabelNode[] getLabelNodes(com.android.tools.r8.org.objectweb.asm.Label[]):580:582 -> a
    102:108:java.lang.Object[] getLabelNodes(java.lang.Object[]):588:594 -> a
    109:111:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):699:701 -> a
    112:112:void com.android.tools.r8.org.objectweb.asm.tree.ParameterNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):67:67 -> a
    112:112:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):701 -> a
    113:136:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):705:728 -> a
    137:146:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):727:736 -> a
    147:197:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):735:785 -> a
    198:205:void com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode.updateIndex(int):87:94 -> a
    198:205:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):785 -> a
    206:206:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):786:786 -> a
    207:208:void com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):105:106 -> a
    207:208:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):786 -> a
    209:215:void com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):105:111 -> a
    209:215:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):786 -> a
    216:225:void com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):110:119 -> a
    216:225:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):786 -> a
    226:226:void com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):118:118 -> a
    226:226:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):786 -> a
    227:231:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):790:794 -> a
    232:233:void com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):89:90 -> a
    232:233:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):794 -> a
    234:234:void com.android.tools.r8.org.objectweb.asm.tree.LocalVariableNode.accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):89:89 -> a
    234:234:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):794 -> a
    235:248:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):798:811 -> a
    void visitCode() -> b
    1:4:void visitParameter(java.lang.String,int):241:244 -> b
    5:5:void visitIntInsn(int,int):367:367 -> b
    6:10:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String):391:395 -> b
    11:11:void com.android.tools.r8.org.objectweb.asm.tree.MethodInsnNode.<init>(int,java.lang.String,java.lang.String,java.lang.String):73:73 -> b
    11:11:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String):395 -> b
    12:12:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String):395:395 -> b
    13:24:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTryCatchAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):493:504 -> b
    25:25:void visitLineNumber(int,com.android.tools.r8.org.objectweb.asm.Label):550:550 -> b
    26:29:com.android.tools.r8.org.objectweb.asm.tree.LabelNode getLabelNode(com.android.tools.r8.org.objectweb.asm.Label):573:576 -> b
    void visitEnd() -> c
    1:11:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):280:290 -> c
    12:13:void visitMaxs(int,int):555:556 -> c
    1:1:void visitVarInsn(int,int):372:372 -> d
com.android.tools.r8.org.objectweb.asm.tree.MethodNode$1 -> com.android.tools.r8.h.a.a.c.s:
    com.android.tools.r8.org.objectweb.asm.tree.MethodNode this$0 -> a
    1:1:void <init>(com.android.tools.r8.org.objectweb.asm.tree.MethodNode,int):251:251 -> <init>
    1:2:boolean add(java.lang.Object):254:255 -> add
com.android.tools.r8.org.objectweb.asm.tree.MultiANewArrayInsnNode -> com.android.tools.r8.h.a.a.c.u:
    java.lang.String desc -> g
    int dims -> h
    1:3:void <init>(java.lang.String,int):54:56 -> <init>
    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):66:67 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):72:72 -> a
    int getType() -> d
com.android.tools.r8.org.objectweb.asm.tree.ParameterNode -> com.android.tools.r8.h.a.a.c.v:
    java.lang.String name -> a
    int access -> b
    1:3:void <init>(java.lang.String,int):56:58 -> <init>
com.android.tools.r8.org.objectweb.asm.tree.TableSwitchInsnNode -> com.android.tools.r8.h.a.a.c.w:
    com.android.tools.r8.org.objectweb.asm.tree.LabelNode dflt -> i
    int max -> h
    java.util.List labels -> j
    int min -> g
    1:5:void <init>(int,int,com.android.tools.r8.org.objectweb.asm.tree.LabelNode,com.android.tools.r8.org.objectweb.asm.tree.LabelNode[]):66:70 -> <init>
    1:6:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):80:85 -> a
    7:7:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):90:90 -> a
    8:8:com.android.tools.r8.org.objectweb.asm.tree.LabelNode com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode.clone(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,java.util.Map):215:215 -> a
    8:8:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):90 -> a
    9:10:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):90:91 -> a
    int getType() -> d
com.android.tools.r8.org.objectweb.asm.tree.TryCatchBlockNode -> com.android.tools.r8.h.a.a.c.x:
    java.util.List invisibleTypeAnnotations -> f
    java.util.List visibleTypeAnnotations -> e
    com.android.tools.r8.org.objectweb.asm.tree.LabelNode start -> a
    com.android.tools.r8.org.objectweb.asm.tree.LabelNode handler -> c
    com.android.tools.r8.org.objectweb.asm.tree.LabelNode end -> b
    java.lang.String type -> d
    1:5:void <init>(com.android.tools.r8.org.objectweb.asm.tree.LabelNode,com.android.tools.r8.org.objectweb.asm.tree.LabelNode,com.android.tools.r8.org.objectweb.asm.tree.LabelNode,java.lang.String):71:75 -> <init>
com.android.tools.r8.org.objectweb.asm.tree.TypeAnnotationNode -> com.android.tools.r8.h.a.a.c.y:
    int typeRef -> d
    com.android.tools.r8.org.objectweb.asm.TypePath typePath -> e
    1:3:void <init>(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String):62:64 -> <init>
    4:6:void <init>(int,int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String):82:84 -> <init>
com.android.tools.r8.org.objectweb.asm.tree.TypeInsnNode -> com.android.tools.r8.h.a.a.c.z:
    java.lang.String desc -> g
    1:2:void <init>(int,java.lang.String):56:57 -> <init>
    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):77:78 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):83:83 -> a
    int getType() -> d
com.android.tools.r8.org.objectweb.asm.tree.Util -> com.android.tools.r8.h.a.a.c.A:
    1:5:java.util.List asArrayList(java.lang.Object[]):53:57 -> a
    6:10:java.util.List asArrayList(int[]):108:112 -> a
    11:13:java.util.List asArrayList(int,java.lang.Object[]):151:153 -> a
com.android.tools.r8.org.objectweb.asm.tree.VarInsnNode -> com.android.tools.r8.h.a.a.c.B:
    int var -> g
    1:2:void <init>(int,int):53:54 -> <init>
    1:2:void accept(com.android.tools.r8.org.objectweb.asm.MethodVisitor):74:75 -> a
    3:3:com.android.tools.r8.org.objectweb.asm.tree.AbstractInsnNode clone(java.util.Map):80:80 -> a
    int getType() -> d
com.android.tools.r8.org.objectweb.asm.util.Printer -> com.android.tools.r8.h.a.a.d.a:
    java.util.List text -> c
    java.lang.String[] TYPES -> e
    java.lang.StringBuilder stringBuilder -> b
    java.lang.String[] OPCODES -> d
    int api -> a
    1:224:void <clinit>():52:275 -> <clinit>
    1:5:void <init>(int):330:334 -> <init>
    void visit(java.lang.String,java.lang.Object) -> a
    com.android.tools.r8.org.objectweb.asm.util.Printer visitAnnotation(java.lang.String,java.lang.String) -> a
    com.android.tools.r8.org.objectweb.asm.util.Printer visitArray(java.lang.String) -> a
    void visitEnum(java.lang.String,java.lang.String,java.lang.String) -> a
    void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]) -> a
    void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]) -> a
    void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int) -> a
    com.android.tools.r8.org.objectweb.asm.util.Printer visitLocalVariableAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.Label[],com.android.tools.r8.org.objectweb.asm.Label[],int[],java.lang.String,boolean) -> a
    com.android.tools.r8.org.objectweb.asm.util.Printer visitMethodAnnotation(java.lang.String,boolean) -> a
    void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean) -> a
    com.android.tools.r8.org.objectweb.asm.util.Printer visitParameterAnnotation(int,java.lang.String,boolean) -> a
    com.android.tools.r8.org.objectweb.asm.util.Printer visitTryCatchAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean) -> a
    1:6:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String):895:900 -> a
    7:7:java.util.List getText():1147:1147 -> a
    8:8:void print(java.io.PrintWriter):1156:1156 -> a
    9:13:void printList(java.io.PrintWriter,java.util.List):1167:1171 -> a
    14:36:void appendString(java.lang.StringBuilder,java.lang.String):1197:1219 -> a
    37:50:void appendString(java.lang.StringBuilder,java.lang.String):1209:1222 -> a
    com.android.tools.r8.org.objectweb.asm.util.Printer visitAnnotationDefault() -> b
    void visitAnnotationEnd() -> c
    void visitCode() -> d
    void visitMethodEnd() -> e
com.android.tools.r8.org.objectweb.asm.util.Textifier -> com.android.tools.r8.h.a.a.d.b:
    java.lang.String tab2 -> g
    java.lang.String tab -> f
    java.lang.String ltab -> i
    int numAnnotationValues -> l
    java.lang.String tab3 -> h
    int access -> k
    java.util.Map labelNames -> j
    1:1:void <init>(int):125:125 -> <init>
    1:1:void <init>():111 -> <init>
    2:11:void <init>(int):84:93 -> <init>
    2:11:void <init>():111 -> <init>
    12:13:void <init>():112:113 -> <init>
    1:3:void visit(java.lang.String,java.lang.Object):515:517 -> a
    4:4:void visitString(java.lang.String):625:625 -> a
    4:4:void visit(java.lang.String,java.lang.Object):517 -> a
    5:6:void visit(java.lang.String,java.lang.Object):518:519 -> a
    7:7:void visitType(com.android.tools.r8.org.objectweb.asm.Type):629:629 -> a
    7:7:void visit(java.lang.String,java.lang.Object):519 -> a
    8:9:void visit(java.lang.String,java.lang.Object):520:521 -> a
    10:10:void visitByte(byte):617:617 -> a
    10:10:void visit(java.lang.String,java.lang.Object):521 -> a
    11:12:void visit(java.lang.String,java.lang.Object):522:523 -> a
    13:13:void visitBoolean(boolean):621:621 -> a
    13:13:void visit(java.lang.String,java.lang.Object):523 -> a
    14:15:void visit(java.lang.String,java.lang.Object):524:525 -> a
    16:16:void visitShort(short):613:613 -> a
    16:16:void visit(java.lang.String,java.lang.Object):525 -> a
    17:18:void visit(java.lang.String,java.lang.Object):526:527 -> a
    19:19:void visitChar(char):609:609 -> a
    19:19:void visit(java.lang.String,java.lang.Object):527 -> a
    20:21:void visit(java.lang.String,java.lang.Object):528:529 -> a
    22:22:void visitInt(int):593:593 -> a
    22:22:void visit(java.lang.String,java.lang.Object):529 -> a
    23:24:void visit(java.lang.String,java.lang.Object):530:531 -> a
    25:25:void visitFloat(float):601:601 -> a
    25:25:void visit(java.lang.String,java.lang.Object):531 -> a
    26:27:void visit(java.lang.String,java.lang.Object):532:533 -> a
    28:28:void visitLong(long):597:597 -> a
    28:28:void visit(java.lang.String,java.lang.Object):533 -> a
    29:30:void visit(java.lang.String,java.lang.Object):534:535 -> a
    31:31:void visitDouble(double):605:605 -> a
    31:31:void visit(java.lang.String,java.lang.Object):535 -> a
    32:38:void visit(java.lang.String,java.lang.Object):536:542 -> a
    39:39:void visitByte(byte):617:617 -> a
    39:39:void visit(java.lang.String,java.lang.Object):542 -> a
    40:44:void visit(java.lang.String,java.lang.Object):544:548 -> a
    45:45:void visitBoolean(boolean):621:621 -> a
    45:45:void visit(java.lang.String,java.lang.Object):548 -> a
    46:50:void visit(java.lang.String,java.lang.Object):550:554 -> a
    51:51:void visitShort(short):613:613 -> a
    51:51:void visit(java.lang.String,java.lang.Object):554 -> a
    52:56:void visit(java.lang.String,java.lang.Object):556:560 -> a
    57:57:void visitChar(char):609:609 -> a
    57:57:void visit(java.lang.String,java.lang.Object):560 -> a
    58:62:void visit(java.lang.String,java.lang.Object):562:566 -> a
    63:63:void visitInt(int):593:593 -> a
    63:63:void visit(java.lang.String,java.lang.Object):566 -> a
    64:68:void visit(java.lang.String,java.lang.Object):568:572 -> a
    69:69:void visitLong(long):597:597 -> a
    69:69:void visit(java.lang.String,java.lang.Object):572 -> a
    70:74:void visit(java.lang.String,java.lang.Object):574:578 -> a
    75:75:void visitFloat(float):601:601 -> a
    75:75:void visit(java.lang.String,java.lang.Object):578 -> a
    76:80:void visit(java.lang.String,java.lang.Object):580:584 -> a
    81:81:void visitDouble(double):605:605 -> a
    81:81:void visit(java.lang.String,java.lang.Object):584 -> a
    82:84:void visit(java.lang.String,java.lang.Object):587:589 -> a
    85:88:void visitEnum(java.lang.String,java.lang.String,java.lang.String):634:637 -> a
    89:94:com.android.tools.r8.org.objectweb.asm.util.Textifier visitAnnotation(java.lang.String,java.lang.String):642:647 -> a
    89:94:com.android.tools.r8.org.objectweb.asm.util.Printer visitAnnotation(java.lang.String,java.lang.String):47 -> a
    95:98:com.android.tools.r8.org.objectweb.asm.util.Textifier visitArray(java.lang.String):652:655 -> a
    95:98:com.android.tools.r8.org.objectweb.asm.util.Printer visitArray(java.lang.String):47 -> a
    99:110:com.android.tools.r8.org.objectweb.asm.util.Textifier visitParameterAnnotation(int,java.lang.String,boolean):739:750 -> a
    99:110:com.android.tools.r8.org.objectweb.asm.util.Printer visitParameterAnnotation(int,java.lang.String,boolean):47 -> a
    111:139:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):782:810 -> a
    140:141:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):806:807 -> a
    142:142:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):803:803 -> a
    143:143:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):800:800 -> a
    144:146:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):795:797 -> a
    147:172:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):788:813 -> a
    173:177:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String):868:872 -> a
    178:178:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):882:882 -> a
    179:179:void com.android.tools.r8.org.objectweb.asm.util.Printer.visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):924:924 -> a
    179:179:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):883 -> a
    180:185:void com.android.tools.r8.org.objectweb.asm.util.Printer.visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):922:927 -> a
    180:185:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):883 -> a
    186:186:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):886:886 -> a
    187:209:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):913:935 -> a
    210:210:void visitType(com.android.tools.r8.org.objectweb.asm.Type):629:629 -> a
    210:210:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):937 -> a
    211:222:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):939:950 -> a
    223:234:com.android.tools.r8.org.objectweb.asm.util.Printer visitTryCatchAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):1064:1075 -> a
    235:247:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):1086:1098 -> a
    248:259:void appendJavaDeclaration(java.lang.String):1315:1326 -> a
    248:259:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):1099 -> a
    260:260:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):1101:1101 -> a
    261:279:com.android.tools.r8.org.objectweb.asm.util.Printer visitLocalVariableAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.Label[],com.android.tools.r8.org.objectweb.asm.Label[],int[],java.lang.String,boolean):1113:1131 -> a
    280:285:com.android.tools.r8.org.objectweb.asm.util.Textifier visitAnnotation(java.lang.String,boolean):1171:1176 -> a
    280:285:com.android.tools.r8.org.objectweb.asm.util.Textifier visitMethodAnnotation(java.lang.String,boolean):717 -> a
    280:285:com.android.tools.r8.org.objectweb.asm.util.Printer visitMethodAnnotation(java.lang.String,boolean):47 -> a
    286:286:void appendDescriptor(int,java.lang.String):1305:1305 -> a
    287:287:void appendDescriptor(int,java.lang.String):1302:1302 -> a
    288:296:void appendLabel(com.android.tools.r8.org.objectweb.asm.Label):1336:1344 -> a
    297:334:void appendHandle(com.android.tools.r8.org.objectweb.asm.Handle):1353:1390 -> a
    335:351:void appendHandle(com.android.tools.r8.org.objectweb.asm.Handle):1370:1386 -> a
    352:360:void appendHandle(com.android.tools.r8.org.objectweb.asm.Handle):1374:1382 -> a
    361:361:void appendHandle(com.android.tools.r8.org.objectweb.asm.Handle):1367:1367 -> a
    362:362:void appendHandle(com.android.tools.r8.org.objectweb.asm.Handle):1364:1364 -> a
    363:363:void appendHandle(com.android.tools.r8.org.objectweb.asm.Handle):1361:1361 -> a
    364:411:void appendHandle(com.android.tools.r8.org.objectweb.asm.Handle):1358:1405 -> a
    412:501:void appendTypeReference(int):1427:1516 -> a
    502:504:void appendTypeReference(int):1511:1513 -> a
    505:507:void appendTypeReference(int):1506:1508 -> a
    508:510:void appendTypeReference(int):1501:1503 -> a
    511:513:void appendTypeReference(int):1496:1498 -> a
    514:514:void appendTypeReference(int):1493:1493 -> a
    515:515:void appendTypeReference(int):1490:1490 -> a
    516:516:void appendTypeReference(int):1487:1487 -> a
    517:517:void appendTypeReference(int):1484:1484 -> a
    518:518:void appendTypeReference(int):1481:1481 -> a
    519:519:void appendTypeReference(int):1478:1478 -> a
    520:520:void appendTypeReference(int):1475:1475 -> a
    521:521:void appendTypeReference(int):1472:1472 -> a
    522:522:void appendTypeReference(int):1469:1469 -> a
    523:525:void appendTypeReference(int):1464:1466 -> a
    526:526:void appendTypeReference(int):1461:1461 -> a
    527:527:void appendTypeReference(int):1458:1458 -> a
    528:528:void appendTypeReference(int):1455:1455 -> a
    529:533:void appendTypeReference(int):1448:1452 -> a
    534:538:void appendTypeReference(int):1441:1445 -> a
    539:539:void appendTypeReference(int):1438:1438 -> a
    540:542:void appendTypeReference(int):1433:1435 -> a
    543:543:void appendTypeReference(int):1430:1430 -> a
    544:577:void appendFrameTypes(int,java.lang.Object[]):1530:1563 -> a
    578:578:void appendFrameTypes(int,java.lang.Object[]):1560:1560 -> a
    579:579:void appendFrameTypes(int,java.lang.Object[]):1557:1557 -> a
    580:580:void appendFrameTypes(int,java.lang.Object[]):1554:1554 -> a
    581:581:void appendFrameTypes(int,java.lang.Object[]):1551:1551 -> a
    582:582:void appendFrameTypes(int,java.lang.Object[]):1548:1548 -> a
    583:583:void appendFrameTypes(int,java.lang.Object[]):1545:1545 -> a
    584:608:void appendFrameTypes(int,java.lang.Object[]):1542:1566 -> a
    1:2:com.android.tools.r8.org.objectweb.asm.util.Textifier visitAnnotationDefault():711:712 -> b
    1:2:com.android.tools.r8.org.objectweb.asm.util.Printer visitAnnotationDefault():47 -> b
    3:12:void doVisitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):895:904 -> b
    13:24:com.android.tools.r8.org.objectweb.asm.util.Textifier visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):1192:1203 -> b
    25:25:void maybeAppendComma(int):1417:1417 -> b
    26:26:com.android.tools.r8.org.objectweb.asm.util.Textifier createTextifier():1592:1592 -> b
    26:26:com.android.tools.r8.org.objectweb.asm.util.Textifier addNewTextifier(java.lang.String):1578 -> b
    27:27:com.android.tools.r8.org.objectweb.asm.util.Textifier addNewTextifier(java.lang.String):1579:1579 -> b
    28:28:java.util.List com.android.tools.r8.org.objectweb.asm.util.Printer.getText():1147:1147 -> b
    28:28:com.android.tools.r8.org.objectweb.asm.util.Textifier addNewTextifier(java.lang.String):1579 -> b
    29:31:com.android.tools.r8.org.objectweb.asm.util.Textifier addNewTextifier(java.lang.String):1579:1581 -> b
    void visitAnnotationEnd() -> c
    1:4:void visitAnnotationValue(java.lang.String):664:667 -> c
    void visitCode() -> d
    void visitMethodEnd() -> e
com.android.tools.r8.org.objectweb.asm.util.TraceAnnotationVisitor -> com.android.tools.r8.h.a.a.d.c:
    com.android.tools.r8.org.objectweb.asm.util.Printer printer -> b
    1:2:void <init>(com.android.tools.r8.org.objectweb.asm.AnnotationVisitor,com.android.tools.r8.org.objectweb.asm.util.Printer):60:61 -> <init>
    1:2:void visit(java.lang.String,java.lang.Object):66:67 -> a
    3:4:void visitEnum(java.lang.String,java.lang.String,java.lang.String):72:73 -> a
    5:6:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,java.lang.String):78:79 -> a
    7:8:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitArray(java.lang.String):84:85 -> a
    9:10:void visitEnd():90:91 -> a
com.android.tools.r8.org.objectweb.asm.util.TraceMethodVisitor -> com.android.tools.r8.h.a.a.d.d:
    com.android.tools.r8.org.objectweb.asm.util.Printer p -> c
    1:2:void <init>(com.android.tools.r8.org.objectweb.asm.MethodVisitor,com.android.tools.r8.org.objectweb.asm.util.Printer):64:65 -> <init>
    1:2:void <init>(com.android.tools.r8.org.objectweb.asm.util.Printer):54 -> <init>
    1:3:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String,boolean):76:78 -> a
    4:4:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):91:91 -> a
    5:17:void com.android.tools.r8.org.objectweb.asm.util.Textifier.visitMethodAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):755:767 -> a
    5:17:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):91 -> a
    18:18:void visitAttribute(com.android.tools.r8.org.objectweb.asm.Attribute):92:92 -> a
    19:20:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitAnnotationDefault():97:98 -> a
    21:21:void visitAnnotableParameterCount(int,boolean):103:103 -> a
    22:26:com.android.tools.r8.org.objectweb.asm.util.Textifier com.android.tools.r8.org.objectweb.asm.util.Textifier.visitAnnotableParameterCount(int,boolean):728:732 -> a
    22:26:com.android.tools.r8.org.objectweb.asm.util.Printer com.android.tools.r8.org.objectweb.asm.util.Textifier.visitAnnotableParameterCount(int,boolean):47 -> a
    22:26:void visitAnnotableParameterCount(int,boolean):103 -> a
    27:27:void visitAnnotableParameterCount(int,boolean):104:104 -> a
    28:30:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitParameterAnnotation(int,java.lang.String,boolean):110:112 -> a
    31:32:void visitFrame(int,int,java.lang.Object[],int,java.lang.Object[]):128:129 -> a
    33:33:void visitInsn(int):134:134 -> a
    34:36:void com.android.tools.r8.org.objectweb.asm.util.Textifier.visitInsn(int):818:820 -> a
    34:36:void visitInsn(int):134 -> a
    37:37:void visitInsn(int):135:135 -> a
    38:38:void visitTypeInsn(int,java.lang.String):152:152 -> a
    39:43:void com.android.tools.r8.org.objectweb.asm.util.Textifier.visitTypeInsn(int,java.lang.String):844:848 -> a
    39:43:void visitTypeInsn(int,java.lang.String):152 -> a
    44:44:void visitTypeInsn(int,java.lang.String):153:153 -> a
    45:45:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):159:159 -> a
    46:52:void com.android.tools.r8.org.objectweb.asm.util.Textifier.visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):854:860 -> a
    46:52:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):159 -> a
    53:53:void visitFieldInsn(int,java.lang.String,java.lang.String,java.lang.String):160:160 -> a
    54:60:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String,boolean):185:191 -> a
    61:62:void visitInvokeDynamicInsn(java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Handle,java.lang.Object[]):201:202 -> a
    63:63:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):207:207 -> a
    64:68:void com.android.tools.r8.org.objectweb.asm.util.Textifier.visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):955:959 -> a
    64:68:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):207 -> a
    69:69:void visitJumpInsn(int,com.android.tools.r8.org.objectweb.asm.Label):208:208 -> a
    70:70:void visitLabel(com.android.tools.r8.org.objectweb.asm.Label):213:213 -> a
    71:75:void com.android.tools.r8.org.objectweb.asm.util.Textifier.visitLabel(com.android.tools.r8.org.objectweb.asm.Label):964:968 -> a
    71:75:void visitLabel(com.android.tools.r8.org.objectweb.asm.Label):213 -> a
    76:76:void visitLabel(com.android.tools.r8.org.objectweb.asm.Label):214:214 -> a
    77:77:void visitLdcInsn(java.lang.Object):219:219 -> a
    78:88:void com.android.tools.r8.org.objectweb.asm.util.Textifier.visitLdcInsn(java.lang.Object):973:983 -> a
    78:88:void visitLdcInsn(java.lang.Object):219 -> a
    89:89:void visitLdcInsn(java.lang.Object):220:220 -> a
    90:90:void visitIincInsn(int,int):225:225 -> a
    91:99:void com.android.tools.r8.org.objectweb.asm.util.Textifier.visitIincInsn(int,int):988:996 -> a
    91:99:void visitIincInsn(int,int):225 -> a
    100:100:void visitIincInsn(int,int):226:226 -> a
    101:101:void visitTableSwitchInsn(int,int,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label[]):232:232 -> a
    102:112:void com.android.tools.r8.org.objectweb.asm.util.Textifier.visitTableSwitchInsn(int,int,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label[]):1002:1012 -> a
    102:112:void visitTableSwitchInsn(int,int,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label[]):232 -> a
    113:113:void visitTableSwitchInsn(int,int,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label[]):233:233 -> a
    114:114:void visitLookupSwitchInsn(com.android.tools.r8.org.objectweb.asm.Label,int[],com.android.tools.r8.org.objectweb.asm.Label[]):238:238 -> a
    115:125:void com.android.tools.r8.org.objectweb.asm.util.Textifier.visitLookupSwitchInsn(com.android.tools.r8.org.objectweb.asm.Label,int[],com.android.tools.r8.org.objectweb.asm.Label[]):1017:1027 -> a
    115:125:void visitLookupSwitchInsn(com.android.tools.r8.org.objectweb.asm.Label,int[],com.android.tools.r8.org.objectweb.asm.Label[]):238 -> a
    126:126:void visitLookupSwitchInsn(com.android.tools.r8.org.objectweb.asm.Label,int[],com.android.tools.r8.org.objectweb.asm.Label[]):239:239 -> a
    127:127:void visitMultiANewArrayInsn(java.lang.String,int):244:244 -> a
    128:132:void com.android.tools.r8.org.objectweb.asm.util.Textifier.visitMultiANewArrayInsn(java.lang.String,int):1032:1036 -> a
    128:132:void visitMultiANewArrayInsn(java.lang.String,int):244 -> a
    133:133:void visitMultiANewArrayInsn(java.lang.String,int):245:245 -> a
    134:134:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):251:251 -> a
    135:135:com.android.tools.r8.org.objectweb.asm.util.Printer com.android.tools.r8.org.objectweb.asm.util.Textifier.visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):1042:1042 -> a
    135:135:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):251 -> a
    136:137:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitInsnAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):252:253 -> a
    138:138:void visitTryCatchBlock(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,java.lang.String):259:259 -> a
    139:149:void com.android.tools.r8.org.objectweb.asm.util.Textifier.visitTryCatchBlock(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,java.lang.String):1048:1058 -> a
    139:149:void visitTryCatchBlock(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,java.lang.String):259 -> a
    150:150:void visitTryCatchBlock(com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,java.lang.String):260:260 -> a
    151:152:void visitLocalVariable(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.org.objectweb.asm.Label,com.android.tools.r8.org.objectweb.asm.Label,int):279:280 -> a
    153:156:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitLocalVariableAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,com.android.tools.r8.org.objectweb.asm.Label[],com.android.tools.r8.org.objectweb.asm.Label[],int[],java.lang.String,boolean):292:295 -> a
    1:1:void visitParameter(java.lang.String,int):70:70 -> b
    2:3:void com.android.tools.r8.org.objectweb.asm.util.Textifier.visitParameter(java.lang.String,int):702:703 -> b
    2:3:void visitParameter(java.lang.String,int):70 -> b
    4:40:void com.android.tools.r8.org.objectweb.asm.util.Textifier.appendAccess(int):1238:1274 -> b
    4:40:void com.android.tools.r8.org.objectweb.asm.util.Textifier.visitParameter(java.lang.String,int):704 -> b
    4:40:void visitParameter(java.lang.String,int):70 -> b
    41:42:void com.android.tools.r8.org.objectweb.asm.util.Textifier.visitParameter(java.lang.String,int):705:706 -> b
    41:42:void visitParameter(java.lang.String,int):70 -> b
    43:43:void visitParameter(java.lang.String,int):71:71 -> b
    44:45:void visitCode():117:118 -> b
    46:46:void visitIntInsn(int,int):140:140 -> b
    47:54:void com.android.tools.r8.org.objectweb.asm.util.Textifier.visitIntInsn(int,int):825:832 -> b
    47:54:void visitIntInsn(int,int):140 -> b
    55:55:void visitIntInsn(int,int):141:141 -> b
    56:62:void visitMethodInsn(int,java.lang.String,java.lang.String,java.lang.String):168:174 -> b
    63:65:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTryCatchAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):266:268 -> b
    66:66:void visitLineNumber(int,com.android.tools.r8.org.objectweb.asm.Label):302:302 -> b
    67:71:void com.android.tools.r8.org.objectweb.asm.util.Textifier.visitLineNumber(int,com.android.tools.r8.org.objectweb.asm.Label):1136:1140 -> b
    67:71:void visitLineNumber(int,com.android.tools.r8.org.objectweb.asm.Label):302 -> b
    72:72:void visitLineNumber(int,com.android.tools.r8.org.objectweb.asm.Label):303:303 -> b
    1:1:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):84:84 -> c
    2:2:com.android.tools.r8.org.objectweb.asm.util.Printer com.android.tools.r8.org.objectweb.asm.util.Textifier.visitMethodTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):723:723 -> c
    2:2:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):84 -> c
    3:4:com.android.tools.r8.org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int,com.android.tools.r8.org.objectweb.asm.TypePath,java.lang.String,boolean):85:86 -> c
    5:5:void visitMaxs(int,int):308:308 -> c
    6:12:void com.android.tools.r8.org.objectweb.asm.util.Textifier.visitMaxs(int,int):1145:1151 -> c
    6:12:void visitMaxs(int,int):308 -> c
    13:13:void visitMaxs(int,int):309:309 -> c
    14:15:void visitEnd():314:315 -> c
    1:1:void visitVarInsn(int,int):146:146 -> d
    2:4:void com.android.tools.r8.org.objectweb.asm.util.Textifier.visitVarInsn(int,int):837:839 -> d
    2:4:void visitVarInsn(int,int):146 -> d
    5:5:void visitVarInsn(int,int):147:147 -> d
com.android.tools.r8.org.objectweb.asm.util.TraceSignatureVisitor -> com.android.tools.r8.h.a.a.d.e:
    int arrayStack -> j
    java.lang.String separator -> k
    int argumentStack -> i
    java.lang.StringBuilder declaration -> b
    boolean formalTypeParameterVisited -> e
    boolean interfaceBoundVisited -> f
    boolean parameterTypeVisited -> g
    boolean interfaceVisited -> h
    boolean isInterface -> a
    java.lang.StringBuilder exceptions -> d
    java.lang.StringBuilder returnType -> c
    1:1:void <init>(int):93:93 -> <init>
    2:12:void <init>(int):85:95 -> <init>
    13:13:void <init>(java.lang.StringBuilder):99:99 -> <init>
    14:30:void <init>(java.lang.StringBuilder):85:101 -> <init>
    1:1:void visitBaseType(char):213:213 -> a
    2:2:void visitBaseType(char):195:195 -> a
    3:18:void visitBaseType(char):186:201 -> a
    19:37:void visitBaseType(char):192:210 -> a
    38:38:void visitBaseType(char):204:204 -> a
    39:65:void visitBaseType(char):189:215 -> a
    66:67:com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor visitArrayType():227:228 -> a
    68:79:void visitClassType(java.lang.String):234:245 -> a
    1:3:void visitFormalTypeParameter(java.lang.String):106:108 -> b
    4:5:com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor visitClassBound():113:114 -> b
    6:19:com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor visitTypeArgument(char):273:286 -> b
    1:8:void visitInnerClassType(java.lang.String):250:257 -> c
    9:13:void visitEnd():292:296 -> c
    1:6:com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor visitExceptionType():174:179 -> d
    7:9:void visitTypeVariable(java.lang.String):220:222 -> d
    1:7:com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor visitInterface():136:142 -> e
    1:3:com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor visitInterfaceBound():120:122 -> f
    1:8:com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor visitParameterType():148:155 -> g
    1:9:com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor visitReturnType():161:169 -> h
    1:3:com.android.tools.r8.org.objectweb.asm.signature.SignatureVisitor visitSuperclass():128:130 -> i
    1:7:void visitTypeArgument():262:268 -> j
    1:1:java.lang.String getDeclaration():303:303 -> k
    1:1:java.lang.String getExceptions():317:317 -> l
    1:1:java.lang.String getReturnType():310:310 -> m
    1:3:void endFormals():323:325 -> n
    1:6:void endType():334:339 -> o
    1:1:void startType():330:330 -> p
com.android.tools.r8.origin.ArchiveEntryOrigin -> com.android.tools.r8.origin.ArchiveEntryOrigin:
    java.lang.String entryName -> e
    1:2:void <init>(java.lang.String,com.android.tools.r8.origin.Origin):18:19 -> <init>
    1:1:java.lang.String getEntryName():28:28 -> getEntryName
    1:1:java.lang.String part():24:24 -> part
com.android.tools.r8.origin.CommandLineOrigin -> com.android.tools.r8.origin.a:
    com.android.tools.r8.origin.CommandLineOrigin INSTANCE -> e
    1:1:void <clinit>():9:9 -> <clinit>
    1:1:void <init>():12:12 -> <init>
com.android.tools.r8.origin.EmbeddedOrigin -> com.android.tools.r8.origin.EmbeddedOrigin:
    1:1:void <clinit>():9:9 -> <clinit>
    1:1:void <init>():12:12 -> <init>
com.android.tools.r8.origin.Origin -> com.android.tools.r8.origin.Origin:
    com.android.tools.r8.origin.Origin parent -> a
    com.android.tools.r8.origin.Origin UNKNOWN -> c
    com.android.tools.r8.origin.Origin ROOT -> b
    boolean $assertionsDisabled -> d
    1:17:void <clinit>():26:42 -> <clinit>
    1:2:void <init>():67:68 -> <init>
    1:2:void <init>(com.android.tools.r8.origin.Origin$1):27 -> <init>
    3:5:void <init>(com.android.tools.r8.origin.Origin):71:73 -> <init>
    1:2:java.util.List buildParts(int):87:88 -> b
    1:1:int compareTo(java.lang.Object):26:26 -> compareTo
    2:11:int compareTo(com.android.tools.r8.origin.Origin):130:139 -> compareTo
    1:8:boolean equals(java.lang.Object):115:122 -> equals
    1:4:com.android.tools.r8.origin.Origin getFromHierarchy(java.lang.Class):101:104 -> getFromHierarchy
    1:2:int hashCode():145:146 -> hashCode
    1:1:com.android.tools.r8.origin.Origin parent():79:79 -> parent
    1:1:java.util.List parts():83:83 -> parts
    1:1:com.android.tools.r8.origin.Origin root():58:58 -> root
    1:1:java.lang.String toString():153:153 -> toString
    1:1:com.android.tools.r8.origin.Origin unknown():62:62 -> unknown
com.android.tools.r8.origin.Origin$1 -> com.android.tools.r8.origin.b:
    1:1:void <init>():30:30 -> <init>
    1:1:java.util.List buildParts(int):38:38 -> b
    1:1:int compareTo(java.lang.Object):30:30 -> compareTo
com.android.tools.r8.origin.Origin$2 -> com.android.tools.r8.origin.c:
    1:1:void <init>():43:43 -> <init>
    1:2:java.util.List buildParts(int):51:52 -> b
    1:1:int compareTo(java.lang.Object):43:43 -> compareTo
com.android.tools.r8.origin.PathOrigin -> com.android.tools.r8.origin.PathOrigin:
    java.nio.file.Path path -> e
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():13:13 -> <clinit>
    1:3:void <init>(java.nio.file.Path):19:21 -> <init>
    1:1:java.nio.file.Path getPath():30:30 -> getPath
    1:1:java.lang.String part():26:26 -> part
com.android.tools.r8.origin.StandardOutOrigin -> com.android.tools.r8.origin.d:
    com.android.tools.r8.origin.StandardOutOrigin INSTANCE -> e
    1:1:void <clinit>():8:8 -> <clinit>
    1:1:void <init>():15:15 -> <init>
    1:1:com.android.tools.r8.origin.StandardOutOrigin instance():11:11 -> a
com.android.tools.r8.origin.SynthesizedOrigin -> com.android.tools.r8.origin.SynthesizedOrigin:
    java.lang.String reason -> e
    1:2:void <init>(java.lang.String,java.lang.Class):13:14 -> <init>
    1:1:java.lang.String part():20:20 -> part
com.android.tools.r8.position.MethodPosition -> com.android.tools.r8.position.MethodPosition:
    com.android.tools.r8.graph.DexMethod method -> a
    1:2:void <init>(com.android.tools.r8.graph.DexMethod):20:21 -> <init>
    1:2:boolean equals(java.lang.Object):63:64 -> equals
    1:1:java.lang.String getDescription():53:53 -> getDescription
    1:1:java.lang.String getHolder():31:31 -> getHolder
    1:1:java.lang.String getName():26:26 -> getName
    1:3:java.util.List getParameterTypes():41:43 -> getParameterTypes
    1:1:java.lang.String getReturnType():36:36 -> getReturnType
    1:1:int hashCode():58:58 -> hashCode
    1:1:java.lang.String toString():48:48 -> toString
com.android.tools.r8.position.Position -> com.android.tools.r8.position.Position:
    1:1:void <clinit>():19:19 -> <clinit>
com.android.tools.r8.position.Position$1 -> com.android.tools.r8.position.a:
    1:1:void <init>():19:19 -> <init>
com.android.tools.r8.position.TextPosition -> com.android.tools.r8.position.TextPosition:
    long offset -> a
    int line -> b
    int column -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():12:12 -> <clinit>
    1:7:void <init>(long,int,int):27:33 -> <init>
    1:3:boolean equals(java.lang.Object):75:77 -> equals
    1:1:int getColumn():48:48 -> getColumn
    1:1:java.lang.String getDescription():62:62 -> getDescription
    1:1:int getLine():40:40 -> getLine
    1:1:long getOffset():52:52 -> getOffset
    1:1:int hashCode():67:67 -> hashCode
    1:1:java.lang.String toString():57:57 -> toString
com.android.tools.r8.position.TextRange -> com.android.tools.r8.position.TextRange:
    com.android.tools.r8.position.TextPosition end -> b
    com.android.tools.r8.position.TextPosition start -> a
    1:3:void <init>(com.android.tools.r8.position.TextPosition,com.android.tools.r8.position.TextPosition):14:16 -> <init>
    1:3:boolean equals(java.lang.Object):43:45 -> equals
    1:1:java.lang.String getDescription():57:57 -> getDescription
    1:1:com.android.tools.r8.position.TextPosition getEnd():30:30 -> getEnd
    1:1:com.android.tools.r8.position.TextPosition getStart():23:23 -> getStart
    1:1:int hashCode():35:35 -> hashCode
    1:1:java.lang.String toString():52:52 -> toString
com.android.tools.r8.references.ArrayReference -> com.android.tools.r8.references.ArrayReference:
    java.lang.String descriptor -> c
    com.android.tools.r8.references.TypeReference baseType -> b
    boolean $assertionsDisabled -> d
    int dimensions -> a
    1:1:void <clinit>():10:10 -> <clinit>
    1:5:void <init>(int,com.android.tools.r8.references.TypeReference,java.lang.String):17:21 -> <init>
    1:10:com.android.tools.r8.references.ArrayReference fromDescriptor(java.lang.String):25:34 -> a
    1:1:com.android.tools.r8.references.TypeReference getBaseType():46:46 -> getBaseType
    1:1:java.lang.String getDescriptor():56:56 -> getDescriptor
    1:1:int getDimensions():38:38 -> getDimensions
    1:1:com.android.tools.r8.references.TypeReference getMemberType():42:42 -> getMemberType
    1:1:int hashCode():66:66 -> hashCode
com.android.tools.r8.references.ClassReference -> com.android.tools.r8.references.ClassReference:
    java.lang.String descriptor -> a
    1:2:void <init>(java.lang.String):14:15 -> <init>
    1:1:com.android.tools.r8.references.ClassReference fromDescriptor(java.lang.String):19:19 -> a
    1:1:java.lang.String getDescriptor():29:29 -> getDescriptor
    1:1:int hashCode():39:39 -> hashCode
    1:1:java.lang.String toString():44:44 -> toString
com.android.tools.r8.references.FieldReference -> com.android.tools.r8.references.FieldReference:
    com.android.tools.r8.references.ClassReference holderClass -> a
    java.lang.String fieldName -> b
    com.android.tools.r8.references.TypeReference fieldType -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():15:15 -> <clinit>
    1:7:void <init>(com.android.tools.r8.references.ClassReference,java.lang.String,com.android.tools.r8.references.TypeReference):21:27 -> <init>
    1:7:boolean equals(java.lang.Object):50:56 -> equals
    1:1:java.lang.String getFieldName():35:35 -> getFieldName
    1:1:com.android.tools.r8.references.TypeReference getFieldType():39:39 -> getFieldType
    1:1:com.android.tools.r8.references.ClassReference getHolderClass():31:31 -> getHolderClass
    1:1:int hashCode():61:61 -> hashCode
    1:1:java.lang.String toString():66:66 -> toString
com.android.tools.r8.references.MethodReference -> com.android.tools.r8.references.MethodReference:
    com.android.tools.r8.references.ClassReference holderClass -> a
    boolean $assertionsDisabled -> e
    com.android.tools.r8.references.TypeReference returnType -> d
    java.lang.String methodName -> b
    com.android.tools.r8.com.google.common.collect.ImmutableList formalTypes -> c
    1:1:void <clinit>():20:20 -> <clinit>
    1:8:void <init>(com.android.tools.r8.references.ClassReference,java.lang.String,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.references.TypeReference):31:38 -> <init>
    1:8:boolean equals(java.lang.Object):65:72 -> equals
    1:1:java.util.List getFormalTypes():50:50 -> getFormalTypes
    1:1:com.android.tools.r8.references.ClassReference getHolderClass():42:42 -> getHolderClass
    1:2:java.lang.String getMethodDescriptor():81:82 -> getMethodDescriptor
    3:5:java.lang.String getMethodDescriptor():81:83 -> getMethodDescriptor
    1:1:java.lang.String getMethodName():46:46 -> getMethodName
    1:1:com.android.tools.r8.references.TypeReference getReturnType():54:54 -> getReturnType
    1:1:int hashCode():77:77 -> hashCode
    1:1:java.lang.String toString():88:88 -> toString
com.android.tools.r8.references.PrimitiveReference -> com.android.tools.r8.references.PrimitiveReference:
    com.android.tools.r8.references.PrimitiveReference LONG -> g
    com.android.tools.r8.references.PrimitiveReference FLOAT -> f
    com.android.tools.r8.references.PrimitiveReference DOUBLE -> h
    com.android.tools.r8.references.PrimitiveReference CHAR -> c
    boolean $assertionsDisabled -> i
    com.android.tools.r8.references.PrimitiveReference BYTE -> b
    com.android.tools.r8.references.PrimitiveReference INT -> e
    com.android.tools.r8.references.PrimitiveReference SHORT -> d
    com.android.tools.r8.references.PrimitiveReference BOOL -> a
    1:60:void <clinit>():9:68 -> <clinit>
    1:1:void <init>():76:76 -> <init>
    1:1:void <init>(com.android.tools.r8.references.PrimitiveReference$1):10 -> <init>
    1:1:int hashCode():117:117 -> hashCode
com.android.tools.r8.references.PrimitiveReference$1 -> com.android.tools.r8.references.a:
    1:1:void <init>():13:13 -> <init>
com.android.tools.r8.references.PrimitiveReference$2 -> com.android.tools.r8.references.b:
    1:1:void <init>():21:21 -> <init>
com.android.tools.r8.references.PrimitiveReference$3 -> com.android.tools.r8.references.c:
    1:1:void <init>():29:29 -> <init>
com.android.tools.r8.references.PrimitiveReference$4 -> com.android.tools.r8.references.d:
    1:1:void <init>():37:37 -> <init>
com.android.tools.r8.references.PrimitiveReference$5 -> com.android.tools.r8.references.e:
    1:1:void <init>():45:45 -> <init>
com.android.tools.r8.references.PrimitiveReference$6 -> com.android.tools.r8.references.f:
    1:1:void <init>():53:53 -> <init>
com.android.tools.r8.references.PrimitiveReference$7 -> com.android.tools.r8.references.g:
    1:1:void <init>():61:61 -> <init>
com.android.tools.r8.references.PrimitiveReference$8 -> com.android.tools.r8.references.h:
    1:1:void <init>():69:69 -> <init>
com.android.tools.r8.references.Reference -> com.android.tools.r8.references.Reference:
    com.android.tools.r8.references.Reference instance -> e
    java.util.concurrent.ConcurrentMap methods -> c
    java.util.concurrent.ConcurrentMap fields -> d
    java.util.concurrent.ConcurrentMap classes -> a
    java.util.concurrent.ConcurrentMap arrays -> b
    1:8:void <clinit>():29:36 -> <clinit>
    1:1:void <init>():56:56 -> <init>
    2:15:void <init>():41:54 -> <init>
    1:4:com.android.tools.r8.references.Reference getInstance():61:64 -> a
    5:5:com.android.tools.r8.references.TypeReference typeFromClass(java.lang.Class):80:80 -> a
    6:10:com.android.tools.r8.references.MethodReference lambda$method$0(com.android.tools.r8.references.MethodReference):130:134 -> a
    11:11:com.android.tools.r8.references.FieldReference lambda$field$1(com.android.tools.r8.references.FieldReference):171:171 -> a
    1:1:com.android.tools.r8.references.ArrayReference arrayFromDescriptor(java.lang.String):117:117 -> arrayFromDescriptor
    1:1:com.android.tools.r8.references.ClassReference classFromBinaryName(java.lang.String):98:98 -> classFromBinaryName
    1:1:com.android.tools.r8.references.ClassReference classFromClass(java.lang.Class):112:112 -> classFromClass
    1:1:com.android.tools.r8.references.ClassReference classFromDescriptor(java.lang.String):89:89 -> classFromDescriptor
    1:1:com.android.tools.r8.references.ClassReference classFromTypeName(java.lang.String):107:107 -> classFromTypeName
    1:2:com.android.tools.r8.references.FieldReference field(com.android.tools.r8.references.ClassReference,java.lang.String,com.android.tools.r8.references.TypeReference):168:169 -> field
    1:4:com.android.tools.r8.references.FieldReference fieldFromField(java.lang.reflect.Field):176:179 -> fieldFromField
    1:3:com.android.tools.r8.references.MethodReference method(com.android.tools.r8.references.ClassReference,java.lang.String,java.util.List,com.android.tools.r8.references.TypeReference):126:128 -> method
    1:13:com.android.tools.r8.references.MethodReference methodFromMethod(java.lang.reflect.Method):139:151 -> methodFromMethod
    14:14:com.android.tools.r8.references.MethodReference methodFromMethod(java.lang.reflect.Method):147:147 -> methodFromMethod
    15:21:com.android.tools.r8.references.MethodReference methodFromMethod(java.lang.reflect.Constructor):156:162 -> methodFromMethod
    1:20:com.android.tools.r8.references.PrimitiveReference com.android.tools.r8.references.PrimitiveReference.fromDescriptor(java.lang.String):79:98 -> primitiveFromDescriptor
    1:20:com.android.tools.r8.references.PrimitiveReference primitiveFromDescriptor(java.lang.String):84 -> primitiveFromDescriptor
    21:33:com.android.tools.r8.references.PrimitiveReference com.android.tools.r8.references.PrimitiveReference.fromDescriptor(java.lang.String):82:94 -> primitiveFromDescriptor
    21:33:com.android.tools.r8.references.PrimitiveReference primitiveFromDescriptor(java.lang.String):84 -> primitiveFromDescriptor
    34:40:com.android.tools.r8.references.PrimitiveReference com.android.tools.r8.references.PrimitiveReference.fromDescriptor(java.lang.String):90:96 -> primitiveFromDescriptor
    34:40:com.android.tools.r8.references.PrimitiveReference primitiveFromDescriptor(java.lang.String):84 -> primitiveFromDescriptor
    41:41:com.android.tools.r8.references.PrimitiveReference com.android.tools.r8.references.PrimitiveReference.fromDescriptor(java.lang.String):86:86 -> primitiveFromDescriptor
    41:41:com.android.tools.r8.references.PrimitiveReference primitiveFromDescriptor(java.lang.String):84 -> primitiveFromDescriptor
    42:42:com.android.tools.r8.references.PrimitiveReference com.android.tools.r8.references.PrimitiveReference.fromDescriptor(java.lang.String):84:84 -> primitiveFromDescriptor
    42:42:com.android.tools.r8.references.PrimitiveReference primitiveFromDescriptor(java.lang.String):84 -> primitiveFromDescriptor
    1:7:com.android.tools.r8.references.TypeReference typeFromDescriptor(java.lang.String):68:74 -> typeFromDescriptor
    8:8:com.android.tools.r8.references.TypeReference typeFromDescriptor(java.lang.String):72:72 -> typeFromDescriptor
    9:9:com.android.tools.r8.references.TypeReference typeFromDescriptor(java.lang.String):70:70 -> typeFromDescriptor
com.android.tools.r8.references.TypeReference -> com.android.tools.r8.references.TypeReference:
    1:1:java.lang.String getTypeName():35:35 -> getTypeName
com.android.tools.r8.shaking.AbstractMethodRemover -> com.android.tools.r8.shaking.a:
    com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness appInfo -> a
    boolean $assertionsDisabled -> c
    com.android.tools.r8.shaking.ScopedDexMethodSet scope -> b
    1:1:void <clinit>():23:23 -> <clinit>
    1:1:void <init>(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness):28:28 -> <init>
    2:5:void <init>(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness):26:29 -> <init>
    1:2:void run():33:34 -> a
    3:6:void processClass(com.android.tools.r8.graph.DexType):38:41 -> a
    7:19:com.android.tools.r8.graph.DexEncodedMethod[] processMethods(java.util.List):56:68 -> a
    7:19:void processClass(com.android.tools.r8.graph.DexType):41 -> a
    20:35:com.android.tools.r8.graph.DexEncodedMethod[] processMethods(java.util.List):62:77 -> a
    20:35:void processClass(com.android.tools.r8.graph.DexType):41 -> a
    36:40:void processClass(com.android.tools.r8.graph.DexType):43:47 -> a
com.android.tools.r8.shaking.AnnotationRemover -> com.android.tools.r8.shaking.b:
    com.android.tools.r8.graph.AppView appView -> a
    java.util.Set classesToRetainInnerClassAttributeFor -> c
    com.android.tools.r8.shaking.ProguardKeepAttributes keep -> b
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():30:30 -> <clinit>
    1:4:void <init>(com.android.tools.r8.graph.AppView,java.util.Set):37:40 -> <init>
    1:9:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):57:65 -> a
    10:10:boolean com.android.tools.r8.graph.DexAnnotation.isMemberClassesAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):113:113 -> a
    10:10:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):65 -> a
    11:12:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):65:66 -> a
    13:13:boolean com.android.tools.r8.graph.DexAnnotation.isEnclosingMethodAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):104:104 -> a
    13:13:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):66 -> a
    14:15:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):66:67 -> a
    16:16:boolean com.android.tools.r8.graph.DexAnnotation.isEnclosingClassAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):99:99 -> a
    16:16:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):67 -> a
    17:18:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):67:68 -> a
    19:19:boolean com.android.tools.r8.graph.DexAnnotation.isThrowingAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):244:244 -> a
    19:19:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):68 -> a
    20:23:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):71:74 -> a
    24:24:boolean com.android.tools.r8.graph.DexAnnotation.isSourceDebugExtension(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):261:261 -> a
    24:24:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):75 -> a
    25:25:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):78:78 -> a
    26:26:boolean com.android.tools.r8.graph.DexAnnotation.isParameterNameAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):266:266 -> a
    26:26:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):79 -> a
    27:27:boolean com.android.tools.r8.graph.DexAnnotation.isAnnotationDefaultAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):255:255 -> a
    27:27:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):82 -> a
    28:28:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):106:106 -> a
    29:29:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):90:90 -> a
    30:30:boolean com.android.tools.r8.graph.DexAnnotation.isSynthesizedClassMapAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.graph.DexItemFactory):376:376 -> a
    30:30:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):96 -> a
    31:31:boolean shouldKeepAnnotation(com.android.tools.r8.graph.DexAnnotation,boolean,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.InternalOptions):100:100 -> a
    32:46:boolean filterParameterAnnotations(com.android.tools.r8.graph.DexAnnotation):126:140 -> a
    47:59:boolean filterParameterAnnotations(com.android.tools.r8.graph.DexAnnotation):130:142 -> a
    60:60:com.android.tools.r8.shaking.AnnotationRemover ensureValid(com.android.tools.r8.shaking.ProguardConfiguration$Builder):146:146 -> a
    61:73:java.util.Set computeClassesToRetainInnerClassAttributeFor(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.utils.InternalOptions):189:201 -> a
    74:75:boolean hasSignatureAnnotation(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexItemFactory):167:168 -> a
    74:75:java.util.Set computeClassesToRetainInnerClassAttributeFor(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.utils.InternalOptions):201 -> a
    76:89:java.util.Set computeClassesToRetainInnerClassAttributeFor(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.utils.InternalOptions):202:215 -> a
    90:94:boolean hasGenericEnclosingClass(com.android.tools.r8.graph.DexProgramClass,java.util.Map,java.util.Set):155:159 -> a
    90:94:java.util.Set computeClassesToRetainInnerClassAttributeFor(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.utils.InternalOptions):216 -> a
    95:95:java.util.Set computeClassesToRetainInnerClassAttributeFor(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.utils.InternalOptions):217:217 -> a
    96:96:java.util.Set computeClassesToRetainInnerClassAttributeFor(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.utils.InternalOptions):191:191 -> a
    97:101:void run():224:228 -> a
    102:104:void processMethod(com.android.tools.r8.graph.DexEncodedMethod):233:235 -> a
    105:105:void processField(com.android.tools.r8.graph.DexEncodedField):239:239 -> a
    106:108:com.android.tools.r8.graph.DexEncodedAnnotation rewriteEncodedAnnotation(com.android.tools.r8.graph.DexEncodedAnnotation):252:254 -> a
    109:109:com.android.tools.r8.graph.DexAnnotationElement lambda$rewriteEncodedAnnotation$0(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationElement):256:256 -> a
    110:118:com.android.tools.r8.graph.DexAnnotationElement rewriteAnnotationElement(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotationElement):261:269 -> a
    119:119:boolean lambda$rewriteAnnotationElement$1(com.android.tools.r8.graph.DexAnnotationElement,com.android.tools.r8.graph.DexEncodedMethod):269:269 -> a
    120:121:void stripAttributes(com.android.tools.r8.graph.DexProgramClass):309:310 -> a
    122:124:boolean enclosingMethodPinned(com.android.tools.r8.graph.DexClass):274:276 -> a
    122:124:void stripAttributes(com.android.tools.r8.graph.DexProgramClass):311 -> a
    125:131:boolean innerClassPinned(com.android.tools.r8.graph.DexClass):280:286 -> a
    125:131:void stripAttributes(com.android.tools.r8.graph.DexProgramClass):312 -> a
    132:138:void stripAttributes(com.android.tools.r8.graph.DexProgramClass):312:318 -> a
    139:140:boolean hasInnerClassesFromSet(com.android.tools.r8.graph.DexProgramClass,java.util.Set):294:295 -> a
    139:140:void stripAttributes(com.android.tools.r8.graph.DexProgramClass):319 -> a
    141:142:void stripAttributes(com.android.tools.r8.graph.DexProgramClass):347:348 -> a
    143:152:void stripAttributes(com.android.tools.r8.graph.DexProgramClass):322:331 -> a
    153:158:boolean lambda$stripAttributes$2(boolean,com.android.tools.r8.graph.DexProgramClass,boolean,com.android.tools.r8.graph.InnerClassAttribute):333:338 -> a
    1:9:boolean isAnnotationTypeLive(com.android.tools.r8.graph.DexAnnotation):111:119 -> b
    1:1:boolean filterAnnotations(com.android.tools.r8.graph.DexAnnotation):48:48 -> c
    1:1:com.android.tools.r8.graph.DexAnnotation rewriteAnnotation(com.android.tools.r8.graph.DexAnnotation):244 -> c
    2:2:boolean filterAnnotations(com.android.tools.r8.graph.DexAnnotation):47:47 -> c
    2:2:com.android.tools.r8.graph.DexAnnotation rewriteAnnotation(com.android.tools.r8.graph.DexAnnotation):244 -> c
    3:3:com.android.tools.r8.graph.DexAnnotation rewriteAnnotation(com.android.tools.r8.graph.DexAnnotation):248:248 -> c
com.android.tools.r8.shaking.ClassInlineRule -> com.android.tools.r8.shaking.d:
    com.android.tools.r8.shaking.ClassInlineRule$Type type -> a
    1:15:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ClassInlineRule$Type):72:86 -> <init>
    1:1:com.android.tools.r8.shaking.ClassInlineRule$Builder builder():90:90 -> builder
    1:1:com.android.tools.r8.shaking.ClassInlineRule$Type getType():94:94 -> getType
    1:5:java.lang.String typeString():99:103 -> typeString
com.android.tools.r8.shaking.ClassInlineRule$1 -> com.android.tools.r8.shaking.c:
    int[] $SwitchMap$com$android$tools$r8$shaking$ClassInlineRule$Type -> a
    1:1:void <clinit>():99:99 -> <clinit>
com.android.tools.r8.shaking.ClassInlineRule$Builder -> com.android.tools.r8.shaking.d$a:
    com.android.tools.r8.shaking.ClassInlineRule$Type type -> o
    1:1:void <init>():20:20 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.ClassInlineRule$1):17 -> <init>
    com.android.tools.r8.shaking.ProguardClassSpecification$Builder self() -> g
com.android.tools.r8.shaking.ClassInlineRule$Type -> com.android.tools.r8.shaking.e:
    com.android.tools.r8.shaking.ClassInlineRule$Type NEVER -> a
    com.android.tools.r8.shaking.ClassInlineRule$Type[] $VALUES -> b
    1:1:void <clinit>():14:14 -> <clinit>
    2:2:void <clinit>():13:13 -> <clinit>
    1:1:void <init>(java.lang.String,int):13:13 -> <init>
    1:1:com.android.tools.r8.shaking.ClassInlineRule$Type[] values():13:13 -> a
com.android.tools.r8.shaking.ClassMergingRule -> com.android.tools.r8.shaking.g:
    com.android.tools.r8.shaking.ClassMergingRule$Type type -> a
    1:4:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ClassMergingRule$Type):60:63 -> <init>
    1:4:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ClassMergingRule$Type,com.android.tools.r8.shaking.ClassMergingRule$1):11 -> <init>
    1:1:com.android.tools.r8.shaking.ClassMergingRule$Builder builder():67:67 -> builder
    1:1:com.android.tools.r8.shaking.ClassMergingRule$Type getType():71:71 -> getType
    1:5:java.lang.String typeString():76:80 -> typeString
com.android.tools.r8.shaking.ClassMergingRule$1 -> com.android.tools.r8.shaking.f:
    int[] $SwitchMap$com$android$tools$r8$shaking$ClassMergingRule$Type -> a
    1:1:void <clinit>():76:76 -> <clinit>
com.android.tools.r8.shaking.ClassMergingRule$Builder -> com.android.tools.r8.shaking.g$a:
    com.android.tools.r8.shaking.ClassMergingRule$Type type -> o
    1:1:void <init>():20:20 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.ClassMergingRule$1):17 -> <init>
    com.android.tools.r8.shaking.ProguardClassSpecification$Builder self() -> g
com.android.tools.r8.shaking.ClassMergingRule$Type -> com.android.tools.r8.shaking.h:
    com.android.tools.r8.shaking.ClassMergingRule$Type NEVER -> a
    com.android.tools.r8.shaking.ClassMergingRule$Type[] $VALUES -> b
    1:1:void <clinit>():14:14 -> <clinit>
    2:2:void <clinit>():13:13 -> <clinit>
    1:1:void <init>(java.lang.String,int):13:13 -> <init>
    1:1:com.android.tools.r8.shaking.ClassMergingRule$Type[] values():13:13 -> a
com.android.tools.r8.shaking.CollectingGraphConsumer -> com.android.tools.r8.shaking.CollectingGraphConsumer:
    java.util.Map target2sources -> b
    com.android.tools.r8.experimental.graphinfo.GraphConsumer subConsumer -> a
    1:1:void <init>(com.android.tools.r8.experimental.graphinfo.GraphConsumer):24:24 -> <init>
    2:6:void <init>(com.android.tools.r8.experimental.graphinfo.GraphConsumer):21:25 -> <init>
    1:1:java.util.Map lambda$acceptEdge$0(com.android.tools.r8.experimental.graphinfo.GraphNode):31:31 -> a
    1:6:void acceptEdge(com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo):30:35 -> acceptEdge
    1:1:java.util.Set lambda$acceptEdge$1(com.android.tools.r8.experimental.graphinfo.GraphNode):32:32 -> b
    1:1:java.util.Map getSourcesTargeting(com.android.tools.r8.experimental.graphinfo.GraphNode):44:44 -> getSourcesTargeting
    1:1:java.util.Set getTargets():40:40 -> getTargets
com.android.tools.r8.shaking.ConstantArgumentRule -> com.android.tools.r8.shaking.j:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):57:57 -> <init>
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ConstantArgumentRule$1):10 -> <init>
    1:1:com.android.tools.r8.shaking.ConstantArgumentRule$Builder builder():74:74 -> builder
com.android.tools.r8.shaking.ConstantArgumentRule$1 -> com.android.tools.r8.shaking.i:
com.android.tools.r8.shaking.ConstantArgumentRule$Builder -> com.android.tools.r8.shaking.j$a:
    1:1:void <init>():16:16 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.ConstantArgumentRule$1):12 -> <init>
    com.android.tools.r8.shaking.ProguardClassSpecification$Builder self() -> g
com.android.tools.r8.shaking.DexStringCache -> com.android.tools.r8.shaking.k:
    java.util.concurrent.ConcurrentHashMap stringCache -> a
    1:2:void <init>():9:10 -> <init>
    1:1:java.lang.String lookupString(com.android.tools.r8.graph.DexString):13:13 -> a
com.android.tools.r8.shaking.DiscardedChecker -> com.android.tools.r8.shaking.l:
    java.util.List classes -> b
    boolean $assertionsDisabled -> e
    com.android.tools.r8.utils.InternalOptions options -> d
    java.util.Set checkDiscarded -> a
    boolean fail -> c
    1:1:void <clinit>():22:22 -> <clinit>
    1:1:void <init>(com.android.tools.r8.shaking.RootSetBuilder$RootSet,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.InternalOptions):29:29 -> <init>
    2:8:void <init>(com.android.tools.r8.shaking.RootSetBuilder$RootSet,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.InternalOptions):26:32 -> <init>
    9:9:void <init>(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.Set,com.android.tools.r8.graph.AppView):35:35 -> <init>
    10:28:void <init>(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.Set,com.android.tools.r8.graph.AppView):26:44 -> <init>
    1:3:void lambda$new$0(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexType):40:42 -> a
    4:10:void run():48:54 -> a
    11:13:void checkItem(com.android.tools.r8.graph.DexDefinition):59:61 -> a
    14:16:void checkItem(com.android.tools.r8.graph.DexDefinition):60:62 -> a
com.android.tools.r8.shaking.Enqueuer -> com.android.tools.r8.shaking.Enqueuer:
    java.util.Set identifierNameStrings -> s
    java.util.Map staticFieldsRead -> o
    com.android.tools.r8.utils.InternalOptions options -> e
    boolean $assertionsDisabled -> X
    com.android.tools.r8.shaking.Enqueuer$SetWithReason liveMethods -> L
    java.util.Map fieldNodes -> w
    java.util.Map superInvokeDependencies -> B
    java.util.Set lambdaMethodsTargetedByInvokeDynamic -> J
    com.android.tools.r8.graph.AppInfoWithSubtyping appInfo -> c
    java.util.Map directInvokes -> k
    java.util.Set pendingReflectiveUses -> R
    java.util.Set instantiatedAppServices -> N
    java.util.Map annotationNodes -> t
    java.util.Set virtualTargetsMarkedAsReachable -> S
    com.android.tools.r8.graph.AppView appView -> d
    java.util.Map staticFieldsWritten -> p
    java.util.Map ruleNodes -> x
    com.android.tools.r8.shaking.Enqueuer$SetWithReason liveFields -> M
    java.util.Map reachableInstanceFields -> C
    com.android.tools.r8.shaking.ProguardClassFilter dontWarnPatterns -> g
    java.util.Map staticInvokes -> l
    boolean forceProguardCompatibility -> a
    java.util.Set virtualMethodsTargetedByInvokeDirect -> K
    java.util.Map virtualInvokes -> h
    java.util.Map instanceFieldsWritten -> m
    java.util.Set pinnedItems -> T
    java.util.Map reasonInfo -> y
    java.util.Queue proguardCompatibilityWorkList -> Q
    com.android.tools.r8.shaking.ProguardConfiguration$Builder compatibility -> V
    java.util.Map classNodes -> u
    com.android.tools.r8.shaking.RootSetBuilder$RootSet rootSet -> f
    java.util.Set bootstrapMethods -> H
    java.util.Set liveTypes -> D
    com.android.tools.r8.shaking.Enqueuer$SetWithReason liveAnnotations -> E
    java.util.Map interfaceInvokes -> i
    java.util.Set staticFieldsWrittenOutsideEnclosingStaticInitializer -> q
    boolean tracingMainDex -> b
    com.android.tools.r8.shaking.Enqueuer$SetWithReason instantiatedLambdas -> O
    java.util.Set brokenSuperInvokes -> z
    java.util.Map instanceFieldsRead -> n
    com.android.tools.r8.shaking.Enqueuer$SetWithReason targetedMethods -> G
    java.util.Queue workList -> P
    java.util.Map deferredAnnotations -> U
    java.util.Map methodNodes -> v
    java.util.Map reachableVirtualMethods -> A
    java.util.Set methodsTargetedByInvokeDynamic -> I
    com.android.tools.r8.experimental.graphinfo.GraphConsumer keptGraphConsumer -> W
    com.android.tools.r8.shaking.Enqueuer$SetWithReason instantiatedTypes -> F
    java.util.Map superInvokes -> j
    java.util.Set callSites -> r
    1:1:void <clinit>():113:113 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.experimental.graphinfo.GraphConsumer):288:288 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.shaking.ProguardConfiguration$Builder):295:295 -> <init>
    3:124:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.shaking.ProguardConfiguration$Builder):116:237 -> <init>
    125:125:java.util.ArrayDeque com.android.tools.r8.com.google.common.collect.Queues.newArrayDeque():66:66 -> <init>
    125:125:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.shaking.ProguardConfiguration$Builder):243 -> <init>
    126:126:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.shaking.ProguardConfiguration$Builder):243:243 -> <init>
    127:127:java.util.ArrayDeque com.android.tools.r8.com.google.common.collect.Queues.newArrayDeque():66:66 -> <init>
    127:127:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.shaking.ProguardConfiguration$Builder):248 -> <init>
    128:128:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.shaking.ProguardConfiguration$Builder):248:248 -> <init>
    129:129:java.util.LinkedHashSet com.android.tools.r8.com.google.common.collect.Sets.newLinkedHashSet():347:347 -> <init>
    129:129:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.shaking.ProguardConfiguration$Builder):253 -> <init>
    130:179:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.experimental.graphinfo.GraphConsumer,com.android.tools.r8.shaking.ProguardConfiguration$Builder):253:302 -> <init>
    1:1:com.android.tools.r8.shaking.Enqueuer$SetWithReason access$4800(com.android.tools.r8.shaking.Enqueuer):113:113 -> A
    1:1:com.android.tools.r8.shaking.Enqueuer$SetWithReason access$4900(com.android.tools.r8.shaking.Enqueuer):113:113 -> B
    1:1:java.util.Map access$500(com.android.tools.r8.shaking.Enqueuer):113:113 -> C
    1:1:java.util.Set access$5100(com.android.tools.r8.shaking.Enqueuer):113:113 -> D
    1:1:java.util.Set access$5200(com.android.tools.r8.shaking.Enqueuer):113:113 -> E
    1:1:java.util.Set access$5300(com.android.tools.r8.shaking.Enqueuer):113:113 -> F
    1:1:com.android.tools.r8.shaking.RootSetBuilder$RootSet access$5400(com.android.tools.r8.shaking.Enqueuer):113:113 -> G
    1:1:java.util.Queue access$700(com.android.tools.r8.shaking.Enqueuer):113:113 -> H
    1:1:java.util.Map access$800(com.android.tools.r8.shaking.Enqueuer):113:113 -> I
    void lambda$newSetWithoutReasonReporter$0(java.lang.Object,com.android.tools.r8.shaking.KeepReason) -> a
    1:1:java.util.Map access$1000(com.android.tools.r8.shaking.Enqueuer):113:113 -> a
    2:2:void access$1100(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):113:113 -> a
    3:3:void access$1700(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason):113:113 -> a
    4:4:void access$2300(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexField,com.android.tools.r8.shaking.KeepReason,com.android.tools.r8.graph.DexEncodedField):113:113 -> a
    5:5:void access$2400(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexType):113:113 -> a
    6:6:void access$3300(com.android.tools.r8.shaking.Enqueuer,java.lang.Iterable,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ScopedDexMethodSet):113:113 -> a
    7:7:void access$3400(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ScopedDexMethodSet):113:113 -> a
    8:8:void access$3600(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexClass):113:113 -> a
    9:9:java.util.SortedSet access$5000(com.android.tools.r8.shaking.Enqueuer,java.util.Set,java.util.Set):113:113 -> a
    10:10:void access$5600(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):113:113 -> a
    11:11:boolean access$600(com.android.tools.r8.shaking.Enqueuer,java.util.Map,com.android.tools.r8.graph.Descriptor,com.android.tools.r8.graph.DexEncodedMethod):113:113 -> a
    12:12:com.android.tools.r8.shaking.Enqueuer$SetWithReason newSetWithoutReasonReporter():331:331 -> a
    13:15:void enqueueRootItem(java.util.Map$Entry):339:341 -> a
    16:23:void enqueueRootItem(com.android.tools.r8.graph.DexDefinition,java.util.Set):349:356 -> a
    24:34:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.KeepReason):368:378 -> a
    35:35:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.KeepReason):376:376 -> a
    36:52:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.KeepReason):375:391 -> a
    53:53:void internalEnqueueRootItem(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.KeepReason):389:389 -> a
    54:65:void enqueueHolderIfDependentNonStaticMember(com.android.tools.r8.graph.DexClass,java.util.Map):411:422 -> a
    66:78:boolean registerItemWithTargetAndContext(java.util.Map,com.android.tools.r8.graph.Descriptor,com.android.tools.r8.graph.DexEncodedMethod):451:463 -> a
    79:89:com.android.tools.r8.graph.DexMethod getInvokeSuperTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):816:826 -> a
    79:89:com.android.tools.r8.graph.DexMethod access$1300(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):113 -> a
    90:90:boolean lambda$markTypeAsLive$3(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexAnnotation):884:884 -> a
    91:91:void processAnnotations(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation[]):899:899 -> a
    92:92:void processAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):905:905 -> a
    92:92:void processAnnotations(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation[]):900 -> a
    93:93:void processAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):905:905 -> a
    93:93:void lambda$markMethodAsTargeted$8(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexAnnotation):1020 -> a
    94:106:void handleAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):909:921 -> a
    107:107:com.android.tools.r8.shaking.KeepReason com.android.tools.r8.shaking.KeepReason.annotatedOn(com.android.tools.r8.graph.DexDefinition):22:22 -> a
    107:107:void handleAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):921 -> a
    108:111:void handleAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):921:924 -> a
    112:127:void handleInvokeOfDirectTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):946:961 -> a
    128:128:void lambda$handleInvokeOfDirectTarget$7(com.android.tools.r8.shaking.KeepReason,com.android.tools.r8.graph.DexEncodedMethod):951:951 -> a
    129:149:void ensureFromLibraryOrThrow(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):967:987 -> a
    150:150:void ensureFromLibraryOrThrow(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):985:985 -> a
    151:162:void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.KeepReason):1041:1052 -> a
    163:199:void transitionMethodsForInstantiatedClass(com.android.tools.r8.graph.DexType):1072:1108 -> a
    163:199:void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.KeepReason):1052 -> a
    200:200:void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.KeepReason):1054:1054 -> a
    201:215:void transitionFieldsForInstantiatedClass(com.android.tools.r8.graph.DexType):1150:1164 -> a
    201:215:void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.KeepReason):1054 -> a
    216:216:void processNewlyInstantiatedClass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.KeepReason):1056:1056 -> a
    217:226:void transitionDefaultMethodsForInstantiatedClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ScopedDexMethodSet):1114:1123 -> a
    227:231:void transitionDefaultMethodsForInstantiatedClass(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ScopedDexMethodSet):1122:1126 -> a
    232:238:void transitionNonAbstractMethodsToLiveAndShadow(java.lang.Iterable,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ScopedDexMethodSet):1132:1138 -> a
    239:239:void transitionNonAbstractMethodsToLiveAndShadow(java.lang.Iterable,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ScopedDexMethodSet):1137:1137 -> a
    240:240:void markStaticFieldAsLive(com.android.tools.r8.graph.DexField,com.android.tools.r8.shaking.KeepReason):1168:1168 -> a
    240:240:void access$1900(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexField,com.android.tools.r8.shaking.KeepReason):113 -> a
    241:267:void markStaticFieldAsLive(com.android.tools.r8.graph.DexField,com.android.tools.r8.shaking.KeepReason,com.android.tools.r8.graph.DexEncodedField):1175:1201 -> a
    268:291:void markLambdaInstantiated(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):1234:1257 -> a
    268:291:void access$2600(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexEncodedMethod):113 -> a
    292:300:void markDirectStaticOrConstructorMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1263:1271 -> a
    301:320:void markInstanceFieldAsReachable(com.android.tools.r8.graph.DexField,com.android.tools.r8.shaking.KeepReason):1298:1317 -> a
    321:369:void markVirtualMethodAsReachable(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.shaking.KeepReason):1324:1372 -> a
    370:388:void markVirtualMethodAsReachable(com.android.tools.r8.graph.DexMethod,boolean,com.android.tools.r8.shaking.KeepReason):1371:1389 -> a
    389:396:void fillWorkList(java.util.Deque,com.android.tools.r8.graph.DexType):1421:1428 -> a
    397:405:void markSuperMethodAsReachable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):1438:1446 -> a
    406:406:com.android.tools.r8.shaking.KeepReason com.android.tools.r8.shaking.KeepReason.targetedBySuperFrom(com.android.tools.r8.graph.DexEncodedMethod):82:82 -> a
    406:406:void markSuperMethodAsReachable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):1448 -> a
    407:427:void markSuperMethodAsReachable(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):1448:1468 -> a
    428:434:java.util.SortedSet traceMainDex(com.android.tools.r8.shaking.RootSetBuilder$RootSet,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):1477:1483 -> a
    435:470:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):1503:1538 -> a
    471:471:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):1535:1535 -> a
    472:472:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):1532:1532 -> a
    473:473:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):1529:1529 -> a
    474:491:void markMethodAsKept(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1620:1637 -> a
    474:491:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):1529 -> a
    492:492:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):1525:1525 -> a
    493:493:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):1522:1522 -> a
    494:494:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):1519:1519 -> a
    495:495:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):1516:1516 -> a
    496:530:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):1513:1547 -> a
    531:531:void com.android.tools.r8.shaking.RootSetBuilder.<init>(com.android.tools.r8.graph.AppView,java.util.Collection):105:105 -> a
    531:531:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):1547 -> a
    532:536:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):1548:1552 -> a
    537:594:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):1549:1606 -> a
    595:599:void unpinLambdaMethods():1612:1616 -> a
    595:599:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):1608 -> a
    600:627:void trace(java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):1579:1606 -> a
    628:633:void lambda$trace$12(com.android.tools.r8.graph.DexReference,java.util.Map):1561:1566 -> a
    634:640:void markFieldAsKept(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1643:1649 -> a
    641:646:void markAllLibraryVirtualMethodsReachable(com.android.tools.r8.graph.DexClass):1654:1659 -> a
    647:647:com.android.tools.r8.shaking.KeepReason com.android.tools.r8.shaking.KeepReason.isLibraryMethod():54:54 -> a
    647:647:void markAllLibraryVirtualMethodsReachable(com.android.tools.r8.graph.DexClass):1660 -> a
    648:649:void markAllLibraryVirtualMethodsReachable(com.android.tools.r8.graph.DexClass):1660:1661 -> a
    650:650:com.android.tools.r8.shaking.KeepReason com.android.tools.r8.shaking.KeepReason.isLibraryMethod():54:54 -> a
    650:650:void markAllLibraryVirtualMethodsReachable(com.android.tools.r8.graph.DexClass):1662 -> a
    651:651:void markAllLibraryVirtualMethodsReachable(com.android.tools.r8.graph.DexClass):1661:1661 -> a
    652:661:java.util.SortedMap collectDescriptors(java.util.Map):1713:1722 -> a
    662:662:java.util.Set lambda$collectDescriptors$14(com.android.tools.r8.graph.Descriptor):1718:1718 -> a
    663:666:java.util.Set collectReachedFields(java.util.Set,java.util.function.Function):1727:1730 -> a
    667:671:java.util.SortedSet mergeFieldAccesses(java.util.Set,java.util.Set):1745:1749 -> a
    672:672:java.util.SortedSet mergeFieldAccesses(java.util.Set,java.util.Set):1747:1747 -> a
    673:673:java.util.SortedSet mergeFieldAccesses(java.util.Set,java.util.Set):1745:1745 -> a
    674:679:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod):1779:1784 -> a
    680:685:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):1790:1795 -> a
    680:685:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod):1785 -> a
    686:690:void handleJavaLangEnumValueOf(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):1863:1867 -> a
    686:690:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):1796 -> a
    686:690:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod):1785 -> a
    691:695:com.android.tools.r8.graph.DexMethod generatedEnumValuesMethod(com.android.tools.r8.graph.DexClass):1399:1403 -> a
    691:695:void markEnumValuesAsReachable(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.KeepReason):1411 -> a
    691:695:void handleJavaLangEnumValueOf(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):1867 -> a
    691:695:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):1796 -> a
    691:695:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod):1785 -> a
    696:701:com.android.tools.r8.graph.DexMethod generatedEnumValuesMethod(com.android.tools.r8.graph.DexClass):1402:1407 -> a
    696:701:void markEnumValuesAsReachable(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.KeepReason):1411 -> a
    696:701:void handleJavaLangEnumValueOf(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):1867 -> a
    696:701:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):1796 -> a
    696:701:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod):1785 -> a
    702:702:void markEnumValuesAsReachable(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.KeepReason):1411:1411 -> a
    702:702:void handleJavaLangEnumValueOf(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):1867 -> a
    702:702:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):1796 -> a
    702:702:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod):1785 -> a
    703:706:void enqueueRootItem(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.KeepReason):360:363 -> a
    703:706:void markEnumValuesAsReachable(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.KeepReason):1415 -> a
    703:706:void handleJavaLangEnumValueOf(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):1867 -> a
    703:706:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):1796 -> a
    703:706:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod):1785 -> a
    707:707:void markEnumValuesAsReachable(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.KeepReason):1416:1416 -> a
    707:707:void handleJavaLangEnumValueOf(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):1867 -> a
    707:707:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):1796 -> a
    707:707:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod):1785 -> a
    708:708:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):1799:1799 -> a
    708:708:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod):1785 -> a
    709:736:void handleServiceLoaderInvocation(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.InvokeMethod):1873:1900 -> a
    709:736:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):1800 -> a
    709:736:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod):1785 -> a
    737:750:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):1803:1816 -> a
    737:750:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod):1785 -> a
    751:788:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):1815:1852 -> a
    751:788:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod):1785 -> a
    789:789:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):1850:1850 -> a
    789:789:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod):1785 -> a
    790:790:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.ir.code.Instruction):1849:1849 -> a
    790:790:void handleReflectiveBehavior(com.android.tools.r8.graph.DexEncodedMethod):1785 -> a
    791:802:void handleServiceInstantiation(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason):1906:1917 -> a
    803:805:void markClassAsInstantiatedWithReason(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.KeepReason):1753:1755 -> a
    803:805:void handleServiceInstantiation(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason):1918 -> a
    806:806:void registerAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.shaking.KeepReason):3068:3068 -> a
    807:807:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.KeepReason):3105:3105 -> a
    807:807:void registerAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.shaking.KeepReason):3068 -> a
    808:812:void registerAnnotation(com.android.tools.r8.graph.DexAnnotation,com.android.tools.r8.shaking.KeepReason):3068:3072 -> a
    813:813:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.KeepReason):3105:3105 -> a
    813:813:void registerEdge(com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.shaking.KeepReason):3097 -> a
    814:815:void registerEdge(com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.shaking.KeepReason):3099:3100 -> a
    816:825:com.android.tools.r8.experimental.graphinfo.GraphNode getGraphNode(com.android.tools.r8.graph.DexReference):3109:3118 -> a
    826:826:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo getEdgeInfo(com.android.tools.r8.shaking.KeepReason):3122:3122 -> a
    827:827:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo lambda$getEdgeInfo$15(com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind):3122:3122 -> a
    828:828:com.android.tools.r8.experimental.graphinfo.AnnotationGraphNode getAnnotationGraphNode(com.android.tools.r8.graph.DexItem):3126:3126 -> a
    829:832:com.android.tools.r8.experimental.graphinfo.AnnotationGraphNode lambda$getAnnotationGraphNode$16(com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexItem):3127:3130 -> a
    833:833:com.android.tools.r8.experimental.graphinfo.ClassGraphNode getClassGraphNode(com.android.tools.r8.graph.DexType):3135:3135 -> a
    834:834:com.android.tools.r8.experimental.graphinfo.MethodGraphNode getMethodGraphNode(com.android.tools.r8.graph.DexMethod):3146:3146 -> a
    835:848:com.android.tools.r8.experimental.graphinfo.MethodGraphNode lambda$getMethodGraphNode$18(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3149:3162 -> a
    849:849:com.android.tools.r8.experimental.graphinfo.MethodGraphNode lambda$getMethodGraphNode$18(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):3156:3156 -> a
    850:850:com.android.tools.r8.experimental.graphinfo.FieldGraphNode getFieldGraphNode(com.android.tools.r8.graph.DexField):3167:3167 -> a
    851:857:com.android.tools.r8.experimental.graphinfo.FieldGraphNode lambda$getFieldGraphNode$19(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):3170:3176 -> a
    858:858:com.android.tools.r8.experimental.graphinfo.FieldGraphNode lambda$getFieldGraphNode$19(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):3173:3173 -> a
    859:859:com.android.tools.r8.experimental.graphinfo.KeepRuleGraphNode getKeepRuleGraphNode(com.android.tools.r8.shaking.ProguardKeepRule):3181:3181 -> a
    void reportMissingClass(com.android.tools.r8.graph.DexType) -> b
    1:1:java.util.Map access$1200(com.android.tools.r8.shaking.Enqueuer):113:113 -> b
    2:2:void access$3100(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexType):113:113 -> b
    3:3:void access$5500(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexField,com.android.tools.r8.shaking.KeepReason):113:113 -> b
    4:4:void access$5700(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):113:113 -> b
    5:5:void access$900(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):113:113 -> b
    6:6:void enqueueRootItems(java.util.Map):335:335 -> b
    7:7:void lambda$markTypeAsLive$4(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexAnnotation):885:885 -> b
    8:8:void processAnnotation(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexAnnotation):905:905 -> b
    8:8:void lambda$processNewlyLiveMethod$13(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexAnnotation):1690 -> b
    9:18:void handleInvokeOfStaticTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):930:939 -> b
    19:19:void lambda$handleInvokeOfStaticTarget$6(com.android.tools.r8.shaking.KeepReason,com.android.tools.r8.graph.DexEncodedMethod):935:935 -> b
    20:38:void markMethodAsTargeted(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1012:1030 -> b
    39:43:void markMethodAsKeptWithCompatRule(com.android.tools.r8.graph.DexEncodedMethod):1771:1775 -> b
    39:43:void markMethodAsTargeted(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1031 -> b
    44:44:void markMethodAsKeptWithCompatRule(com.android.tools.r8.graph.DexEncodedMethod):1774:1774 -> b
    44:44:void markMethodAsTargeted(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1031 -> b
    45:45:void markStaticFieldAsLive(com.android.tools.r8.graph.DexField,com.android.tools.r8.shaking.KeepReason):1168:1168 -> b
    46:56:void markInstanceFieldAsLive(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1205:1215 -> b
    57:68:void markInstantiated(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason):1219:1230 -> b
    69:70:boolean isInstantiatedOrHasInstantiatedSubtype(com.android.tools.r8.graph.DexType):1290:1291 -> b
    71:71:java.util.Set lambda$markSuperMethodAsReachable$11(com.android.tools.r8.graph.DexEncodedMethod):1464:1464 -> b
    72:73:void collectProguardCompatibilityRule(com.android.tools.r8.shaking.KeepReason):1706:1707 -> b
    74:75:com.android.tools.r8.graph.DexField tryLookupInstanceField(com.android.tools.r8.graph.DexField):1734:1735 -> b
    76:78:void markClassAsInstantiatedWithCompatRule(com.android.tools.r8.graph.DexClass):1760:1762 -> b
    79:84:void markClassAsInstantiatedWithCompatRule(com.android.tools.r8.graph.DexClass):1761:1766 -> b
    85:85:void markClassAsInstantiatedWithCompatRule(com.android.tools.r8.graph.DexClass):1765:1765 -> b
    86:86:void markClassAsInstantiatedWithCompatRule(com.android.tools.r8.graph.DexClass):1764:1764 -> b
    1:1:java.util.Map access$1400(com.android.tools.r8.shaking.Enqueuer):113:113 -> c
    2:22:java.util.Set staticFieldsWrittenOnlyInEnclosingStaticInitializer():306:326 -> c
    23:23:java.util.Set staticFieldsWrittenOnlyInEnclosingStaticInitializer():322:322 -> c
    24:28:void markVirtualMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1276:1280 -> c
    29:36:void markVirtualMethodAsLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1278:1285 -> c
    37:40:void markParameterAndReturnTypesAsLive(com.android.tools.r8.graph.DexEncodedMethod):1699:1702 -> c
    41:42:com.android.tools.r8.graph.DexField tryLookupStaticField(com.android.tools.r8.graph.DexField):1739:1740 -> c
    43:43:void registerType(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason):3060:3060 -> c
    44:44:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.KeepReason):3105:3105 -> c
    44:44:void registerType(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason):3060 -> c
    45:49:void registerType(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason):3060:3064 -> c
    50:50:void registerField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):3089:3089 -> c
    51:51:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.KeepReason):3105:3105 -> c
    51:51:void registerField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):3089 -> c
    52:56:void registerField(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):3089:3093 -> c
    57:60:com.android.tools.r8.experimental.graphinfo.ClassGraphNode lambda$getClassGraphNode$17(com.android.tools.r8.graph.DexType):3138:3141 -> c
    1:1:java.util.Map access$1500(com.android.tools.r8.shaking.Enqueuer):113:113 -> d
    2:2:java.util.Set lambda$handleAnnotation$5(com.android.tools.r8.graph.DexType):917:917 -> d
    3:30:void processNewlyLiveMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1667:1694 -> d
    1:1:java.util.Map access$1600(com.android.tools.r8.shaking.Enqueuer):113:113 -> e
    2:2:com.android.tools.r8.shaking.Enqueuer$SetWithReason lambda$markInstanceFieldAsReachable$9(com.android.tools.r8.graph.DexType):1316:1316 -> e
    3:8:void registerMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):3076:3081 -> e
    9:9:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.KeepReason):3105:3105 -> e
    9:9:void registerMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):3081 -> e
    10:14:void registerMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):3081:3085 -> e
    1:1:java.util.Map access$1800(com.android.tools.r8.shaking.Enqueuer):113:113 -> f
    2:2:com.android.tools.r8.shaking.Enqueuer$SetWithReason lambda$markVirtualMethodAsReachable$10(com.android.tools.r8.graph.DexType):1361:1361 -> f
    1:1:com.android.tools.r8.graph.AppView access$200(com.android.tools.r8.shaking.Enqueuer):113:113 -> g
    2:2:java.util.Set lambda$registerItemWithTargetAndContext$2(com.android.tools.r8.graph.DexType):462:462 -> g
    1:1:java.util.Map access$2000(com.android.tools.r8.shaking.Enqueuer):113:113 -> h
    2:40:void markTypeAsLive(com.android.tools.r8.graph.DexType):834:872 -> h
    41:48:void enqueueFirstNonSerializableClassInitializer(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.KeepReason):395:402 -> h
    41:48:void markTypeAsLive(com.android.tools.r8.graph.DexType):873 -> h
    49:67:void markTypeAsLive(com.android.tools.r8.graph.DexType):876:894 -> h
    1:1:com.android.tools.r8.graph.AppInfoWithSubtyping access$2100(com.android.tools.r8.shaking.Enqueuer):113:113 -> i
    1:1:java.util.Set access$2200(com.android.tools.r8.shaking.Enqueuer):113:113 -> j
    1:1:java.util.Set access$2500(com.android.tools.r8.shaking.Enqueuer):113:113 -> k
    1:1:com.android.tools.r8.utils.InternalOptions access$2700(com.android.tools.r8.shaking.Enqueuer):113:113 -> l
    1:1:java.util.Set access$2800(com.android.tools.r8.shaking.Enqueuer):113:113 -> m
    1:1:java.util.Set access$2900(com.android.tools.r8.shaking.Enqueuer):113:113 -> n
    1:1:java.util.Set access$300(com.android.tools.r8.shaking.Enqueuer):113:113 -> o
    1:1:java.util.Set access$3000(com.android.tools.r8.shaking.Enqueuer):113:113 -> p
    1:1:java.util.Map access$3200(com.android.tools.r8.shaking.Enqueuer):113:113 -> q
    1:1:boolean access$3500(com.android.tools.r8.shaking.Enqueuer):113:113 -> r
    1:1:java.util.Set access$400(com.android.tools.r8.shaking.Enqueuer):113:113 -> s
    1:1:java.util.Set access$4100(com.android.tools.r8.shaking.Enqueuer):113:113 -> t
    1:8:com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness traceApplication(com.android.tools.r8.shaking.RootSetBuilder$RootSet,com.android.tools.r8.shaking.ProguardClassFilter,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing):1492:1499 -> traceApplication
    1:1:com.android.tools.r8.shaking.Enqueuer$SetWithReason access$4200(com.android.tools.r8.shaking.Enqueuer):113:113 -> u
    1:1:java.util.Set access$4300(com.android.tools.r8.shaking.Enqueuer):113:113 -> v
    1:1:com.android.tools.r8.shaking.Enqueuer$SetWithReason access$4400(com.android.tools.r8.shaking.Enqueuer):113:113 -> w
    1:1:com.android.tools.r8.shaking.Enqueuer$SetWithReason access$4500(com.android.tools.r8.shaking.Enqueuer):113:113 -> x
    1:1:com.android.tools.r8.shaking.Enqueuer$SetWithReason access$4600(com.android.tools.r8.shaking.Enqueuer):113:113 -> y
    1:1:java.util.Set access$4700(com.android.tools.r8.shaking.Enqueuer):113:113 -> z
com.android.tools.r8.shaking.Enqueuer$1 -> com.android.tools.r8.shaking.m:
    int[] $SwitchMap$com$android$tools$r8$shaking$Enqueuer$Action$Kind -> b
    int[] $SwitchMap$com$android$tools$r8$ir$code$Invoke$Type -> c
    int[] $SwitchMap$com$android$tools$r8$graph$DexMethodHandle$MethodHandleType -> a
    1:1:void <clinit>():2669:2669 -> <clinit>
    2:2:void <clinit>():1511:1511 -> <clinit>
    3:3:void <clinit>():727:727 -> <clinit>
com.android.tools.r8.shaking.Enqueuer$Action -> com.android.tools.r8.shaking.Enqueuer$a:
    com.android.tools.r8.shaking.KeepReason reason -> d
    com.android.tools.r8.graph.DexItem target -> b
    com.android.tools.r8.graph.DexItem context -> c
    com.android.tools.r8.shaking.Enqueuer$Action$Kind kind -> a
    1:5:void <init>(com.android.tools.r8.shaking.Enqueuer$Action$Kind,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexItem,com.android.tools.r8.shaking.KeepReason):1930:1934 -> <init>
    1:1:com.android.tools.r8.shaking.Enqueuer$Action markReachableInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):1942:1942 -> a
    2:2:com.android.tools.r8.shaking.Enqueuer$Action markReachableSuper(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod):1946:1946 -> a
    3:3:com.android.tools.r8.shaking.Enqueuer$Action markReachableField(com.android.tools.r8.graph.DexField,com.android.tools.r8.shaking.KeepReason):1950:1950 -> a
    4:4:com.android.tools.r8.shaking.Enqueuer$Action markInstantiated(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.KeepReason):1954:1954 -> a
    5:5:com.android.tools.r8.shaking.Enqueuer$Action markMethodKept(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1962:1962 -> a
    6:6:com.android.tools.r8.shaking.Enqueuer$Action markFieldKept(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.shaking.KeepReason):1966:1966 -> a
    1:1:com.android.tools.r8.shaking.Enqueuer$Action markReachableVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):1938:1938 -> b
    2:2:com.android.tools.r8.shaking.Enqueuer$Action markMethodLive(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason):1958:1958 -> b
com.android.tools.r8.shaking.Enqueuer$Action$Kind -> com.android.tools.r8.shaking.Enqueuer$a$a:
    com.android.tools.r8.shaking.Enqueuer$Action$Kind MARK_INSTANTIATED -> e
    com.android.tools.r8.shaking.Enqueuer$Action$Kind MARK_METHOD_LIVE -> f
    com.android.tools.r8.shaking.Enqueuer$Action$Kind MARK_METHOD_KEPT -> g
    com.android.tools.r8.shaking.Enqueuer$Action$Kind MARK_FIELD_KEPT -> h
    com.android.tools.r8.shaking.Enqueuer$Action$Kind[] $VALUES -> i
    com.android.tools.r8.shaking.Enqueuer$Action$Kind MARK_REACHABLE_VIRTUAL -> a
    com.android.tools.r8.shaking.Enqueuer$Action$Kind MARK_REACHABLE_INTERFACE -> b
    com.android.tools.r8.shaking.Enqueuer$Action$Kind MARK_REACHABLE_SUPER -> c
    com.android.tools.r8.shaking.Enqueuer$Action$Kind MARK_REACHABLE_FIELD -> d
    1:8:void <clinit>():1970:1977 -> <clinit>
    9:9:void <clinit>():1969:1969 -> <clinit>
    1:1:void <init>(java.lang.String,int):1969:1969 -> <init>
    1:1:com.android.tools.r8.shaking.Enqueuer$Action$Kind[] values():1969:1969 -> a
com.android.tools.r8.shaking.Enqueuer$AnnotationReferenceMarker -> com.android.tools.r8.shaking.Enqueuer$b:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> b
    com.android.tools.r8.graph.DexItem annotationHolder -> a
    com.android.tools.r8.shaking.Enqueuer this$0 -> c
    1:3:void <init>(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexItemFactory):2973:2975 -> <init>
    1:3:void <init>(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexItem,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.Enqueuer$1):2968 -> <init>
    boolean addCallSite(com.android.tools.r8.graph.DexCallSite) -> a
    boolean addClass(com.android.tools.r8.graph.DexProgramClass) -> a
    boolean addMethodHandle(com.android.tools.r8.graph.DexMethodHandle) -> a
    boolean addProto(com.android.tools.r8.graph.DexProto) -> a
    boolean addString(com.android.tools.r8.graph.DexString) -> a
    1:15:boolean addField(com.android.tools.r8.graph.DexField):2985:2999 -> a
    16:25:boolean addMethod(com.android.tools.r8.graph.DexMethod):3007:3016 -> a
    26:33:boolean addMethod(com.android.tools.r8.graph.DexMethod):3015:3022 -> a
    34:35:boolean addType(com.android.tools.r8.graph.DexType):3052:3053 -> a
com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness -> com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness:
    java.util.SortedMap staticFieldReads -> z
    java.util.Set neverPropagateValue -> T
    java.util.SortedMap instanceFieldReads -> x
    java.util.Set prunedTypes -> V
    java.util.SortedSet fieldsWritten -> v
    java.util.Map ordinalsMaps -> X
    java.util.SortedSet liveFields -> t
    java.util.IdentityHashMap indirectlyInstantiatedTypes -> n
    java.util.SortedSet virtualMethodsTargetedByInvokeDirect -> r
    java.util.SortedSet bootstrapMethods -> p
    boolean $assertionsDisabled -> Z
    java.util.SortedSet instantiatedAppServices -> l
    java.util.Map mayHaveSideEffects -> J
    java.util.Set keepConstantArguments -> P
    java.util.SortedSet liveTypes -> j
    java.util.SortedMap directInvokes -> E
    java.util.Map assumedValues -> L
    java.util.Set neverClassInline -> R
    java.util.SortedMap interfaceInvokes -> C
    java.util.SortedMap staticFieldWrites -> A
    java.util.Set forceInline -> N
    java.util.Set neverMerge -> S
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap identifierNameStrings -> U
    java.util.SortedMap instanceFieldWrites -> y
    java.util.Map switchMaps -> W
    java.util.SortedSet staticFieldsWrittenOnlyInEnclosingStaticInitializer -> w
    java.util.Set callSites -> G
    java.util.SortedSet fieldsRead -> u
    java.util.Set pinnedItems -> I
    java.util.SortedSet liveMethods -> s
    java.util.SortedSet methodsTargetedByInvokeDynamic -> q
    com.android.tools.r8.com.google.common.collect.ImmutableSortedSet instantiatedLambdas -> Y
    java.util.SortedSet targetedMethods -> o
    java.util.SortedMap staticInvokes -> F
    java.util.Set neverInline -> O
    java.util.SortedSet instantiatedTypes -> m
    java.util.SortedMap superInvokes -> D
    java.util.Map noSideEffects -> K
    java.util.Set keepUnusedArguments -> Q
    java.util.SortedSet instantiatedAnnotationTypes -> k
    java.util.SortedMap virtualInvokes -> B
    java.util.SortedSet brokenSuperInvokes -> H
    java.util.Set alwaysInline -> M
    1:1:void <clinit>():1984:1984 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.shaking.Enqueuer$1):1984:1984 -> <init>
    2:2:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.shaking.Enqueuer):2167:2167 -> <init>
    3:167:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.shaking.Enqueuer):2005:2169 -> <init>
    168:170:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.shaking.Enqueuer):2168:2170 -> <init>
    171:171:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder com.android.tools.r8.com.google.common.collect.ImmutableSortedSet.orderedBy(java.util.Comparator):416:416 -> <init>
    171:171:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.shaking.Enqueuer):2171 -> <init>
    172:176:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.shaking.Enqueuer):2172:2176 -> <init>
    177:180:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.shaking.Enqueuer):2175:2178 -> <init>
    181:185:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.shaking.Enqueuer):2177:2181 -> <init>
    186:193:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.shaking.Enqueuer):2180:2187 -> <init>
    194:198:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.shaking.Enqueuer):2186:2190 -> <init>
    199:214:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.shaking.Enqueuer):2189:2204 -> <init>
    215:239:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.shaking.Enqueuer):2202:2226 -> <init>
    240:245:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap joinIdentifierNameStrings(java.util.Set,java.util.Set):2549:2554 -> <init>
    240:245:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.shaking.Enqueuer):2225 -> <init>
    246:253:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.shaking.Enqueuer):2225:2232 -> <init>
    254:254:void <init>(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.graph.DexApplication,java.util.Collection):2243:2243 -> <init>
    255:514:void <init>(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.graph.DexApplication,java.util.Collection):2005:2264 -> <init>
    515:526:boolean assertNoItemRemoved(java.util.Collection,java.util.Collection):2465:2476 -> <init>
    515:526:void <init>(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.graph.DexApplication,java.util.Collection):2264 -> <init>
    527:550:void <init>(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.graph.DexApplication,java.util.Collection):2265:2288 -> <init>
    551:554:java.util.Set com.android.tools.r8.utils.CollectionUtils.mergeSets(java.util.Collection,java.util.Collection):13:16 -> <init>
    551:554:void <init>(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.graph.DexApplication,java.util.Collection):2288 -> <init>
    555:559:void <init>(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.graph.DexApplication,java.util.Collection):2288:2292 -> <init>
    560:560:void <init>(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense):2299:2299 -> <init>
    561:909:void <init>(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense):2005:2353 -> <init>
    910:926:void <init>(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense):2349:2365 -> <init>
    927:943:void <init>(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense):2361:2377 -> <init>
    944:953:void <init>(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense):2373:2382 -> <init>
    954:954:void <init>(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,java.util.Map,java.util.Map):2388:2388 -> <init>
    955:1381:void <init>(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,java.util.Map,java.util.Map):2005:2431 -> <init>
    1:1:void lambda$new$0(com.android.tools.r8.com.google.common.collect.ImmutableSortedSet$Builder,com.android.tools.r8.graph.DexAnnotation):2172:2172 -> a
    2:6:com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness withoutStaticFieldsWrites(java.util.Set):2435:2439 -> a
    7:7:void <init>(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.graph.DexApplication):2236:2236 -> a
    7:7:com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness withoutStaticFieldsWrites(java.util.Set):2439 -> a
    8:11:com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness withoutStaticFieldsWrites(java.util.Set):2440:2443 -> a
    12:12:boolean lambda$withoutStaticFieldsWrites$1(java.util.Set,com.android.tools.r8.graph.DexField):2440:2440 -> a
    13:15:java.util.SortedSet filter(java.util.Set,java.util.function.Predicate):2449:2451 -> a
    16:16:java.util.SortedSet filter(java.util.Set,java.util.function.Predicate):2449:2449 -> a
    17:22:com.android.tools.r8.com.google.common.collect.ImmutableSortedSet rewriteItems(java.util.Set,java.util.function.Function):2571:2576 -> a
    23:31:java.util.SortedMap rewriteKeysConservativelyWhileMergingValues(java.util.Map,java.util.function.Function):2594:2602 -> a
    32:32:java.util.Set lambda$rewriteKeysConservativelyWhileMergingValues$3(com.android.tools.r8.graph.PresortedComparable):2598:2598 -> a
    33:34:com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness prunedCopyFrom(com.android.tools.r8.graph.DexApplication,java.util.Collection):2639:2640 -> a
    35:36:com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness rewrittenWithLense(com.android.tools.r8.graph.DirectMappedDexApplication,com.android.tools.r8.graph.GraphLense):2645:2646 -> a
    37:52:com.android.tools.r8.graph.DexEncodedMethod lookup(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):2664:2679 -> a
    53:53:com.android.tools.r8.graph.DexEncodedMethod lookup(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):2677:2677 -> a
    54:54:com.android.tools.r8.graph.DexEncodedMethod lookup(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):2675:2675 -> a
    55:55:com.android.tools.r8.graph.DexEncodedMethod lookup(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):2673:2673 -> a
    56:56:com.android.tools.r8.graph.DexEncodedMethod lookup(com.android.tools.r8.ir.code.Invoke$Type,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):2671:2671 -> a
    57:95:com.android.tools.r8.graph.DexEncodedMethod findSingleTargetFromSubtypes(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexEncodedMethod,boolean,boolean):2764:2802 -> a
    96:105:boolean interfacesMayHaveDefaultFor(com.android.tools.r8.graph.DexTypeList,com.android.tools.r8.graph.DexMethod):2818:2827 -> a
    106:131:com.android.tools.r8.graph.DexEncodedMethod lookupSingleInterfaceTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):2841:2866 -> a
    132:132:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> a
    132:132:com.android.tools.r8.graph.DexEncodedMethod lookupSingleInterfaceTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):2865 -> a
    133:160:com.android.tools.r8.graph.DexEncodedMethod lookupSingleInterfaceTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):2867:2894 -> a
    161:163:com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness addEnumOrdinalMaps(java.util.Map):2905:2907 -> a
    1:6:java.util.SortedSet toSortedDescriptorSet(java.util.Set):2561:2566 -> b
    7:13:java.util.SortedMap rewriteKeysWhileMergingValues(java.util.Map,java.util.function.Function):2582:2588 -> b
    14:14:java.util.Set lambda$rewriteKeysWhileMergingValues$2(com.android.tools.r8.graph.PresortedComparable):2585:2585 -> b
    15:16:boolean isPinned(com.android.tools.r8.graph.DexReference):2624:2625 -> b
    17:62:com.android.tools.r8.graph.DexEncodedMethod lookupSingleVirtualTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):2695:2740 -> b
    63:67:com.android.tools.r8.graph.DexEncodedMethod lookupSingleVirtualTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):2739:2743 -> b
    68:68:com.android.tools.r8.graph.DexEncodedMethod lookupSingleVirtualTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexType):2726:2726 -> b
    69:70:com.android.tools.r8.graph.DexEncodedMethod lookupSingleInterfaceTarget(com.android.tools.r8.graph.DexMethod):2835:2836 -> b
    71:73:com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness addSwitchMaps(java.util.Map):2898:2900 -> b
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceMap getSwitchMapFor(com.android.tools.r8.graph.DexField):2460:2461 -> c
    1:8:boolean isFieldRead(com.android.tools.r8.graph.DexField):2515:2522 -> d
    9:10:boolean hasAnyInstantiatedLambdas(com.android.tools.r8.graph.DexType):2607:2608 -> d
    1:2:com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap getOrdinalsMapFor(com.android.tools.r8.graph.DexType):2455:2456 -> e
    3:10:boolean isFieldWritten(com.android.tools.r8.graph.DexField):2526:2533 -> e
    11:11:boolean hasLiveness():2613:2613 -> e
    1:6:boolean isInstantiatedDirectly(com.android.tools.r8.graph.DexType):2482:2487 -> f
    7:9:boolean isStaticFieldWrittenOnlyInEnclosingStaticInitializer(com.android.tools.r8.graph.DexField):2537:2539 -> f
    1:3:boolean isInstantiatedDirectlyOrIndirectly(com.android.tools.r8.graph.DexType):2509:2511 -> g
    4:5:boolean isLibraryField(com.android.tools.r8.graph.DexField):2543:2544 -> g
    1:15:boolean isInstantiatedIndirectly(com.android.tools.r8.graph.DexType):2491:2505 -> h
    1:2:boolean wasPruned(com.android.tools.r8.graph.DexType):2654:2655 -> i
    1:1:com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness withLiveness():2619:2619 -> j
    1:2:com.android.tools.r8.graph.DexEncodedMethod lookupSingleVirtualTarget(com.android.tools.r8.graph.DexMethod):2689:2690 -> lookupSingleVirtualTarget
    1:2:java.lang.Iterable getPinnedItems():2629:2630 -> n
    1:2:java.util.Set getPrunedTypes():2659:2660 -> o
com.android.tools.r8.shaking.Enqueuer$SetWithReason -> com.android.tools.r8.shaking.Enqueuer$c:
    java.util.Set items -> a
    java.util.function.BiConsumer register -> b
    1:1:void <init>(java.util.function.BiConsumer):2917:2917 -> <init>
    2:7:void <init>(java.util.function.BiConsumer):2913:2918 -> <init>
    1:1:java.util.Set access$3900(com.android.tools.r8.shaking.Enqueuer$SetWithReason):2911:2911 -> a
    2:3:boolean add(java.lang.Object,com.android.tools.r8.shaking.KeepReason):2922:2923 -> a
    4:4:boolean contains(java.lang.Object):2927:2927 -> a
    5:5:java.util.Set getItems():2931:2931 -> a
com.android.tools.r8.shaking.Enqueuer$TargetWithContext -> com.android.tools.r8.shaking.Enqueuer$d:
    com.android.tools.r8.graph.Descriptor target -> a
    com.android.tools.r8.graph.DexEncodedMethod context -> b
    1:3:void <init>(com.android.tools.r8.graph.Descriptor,com.android.tools.r8.graph.DexEncodedMethod):2940:2942 -> <init>
    1:3:void <init>(com.android.tools.r8.graph.Descriptor,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.Enqueuer$1):2935 -> <init>
    1:1:com.android.tools.r8.graph.Descriptor access$000(com.android.tools.r8.shaking.Enqueuer$TargetWithContext):2935:2935 -> a
    2:2:com.android.tools.r8.graph.DexEncodedMethod getContext():2950:2950 -> a
    1:1:com.android.tools.r8.graph.Descriptor getTarget():2946:2946 -> b
    1:5:boolean equals(java.lang.Object):2960:2964 -> equals
    1:1:int hashCode():2955:2955 -> hashCode
com.android.tools.r8.shaking.Enqueuer$UseRegistry -> com.android.tools.r8.shaking.Enqueuer$e:
    com.android.tools.r8.shaking.Enqueuer this$0 -> d
    boolean $assertionsDisabled -> e
    com.android.tools.r8.graph.DexEncodedMethod currentMethod -> c
    1:1:void <clinit>():466:466 -> <clinit>
    1:3:void <init>(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexEncodedMethod):470:472 -> <init>
    1:3:void <init>(com.android.tools.r8.shaking.Enqueuer,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.Enqueuer$1):466 -> <init>
    1:35:void com.android.tools.r8.graph.UseRegistry.registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):60:94 -> a
    1:35:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):665 -> a
    36:36:void com.android.tools.r8.graph.UseRegistry.registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):88:88 -> a
    36:36:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):665 -> a
    37:43:void com.android.tools.r8.graph.UseRegistry.registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):85:91 -> a
    37:43:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):665 -> a
    44:46:void com.android.tools.r8.graph.UseRegistry.registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):80:82 -> a
    44:46:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):665 -> a
    47:50:void com.android.tools.r8.graph.UseRegistry.registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):74:77 -> a
    47:50:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):665 -> a
    51:60:void com.android.tools.r8.graph.UseRegistry.registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):62:71 -> a
    51:60:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):665 -> a
    61:64:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):672:675 -> a
    65:65:com.android.tools.r8.shaking.KeepReason com.android.tools.r8.shaking.KeepReason.methodHandleReferencedIn(com.android.tools.r8.graph.DexEncodedMethod):90:90 -> a
    65:65:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):675 -> a
    66:66:void registerMethodHandle(com.android.tools.r8.graph.DexMethodHandle,com.android.tools.r8.graph.UseRegistry$MethodHandleUse):675:675 -> a
    67:67:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):499:499 -> a
    68:74:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):503:509 -> a
    75:81:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):590:596 -> a
    82:82:boolean registerCheckCast(com.android.tools.r8.graph.DexType):654:654 -> a
    83:145:void registerCallSite(com.android.tools.r8.graph.DexCallSite):682:744 -> a
    146:155:void registerCallSite(com.android.tools.r8.graph.DexCallSite):732:741 -> a
    156:156:boolean registerNewInstance(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason):606:606 -> a
    156:156:void registerCallSite(com.android.tools.r8.graph.DexCallSite):741 -> a
    157:157:void registerCallSite(com.android.tools.r8.graph.DexCallSite):735:735 -> a
    158:201:void registerCallSite(com.android.tools.r8.graph.DexCallSite):729:772 -> a
    202:221:void registerCallSite(com.android.tools.r8.graph.DexCallSite):771:790 -> a
    1:1:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):546:546 -> b
    2:8:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):550:556 -> b
    9:16:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):577:584 -> b
    17:17:boolean registerConstClass(com.android.tools.r8.graph.DexType):649:649 -> b
    1:1:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):515:515 -> c
    2:23:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):519:540 -> c
    24:24:boolean registerNewInstance(com.android.tools.r8.graph.DexType):602:602 -> c
    25:25:com.android.tools.r8.shaking.KeepReason com.android.tools.r8.shaking.KeepReason.instantiatedIn(com.android.tools.r8.graph.DexEncodedMethod):34:34 -> c
    25:25:boolean registerNewInstance(com.android.tools.r8.graph.DexType):602 -> c
    26:26:boolean registerNewInstance(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason):606:606 -> c
    26:26:boolean registerNewInstance(com.android.tools.r8.graph.DexType):602 -> c
    27:33:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):612:618 -> c
    1:13:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.shaking.KeepReason):481:493 -> d
    14:21:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):564:571 -> d
    22:40:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):624:642 -> d
    41:41:boolean registerTypeReference(com.android.tools.r8.graph.DexType):659:659 -> d
    1:1:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):477:477 -> e
    2:11:boolean registerConstClassOrCheckCast(com.android.tools.r8.graph.DexType):795:804 -> e
    12:12:boolean registerTypeReference(com.android.tools.r8.graph.DexType):659:659 -> e
    12:12:boolean registerConstClassOrCheckCast(com.android.tools.r8.graph.DexType):810 -> e
com.android.tools.r8.shaking.FilteredClassPath -> com.android.tools.r8.shaking.FilteredClassPath:
    java.nio.file.Path path -> a
    com.android.tools.r8.com.google.common.collect.ImmutableList pattern -> b
    1:3:void <init>(java.nio.file.Path,java.util.List):25:27 -> <init>
    1:1:java.nio.file.Path getPath():47:47 -> a
    2:23:boolean matchAgainstFileName(java.lang.String,int,java.lang.String,int):72:93 -> a
    24:24:boolean containsFileSeparator(java.lang.String):67:67 -> a
    24:24:boolean matchAgainstFileName(java.lang.String,int,java.lang.String,int):93 -> a
    25:43:boolean matchAgainstFileName(java.lang.String,int,java.lang.String,int):94:112 -> a
    1:1:boolean isUnfiltered():119:119 -> b
    1:7:boolean matchesFile(java.lang.String):51:57 -> matchesFile
    1:16:java.lang.String toString():124:139 -> toString
com.android.tools.r8.shaking.InlineRule -> com.android.tools.r8.shaking.o:
    com.android.tools.r8.origin.Origin checkDiscardOrigin -> b
    com.android.tools.r8.shaking.InlineRule$Type type -> a
    boolean $assertionsDisabled -> c
    1:3:void <clinit>():11:13 -> <clinit>
    1:4:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.InlineRule$Type):67:70 -> <init>
    1:1:com.android.tools.r8.shaking.InlineRule$Builder builder():74:74 -> builder
    1:1:com.android.tools.r8.shaking.InlineRule$Type getType():78:78 -> getType
    1:14:com.android.tools.r8.shaking.ProguardCheckDiscardRule asProguardCheckDiscardRule():82:95 -> h
    1:9:java.lang.String typeString():100:108 -> typeString
com.android.tools.r8.shaking.InlineRule$1 -> com.android.tools.r8.shaking.n:
    1:1:void <init>(com.android.tools.r8.origin.Origin):13:13 -> <init>
com.android.tools.r8.shaking.InlineRule$Builder -> com.android.tools.r8.shaking.o$a:
    com.android.tools.r8.shaking.InlineRule$Type type -> o
    1:1:void <init>():27:27 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.InlineRule$1):24 -> <init>
    com.android.tools.r8.shaking.ProguardClassSpecification$Builder self() -> g
com.android.tools.r8.shaking.InlineRule$Type -> com.android.tools.r8.shaking.p:
    com.android.tools.r8.shaking.InlineRule$Type[] $VALUES -> d
    com.android.tools.r8.shaking.InlineRule$Type NEVER -> c
    com.android.tools.r8.shaking.InlineRule$Type FORCE -> b
    com.android.tools.r8.shaking.InlineRule$Type ALWAYS -> a
    1:1:void <clinit>():21:21 -> <clinit>
    2:2:void <clinit>():20:20 -> <clinit>
    1:1:void <init>(java.lang.String,int):20:20 -> <init>
    1:1:com.android.tools.r8.shaking.InlineRule$Type[] values():20:20 -> a
com.android.tools.r8.shaking.KeepReason -> com.android.tools.r8.shaking.r:
    1:1:void <init>():15:15 -> <init>
    com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind() -> a
    com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.Enqueuer) -> a
    1:1:com.android.tools.r8.shaking.KeepReason dueToKeepRule(com.android.tools.r8.shaking.ProguardKeepRule):26:26 -> a
    2:2:com.android.tools.r8.shaking.KeepReason reachableFromLiveType(com.android.tools.r8.graph.DexType):42:42 -> a
    3:3:com.android.tools.r8.shaking.KeepReason fieldReferencedIn(com.android.tools.r8.graph.DexEncodedMethod):58:58 -> a
    4:4:com.android.tools.r8.shaking.KeepReason referencedInAnnotation(com.android.tools.r8.graph.DexItem):62:62 -> a
    com.android.tools.r8.shaking.ProguardKeepRule getProguardKeepRule() -> b
    1:1:com.android.tools.r8.shaking.KeepReason dueToProguardCompatibilityKeepRule(com.android.tools.r8.shaking.ProguardKeepRule):30:30 -> b
    2:2:com.android.tools.r8.shaking.KeepReason instantiatedIn(com.android.tools.r8.graph.DexEncodedMethod):34:34 -> b
    boolean isDueToKeepRule() -> c
    1:1:com.android.tools.r8.shaking.KeepReason invokedFrom(com.android.tools.r8.graph.DexEncodedMethod):46:46 -> c
    boolean isDueToProguardCompatibility() -> d
    1:1:com.android.tools.r8.shaking.KeepReason invokedFromLambdaCreatedIn(com.android.tools.r8.graph.DexEncodedMethod):50:50 -> d
    boolean isDueToReflectiveUse() -> e
    1:1:com.android.tools.r8.shaking.KeepReason invokedViaSuperFrom(com.android.tools.r8.graph.DexEncodedMethod):38:38 -> e
    1:1:com.android.tools.r8.shaking.KeepReason reflectiveUseIn(com.android.tools.r8.graph.DexEncodedMethod):86:86 -> f
com.android.tools.r8.shaking.KeepReason$1 -> com.android.tools.r8.shaking.q:
com.android.tools.r8.shaking.KeepReason$AnnotatedOn -> com.android.tools.r8.shaking.r$a:
    com.android.tools.r8.graph.DexDefinition holder -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():310:310 -> <clinit>
    1:2:void <init>(com.android.tools.r8.graph.DexDefinition):314:315 -> <init>
    1:2:void <init>(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.KeepReason$1):310 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():320:320 -> a
    2:8:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.Enqueuer):325:331 -> a
com.android.tools.r8.shaking.KeepReason$BasedOnOtherMethod -> com.android.tools.r8.shaking.s:
    com.android.tools.r8.graph.DexEncodedMethod method -> a
    1:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod):142:143 -> <init>
    1:2:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):138 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.Enqueuer):150:150 -> a
com.android.tools.r8.shaking.KeepReason$DueToKeepRule -> com.android.tools.r8.shaking.r$b:
    com.android.tools.r8.shaking.ProguardKeepRule keepRule -> a
    1:2:void <init>(com.android.tools.r8.shaking.ProguardKeepRule):97:98 -> <init>
    1:2:void <init>(com.android.tools.r8.shaking.ProguardKeepRule,com.android.tools.r8.shaking.KeepReason$1):93 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():103:103 -> a
    2:2:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.Enqueuer):118:118 -> a
    1:1:com.android.tools.r8.shaking.ProguardKeepRule getProguardKeepRule():113:113 -> b
    boolean isDueToKeepRule() -> c
com.android.tools.r8.shaking.KeepReason$DueToProguardCompatibilityKeepRule -> com.android.tools.r8.shaking.r$c:
    1:1:void <init>(com.android.tools.r8.shaking.ProguardKeepRule):124:124 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardKeepRule,com.android.tools.r8.shaking.KeepReason$1):122 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():129:129 -> a
    boolean isDueToProguardCompatibility() -> d
com.android.tools.r8.shaking.KeepReason$InstatiatedIn -> com.android.tools.r8.shaking.r$d:
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod):157:157 -> <init>
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):154 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():162:162 -> a
com.android.tools.r8.shaking.KeepReason$InvokedFrom -> com.android.tools.r8.shaking.r$e:
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod):208:208 -> <init>
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):205 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():213:213 -> a
com.android.tools.r8.shaking.KeepReason$InvokedFromLambdaCreatedIn -> com.android.tools.r8.shaking.r$f:
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod):225:225 -> <init>
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):222 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():230:230 -> a
com.android.tools.r8.shaking.KeepReason$InvokedViaSuper -> com.android.tools.r8.shaking.r$g:
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod):174:174 -> <init>
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):171 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():179:179 -> a
com.android.tools.r8.shaking.KeepReason$IsLibraryMethod -> com.android.tools.r8.shaking.r$h:
    1:1:void <init>():277:277 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.KeepReason$1):275 -> <init>
    com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.Enqueuer) -> a
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():282:282 -> a
com.android.tools.r8.shaking.KeepReason$MethodHandleReferencedFrom -> com.android.tools.r8.shaking.r$i:
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod):361:361 -> <init>
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):358 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():366:366 -> a
com.android.tools.r8.shaking.KeepReason$ReachableFromLiveType -> com.android.tools.r8.shaking.r$j:
    com.android.tools.r8.graph.DexType type -> a
    1:2:void <init>(com.android.tools.r8.graph.DexType):260:261 -> <init>
    1:2:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.KeepReason$1):256 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():266:266 -> a
    2:2:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.Enqueuer):271:271 -> a
com.android.tools.r8.shaking.KeepReason$ReferencedFrom -> com.android.tools.r8.shaking.r$k:
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod):242:242 -> <init>
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):239 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():247:247 -> a
com.android.tools.r8.shaking.KeepReason$ReferencedInAnnotation -> com.android.tools.r8.shaking.r$l:
    com.android.tools.r8.graph.DexItem holder -> a
    1:2:void <init>(com.android.tools.r8.graph.DexItem):295:296 -> <init>
    1:2:void <init>(com.android.tools.r8.graph.DexItem,com.android.tools.r8.shaking.KeepReason$1):291 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():301:301 -> a
    2:2:com.android.tools.r8.experimental.graphinfo.GraphNode getSourceNode(com.android.tools.r8.shaking.Enqueuer):306:306 -> a
com.android.tools.r8.shaking.KeepReason$ReflectiveUseFrom -> com.android.tools.r8.shaking.r$m:
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod):339:339 -> <init>
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):336 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():349:349 -> a
    boolean isDueToReflectiveUse() -> e
com.android.tools.r8.shaking.KeepReason$TargetedBySuper -> com.android.tools.r8.shaking.r$n:
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod):191:191 -> <init>
    1:1:void <init>(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.shaking.KeepReason$1):188 -> <init>
    1:1:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo$EdgeKind edgeKind():196:196 -> a
com.android.tools.r8.shaking.MainDexClasses -> com.android.tools.r8.shaking.MainDexClasses:
    java.util.Set classes -> c
    java.util.Set roots -> a
    java.util.Set dependencies -> b
    boolean $assertionsDisabled -> d
    1:3:void <clinit>():19:21 -> <clinit>
    1:1:void <init>(java.util.Set,java.util.Set,com.android.tools.r8.shaking.MainDexClasses$1):19:19 -> <init>
    2:6:void <init>(java.util.Set,java.util.Set):71:75 -> <init>
    1:1:java.util.Set getClasses():92:92 -> a
    2:2:void collectTypesMatching(java.util.Set,java.util.function.Predicate,java.util.function.Consumer):97:97 -> a
    3:4:void lambda$collectTypesMatching$0(java.util.function.Predicate,java.util.function.Consumer,com.android.tools.r8.graph.DexType):99:100 -> a
    5:9:com.android.tools.r8.shaking.MainDexClasses prunedCopy(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness):106:110 -> a
    10:10:com.android.tools.r8.shaking.MainDexClasses$Builder builder(com.android.tools.r8.graph.AppInfo):114:114 -> a
    1:1:java.util.Set getDependencies():88:88 -> b
    1:1:java.util.Set getRoots():84:84 -> c
    1:2:boolean isEmpty():79:80 -> d
com.android.tools.r8.shaking.MainDexClasses$1 -> com.android.tools.r8.shaking.t:
com.android.tools.r8.shaking.MainDexClasses$Builder -> com.android.tools.r8.shaking.MainDexClasses$a:
    java.util.Set dependencies -> c
    java.util.Set roots -> b
    com.android.tools.r8.graph.AppInfo appInfo -> a
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():23:23 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppInfo):28:28 -> <init>
    1:1:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.shaking.MainDexClasses$1):23 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.AppInfo):25:29 -> <init>
    2:6:void <init>(com.android.tools.r8.graph.AppInfo,com.android.tools.r8.shaking.MainDexClasses$1):23 -> <init>
    1:2:com.android.tools.r8.shaking.MainDexClasses$Builder addRoots(java.util.Collection):39:40 -> a
    3:4:com.android.tools.r8.shaking.MainDexClasses$Builder addDependency(com.android.tools.r8.graph.DexType):45:46 -> a
    5:5:com.android.tools.r8.shaking.MainDexClasses build():55:55 -> a
    1:2:com.android.tools.r8.shaking.MainDexClasses$Builder addRoot(com.android.tools.r8.graph.DexType):33:34 -> b
    1:1:boolean contains(com.android.tools.r8.graph.DexType):51:51 -> c
    1:2:boolean isProgramClass(com.android.tools.r8.graph.DexType):59:60 -> d
com.android.tools.r8.shaking.MainDexDirectReferenceTracer -> com.android.tools.r8.shaking.y:
    com.android.tools.r8.shaking.MainDexDirectReferenceTracer$DirectReferencesCollector codeDirectReferenceCollector -> b
    java.util.function.Consumer consumer -> d
    com.android.tools.r8.graph.AppInfoWithSubtyping appInfo -> c
    boolean $assertionsDisabled -> e
    com.android.tools.r8.shaking.MainDexDirectReferenceTracer$AnnotationDirectReferenceCollector annotationDirectReferenceCollector -> a
    1:1:void <clinit>():25:25 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,java.util.function.Consumer):33:33 -> <init>
    2:12:void <init>(com.android.tools.r8.graph.AppInfoWithSubtyping,java.util.function.Consumer):26:36 -> <init>
    1:1:java.util.function.Consumer access$300(com.android.tools.r8.shaking.MainDexDirectReferenceTracer):25:25 -> a
    2:2:void access$400(com.android.tools.r8.shaking.MainDexDirectReferenceTracer,com.android.tools.r8.graph.DexMethod,java.util.function.Consumer):25:25 -> a
    3:9:void run(java.util.Set):40:46 -> a
    10:10:void traceAnnotationsDirectDependencies(com.android.tools.r8.graph.DexAnnotationSet):85:85 -> a
    10:10:void run(java.util.Set):46 -> a
    11:12:void run(java.util.Set):47:48 -> a
    13:13:void lambda$run$0(com.android.tools.r8.graph.DexEncodedField):47:47 -> a
    14:15:void lambda$run$1(com.android.tools.r8.graph.DexEncodedMethod):49:50 -> a
    16:18:boolean hasReferencesOutsideFromCode(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):66:68 -> a
    19:19:void runOnCode(com.android.tools.r8.graph.DexEncodedMethod):56:56 -> a
    19:19:boolean hasReferencesOutsideFromCode(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):79 -> a
    20:20:boolean hasReferencesOutsideFromCode(com.android.tools.r8.graph.AppInfoWithSubtyping,com.android.tools.r8.graph.DexEncodedMethod,java.util.Set):81:81 -> a
    21:25:void lambda$hasReferencesOutsideFromCode$2(com.android.tools.r8.graph.AppInfoWithSubtyping,java.util.Set,com.android.tools.r8.shaking.MainDexDirectReferenceTracer$BooleanBox,com.android.tools.r8.graph.DexType):71:75 -> a
    26:29:void traceMethodDirectDependencies(com.android.tools.r8.graph.DexMethod,java.util.function.Consumer):89:92 -> a
com.android.tools.r8.shaking.MainDexDirectReferenceTracer$1 -> com.android.tools.r8.shaking.u:
com.android.tools.r8.shaking.MainDexDirectReferenceTracer$AnnotationDirectReferenceCollector -> com.android.tools.r8.shaking.v:
    com.android.tools.r8.shaking.MainDexDirectReferenceTracer this$0 -> a
    1:1:void <init>(com.android.tools.r8.shaking.MainDexDirectReferenceTracer):172:172 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.MainDexDirectReferenceTracer,com.android.tools.r8.shaking.MainDexDirectReferenceTracer$1):172 -> <init>
    boolean addString(com.android.tools.r8.graph.DexString) -> a
    1:1:boolean addClass(com.android.tools.r8.graph.DexProgramClass):176:176 -> a
    2:3:boolean addField(com.android.tools.r8.graph.DexField):182:183 -> a
    4:5:boolean addMethod(com.android.tools.r8.graph.DexMethod):189:190 -> a
    6:8:boolean addProto(com.android.tools.r8.graph.DexProto):201:203 -> a
    6:8:boolean addMethod(com.android.tools.r8.graph.DexMethod):190 -> a
    9:11:boolean addProto(com.android.tools.r8.graph.DexProto):201:203 -> a
    12:12:boolean addType(com.android.tools.r8.graph.DexType):210:210 -> a
    13:13:boolean addCallSite(com.android.tools.r8.graph.DexCallSite):216:216 -> a
    14:14:boolean addMethodHandle(com.android.tools.r8.graph.DexMethodHandle):221:221 -> a
com.android.tools.r8.shaking.MainDexDirectReferenceTracer$BooleanBox -> com.android.tools.r8.shaking.w:
    boolean value -> a
    1:2:void <init>():59:60 -> <init>
    1:2:void <init>(com.android.tools.r8.shaking.MainDexDirectReferenceTracer$1):59 -> <init>
com.android.tools.r8.shaking.MainDexDirectReferenceTracer$DirectReferencesCollector -> com.android.tools.r8.shaking.x:
    com.android.tools.r8.shaking.MainDexDirectReferenceTracer this$0 -> c
    1:2:void <init>(com.android.tools.r8.shaking.MainDexDirectReferenceTracer,com.android.tools.r8.graph.DexItemFactory):98:99 -> <init>
    1:2:void <init>(com.android.tools.r8.shaking.MainDexDirectReferenceTracer,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.shaking.MainDexDirectReferenceTracer$1):96 -> <init>
    1:1:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):109:109 -> a
    2:2:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):140:140 -> a
    1:1:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):119:119 -> b
    2:2:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):135:135 -> b
    1:1:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):114:114 -> c
    2:2:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):145:145 -> c
    3:3:boolean registerNewInstance(com.android.tools.r8.graph.DexType):161:161 -> c
    1:1:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):124:124 -> d
    2:2:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):150:150 -> d
    3:3:boolean registerTypeReference(com.android.tools.r8.graph.DexType):167:167 -> d
    1:1:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):104:104 -> e
    2:3:boolean registerFieldAccess(com.android.tools.r8.graph.DexField):154:155 -> e
    1:2:boolean registerInvoke(com.android.tools.r8.graph.DexMethod):128:129 -> f
com.android.tools.r8.shaking.MainDexListBuilder -> com.android.tools.r8.shaking.z:
    java.util.Map annotationTypeContainEnum -> c
    com.android.tools.r8.graph.AppInfoWithSubtyping appInfo -> b
    boolean $assertionsDisabled -> f
    java.util.Set roots -> a
    com.android.tools.r8.graph.DexApplication dexApplication -> d
    com.android.tools.r8.shaking.MainDexClasses$Builder mainDexClassesBuilder -> e
    1:1:void <clinit>():27:27 -> <clinit>
    1:19:void <init>(java.util.Set,com.android.tools.r8.graph.DexApplication):39:57 -> <init>
    20:20:void <init>(java.util.Set,com.android.tools.r8.graph.DexApplication):56:56 -> <init>
    21:21:void <init>(java.util.Set,com.android.tools.r8.graph.DexApplication):52:52 -> <init>
    22:22:void <init>(java.util.Set,com.android.tools.r8.graph.DexApplication):47:47 -> <init>
    1:3:com.android.tools.r8.shaking.MainDexClasses run():61:63 -> a
    4:6:void lambda$traceRuntimeAnnotationsWithEnumForMainDex$0(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotation):80:82 -> a
    7:7:void addClassAnnotatedWithAnnotationWithEnum(com.android.tools.r8.graph.DexType):154:154 -> a
    7:7:void lambda$traceRuntimeAnnotationsWithEnumForMainDex$0(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexAnnotation):83 -> a
    8:19:void addDirectDependency(com.android.tools.r8.graph.DexType):159:170 -> a
    20:27:void addDirectDependency(com.android.tools.r8.graph.DexProgramClass):174:181 -> a
    1:14:boolean isAnnotationWithEnum(com.android.tools.r8.graph.DexType):90:103 -> b
    15:15:boolean isEnum(com.android.tools.r8.graph.DexType):120:120 -> b
    15:15:boolean isAnnotationWithEnum(com.android.tools.r8.graph.DexType):104 -> b
    16:16:boolean isAnnotationWithEnum(com.android.tools.r8.graph.DexType):105:105 -> b
    17:17:boolean isAnnotation(com.android.tools.r8.graph.DexType):124:124 -> b
    17:17:boolean isAnnotationWithEnum(com.android.tools.r8.graph.DexType):107 -> b
    18:27:boolean isAnnotationWithEnum(com.android.tools.r8.graph.DexType):107:116 -> b
    28:29:void traceMainDexDirectDependencies():133:134 -> b
    1:3:void traceRuntimeAnnotationsWithEnumForMainDex():67:69 -> c
    4:4:boolean isAnnotation(com.android.tools.r8.graph.DexType):124:124 -> c
    4:4:void traceRuntimeAnnotationsWithEnumForMainDex():72 -> c
    5:5:void traceRuntimeAnnotationsWithEnumForMainDex():72:72 -> c
    6:11:void addAnnotationsWithEnum(com.android.tools.r8.graph.DexProgramClass):139:144 -> c
    6:11:void traceRuntimeAnnotationsWithEnumForMainDex():73 -> c
    12:12:boolean isEnum(com.android.tools.r8.graph.DexType):120:120 -> c
    12:12:void addAnnotationsWithEnum(com.android.tools.r8.graph.DexProgramClass):145 -> c
    12:12:void traceRuntimeAnnotationsWithEnumForMainDex():73 -> c
    13:13:void addAnnotationsWithEnum(com.android.tools.r8.graph.DexProgramClass):146:146 -> c
    13:13:void traceRuntimeAnnotationsWithEnumForMainDex():73 -> c
    14:14:void traceRuntimeAnnotationsWithEnumForMainDex():78:78 -> c
    15:16:boolean isProgramClass(com.android.tools.r8.graph.DexType):128:129 -> c
com.android.tools.r8.shaking.MemberValuePropagationRule -> com.android.tools.r8.shaking.B:
    com.android.tools.r8.shaking.MemberValuePropagationRule$Type type -> a
    1:4:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.MemberValuePropagationRule$Type):61:64 -> <init>
    1:4:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.MemberValuePropagationRule$Type,com.android.tools.r8.shaking.MemberValuePropagationRule$1):11 -> <init>
    1:1:com.android.tools.r8.shaking.MemberValuePropagationRule$Builder builder():68:68 -> builder
    1:1:com.android.tools.r8.shaking.MemberValuePropagationRule$Type getType():72:72 -> getType
    1:5:java.lang.String typeString():77:81 -> typeString
com.android.tools.r8.shaking.MemberValuePropagationRule$1 -> com.android.tools.r8.shaking.A:
    int[] $SwitchMap$com$android$tools$r8$shaking$MemberValuePropagationRule$Type -> a
    1:1:void <clinit>():77:77 -> <clinit>
com.android.tools.r8.shaking.MemberValuePropagationRule$Builder -> com.android.tools.r8.shaking.B$a:
    com.android.tools.r8.shaking.MemberValuePropagationRule$Type type -> o
    1:1:void <init>():21:21 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.MemberValuePropagationRule$1):17 -> <init>
    com.android.tools.r8.shaking.ProguardClassSpecification$Builder self() -> g
com.android.tools.r8.shaking.MemberValuePropagationRule$Type -> com.android.tools.r8.shaking.C:
    com.android.tools.r8.shaking.MemberValuePropagationRule$Type[] $VALUES -> b
    com.android.tools.r8.shaking.MemberValuePropagationRule$Type NEVER -> a
    1:1:void <clinit>():14:14 -> <clinit>
    2:2:void <clinit>():13:13 -> <clinit>
    1:1:void <init>(java.lang.String,int):13:13 -> <init>
    1:1:com.android.tools.r8.shaking.MemberValuePropagationRule$Type[] values():13:13 -> a
com.android.tools.r8.shaking.ProguardAccessFlags -> com.android.tools.r8.shaking.ProguardAccessFlags:
    java.util.List NAMES -> c
    int PPP_MASK -> b
    int flags -> a
    1:7:void <clinit>():15:21 -> <clinit>
    1:6:void <init>():13:18 -> <init>
    1:1:void setFlags(com.android.tools.r8.graph.AccessFlags):77:77 -> a
    2:7:void setVisibility(com.android.tools.r8.graph.ClassAccessFlags):108:113 -> a
    8:8:boolean isAbstract():138:138 -> a
    9:9:boolean isSet(int):198:198 -> a
    1:1:boolean isBridge():194:194 -> b
    2:2:void set(int):202:202 -> b
    1:1:boolean isFinal():130:130 -> c
    1:1:boolean containsAll(com.android.tools.r8.graph.AccessFlags):69:69 -> containsAll
    2:2:boolean containsAll(int):57:57 -> containsAll
    2:2:boolean containsAll(com.android.tools.r8.graph.AccessFlags):69 -> containsAll
    1:1:boolean containsNone(com.android.tools.r8.graph.AccessFlags):73:73 -> containsNone
    2:2:boolean containsNone(int):65:65 -> containsNone
    2:2:boolean containsNone(com.android.tools.r8.graph.AccessFlags):73 -> containsNone
    1:1:boolean isNative():170:170 -> d
    1:1:boolean isPrivate():95:95 -> e
    1:1:boolean isPublic():86:86 -> f
    1:1:boolean isStatic():122:122 -> g
    1:1:boolean isStrict():178:178 -> h
    1:1:boolean isSynchronized():162:162 -> i
    1:1:boolean isProtected():104:104 -> isProtected
    1:1:boolean isSynthetic():186:186 -> j
    1:1:boolean isTransient():154:154 -> k
    1:1:boolean isVolatile():146:146 -> l
    1:1:void setAbstract():134:134 -> m
    1:1:void setBridge():190:190 -> n
    1:1:void setFinal():126:126 -> o
    1:1:void setNative():166:166 -> p
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags setPrivate():90:90 -> q
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags setProtected():99:99 -> r
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags setPublic():81:81 -> s
    1:1:void setStatic():118:118 -> t
    1:14:java.lang.String toString():207:220 -> toString
    1:1:void setStrict():174:174 -> u
    1:1:void setSynchronized():158:158 -> v
    1:1:void setSynthetic():182:182 -> w
    1:1:void setTransient():150:150 -> x
    1:1:void setVolatile():142:142 -> y
    1:1:java.util.List getPredicates():39:39 -> z
com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule -> com.android.tools.r8.shaking.E:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):57:57 -> <init>
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule$1):10 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule$Builder builder():75:75 -> builder
    boolean applyToLibraryClasses() -> f
com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule$1 -> com.android.tools.r8.shaking.D:
com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule$Builder -> com.android.tools.r8.shaking.E$a:
    1:1:void <init>():16:16 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule$1):12 -> <init>
    com.android.tools.r8.shaking.ProguardClassSpecification$Builder self() -> g
com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule -> com.android.tools.r8.shaking.G:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):46:46 -> <init>
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule$1):10 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule$Builder builder():55:55 -> builder
    boolean applyToLibraryClasses() -> f
com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule$1 -> com.android.tools.r8.shaking.F:
com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule$Builder -> com.android.tools.r8.shaking.G$a:
    1:1:void <init>():16:16 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule$1):12 -> <init>
    com.android.tools.r8.shaking.ProguardClassSpecification$Builder self() -> g
com.android.tools.r8.shaking.ProguardAssumeValuesRule -> com.android.tools.r8.shaking.ProguardAssumeValuesRule:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):46:46 -> <init>
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardAssumeValuesRule$1):10 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardAssumeValuesRule$Builder builder():55:55 -> builder
com.android.tools.r8.shaking.ProguardAssumeValuesRule$1 -> com.android.tools.r8.shaking.H:
com.android.tools.r8.shaking.ProguardAssumeValuesRule$Builder -> com.android.tools.r8.shaking.ProguardAssumeValuesRule$a:
    1:1:void <init>():16:16 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardAssumeValuesRule$1):12 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardAssumeValuesRule build():26:26 -> build
    com.android.tools.r8.shaking.ProguardClassSpecification$Builder self() -> g
com.android.tools.r8.shaking.ProguardCheckDiscardRule -> com.android.tools.r8.shaking.J:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):46:46 -> <init>
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardCheckDiscardRule$1):10 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardCheckDiscardRule$Builder builder():52:52 -> builder
com.android.tools.r8.shaking.ProguardCheckDiscardRule$1 -> com.android.tools.r8.shaking.I:
com.android.tools.r8.shaking.ProguardCheckDiscardRule$Builder -> com.android.tools.r8.shaking.J$a:
    1:1:void <init>():16:16 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardCheckDiscardRule$1):12 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardCheckDiscardRule build():26:26 -> build
    com.android.tools.r8.shaking.ProguardClassSpecification$Builder self() -> g
com.android.tools.r8.shaking.ProguardClassFilter -> com.android.tools.r8.shaking.ProguardClassFilter:
    com.android.tools.r8.shaking.ProguardClassFilter EMPTY -> b
    com.android.tools.r8.com.google.common.collect.ImmutableList patterns -> a
    boolean $assertionsDisabled -> c
    1:2:void <clinit>():12:13 -> <clinit>
    1:2:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList):37:38 -> <init>
    3:4:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList):37:38 -> <init>
    3:4:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.shaking.ProguardClassFilter$1):12 -> <init>
    1:1:boolean isEmpty():46:46 -> a
    2:3:void filterOutMatches(java.util.Set):59:60 -> a
    4:8:void lambda$filterOutMatches$0(java.util.Set,com.android.tools.r8.shaking.ProguardTypeMatcher):61:65 -> a
    1:1:com.android.tools.r8.shaking.ProguardClassFilter$Builder builder():18:18 -> builder
    1:1:com.android.tools.r8.shaking.ProguardClassFilter empty():42:42 -> empty
    1:2:boolean matches(com.android.tools.r8.graph.DexType):50:51 -> matches
com.android.tools.r8.shaking.ProguardClassFilter$1 -> com.android.tools.r8.shaking.K:
com.android.tools.r8.shaking.ProguardClassFilter$Builder -> com.android.tools.r8.shaking.ProguardClassFilter$Builder:
    com.android.tools.r8.com.google.common.collect.ImmutableList$Builder patterns -> a
    1:1:void <init>():24:24 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardClassFilter$1):21 -> <init>
    2:2:void <init>():22:22 -> <init>
    2:2:void <init>(com.android.tools.r8.shaking.ProguardClassFilter$1):21 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardClassFilter$Builder addPattern(com.android.tools.r8.shaking.ProguardClassNameList):28:28 -> addPattern
    1:1:com.android.tools.r8.shaking.ProguardClassFilter build():33:33 -> build
com.android.tools.r8.shaking.ProguardClassNameList -> com.android.tools.r8.shaking.ProguardClassNameList:
    1:1:void <init>():19:19 -> <init>
    void forEachTypeMatcher(java.util.function.Consumer) -> a
    boolean matches(com.android.tools.r8.graph.DexType) -> a
    com.android.tools.r8.shaking.ProguardClassNameList materialize() -> a
    void writeTo(java.lang.StringBuilder) -> a
    1:1:java.lang.Iterable getWildcardsOrEmpty(com.android.tools.r8.shaking.ProguardClassNameList):83:83 -> a
    1:1:com.android.tools.r8.shaking.ProguardClassNameList$Builder builder():22:22 -> builder
    1:1:java.lang.Iterable getWildcards():79:79 -> getWildcards
    1:1:com.android.tools.r8.shaking.ProguardClassNameList singletonList(com.android.tools.r8.shaking.ProguardTypeMatcher):30:30 -> singletonList
    1:3:java.lang.String toString():69:71 -> toString
com.android.tools.r8.shaking.ProguardClassNameList$1 -> com.android.tools.r8.shaking.L:
com.android.tools.r8.shaking.ProguardClassNameList$Builder -> com.android.tools.r8.shaking.ProguardClassNameList$Builder:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap matchers -> a
    1:1:void <init>():42:42 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardClassNameList$1):35 -> <init>
    2:2:void <init>():40:40 -> <init>
    2:2:void <init>(com.android.tools.r8.shaking.ProguardClassNameList$1):35 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardClassNameList$Builder addClassName(boolean,com.android.tools.r8.shaking.ProguardTypeMatcher):46:46 -> addClassName
    1:6:com.android.tools.r8.shaking.ProguardClassNameList build():51:56 -> build
    7:7:java.lang.Object com.android.tools.r8.com.google.common.collect.Iterables.getOnlyElement(java.lang.Iterable):266:266 -> build
    7:7:com.android.tools.r8.shaking.ProguardClassNameList build():56 -> build
    8:10:com.android.tools.r8.shaking.ProguardClassNameList build():56:58 -> build
com.android.tools.r8.shaking.ProguardClassNameList$MixedClassNameList -> com.android.tools.r8.shaking.ProguardClassNameList$a:
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap classNames -> a
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap):229:230 -> <init>
    1:2:void <init>(com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap,com.android.tools.r8.shaking.ProguardClassNameList$1):225 -> <init>
    1:8:void writeTo(java.lang.StringBuilder):241:248 -> a
    9:12:boolean matches(com.android.tools.r8.graph.DexType):260:263 -> a
    13:13:java.util.stream.Stream lambda$getWildcards$0(java.lang.Iterable):273:273 -> a
    14:16:com.android.tools.r8.shaking.ProguardClassNameList materialize():279:281 -> a
    17:17:void lambda$materialize$1(com.android.tools.r8.shaking.ProguardClassNameList$Builder,com.android.tools.r8.shaking.ProguardTypeMatcher,java.lang.Boolean):280:280 -> a
    18:18:void forEachTypeMatcher(java.util.function.Consumer):286:286 -> a
    19:19:void lambda$forEachTypeMatcher$2(java.util.function.Consumer,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Object2BooleanMap$Entry):286:286 -> a
    1:3:java.lang.Iterable getWildcards():271:273 -> getWildcards
    1:1:int size():235:235 -> size
com.android.tools.r8.shaking.ProguardClassNameList$PositiveClassNameList -> com.android.tools.r8.shaking.ProguardClassNameList$b:
    com.android.tools.r8.com.google.common.collect.ImmutableList classNames -> a
    1:2:void <init>(java.util.Collection):170:171 -> <init>
    3:4:void <init>(java.util.Collection):170:171 -> <init>
    3:4:void <init>(java.util.Collection,com.android.tools.r8.shaking.ProguardClassNameList$1):166 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardClassNameList materialize():166:166 -> a
    2:6:void writeTo(java.lang.StringBuilder):182:186 -> a
    7:7:boolean lambda$asSpecificDexTypes$0(com.android.tools.r8.shaking.ProguardTypeMatcher):193:193 -> a
    8:8:boolean lambda$matches$1(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ProguardTypeMatcher):202:202 -> a
    9:9:boolean matches(com.android.tools.r8.graph.DexType):202:202 -> a
    10:10:java.util.stream.Stream lambda$getWildcards$2(java.lang.Iterable):209:209 -> a
    11:12:com.android.tools.r8.shaking.ProguardClassNameList$PositiveClassNameList materialize():215:216 -> a
    13:13:void forEachTypeMatcher(java.util.function.Consumer):221:221 -> a
    1:3:java.util.List asSpecificDexTypes():193:195 -> asSpecificDexTypes
    1:3:java.lang.Iterable getWildcards():207:209 -> getWildcards
    1:1:int size():176:176 -> size
com.android.tools.r8.shaking.ProguardClassNameList$SingleClassNameList -> com.android.tools.r8.shaking.ProguardClassNameList$c:
    com.android.tools.r8.shaking.ProguardTypeMatcher className -> a
    1:2:void <init>(com.android.tools.r8.shaking.ProguardTypeMatcher):125:126 -> <init>
    3:4:void <init>(com.android.tools.r8.shaking.ProguardTypeMatcher):125:126 -> <init>
    3:4:void <init>(com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardClassNameList$1):121 -> <init>
    1:1:void writeTo(java.lang.StringBuilder):136:136 -> a
    2:2:boolean matches(com.android.tools.r8.graph.DexType):147:147 -> a
    3:3:com.android.tools.r8.shaking.ProguardClassNameList$SingleClassNameList materialize():157:157 -> a
    3:3:com.android.tools.r8.shaking.ProguardClassNameList materialize():121 -> a
    4:4:void forEachTypeMatcher(java.util.function.Consumer):162:162 -> a
    1:2:java.util.List asSpecificDexTypes():141:142 -> asSpecificDexTypes
    1:1:java.lang.Iterable getWildcards():152:152 -> getWildcards
com.android.tools.r8.shaking.ProguardClassSpecification -> com.android.tools.r8.shaking.ProguardClassSpecification:
    com.android.tools.r8.shaking.ProguardTypeMatcher inheritanceClassName -> k
    boolean $assertionsDisabled -> n
    com.android.tools.r8.shaking.ProguardClassType classType -> h
    com.android.tools.r8.shaking.ProguardTypeMatcher inheritanceAnnotation -> j
    boolean inheritanceIsExtends -> l
    com.android.tools.r8.shaking.ProguardTypeMatcher classAnnotation -> d
    com.android.tools.r8.shaking.ProguardAccessFlags classAccessFlags -> e
    com.android.tools.r8.shaking.ProguardClassNameList classNames -> i
    com.android.tools.r8.shaking.ProguardAccessFlags negatedClassAccessFlags -> f
    com.android.tools.r8.origin.Origin origin -> a
    com.android.tools.r8.position.Position position -> b
    boolean classTypeNegated -> g
    java.lang.String source -> c
    java.util.List memberRules -> m
    1:1:void <clinit>():16:16 -> <clinit>
    1:18:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):199:216 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getClassAnnotation():276:276 -> a
    2:6:java.lang.StringBuilder append(java.lang.StringBuilder,boolean):333:337 -> a
    7:31:java.lang.StringBuilder append(java.lang.StringBuilder,boolean):336:360 -> a
    32:34:void lambda$append$0(java.lang.StringBuilder,com.android.tools.r8.shaking.ProguardMemberRule):356:358 -> a
    1:1:boolean getClassTypeNegated():264:264 -> b
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getInheritanceAnnotation():252:252 -> c
    1:1:com.android.tools.r8.position.Position getPosition():224:224 -> d
    1:1:boolean hasInheritanceClassName():244:244 -> e
    1:33:boolean equals(java.lang.Object):281:313 -> equals
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getClassAccessFlags():268:268 -> getClassAccessFlags
    1:1:com.android.tools.r8.shaking.ProguardClassNameList getClassNames():256:256 -> getClassNames
    1:1:com.android.tools.r8.shaking.ProguardClassType getClassType():260:260 -> getClassType
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getInheritanceClassName():248:248 -> getInheritanceClassName
    1:1:boolean getInheritanceIsExtends():236:236 -> getInheritanceIsExtends
    1:1:java.util.List getMemberRules():232:232 -> getMemberRules
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getNegatedClassAccessFlags():272:272 -> getNegatedClassAccessFlags
    1:1:com.android.tools.r8.origin.Origin getOrigin():220:220 -> getOrigin
    1:1:java.lang.String getSource():228:228 -> getSource
    1:10:int hashCode():319:328 -> hashCode
    1:1:java.lang.String toString():374:374 -> toString
com.android.tools.r8.shaking.ProguardClassSpecification$Builder -> com.android.tools.r8.shaking.ProguardClassSpecification$Builder:
    com.android.tools.r8.shaking.ProguardClassType classType -> i
    com.android.tools.r8.shaking.ProguardTypeMatcher inheritanceAnnotation -> k
    boolean inheritanceIsExtends -> m
    com.android.tools.r8.shaking.ProguardTypeMatcher inheritanceClassName -> l
    com.android.tools.r8.shaking.ProguardTypeMatcher classAnnotation -> e
    com.android.tools.r8.shaking.ProguardClassNameList classNames -> j
    com.android.tools.r8.shaking.ProguardAccessFlags negatedClassAccessFlags -> g
    com.android.tools.r8.shaking.ProguardAccessFlags classAccessFlags -> f
    com.android.tools.r8.origin.Origin origin -> a
    com.android.tools.r8.position.Position end -> c
    com.android.tools.r8.position.Position start -> b
    boolean classTypeNegated -> h
    java.util.List memberRules -> n
    java.lang.String source -> d
    1:1:void <init>():37:37 -> <init>
    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):40:40 -> <init>
    2:2:void <init>():37 -> <init>
    3:19:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):26:42 -> <init>
    3:19:void <init>():37 -> <init>
    1:2:com.android.tools.r8.shaking.ProguardClassSpecification$Builder setOrigin(com.android.tools.r8.origin.Origin):50:51 -> a
    3:4:com.android.tools.r8.shaking.ProguardClassSpecification$Builder setEnd(com.android.tools.r8.position.Position):60:61 -> a
    5:6:com.android.tools.r8.shaking.ProguardClassSpecification$Builder setMemberRules(java.util.List):84:85 -> a
    7:8:com.android.tools.r8.shaking.ProguardClassSpecification$Builder setClassType(com.android.tools.r8.shaking.ProguardClassType):130:131 -> a
    9:9:void setClassTypeNegated(boolean):139:139 -> a
    10:10:com.android.tools.r8.shaking.ProguardAccessFlags getClassAccessFlags():143:143 -> a
    11:11:void setClassAccessFlags(com.android.tools.r8.shaking.ProguardAccessFlags):147:147 -> a
    12:12:void setClassAnnotation(com.android.tools.r8.shaking.ProguardTypeMatcher):163:163 -> a
    1:2:com.android.tools.r8.shaking.ProguardClassSpecification$Builder setStart(com.android.tools.r8.position.Position):55:56 -> b
    3:3:void setInheritanceIsExtends(boolean):93:93 -> b
    4:4:void setInheritanceAnnotation(com.android.tools.r8.shaking.ProguardTypeMatcher):113:113 -> b
    5:5:void setNegatedClassAccessFlags(com.android.tools.r8.shaking.ProguardAccessFlags):155:155 -> b
    6:6:com.android.tools.r8.shaking.ProguardTypeMatcher getClassAnnotation():159:159 -> b
    1:1:java.util.List getMemberRules():80:80 -> c
    2:2:void setInheritanceClassName(com.android.tools.r8.shaking.ProguardTypeMatcher):105:105 -> c
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getNegatedClassAccessFlags():151:151 -> d
    1:7:com.android.tools.r8.position.Position getPosition():70:76 -> e
    8:8:com.android.tools.r8.position.Position getPosition():74:74 -> e
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher com.android.tools.r8.shaking.ProguardTypeMatcher.defaultAllMatcher():102:102 -> f
    1:1:void matchAllSpecification():167 -> f
    2:2:void matchAllSpecification():167:167 -> f
    3:5:com.android.tools.r8.shaking.ProguardMemberRule com.android.tools.r8.shaking.ProguardMemberRule.defaultKeepAllRule():404:406 -> f
    3:5:void matchAllSpecification():168 -> f
    6:6:void matchAllSpecification():168:168 -> f
    com.android.tools.r8.shaking.ProguardClassSpecification$Builder self() -> g
    1:2:com.android.tools.r8.shaking.ProguardClassSpecification$Builder setClassNames(com.android.tools.r8.shaking.ProguardClassNameList):121:122 -> setClassNames
    1:2:com.android.tools.r8.shaking.ProguardClassSpecification$Builder setSource(java.lang.String):65:66 -> setSource
com.android.tools.r8.shaking.ProguardClassType -> com.android.tools.r8.shaking.ProguardClassType:
    com.android.tools.r8.shaking.ProguardClassType ENUM -> a
    com.android.tools.r8.shaking.ProguardClassType INTERFACE -> b
    com.android.tools.r8.shaking.ProguardClassType[] $VALUES -> d
    com.android.tools.r8.shaking.ProguardClassType UNSPECIFIED -> c
    1:25:void <clinit>():10:34 -> <clinit>
    26:26:void <clinit>():9:9 -> <clinit>
    1:1:void <init>(java.lang.String,int):9:9 -> <init>
    1:1:void <init>(java.lang.String,int,com.android.tools.r8.shaking.ProguardClassType$1):9 -> <init>
    boolean matches(com.android.tools.r8.graph.DexClass) -> a
    1:9:java.lang.String toString():43:51 -> toString
com.android.tools.r8.shaking.ProguardClassType$1 -> com.android.tools.r8.shaking.M:
    1:1:void <init>(java.lang.String,int):10:10 -> <init>
    1:1:boolean matches(com.android.tools.r8.graph.DexClass):13:13 -> a
com.android.tools.r8.shaking.ProguardClassType$2 -> com.android.tools.r8.shaking.N:
    1:1:void <init>(java.lang.String,int):16:16 -> <init>
    boolean matches(com.android.tools.r8.graph.DexClass) -> a
com.android.tools.r8.shaking.ProguardClassType$3 -> com.android.tools.r8.shaking.O:
    1:1:void <init>(java.lang.String,int):22:22 -> <init>
    1:1:boolean matches(com.android.tools.r8.graph.DexClass):25:25 -> a
com.android.tools.r8.shaking.ProguardClassType$4 -> com.android.tools.r8.shaking.P:
    1:1:void <init>(java.lang.String,int):28:28 -> <init>
    1:1:boolean matches(com.android.tools.r8.graph.DexClass):31:31 -> a
com.android.tools.r8.shaking.ProguardClassType$5 -> com.android.tools.r8.shaking.Q:
    1:1:void <init>(java.lang.String,int):34:34 -> <init>
    boolean matches(com.android.tools.r8.graph.DexClass) -> a
com.android.tools.r8.shaking.ProguardConfiguration -> com.android.tools.r8.shaking.ProguardConfiguration:
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> b
    java.lang.String packagePrefix -> f
    boolean optimizing -> i
    boolean shrinking -> k
    com.android.tools.r8.shaking.ProguardClassFilter dontWarnPatterns -> v
    java.nio.file.Path printConfigurationFile -> m
    com.android.tools.r8.shaking.ProguardPathFilter keepDirectories -> J
    java.nio.file.Path printMappingFile -> q
    com.android.tools.r8.com.google.common.collect.ImmutableList obfuscationDictionary -> B
    java.nio.file.Path printUsageFile -> o
    boolean verbose -> s
    com.android.tools.r8.com.google.common.collect.ImmutableList packageObfuscationDictionary -> D
    com.android.tools.r8.com.google.common.collect.ImmutableList injars -> c
    java.lang.String renameSourceFileAttribute -> t
    java.nio.file.Path applyMappingFile -> r
    boolean printSeeds -> y
    com.android.tools.r8.shaking.ProguardClassFilter adaptClassStrings -> G
    com.android.tools.r8.shaking.ProguardPathFilter adaptResourceFileContents -> I
    boolean useUniqueClassMemberNames -> E
    java.lang.String parsedConfiguration -> a
    boolean ignoreWarnings -> h
    java.nio.file.Path seedFile -> z
    boolean overloadAggressively -> A
    boolean printUsage -> n
    com.android.tools.r8.shaking.ProguardKeepAttributes keepAttributes -> u
    boolean printMapping -> p
    boolean obfuscating -> j
    com.android.tools.r8.shaking.ProguardClassFilter dontNotePatterns -> w
    boolean printConfiguration -> l
    com.android.tools.r8.com.google.common.collect.ImmutableList libraryjars -> d
    com.android.tools.r8.com.google.common.collect.ImmutableList classObfuscationDictionary -> C
    com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode packageObfuscationMode -> e
    com.android.tools.r8.shaking.ProguardPathFilter adaptResourceFilenames -> H
    boolean keepParameterNames -> F
    boolean allowAccessModification -> g
    com.android.tools.r8.com.google.common.collect.ImmutableList rules -> x
    1:37:void <init>(java.lang.String,com.android.tools.r8.graph.DexItemFactory,java.util.List,java.util.List,com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode,java.lang.String,boolean,boolean,boolean,boolean,boolean,boolean,java.nio.file.Path,boolean,java.nio.file.Path,boolean,java.nio.file.Path,java.nio.file.Path,boolean,java.lang.String,com.android.tools.r8.shaking.ProguardKeepAttributes,com.android.tools.r8.shaking.ProguardClassFilter,com.android.tools.r8.shaking.ProguardClassFilter,java.util.Set,boolean,java.nio.file.Path,boolean,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,boolean,boolean,com.android.tools.r8.shaking.ProguardClassFilter,com.android.tools.r8.shaking.ProguardPathFilter,com.android.tools.r8.shaking.ProguardPathFilter,com.android.tools.r8.shaking.ProguardPathFilter):435:471 -> <init>
    1:37:void <init>(java.lang.String,com.android.tools.r8.graph.DexItemFactory,java.util.List,java.util.List,com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode,java.lang.String,boolean,boolean,boolean,boolean,boolean,boolean,java.nio.file.Path,boolean,java.nio.file.Path,boolean,java.nio.file.Path,java.nio.file.Path,boolean,java.lang.String,com.android.tools.r8.shaking.ProguardKeepAttributes,com.android.tools.r8.shaking.ProguardClassFilter,com.android.tools.r8.shaking.ProguardClassFilter,java.util.Set,boolean,java.nio.file.Path,boolean,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,boolean,boolean,com.android.tools.r8.shaking.ProguardClassFilter,com.android.tools.r8.shaking.ProguardPathFilter,com.android.tools.r8.shaking.ProguardPathFilter,com.android.tools.r8.shaking.ProguardPathFilter,com.android.tools.r8.shaking.ProguardConfiguration$1):20 -> <init>
    1:1:java.util.List getClassObfuscationDictionary():591:591 -> a
    1:1:java.util.List getInjars():491:491 -> b
    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder builder(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):479:479 -> builder
    1:1:java.util.List getObfuscationDictionary():587:587 -> c
    1:1:java.util.List getPackageObfuscationDictionary():595:595 -> d
    1:1:java.lang.String getParsedConfiguration():483:483 -> e
    1:1:boolean isAccessModificationAllowed():507:507 -> f
    1:1:boolean isIgnoreWarnings():527:527 -> g
    1:1:com.android.tools.r8.shaking.ProguardClassFilter getAdaptClassStrings():607:607 -> getAdaptClassStrings
    1:1:com.android.tools.r8.shaking.ProguardPathFilter getAdaptResourceFileContents():615:615 -> getAdaptResourceFileContents
    1:1:com.android.tools.r8.shaking.ProguardPathFilter getAdaptResourceFilenames():611:611 -> getAdaptResourceFilenames
    1:1:java.nio.file.Path getApplyMappingFile():523:523 -> getApplyMappingFile
    1:1:com.android.tools.r8.graph.DexItemFactory getDexItemFactory():487:487 -> getDexItemFactory
    1:1:com.android.tools.r8.shaking.ProguardClassFilter getDontNotePatterns():575:575 -> getDontNotePatterns
    1:1:com.android.tools.r8.shaking.ProguardClassFilter getDontWarnPatterns():571:571 -> getDontWarnPatterns
    1:1:com.android.tools.r8.shaking.ProguardKeepAttributes getKeepAttributes():567:567 -> getKeepAttributes
    1:1:com.android.tools.r8.shaking.ProguardPathFilter getKeepDirectories():619:619 -> getKeepDirectories
    1:1:java.util.List getLibraryjars():495:495 -> getLibraryjars
    1:1:com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode getPackageObfuscationMode():499:499 -> getPackageObfuscationMode
    1:1:java.lang.String getPackagePrefix():503:503 -> getPackagePrefix
    1:1:java.nio.file.Path getPrintConfigurationFile():547:547 -> getPrintConfigurationFile
    1:1:java.nio.file.Path getPrintMappingFile():515:515 -> getPrintMappingFile
    1:1:java.nio.file.Path getPrintUsageFile():555:555 -> getPrintUsageFile
    1:1:java.lang.String getRenameSourceFileAttribute():563:563 -> getRenameSourceFileAttribute
    1:1:java.util.List getRules():579:579 -> getRules
    1:1:java.nio.file.Path getSeedFile():627:627 -> getSeedFile
    1:1:boolean isOverloadAggressivelyWithoutUseUniqueClassMemberNames():583:583 -> h
    1:1:boolean hasApplyMappingFile():519:519 -> hasApplyMappingFile
    1:1:boolean isPrintMapping():511:511 -> i
    1:1:boolean isKeepParameterNames():603:603 -> isKeepParameterNames
    1:1:boolean isObfuscating():535:535 -> isObfuscating
    1:1:boolean isOptimizing():531:531 -> isOptimizing
    1:1:boolean isPrintConfiguration():543:543 -> isPrintConfiguration
    1:1:boolean isPrintSeeds():623:623 -> isPrintSeeds
    1:1:boolean isPrintUsage():551:551 -> isPrintUsage
    1:1:boolean isShrinking():539:539 -> isShrinking
    1:1:boolean isUseUniqueClassMemberNames():599:599 -> isUseUniqueClassMemberNames
    1:1:boolean isVerbose():559:559 -> isVerbose
    1:10:java.lang.String toString():632:641 -> toString
com.android.tools.r8.shaking.ProguardConfiguration$1 -> com.android.tools.r8.shaking.S:
com.android.tools.r8.shaking.ProguardConfiguration$Builder -> com.android.tools.r8.shaking.ProguardConfiguration$Builder:
    java.lang.String packagePrefix -> f
    java.nio.file.Path packageObfuscationDictionary -> D
    boolean overloadAggressively -> N
    boolean $assertionsDisabled -> P
    java.nio.file.Path obfuscationDictionary -> B
    boolean optimizing -> i
    boolean shrinking -> k
    com.android.tools.r8.shaking.ProguardClassFilter$Builder dontNotePatterns -> w
    java.nio.file.Path printConfigurationFile -> m
    com.android.tools.r8.origin.Origin keepParameterNamesOptionOrigin -> G
    com.android.tools.r8.position.Position keepParameterNamesOptionPosition -> H
    java.nio.file.Path printMappingFile -> q
    java.nio.file.Path printUsageFile -> o
    boolean verbose -> s
    java.lang.String renameSourceFileAttribute -> t
    java.util.List injars -> b
    com.android.tools.r8.shaking.ProguardPathFilter$Builder adaptResourceFilenames -> J
    com.android.tools.r8.shaking.ProguardPathFilter$Builder keepDirectories -> L
    java.nio.file.Path applyMappingFile -> r
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> y
    boolean useUniqueClassMemberNames -> E
    boolean ignoreWarnings -> h
    boolean forceProguardCompatibility -> M
    boolean printUsage -> n
    java.util.Set rules -> x
    java.nio.file.Path classObfuscationDictionary -> C
    boolean keepRuleSynthesisForRecompilation -> O
    boolean printMapping -> p
    boolean obfuscating -> j
    java.util.List keepAttributePatterns -> u
    com.android.tools.r8.shaking.ProguardClassFilter$Builder dontWarnPatterns -> v
    boolean printConfiguration -> l
    com.android.tools.r8.utils.Reporter reporter -> d
    java.util.List parsedConfiguration -> a
    com.android.tools.r8.shaking.ProguardClassFilter$Builder adaptClassStrings -> I
    com.android.tools.r8.shaking.ProguardPathFilter$Builder adaptResourceFileContents -> K
    com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode packageObfuscationMode -> e
    boolean printSeeds -> z
    java.util.List libraryjars -> c
    boolean keepParameterNames -> F
    boolean allowAccessModification -> g
    java.nio.file.Path seedFile -> A
    1:1:void <clinit>():22:22 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):71:71 -> <init>
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter,com.android.tools.r8.shaking.ProguardConfiguration$1):22 -> <init>
    2:51:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):24:73 -> <init>
    2:51:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter,com.android.tools.r8.shaking.ProguardConfiguration$1):22 -> <init>
    1:1:void addParsedConfiguration(java.lang.String):77:77 -> a
    2:2:void addInjars(java.util.List):81:81 -> a
    3:3:void setAllowAccessModification(boolean):103:103 -> a
    4:4:void setApplyMappingFile(java.nio.file.Path):164:164 -> a
    5:8:void setKeepParameterNames(boolean,com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):226:229 -> a
    9:9:void addAdaptClassStringsPattern(com.android.tools.r8.shaking.ProguardClassNameList):245:245 -> a
    10:10:void addAdaptResourceFileContents(com.android.tools.r8.shaking.ProguardPathList):253:253 -> a
    11:11:java.lang.String[] lambda$synthesizeKeepRulesForRecompilation$0(int):290:290 -> a
    12:50:com.android.tools.r8.shaking.ProguardConfiguration buildRaw():295:333 -> a
    51:53:void lambda$build$1(com.android.tools.r8.shaking.ProguardKeepRuleModifiers$Builder):348:350 -> a
    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder addKeepAttributePatterns(java.util.List):176:176 -> addKeepAttributePatterns
    1:1:void addRule(com.android.tools.r8.shaking.ProguardConfigurationRule):181:181 -> addRule
    1:1:void addLibraryJars(java.util.List):85:85 -> b
    2:3:void setFlattenPackagePrefix(java.lang.String):98:99 -> b
    4:4:void addDontNotePattern(com.android.tools.r8.shaking.ProguardClassNameList):189:189 -> b
    5:5:void setClassObfuscationDictionary(java.nio.file.Path):205:205 -> b
    6:6:void addAdaptResourceFilenames(com.android.tools.r8.shaking.ProguardPathList):249:249 -> b
    7:7:void enableKeepDirectories():257:257 -> b
    8:8:void setForceProguardCompatibility(boolean):265:265 -> b
    1:20:com.android.tools.r8.shaking.ProguardConfiguration build():339:358 -> build
    1:2:void setPackagePrefix(java.lang.String):93:94 -> c
    3:3:void setPrintConfiguration(boolean):138:138 -> c
    4:4:void addDontWarnPattern(com.android.tools.r8.shaking.ProguardClassNameList):185:185 -> c
    5:5:void setObfuscationDictionary(java.nio.file.Path):201:201 -> c
    6:6:void addKeepDirectories(com.android.tools.r8.shaking.ProguardPathList):261:261 -> c
    7:7:void enableKeepRuleSynthesisForRecompilation():273:273 -> c
    1:1:void setPrintUsage(boolean):147:147 -> d
    2:2:void setPackageObfuscationDictionary(java.nio.file.Path):209:209 -> d
    3:3:com.android.tools.r8.origin.Origin getKeepParameterNamesOptionOrigin():237:237 -> d
    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder disableObfuscation():116:116 -> disableObfuscation
    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder disableOptimization():111:111 -> disableOptimization
    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder disableShrinking():133:133 -> disableShrinking
    1:2:void setPrintConfigurationFile(java.nio.file.Path):142:143 -> e
    3:3:void setVerbose(boolean):168:168 -> e
    4:4:com.android.tools.r8.position.Position getKeepParameterNamesOptionPosition():241:241 -> e
    1:1:com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode getPackageObfuscationMode():89:89 -> f
    2:2:void setPrintUsageFile(java.nio.file.Path):151:151 -> f
    1:1:void setSeedFile(java.nio.file.Path):193:193 -> g
    2:2:boolean isKeepParameterNames():233:233 -> g
    1:1:boolean isObfuscating():121:121 -> h
    1:1:boolean isOptimizing():125:125 -> i
    1:1:boolean isOverloadAggressively():221:221 -> j
    1:1:boolean isShrinking():129:129 -> k
    1:1:boolean isUseUniqueClassMemberNames():217:217 -> l
    1:10:void synthesizeKeepRulesForRecompilation():281:290 -> m
    11:11:void synthesizeKeepRulesForRecompilation():287:287 -> m
    12:12:void synthesizeKeepRulesForRecompilation():286:286 -> m
    1:1:void setIgnoreWarnings(boolean):107:107 -> setIgnoreWarnings
    1:1:void setOverloadAggressively(boolean):269:269 -> setOverloadAggressively
    1:1:void setPrintMapping(boolean):155:155 -> setPrintMapping
    1:2:void setPrintMappingFile(java.nio.file.Path):159:160 -> setPrintMappingFile
    1:1:void setPrintSeeds(boolean):197:197 -> setPrintSeeds
    1:1:void setRenameSourceFileAttribute(java.lang.String):172:172 -> setRenameSourceFileAttribute
    1:1:void setUseUniqueClassMemberNames(boolean):213:213 -> setUseUniqueClassMemberNames
com.android.tools.r8.shaking.ProguardConfigurationParser -> com.android.tools.r8.shaking.ProguardConfigurationParser:
    com.android.tools.r8.shaking.ProguardConfiguration$Builder configurationBuilder -> a
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> b
    com.android.tools.r8.utils.Reporter reporter -> c
    java.util.List IGNORED_OPTIONAL_SINGLE_ARG_OPTIONS -> f
    java.util.List IGNORED_SINGLE_ARG_OPTIONS -> e
    java.util.List WARNED_OPTIONAL_SINGLE_ARG_OPTIONS -> j
    java.util.List WARNED_SINGLE_ARG_OPTIONS -> i
    java.util.List IGNORED_CLASS_DESCRIPTOR_OPTIONS -> h
    java.util.List IGNORED_FLAG_OPTIONS -> g
    java.util.List UNSUPPORTED_FLAG_OPTIONS -> m
    java.util.List WARNED_CLASS_DESCRIPTOR_OPTIONS -> l
    java.util.List WARNED_FLAG_OPTIONS -> k
    boolean allowTestOptions -> d
    1:51:void <clinit>():53:103 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):107:107 -> <init>
    2:7:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter,boolean):111:116 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder access$000(com.android.tools.r8.shaking.ProguardConfigurationParser):44:44 -> a
    2:2:java.util.List access$1000():44:44 -> a
    3:3:java.lang.String access$1300(com.android.tools.r8.shaking.ProguardConfigurationParser,java.lang.String,com.android.tools.r8.position.TextPosition,com.android.tools.r8.position.TextPosition):44:44 -> a
    4:11:void parse(java.util.List):167:174 -> a
    12:13:void parse(java.util.List):171:172 -> a
    14:20:void parse(java.util.List):171:177 -> a
    21:27:java.lang.String getTextSourceSnippet(java.lang.String,com.android.tools.r8.position.TextPosition,com.android.tools.r8.position.TextPosition):1866:1872 -> a
    1:1:boolean access$100(com.android.tools.r8.shaking.ProguardConfigurationParser):44:44 -> b
    2:2:java.util.List access$1100():44:44 -> b
    1:1:com.android.tools.r8.graph.DexItemFactory access$1200(com.android.tools.r8.shaking.ProguardConfigurationParser):44:44 -> c
    2:2:java.util.List access$300():44:44 -> c
    1:1:com.android.tools.r8.utils.Reporter access$200(com.android.tools.r8.shaking.ProguardConfigurationParser):44:44 -> d
    2:2:java.util.List access$400():44:44 -> d
    1:1:java.util.List access$500():44:44 -> e
    1:1:java.util.List access$600():44:44 -> f
    1:1:java.util.List access$700():44:44 -> g
    1:2:com.android.tools.r8.shaking.ProguardConfiguration getConfig():145:146 -> getConfig
    1:2:com.android.tools.r8.shaking.ProguardConfiguration getConfigRawForTesting():154:155 -> getConfigRawForTesting
    1:1:java.util.List access$800():44:44 -> h
    1:1:java.util.List access$900():44:44 -> i
    1:1:com.android.tools.r8.shaking.ProguardConfiguration$Builder getConfigurationBuilder():120:120 -> j
    1:7:void validate():124:130 -> k
    8:15:void validate():127:134 -> k
    1:1:void parse(java.nio.file.Path):159:159 -> parse
    2:2:void parse(com.android.tools.r8.shaking.ProguardConfigurationSource):163:163 -> parse
com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards -> com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards:
    java.util.List wildcards -> b
    java.lang.String pattern -> a
    1:3:void <init>(java.lang.String,java.util.List):1880:1882 -> <init>
    1:15:boolean hasUnusualCharacters():1894:1908 -> a
    1:1:boolean isMatchAllNames():1890:1890 -> b
    1:1:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards withoutWildcards(java.lang.String):1886:1886 -> withoutWildcards
com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation -> com.android.tools.r8.shaking.ProguardConfigurationParser$a:
    com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards patternWithWildcards -> a
    boolean negated -> b
    1:3:void <init>(java.lang.String,java.util.List,boolean):1919:1921 -> <init>
com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType -> com.android.tools.r8.shaking.ProguardConfigurationParser$b:
    com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType ANY -> b
    com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType CLASS_NAME -> a
    1:2:void <clinit>():181:182 -> <clinit>
    3:3:void <clinit>():180:180 -> <clinit>
    1:1:void <init>(java.lang.String,int):180:180 -> <init>
com.android.tools.r8.shaking.ProguardConfigurationParser$ProguardConfigurationSourceParser -> com.android.tools.r8.shaking.ProguardConfigurationParser$c:
    boolean $assertionsDisabled -> k
    java.nio.file.Path baseDirectory -> g
    com.android.tools.r8.shaking.ProguardConfigurationParser this$0 -> j
    int lineStartPosition -> f
    java.lang.String name -> a
    int positionAfterInclude -> d
    int line -> e
    com.android.tools.r8.origin.Origin origin -> h
    java.lang.String contents -> b
    int position -> c
    java.util.function.Predicate CLASS_NAME_PREDICATE -> i
    1:1:void <clinit>():185:185 -> <clinit>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardConfigurationParser,com.android.tools.r8.shaking.ProguardConfigurationSource):195:195 -> <init>
    2:1278:void <init>(com.android.tools.r8.shaking.ProguardConfigurationParser,com.android.tools.r8.shaking.ProguardConfigurationSource):188:1464 -> <init>
    1279:1282:void <init>(com.android.tools.r8.shaking.ProguardConfigurationParser,com.android.tools.r8.shaking.ProguardConfigurationSource):196:199 -> <init>
    1:5:void parse():204:208 -> a
    6:6:void parse():207:207 -> a
    7:9:void unknownOption(java.lang.String,com.android.tools.r8.position.TextPosition,java.lang.String):428:430 -> a
    10:10:void unknownOption(java.lang.String,com.android.tools.r8.position.TextPosition,java.lang.String):428:428 -> a
    11:13:com.android.tools.r8.shaking.ProguardKeepRule parseKeepRule(com.android.tools.r8.position.Position):587:589 -> a
    14:45:void parseRuleTypeAndModifiers(com.android.tools.r8.shaking.ProguardKeepRule$Builder):786:817 -> a
    14:45:com.android.tools.r8.shaking.ProguardKeepRule parseKeepRule(com.android.tools.r8.position.Position):590 -> a
    46:60:void parseRuleModifiers(com.android.tools.r8.shaking.ProguardKeepRule$Builder):823:837 -> a
    46:60:void parseRuleTypeAndModifiers(com.android.tools.r8.shaking.ProguardKeepRule$Builder):819 -> a
    46:60:com.android.tools.r8.shaking.ProguardKeepRule parseKeepRule(com.android.tools.r8.position.Position):590 -> a
    61:67:com.android.tools.r8.shaking.ProguardKeepRule parseKeepRule(com.android.tools.r8.position.Position):591:597 -> a
    68:77:com.android.tools.r8.shaking.ProguardKeepRule parseKeepRule(com.android.tools.r8.position.Position):596:605 -> a
    78:80:com.android.tools.r8.shaking.InlineRule parseInlineRule(com.android.tools.r8.shaking.InlineRule$Type,com.android.tools.r8.position.Position):679:681 -> a
    81:81:com.android.tools.r8.shaking.InlineRule$Builder com.android.tools.r8.shaking.InlineRule$Builder.setType(com.android.tools.r8.shaking.InlineRule$Type):38:38 -> a
    81:81:com.android.tools.r8.shaking.InlineRule parseInlineRule(com.android.tools.r8.shaking.InlineRule$Type,com.android.tools.r8.position.Position):682 -> a
    82:85:com.android.tools.r8.shaking.InlineRule parseInlineRule(com.android.tools.r8.shaking.InlineRule$Type,com.android.tools.r8.position.Position):683:686 -> a
    86:86:com.android.tools.r8.shaking.InlineRule com.android.tools.r8.shaking.InlineRule$Builder.build():44:44 -> a
    86:86:com.android.tools.r8.shaking.InlineRule parseInlineRule(com.android.tools.r8.shaking.InlineRule$Type,com.android.tools.r8.position.Position):687 -> a
    87:109:void parseClassFlagsAndAnnotations(com.android.tools.r8.shaking.ProguardClassSpecification$Builder):869:891 -> a
    87:109:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):778 -> a
    110:127:void parseClassType(com.android.tools.r8.shaking.ProguardClassSpecification$Builder):905:922 -> a
    110:127:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):779 -> a
    128:128:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):780:780 -> a
    129:139:void parseInheritance(com.android.tools.r8.shaking.ProguardClassSpecification$Builder):930:940 -> a
    129:139:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):781 -> a
    140:140:void parseInheritance(com.android.tools.r8.shaking.ProguardClassSpecification$Builder):939:939 -> a
    140:140:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):781 -> a
    141:142:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):949:950 -> a
    141:142:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    143:145:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):962:964 -> a
    143:145:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):952 -> a
    143:145:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    146:194:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):972:1020 -> a
    146:194:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):965 -> a
    146:194:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):952 -> a
    146:194:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    195:212:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):1008:1025 -> a
    195:212:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):965 -> a
    195:212:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):952 -> a
    195:212:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    213:218:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):999:1004 -> a
    213:218:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):965 -> a
    213:218:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):952 -> a
    213:218:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    219:220:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):994:995 -> a
    219:220:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):965 -> a
    219:220:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):952 -> a
    219:220:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    221:222:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):989:990 -> a
    221:222:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):965 -> a
    221:222:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):952 -> a
    221:222:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    223:224:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):984:985 -> a
    223:224:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):965 -> a
    223:224:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):952 -> a
    223:224:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    225:226:void parseMemberAccessFlags(com.android.tools.r8.shaking.ProguardMemberRule$Builder):979:980 -> a
    225:226:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):965 -> a
    225:226:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):952 -> a
    225:226:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    227:260:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1037:1070 -> a
    227:260:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):966 -> a
    227:260:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):952 -> a
    227:260:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    261:275:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1069:1083 -> a
    261:275:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):966 -> a
    261:275:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):952 -> a
    261:275:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    276:290:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1082:1096 -> a
    276:290:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):966 -> a
    276:290:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):952 -> a
    276:290:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    291:296:java.lang.String acceptFieldNameOrIntegerForReturn():1605:1610 -> a
    291:296:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1097 -> a
    291:296:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):966 -> a
    291:296:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):952 -> a
    291:296:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    297:298:char peekCharAt(int):1412:1413 -> a
    297:298:java.lang.String acceptFieldNameOrIntegerForReturn():1610 -> a
    297:298:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1097 -> a
    297:298:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):966 -> a
    297:298:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):952 -> a
    297:298:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    299:311:java.lang.String acceptFieldNameOrIntegerForReturn():1614:1626 -> a
    299:311:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1097 -> a
    299:311:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):966 -> a
    299:311:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):952 -> a
    299:311:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    312:313:boolean isInteger(java.lang.String):1348:1349 -> a
    312:313:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1099 -> a
    312:313:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):966 -> a
    312:313:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):952 -> a
    312:313:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    314:328:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1100:1114 -> a
    314:328:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):966 -> a
    314:328:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):952 -> a
    314:328:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    329:329:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1113:1113 -> a
    329:329:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):966 -> a
    329:329:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):952 -> a
    329:329:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    330:342:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1111:1123 -> a
    330:342:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):966 -> a
    330:342:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):952 -> a
    330:342:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    343:343:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1122:1122 -> a
    343:343:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):966 -> a
    343:343:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):952 -> a
    343:343:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    344:349:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1121:1126 -> a
    344:349:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):966 -> a
    344:349:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):952 -> a
    344:349:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    350:372:void parseMemberPattern(com.android.tools.r8.shaking.ProguardMemberRule$Builder,boolean):1125:1147 -> a
    350:372:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):966 -> a
    350:372:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):952 -> a
    350:372:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    373:373:com.android.tools.r8.shaking.ProguardMemberRule parseMemberRule(boolean):967:967 -> a
    373:373:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):952 -> a
    373:373:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    374:377:void parseMemberRules(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):953:956 -> a
    374:377:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):782 -> a
    378:378:void parseClassType(com.android.tools.r8.shaking.ProguardClassSpecification$Builder):924:924 -> a
    378:378:void parseClassSpec(com.android.tools.r8.shaking.ProguardClassSpecification$Builder,boolean):779 -> a
    379:380:com.android.tools.r8.utils.StringDiagnostic parseClassTypeUnexpected(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.TextPosition):899:900 -> a
    381:384:boolean lambda$parseFileName$1(boolean,char,boolean,java.lang.Integer):1224:1227 -> a
    385:385:boolean eof(int):1361:1361 -> a
    386:387:boolean acceptChar(char):1383:1384 -> a
    388:388:int remainingChars():1421:1421 -> a
    388:388:boolean acceptString(java.lang.String):1431 -> a
    389:397:boolean acceptString(java.lang.String):1431:1439 -> a
    398:398:boolean lambda$acceptQuotedOrUnquotedString$4(char,java.lang.Integer):1449:1449 -> a
    399:404:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType):1480:1485 -> a
    405:431:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1490:1516 -> a
    432:433:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1511:1512 -> a
    434:444:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1511:1521 -> a
    445:457:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1519:1531 -> a
    458:511:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1530:1583 -> a
    512:512:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1579:1579 -> a
    513:513:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1573:1573 -> a
    514:539:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1570:1595 -> a
    540:547:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation acceptIdentifierWithBackreference(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierType,boolean):1594:1601 -> a
    548:550:boolean lambda$acceptPattern$6(java.lang.Integer):1653:1655 -> a
    551:565:java.lang.String acceptString(java.util.function.Predicate):1659:1673 -> a
    566:568:void parseClassFilter(java.util.function.Consumer):1686:1688 -> a
    569:569:com.android.tools.r8.shaking.ProguardTypeMatcher com.android.tools.r8.shaking.ProguardTypeMatcher.defaultAllMatcher():102:102 -> a
    569:569:void parseClassFilter(java.util.function.Consumer):1691 -> a
    570:570:void parseClassFilter(java.util.function.Consumer):1691:1691 -> a
    571:571:void parseClassFilter(java.util.function.Consumer):1690:1690 -> a
    572:575:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation parseClassName(boolean):1725:1728 -> a
    576:577:com.android.tools.r8.shaking.ProguardRuleParserException parseError(java.lang.String,com.android.tools.r8.position.TextPosition,java.lang.Throwable):1808:1809 -> a
    578:579:void com.android.tools.r8.shaking.ProguardRuleParserException.<init>(java.lang.String,java.lang.String,com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.Throwable):27:28 -> a
    578:579:com.android.tools.r8.shaking.ProguardRuleParserException parseError(java.lang.String,com.android.tools.r8.position.TextPosition,java.lang.Throwable):1809 -> a
    580:581:com.android.tools.r8.shaking.ProguardRuleParserException parseError(java.lang.String,com.android.tools.r8.position.TextPosition):1813:1814 -> a
    582:583:void warnOverridingOptions(java.lang.String,java.lang.String,com.android.tools.r8.position.TextPosition):1823:1824 -> a
    584:584:void warnOverridingOptions(java.lang.String,java.lang.String,com.android.tools.r8.position.TextPosition):1823:1823 -> a
    585:590:void warnUnusualCharacters(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.position.TextPosition):1829:1834 -> a
    591:591:void warnUnusualCharacters(java.lang.String,java.lang.String,java.lang.String,com.android.tools.r8.position.TextPosition):1829:1829 -> a
    592:595:com.android.tools.r8.position.Position getPosition(com.android.tools.r8.position.TextPosition):1843:1846 -> a
    596:597:java.lang.String getSourceSnippet(java.lang.String,com.android.tools.r8.position.Position,com.android.tools.r8.position.Position):1859:1860 -> a
    1:1:void unknownOption(java.lang.String,com.android.tools.r8.position.TextPosition):423:423 -> b
    2:6:boolean parseIgnoredOption(com.android.tools.r8.position.TextPosition):464:468 -> b
    7:15:boolean parseOptimizationOption(com.android.tools.r8.position.TextPosition):559:567 -> b
    7:15:boolean parseIgnoredOption(com.android.tools.r8.position.TextPosition):469 -> b
    16:37:java.nio.file.Path parseFileName(boolean):1214:1235 -> b
    38:38:java.nio.file.Path parseFileName(boolean):1233:1233 -> b
    39:59:java.lang.String replaceSystemPropertyReferences(java.lang.String):1180:1200 -> b
    39:59:java.nio.file.Path parseFileName(boolean):1238 -> b
    60:72:java.lang.String replaceSystemPropertyReferences(java.lang.String):1198:1210 -> b
    60:72:java.nio.file.Path parseFileName(boolean):1238 -> b
    73:73:java.nio.file.Path parseFileName(boolean):1240:1240 -> b
    74:74:java.nio.file.Path parseFileName(boolean):1229:1229 -> b
    75:75:java.nio.file.Path parseFileName(boolean):1218:1218 -> b
    76:76:int remainingChars():1421:1421 -> b
    76:76:boolean acceptArobaseInclude():488 -> b
    77:80:boolean acceptArobaseInclude():491:494 -> b
    81:82:void expectChar(char):1425:1426 -> b
    83:83:boolean lambda$acceptString$3(java.lang.Integer):1444:1444 -> b
    84:88:void parsePathFilter(java.util.function.Consumer):1739:1743 -> b
    89:89:com.android.tools.r8.shaking.ProguardRuleParserException parseError(java.lang.String):1798:1798 -> b
    90:99:java.lang.String snippetForPosition():1774:1783 -> b
    90:99:com.android.tools.r8.shaking.ProguardRuleParserException parseError(java.lang.String):1798 -> b
    100:106:java.lang.String snippetForPosition():1779:1785 -> b
    100:106:com.android.tools.r8.shaking.ProguardRuleParserException parseError(java.lang.String):1798 -> b
    107:107:com.android.tools.r8.shaking.ProguardRuleParserException parseError(java.lang.String):1798:1798 -> b
    1:8:boolean parseIgnoredOptionAndWarn(com.android.tools.r8.position.TextPosition):445:452 -> c
    9:17:boolean parseIgnoredOptionAndWarn(com.android.tools.r8.position.TextPosition):451:459 -> c
    18:18:boolean skipFlag(java.lang.String):507:507 -> c
    19:23:void expectClosingQuote(char):1396:1400 -> c
    24:24:void expectClosingQuote(char):1398:1398 -> c
    25:29:java.lang.Integer acceptInteger():1457:1461 -> c
    30:36:boolean lambda$new$5(java.lang.Integer):1466:1472 -> c
    37:38:void warnIgnoringOptions(java.lang.String,com.android.tools.r8.position.TextPosition):1818:1819 -> c
    39:39:void warnIgnoringOptions(java.lang.String,com.android.tools.r8.position.TextPosition):1818:1818 -> c
    1:4:boolean parseUnsupportedOptionAndErr(com.android.tools.r8.position.TextPosition):434:437 -> d
    5:5:boolean parseUnsupportedOptionAndErr(com.android.tools.r8.position.TextPosition):436:436 -> d
    6:15:boolean skipOptionWithClassSpec(java.lang.String):542:551 -> d
    16:17:boolean lambda$parseFileFilter$2(java.lang.Integer):1281:1282 -> d
    18:21:boolean hasNextChar(char):1365:1368 -> d
    22:22:java.lang.String acceptPattern():1651:1651 -> d
    boolean isQuote(char) -> e
    1:7:boolean skipOptionWithOptionalSingleArg(java.lang.String):528:534 -> e
    8:8:boolean lambda$skipOptimizationName$0(java.lang.Integer):575:575 -> e
    9:9:char acceptQuoteIfPresent():1392:1392 -> e
    10:13:boolean hasNextChar(java.util.function.Predicate):1372:1375 -> e
    10:13:char acceptQuoteIfPresent():1392 -> e
    14:14:char readChar():1417:1417 -> e
    14:14:char acceptQuoteIfPresent():1392 -> e
    15:18:java.lang.String snippetForPosition(com.android.tools.r8.position.TextPosition):1790:1793 -> e
    1:5:boolean skipOptionWithSingleArg(java.lang.String):517:521 -> f
    6:9:java.lang.String acceptQuotedOrUnquotedString():1448:1451 -> f
    10:10:boolean pathFilterMatcher(java.lang.Integer):1734:1734 -> f
    1:1:java.lang.String acceptString():1444:1444 -> g
    2:5:void unacceptString(java.lang.String):1677:1680 -> g
    1:1:boolean eof():1357:1357 -> h
    1:1:com.android.tools.r8.position.TextPosition getPosition():1851:1851 -> i
    2:2:int getColumn():1855:1855 -> i
    2:2:com.android.tools.r8.position.TextPosition getPosition():1851 -> i
    3:3:com.android.tools.r8.position.TextPosition getPosition():1851:1851 -> i
    1:1:boolean isOptionalArgumentGiven():1379:1379 -> j
    1:13:com.android.tools.r8.shaking.ProguardTypeMatcher parseAnnotation():844:856 -> k
    14:14:com.android.tools.r8.shaking.ProguardTypeMatcher parseAnnotation():855:855 -> k
    1:12:java.util.List parseArgumentList():1152:1163 -> l
    13:22:java.util.List parseArgumentList():1160:1169 -> l
    23:25:java.util.List parseArgumentList():1168:1170 -> l
    26:33:java.util.List parseArgumentList():1167:1174 -> l
    1:2:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation parseClassName(boolean):1725:1726 -> m
    1:2:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards parseClassName():1718 -> m
    3:4:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards parseClassName():1719:1720 -> m
    5:5:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcardsAndNegation parseClassName(boolean):1728:1728 -> m
    5:5:com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards parseClassName():1718 -> m
    1:1:com.android.tools.r8.shaking.ProguardClassNameList parseClassNames():1705:1705 -> n
    2:5:void parseClassNameAddToBuilder(com.android.tools.r8.shaking.ProguardClassNameList$Builder):1697:1700 -> n
    2:5:com.android.tools.r8.shaking.ProguardClassNameList parseClassNames():1707 -> n
    6:9:void parseClassNameAddToBuilder(com.android.tools.r8.shaking.ProguardClassNameList$Builder):1698:1701 -> n
    6:9:com.android.tools.r8.shaking.ProguardClassNameList parseClassNames():1707 -> n
    10:11:com.android.tools.r8.shaking.ProguardClassNameList parseClassNames():1708:1709 -> n
    1:9:java.util.List parseClassPath():1244:1252 -> o
    1:14:com.android.tools.r8.com.google.common.collect.ImmutableList parseClassPathFilters():1258:1271 -> p
    15:20:com.android.tools.r8.com.google.common.collect.ImmutableList parseClassPathFilters():1268:1273 -> p
    1:7:java.lang.String parseFileFilter():1278:1284 -> q
    1:10:void parseInclude():473:482 -> r
    11:11:void parseInclude():479:479 -> r
    1:2:boolean parseNegation():862:863 -> s
    1:20:boolean parseOption():213:232 -> t
    21:32:java.util.List acceptPatternList():1630:1641 -> t
    21:32:void parseKeepAttributes():499 -> t
    21:32:boolean parseOption():233 -> t
    33:36:void parseKeepAttributes():500:503 -> t
    33:36:boolean parseOption():233 -> t
    37:37:void parseKeepAttributes():501:501 -> t
    37:37:boolean parseOption():233 -> t
    38:38:boolean parseOption():234:234 -> t
    39:43:com.android.tools.r8.shaking.ProguardKeepPackageNamesRule parseKeepPackageNamesRule(com.android.tools.r8.position.Position):623:627 -> t
    39:43:boolean parseOption():235 -> t
    44:44:com.android.tools.r8.shaking.ProguardKeepPackageNamesRule com.android.tools.r8.shaking.ProguardKeepPackageNamesRule$Builder.build():26:26 -> t
    44:44:com.android.tools.r8.shaking.ProguardKeepPackageNamesRule parseKeepPackageNamesRule(com.android.tools.r8.position.Position):628 -> t
    44:44:boolean parseOption():235 -> t
    45:48:boolean parseOption():236:239 -> t
    49:56:com.android.tools.r8.shaking.ProguardCheckDiscardRule parseCheckDiscardRule(com.android.tools.r8.position.Position):633:640 -> t
    49:56:boolean parseOption():240 -> t
    57:61:boolean parseOption():241:245 -> t
    62:66:com.android.tools.r8.shaking.ConstantArgumentRule parseConstantArgumentRule(com.android.tools.r8.position.Position):730:734 -> t
    62:66:boolean parseOption():246 -> t
    67:69:com.android.tools.r8.shaking.ConstantArgumentRule com.android.tools.r8.shaking.ConstantArgumentRule$Builder.build():26:28 -> t
    67:69:com.android.tools.r8.shaking.ConstantArgumentRule parseConstantArgumentRule(com.android.tools.r8.position.Position):735 -> t
    67:69:boolean parseOption():246 -> t
    70:71:boolean parseOption():247:248 -> t
    72:76:com.android.tools.r8.shaking.UnusedArgumentRule parseUnusedArgumentRule(com.android.tools.r8.position.Position):741:745 -> t
    72:76:boolean parseOption():249 -> t
    77:79:com.android.tools.r8.shaking.UnusedArgumentRule com.android.tools.r8.shaking.UnusedArgumentRule$Builder.build():26:28 -> t
    77:79:com.android.tools.r8.shaking.UnusedArgumentRule parseUnusedArgumentRule(com.android.tools.r8.position.Position):746 -> t
    77:79:boolean parseOption():249 -> t
    80:84:boolean parseOption():250:254 -> t
    85:91:com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule parseWhyAreYouKeepingRule(com.android.tools.r8.position.Position):610:616 -> t
    85:91:boolean parseOption():255 -> t
    92:92:com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule$Builder.build():26:26 -> t
    92:92:com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule parseWhyAreYouKeepingRule(com.android.tools.r8.position.Position):617 -> t
    92:92:boolean parseOption():255 -> t
    93:103:boolean parseOption():256:266 -> t
    104:105:boolean parseOption():263:264 -> t
    106:183:boolean parseOption():263:340 -> t
    184:190:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule parseAssumeNoSideEffectsRule(com.android.tools.r8.position.Position):1291:1297 -> t
    184:190:boolean parseOption():341 -> t
    191:191:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule$Builder.build():26:26 -> t
    191:191:com.android.tools.r8.shaking.ProguardAssumeNoSideEffectRule parseAssumeNoSideEffectsRule(com.android.tools.r8.position.Position):1298 -> t
    191:191:boolean parseOption():341 -> t
    192:193:boolean parseOption():342:343 -> t
    194:201:com.android.tools.r8.shaking.ProguardAssumeValuesRule parseAssumeValuesRule(com.android.tools.r8.position.Position):1314:1321 -> t
    194:201:boolean parseOption():344 -> t
    202:206:boolean parseOption():345:349 -> t
    207:234:boolean parseOption():348:375 -> t
    235:239:com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule parseAssumeMayHaveSideEffectsRule(com.android.tools.r8.position.Position):1304:1308 -> t
    235:239:boolean parseOption():376 -> t
    240:242:com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule$Builder.build():26:28 -> t
    240:242:com.android.tools.r8.shaking.ProguardAssumeMayHaveSideEffectsRule parseAssumeMayHaveSideEffectsRule(com.android.tools.r8.position.Position):1309 -> t
    240:242:boolean parseOption():376 -> t
    243:254:boolean parseOption():377:388 -> t
    255:255:com.android.tools.r8.shaking.ClassInlineRule parseClassInlineRule(com.android.tools.r8.shaking.ClassInlineRule$Type,com.android.tools.r8.position.Position):646:646 -> t
    255:255:boolean parseOption():388 -> t
    256:256:com.android.tools.r8.shaking.ClassInlineRule$Builder com.android.tools.r8.shaking.ClassInlineRule$Builder.setType(com.android.tools.r8.shaking.ClassInlineRule$Type):31:31 -> t
    256:256:com.android.tools.r8.shaking.ClassInlineRule parseClassInlineRule(com.android.tools.r8.shaking.ClassInlineRule$Type,com.android.tools.r8.position.Position):646 -> t
    256:256:boolean parseOption():388 -> t
    257:260:com.android.tools.r8.shaking.ClassInlineRule parseClassInlineRule(com.android.tools.r8.shaking.ClassInlineRule$Type,com.android.tools.r8.position.Position):647:650 -> t
    257:260:boolean parseOption():388 -> t
    261:263:com.android.tools.r8.shaking.ClassInlineRule com.android.tools.r8.shaking.ClassInlineRule$Builder.build():37:39 -> t
    261:263:com.android.tools.r8.shaking.ClassInlineRule parseClassInlineRule(com.android.tools.r8.shaking.ClassInlineRule$Type,com.android.tools.r8.position.Position):651 -> t
    261:263:boolean parseOption():388 -> t
    264:266:boolean parseOption():389:391 -> t
    267:267:com.android.tools.r8.shaking.ClassMergingRule parseClassMergingRule(com.android.tools.r8.shaking.ClassMergingRule$Type,com.android.tools.r8.position.Position):657:657 -> t
    267:267:boolean parseOption():391 -> t
    268:268:com.android.tools.r8.shaking.ClassMergingRule$Builder com.android.tools.r8.shaking.ClassMergingRule$Builder.setType(com.android.tools.r8.shaking.ClassMergingRule$Type):31:31 -> t
    268:268:com.android.tools.r8.shaking.ClassMergingRule parseClassMergingRule(com.android.tools.r8.shaking.ClassMergingRule$Type,com.android.tools.r8.position.Position):657 -> t
    268:268:boolean parseOption():391 -> t
    269:272:com.android.tools.r8.shaking.ClassMergingRule parseClassMergingRule(com.android.tools.r8.shaking.ClassMergingRule$Type,com.android.tools.r8.position.Position):658:661 -> t
    269:272:boolean parseOption():391 -> t
    273:273:com.android.tools.r8.shaking.ClassMergingRule com.android.tools.r8.shaking.ClassMergingRule$Builder.build():37:37 -> t
    273:273:com.android.tools.r8.shaking.ClassMergingRule parseClassMergingRule(com.android.tools.r8.shaking.ClassMergingRule$Type,com.android.tools.r8.position.Position):662 -> t
    273:273:boolean parseOption():391 -> t
    274:276:boolean parseOption():392:394 -> t
    277:277:com.android.tools.r8.shaking.MemberValuePropagationRule parseMemberValuePropagationRule(com.android.tools.r8.shaking.MemberValuePropagationRule$Type,com.android.tools.r8.position.Position):669:669 -> t
    277:277:boolean parseOption():395 -> t
    278:278:com.android.tools.r8.shaking.MemberValuePropagationRule$Builder com.android.tools.r8.shaking.MemberValuePropagationRule$Builder.setType(com.android.tools.r8.shaking.MemberValuePropagationRule$Type):32:32 -> t
    278:278:com.android.tools.r8.shaking.MemberValuePropagationRule parseMemberValuePropagationRule(com.android.tools.r8.shaking.MemberValuePropagationRule$Type,com.android.tools.r8.position.Position):669 -> t
    278:278:boolean parseOption():395 -> t
    279:282:com.android.tools.r8.shaking.MemberValuePropagationRule parseMemberValuePropagationRule(com.android.tools.r8.shaking.MemberValuePropagationRule$Type,com.android.tools.r8.position.Position):670:673 -> t
    279:282:boolean parseOption():395 -> t
    283:283:com.android.tools.r8.shaking.MemberValuePropagationRule com.android.tools.r8.shaking.MemberValuePropagationRule$Builder.build():38:38 -> t
    283:283:com.android.tools.r8.shaking.MemberValuePropagationRule parseMemberValuePropagationRule(com.android.tools.r8.shaking.MemberValuePropagationRule$Type,com.android.tools.r8.position.Position):674 -> t
    283:283:boolean parseOption():395 -> t
    284:294:boolean parseOption():396:406 -> t
    295:301:com.android.tools.r8.shaking.ProguardIdentifierNameStringRule parseIdentifierNameStringRule(com.android.tools.r8.position.Position):693:699 -> t
    295:301:boolean parseOption():406 -> t
    302:302:com.android.tools.r8.shaking.ProguardIdentifierNameStringRule com.android.tools.r8.shaking.ProguardIdentifierNameStringRule$Builder.build():25:25 -> t
    302:302:com.android.tools.r8.shaking.ProguardIdentifierNameStringRule parseIdentifierNameStringRule(com.android.tools.r8.position.Position):700 -> t
    302:302:boolean parseOption():406 -> t
    303:305:boolean parseOption():406:408 -> t
    306:315:com.android.tools.r8.shaking.ProguardIfRule parseIfRule(com.android.tools.r8.position.TextPosition):705:714 -> t
    306:315:boolean parseOption():408 -> t
    316:316:void com.android.tools.r8.shaking.ProguardIfRule$Builder.setSubsequentRule(com.android.tools.r8.shaking.ProguardKeepRule):39:39 -> t
    316:316:com.android.tools.r8.shaking.ProguardIfRule parseIfRule(com.android.tools.r8.position.TextPosition):715 -> t
    316:316:boolean parseOption():408 -> t
    317:319:com.android.tools.r8.shaking.ProguardIfRule parseIfRule(com.android.tools.r8.position.TextPosition):716:718 -> t
    317:319:boolean parseOption():408 -> t
    320:321:com.android.tools.r8.shaking.ProguardIfRule com.android.tools.r8.shaking.ProguardIfRule$Builder.build():44:45 -> t
    320:321:com.android.tools.r8.shaking.ProguardIfRule parseIfRule(com.android.tools.r8.position.TextPosition):719 -> t
    320:321:boolean parseOption():408 -> t
    322:322:com.android.tools.r8.shaking.ProguardIfRule parseIfRule(com.android.tools.r8.position.TextPosition):720:720 -> t
    322:322:boolean parseOption():408 -> t
    323:335:void verifyAndLinkBackReferences(java.lang.Iterable):750:762 -> t
    323:335:com.android.tools.r8.shaking.ProguardIfRule parseIfRule(com.android.tools.r8.position.TextPosition):720 -> t
    323:335:boolean parseOption():408 -> t
    336:339:void verifyAndLinkBackReferences(java.lang.Iterable):757:760 -> t
    336:339:com.android.tools.r8.shaking.ProguardIfRule parseIfRule(com.android.tools.r8.position.TextPosition):720 -> t
    336:339:boolean parseOption():408 -> t
    340:349:void verifyAndLinkBackReferences(java.lang.Iterable):757:766 -> t
    340:349:com.android.tools.r8.shaking.ProguardIfRule parseIfRule(com.android.tools.r8.position.TextPosition):720 -> t
    340:349:boolean parseOption():408 -> t
    350:350:boolean parseOption():408:408 -> t
    351:352:com.android.tools.r8.shaking.ProguardIfRule parseIfRule(com.android.tools.r8.position.TextPosition):723:724 -> t
    351:352:boolean parseOption():408 -> t
    353:353:com.android.tools.r8.shaking.ProguardIfRule parseIfRule(com.android.tools.r8.position.TextPosition):723:723 -> t
    353:353:boolean parseOption():408 -> t
    354:361:boolean parseOption():410:417 -> t
    1:1:java.lang.String acceptClassName():1475:1475 -> u
    1:1:java.lang.String parsePackageNameOrEmptyString():1713 -> u
    1:20:com.android.tools.r8.shaking.ProguardPathList parsePathFilter():1748:1767 -> v
    21:26:com.android.tools.r8.shaking.ProguardPathList parsePathFilter():1764:1769 -> v
    27:27:com.android.tools.r8.shaking.ProguardPathList parsePathFilter():1754:1754 -> v
    1:1:char peekChar():1408:1408 -> w
    1:4:void skipOptimizationName():572:575 -> x
    1:2:void skipSingleArgument():579:580 -> y
    3:3:char readChar():1417:1417 -> y
    3:3:void skipSingleArgument():581 -> y
    1:6:void skipWhitespace():1325:1330 -> z
    7:14:void skipComment():1336:1343 -> z
    7:14:void skipWhitespace():1332 -> z
com.android.tools.r8.shaking.ProguardConfigurationRule -> com.android.tools.r8.shaking.ProguardConfigurationRule:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):29:29 -> <init>
    1:1:java.util.stream.Stream lambda$getWildcards$0(java.lang.Iterable):54:54 -> a
    2:6:java.lang.StringBuilder append(java.lang.StringBuilder,boolean):76:80 -> a
    1:5:boolean equals(java.lang.Object):62:66 -> equals
    boolean applyToLibraryClasses() -> f
    java.lang.String modifierString() -> g
    1:12:java.lang.Iterable getWildcards():45:56 -> getWildcards
    13:13:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable[]):487:487 -> getWildcards
    13:13:java.lang.Iterable getWildcards():46 -> getWildcards
    1:1:int hashCode():71:71 -> hashCode
com.android.tools.r8.shaking.ProguardConfigurationSource -> com.android.tools.r8.shaking.ProguardConfigurationSource:
    java.nio.file.Path getBaseDirectory() -> a
com.android.tools.r8.shaking.ProguardConfigurationSourceBytes -> com.android.tools.r8.shaking.T:
    byte[] bytes -> a
    com.android.tools.r8.origin.Origin origin -> b
    1:1:void <init>(java.io.InputStream,com.android.tools.r8.origin.Origin):24:24 -> <init>
    2:4:void <init>(byte[],com.android.tools.r8.origin.Origin):18:20 -> <init>
    2:4:void <init>(java.io.InputStream,com.android.tools.r8.origin.Origin):24 -> <init>
    java.nio.file.Path getBaseDirectory() -> a
    1:1:java.lang.String get():29:29 -> get
    1:1:java.lang.String getName():40:40 -> getName
    1:1:com.android.tools.r8.origin.Origin getOrigin():45:45 -> getOrigin
com.android.tools.r8.shaking.ProguardConfigurationSourceFile -> com.android.tools.r8.shaking.U:
    java.nio.file.Path path -> a
    1:2:void <init>(java.nio.file.Path):18:19 -> <init>
    1:5:java.nio.file.Path getBaseDirectory():29:33 -> a
    1:1:java.lang.String get():24:24 -> get
    1:1:java.lang.String getName():40:40 -> getName
    1:1:com.android.tools.r8.origin.Origin getOrigin():45:45 -> getOrigin
com.android.tools.r8.shaking.ProguardConfigurationSourceStrings -> com.android.tools.r8.shaking.ProguardConfigurationSourceStrings:
    java.util.List config -> b
    com.android.tools.r8.origin.Origin origin -> c
    java.nio.file.Path basePath -> a
    1:4:void <init>(java.util.List,java.nio.file.Path,com.android.tools.r8.origin.Origin):24:27 -> <init>
    1:1:java.nio.file.Path getBaseDirectory():47:47 -> a
    1:1:com.android.tools.r8.shaking.ProguardConfigurationSourceStrings createConfigurationForTesting(java.util.List):37:37 -> createConfigurationForTesting
    2:2:void <init>(java.util.List):31:31 -> createConfigurationForTesting
    2:2:com.android.tools.r8.shaking.ProguardConfigurationSourceStrings createConfigurationForTesting(java.util.List):37 -> createConfigurationForTesting
    1:1:java.lang.String get():42:42 -> get
    1:1:com.android.tools.r8.origin.Origin getOrigin():57:57 -> getOrigin
com.android.tools.r8.shaking.ProguardConfigurationUtils -> com.android.tools.r8.shaking.Y:
    com.android.tools.r8.origin.Origin proguardCompatOrigin -> a
    com.android.tools.r8.origin.Origin synthesizedRecompilationOrigin -> b
    boolean $assertionsDisabled -> c
    1:12:void <clinit>():19:30 -> <clinit>
    1:9:com.android.tools.r8.shaking.ProguardKeepRule buildDefaultInitializerKeepRule(com.android.tools.r8.graph.DexClass):38:46 -> a
    10:19:com.android.tools.r8.shaking.ProguardKeepRule buildDefaultInitializerKeepRule(com.android.tools.r8.graph.DexClass):45:54 -> a
    20:33:com.android.tools.r8.shaking.ProguardKeepRule buildMethodKeepRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):60:73 -> a
    34:40:com.android.tools.r8.shaking.ProguardKeepRule buildMethodKeepRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):72:78 -> a
    41:49:com.android.tools.r8.shaking.ProguardKeepRule buildMethodKeepRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):77:85 -> a
    50:69:com.android.tools.r8.shaking.ProguardAssumeValuesRule buildAssumeValuesForApiLevel(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApiLevel):90:109 -> a
    70:70:com.android.tools.r8.shaking.ProguardAssumeValuesRule buildAssumeValuesForApiLevel(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApiLevel):108:108 -> a
    71:82:com.android.tools.r8.shaking.ProguardAssumeValuesRule buildAssumeValuesForApiLevel(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApiLevel):107:118 -> a
    83:86:com.android.tools.r8.shaking.ProguardAssumeValuesRule buildAssumeValuesForApiLevel(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApiLevel):116:119 -> a
    87:98:com.android.tools.r8.shaking.ProguardAssumeValuesRule buildAssumeValuesForApiLevel(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.AndroidApiLevel):110:121 -> a
    99:136:boolean hasExplicitAssumeValuesRuleForMinSdk(com.android.tools.r8.graph.DexItemFactory,java.util.List):131:168 -> a
    137:146:void synthesizeKeepRulesForRecompilation(com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.List):179:188 -> a
    147:152:void synthesizeKeepRulesForRecompilation(com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.List):185:190 -> a
    153:153:void synthesizeKeepRulesForRecompilation(com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.List):181:181 -> a
com.android.tools.r8.shaking.ProguardConfigurationUtils$1 -> com.android.tools.r8.shaking.V:
    1:1:void <init>(com.android.tools.r8.origin.Origin):22:22 -> <init>
com.android.tools.r8.shaking.ProguardConfigurationUtils$2 -> com.android.tools.r8.shaking.W:
    1:1:void <init>(com.android.tools.r8.origin.Origin):30:30 -> <init>
com.android.tools.r8.shaking.ProguardConfigurationUtils$3 -> com.android.tools.r8.shaking.X:
    com.android.tools.r8.utils.AndroidApiLevel val$apiLevel -> e
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.utils.AndroidApiLevel):91:91 -> <init>
    1:1:java.lang.String part():94:94 -> part
com.android.tools.r8.shaking.ProguardIdentifierNameStringRule -> com.android.tools.r8.shaking.aa:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):45:45 -> <init>
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardIdentifierNameStringRule$1):10 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardIdentifierNameStringRule$Builder builder():51:51 -> builder
com.android.tools.r8.shaking.ProguardIdentifierNameStringRule$1 -> com.android.tools.r8.shaking.Z:
com.android.tools.r8.shaking.ProguardIdentifierNameStringRule$Builder -> com.android.tools.r8.shaking.aa$a:
    1:1:void <init>():15:15 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardIdentifierNameStringRule$1):12 -> <init>
    com.android.tools.r8.shaking.ProguardClassSpecification$Builder self() -> g
com.android.tools.r8.shaking.ProguardIfRule -> com.android.tools.r8.shaking.ProguardIfRule:
    com.android.tools.r8.origin.Origin neverInlineOrigin -> a
    1:2:void <clinit>():15:16 -> <clinit>
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardKeepRule,com.android.tools.r8.shaking.ProguardIfRule$1):13:13 -> <init>
    2:2:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardKeepRule):63:63 -> <init>
    3:3:com.android.tools.r8.shaking.ProguardKeepRuleModifiers$Builder com.android.tools.r8.shaking.ProguardKeepRuleModifiers.builder():58:58 -> <init>
    3:3:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardKeepRule):66 -> <init>
    4:4:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardKeepRule):66:66 -> <init>
    5:9:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardKeepRule):63:67 -> <init>
    1:1:boolean lambda$neverInlineRuleForCondition$0(com.android.tools.r8.shaking.ProguardMemberRule):159:159 -> a
    1:1:com.android.tools.r8.shaking.ProguardIfRule$Builder builder():71:71 -> builder
    1:8:boolean equals(java.lang.Object):167:174 -> equals
    1:1:java.lang.Iterable getWildcards():76:76 -> getWildcards
    2:2:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable):433:433 -> getWildcards
    2:2:java.lang.Iterable getWildcards():76 -> getWildcards
    1:1:int hashCode():179:179 -> hashCode
    1:19:com.android.tools.r8.shaking.ProguardIfRule materialize():80:98 -> i
    1:14:com.android.tools.r8.shaking.ClassInlineRule neverClassInlineRuleForCondition():102:115 -> j
    1:20:com.android.tools.r8.shaking.InlineRule neverInlineRuleForCondition():142:161 -> k
com.android.tools.r8.shaking.ProguardIfRule$1 -> com.android.tools.r8.shaking.ba:
    1:1:void <init>(com.android.tools.r8.origin.Origin):16:16 -> <init>
com.android.tools.r8.shaking.ProguardIfRule$Builder -> com.android.tools.r8.shaking.ProguardIfRule$a:
    com.android.tools.r8.shaking.ProguardKeepRule subsequentRule -> q
    boolean $assertionsDisabled -> r
    1:1:void <clinit>():25:25 -> <clinit>
    1:1:void <init>():30:30 -> <init>
    2:2:void <init>():27:27 -> <init>
    com.android.tools.r8.shaking.ProguardClassSpecification$Builder self() -> g
com.android.tools.r8.shaking.ProguardKeepAttributes -> com.android.tools.r8.shaking.ProguardKeepAttributes:
    boolean annotationDefault -> m
    boolean stackMapTable -> n
    java.util.List KEEP_ALL -> o
    boolean runtimeVisibleParameterAnnotations -> i
    boolean runtimeInvisibleParameterAnnotations -> j
    boolean runtimeVisibleTypeAnnotations -> k
    boolean runtimeInvisibleTypeAnnotations -> l
    boolean localVariableTypeTable -> e
    boolean sourceDebugExtension -> f
    boolean runtimeVisibleAnnotations -> g
    boolean runtimeInvisibleAnnotations -> h
    boolean signature -> a
    boolean exceptions -> b
    boolean lineNumberTable -> c
    boolean localVariableTable -> d
    1:1:void <clinit>():35:35 -> <clinit>
    1:1:void <init>():56:56 -> <init>
    2:19:void <init>():37:54 -> <init>
    1:10:boolean update(boolean,java.lang.String,java.util.List):72:81 -> a
    11:27:boolean matches(java.lang.String,int,java.lang.String,int):88:104 -> a
    28:51:void applyPatterns(java.util.List):114:137 -> a
    52:57:void ensureValid(boolean,com.android.tools.r8.shaking.ProguardConfiguration$Builder):142:147 -> a
    58:77:void ensureValid(boolean,com.android.tools.r8.shaking.ProguardConfiguration$Builder):146:165 -> a
    78:82:void ensureValid(boolean,com.android.tools.r8.shaking.ProguardConfiguration$Builder):164:168 -> a
    83:83:boolean isEmpty():221:221 -> a
    84:133:java.lang.StringBuilder append(java.lang.StringBuilder):239:288 -> a
    1:5:boolean equals(java.lang.Object):180:184 -> equals
    1:2:com.android.tools.r8.shaking.ProguardKeepAttributes fromPatterns(java.util.List):108:109 -> fromPatterns
    1:15:int hashCode():203:217 -> hashCode
    1:1:java.lang.String toString():296:296 -> toString
com.android.tools.r8.shaking.ProguardKeepPackageNamesRule -> com.android.tools.r8.shaking.da:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):46:46 -> <init>
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardKeepPackageNamesRule$1):10 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardKeepPackageNamesRule$Builder builder():52:52 -> builder
com.android.tools.r8.shaking.ProguardKeepPackageNamesRule$1 -> com.android.tools.r8.shaking.ca:
com.android.tools.r8.shaking.ProguardKeepPackageNamesRule$Builder -> com.android.tools.r8.shaking.da$a:
    1:1:void <init>():16:16 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardKeepPackageNamesRule$1):12 -> <init>
    com.android.tools.r8.shaking.ProguardClassSpecification$Builder self() -> g
com.android.tools.r8.shaking.ProguardKeepRule -> com.android.tools.r8.shaking.ProguardKeepRule:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardKeepRuleType,com.android.tools.r8.shaking.ProguardKeepRuleModifiers):49:49 -> <init>
    1:8:void appendNonEmpty(java.lang.StringBuilder,java.lang.String,java.lang.Object,java.lang.String):97:104 -> a
    1:1:com.android.tools.r8.shaking.ProguardKeepRule$Builder builder():58:58 -> builder
    1:3:com.android.tools.r8.shaking.ProguardKeepRule defaultKeepAllRule(java.util.function.Consumer):111:113 -> defaultKeepAllRule
    4:15:com.android.tools.r8.shaking.ProguardKeepRule defaultKeepAllRule(java.util.function.Consumer):112:123 -> defaultKeepAllRule
    1:5:boolean equals(java.lang.Object):86:90 -> equals
    1:20:com.android.tools.r8.shaking.ProguardKeepRule materialize():62:81 -> i
com.android.tools.r8.shaking.ProguardKeepRule$1 -> com.android.tools.r8.shaking.ea:
    1:1:void <init>(com.android.tools.r8.origin.Origin):113:113 -> <init>
com.android.tools.r8.shaking.ProguardKeepRule$Builder -> com.android.tools.r8.shaking.ProguardKeepRule$Builder:
    1:1:void <init>():17:17 -> <init>
    1:3:com.android.tools.r8.shaking.ProguardKeepRule build():27:29 -> build
    com.android.tools.r8.shaking.ProguardKeepRule$Builder self() -> g
    1:1:com.android.tools.r8.shaking.ProguardClassSpecification$Builder self():14:14 -> g
com.android.tools.r8.shaking.ProguardKeepRuleBase -> com.android.tools.r8.shaking.ProguardKeepRuleBase:
    com.android.tools.r8.shaking.ProguardKeepRuleModifiers modifiers -> b
    com.android.tools.r8.shaking.ProguardKeepRuleType type -> a
    1:5:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardKeepRuleType,com.android.tools.r8.shaking.ProguardKeepRuleModifiers):58:62 -> <init>
    1:12:boolean equals(java.lang.Object):75:86 -> equals
    1:1:java.lang.String modifierString():121:121 -> g
    1:1:com.android.tools.r8.shaking.ProguardKeepRuleType getType():66:66 -> getType
    1:1:com.android.tools.r8.shaking.ProguardKeepRuleModifiers getModifiers():70:70 -> h
    1:2:int hashCode():92:93 -> hashCode
    3:6:int com.android.tools.r8.shaking.ProguardKeepRuleModifiers.hashCode():76:79 -> hashCode
    3:6:int hashCode():93 -> hashCode
    7:7:int hashCode():94:94 -> hashCode
    1:1:java.lang.String typeString():116:116 -> typeString
com.android.tools.r8.shaking.ProguardKeepRuleBase$Builder -> com.android.tools.r8.shaking.ProguardKeepRuleBase$Builder:
    com.android.tools.r8.shaking.ProguardKeepRuleModifiers$Builder modifiersBuilder -> p
    com.android.tools.r8.shaking.ProguardKeepRuleType type -> o
    1:1:void <init>():21:21 -> <init>
    2:2:com.android.tools.r8.shaking.ProguardKeepRuleModifiers$Builder com.android.tools.r8.shaking.ProguardKeepRuleModifiers.builder():58:58 -> <init>
    2:2:void <init>():18 -> <init>
    3:3:void <init>():18:18 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardKeepRuleModifiers$Builder getModifiersBuilder():30:30 -> h
    1:2:com.android.tools.r8.shaking.ProguardKeepRuleBase$Builder setType(com.android.tools.r8.shaking.ProguardKeepRuleType):25:26 -> setType
com.android.tools.r8.shaking.ProguardKeepRuleModifiers -> com.android.tools.r8.shaking.ProguardKeepRuleModifiers:
    boolean allowsShrinking -> a
    boolean allowsOptimization -> b
    boolean allowsObfuscation -> c
    boolean includeDescriptorClasses -> d
    1:5:void <init>(boolean,boolean,boolean,boolean):48:52 -> <init>
    1:5:void <init>(boolean,boolean,boolean,boolean,com.android.tools.r8.shaking.ProguardKeepRuleModifiers$1):6 -> <init>
    1:4:void appendWithComma(java.lang.StringBuilder,boolean,java.lang.String):97:100 -> a
    1:6:boolean equals(java.lang.Object):63:68 -> equals
    1:4:int hashCode():76:79 -> hashCode
    1:6:java.lang.String toString():84:89 -> toString
com.android.tools.r8.shaking.ProguardKeepRuleModifiers$1 -> com.android.tools.r8.shaking.fa:
com.android.tools.r8.shaking.ProguardKeepRuleModifiers$Builder -> com.android.tools.r8.shaking.ProguardKeepRuleModifiers$Builder:
    boolean allowsShrinking -> a
    boolean allowsOptimization -> b
    boolean allowsObfuscation -> c
    boolean includeDescriptorClasses -> d
    1:1:void <init>(com.android.tools.r8.shaking.ProguardKeepRuleModifiers$1):7:7 -> <init>
    2:2:void <init>():14:14 -> <init>
    3:6:void <init>():9:12 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardKeepRuleModifiers$Builder setAllowsObfuscation(boolean):25:25 -> a
    2:2:com.android.tools.r8.shaking.ProguardKeepRuleModifiers build():34:34 -> a
    1:1:void setAllowsOptimization(boolean):21:21 -> b
    1:1:void setAllowsShrinking(boolean):17:17 -> c
    1:1:void setIncludeDescriptorClasses(boolean):30:30 -> d
com.android.tools.r8.shaking.ProguardKeepRuleType -> com.android.tools.r8.shaking.ProguardKeepRuleType:
    com.android.tools.r8.shaking.ProguardKeepRuleType[] $VALUES -> c
    com.android.tools.r8.shaking.ProguardKeepRuleType CONDITIONAL -> b
    com.android.tools.r8.shaking.ProguardKeepRuleType KEEP_CLASSES_WITH_MEMBERS -> a
    1:4:void <clinit>():9:12 -> <clinit>
    5:5:void <clinit>():8:8 -> <clinit>
    1:1:void <init>(java.lang.String,int):8:8 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardKeepRuleType[] values():8:8 -> a
    1:11:java.lang.String toString():16:26 -> toString
com.android.tools.r8.shaking.ProguardMemberRule -> com.android.tools.r8.shaking.ProguardMemberRule:
    com.android.tools.r8.shaking.ProguardNameMatcher name -> f
    com.android.tools.r8.shaking.ProguardMemberType ruleType -> d
    com.android.tools.r8.shaking.ProguardTypeMatcher type -> e
    com.android.tools.r8.shaking.ProguardTypeMatcher annotation -> a
    com.android.tools.r8.shaking.ProguardAccessFlags negatedAccessFlags -> c
    com.android.tools.r8.shaking.ProguardAccessFlags accessFlags -> b
    java.util.List arguments -> g
    com.android.tools.r8.shaking.ProguardMemberRuleReturnValue returnValue -> h
    1:1:void <init>(com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardMemberType,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardNameMatcher,java.util.List,com.android.tools.r8.shaking.ProguardMemberRuleReturnValue,com.android.tools.r8.shaking.ProguardMemberRule$1):22:22 -> <init>
    2:10:void <init>(com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardMemberType,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardNameMatcher,java.util.List,com.android.tools.r8.shaking.ProguardMemberRuleReturnValue):114:122 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardMemberRule$Builder builder():129:129 -> a
    2:29:boolean matches(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.DexStringCache):174:201 -> a
    30:77:boolean matches(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.DexStringCache):216:263 -> a
    78:89:boolean matches(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.AppView,com.android.tools.r8.shaking.DexStringCache):219:230 -> a
    90:90:java.util.stream.Stream lambda$getWildcards$0(java.lang.Iterable):297:297 -> a
    1:10:java.lang.Iterable getWildcards():290:299 -> b
    11:11:java.lang.Iterable com.android.tools.r8.com.google.common.collect.Iterables.concat(java.lang.Iterable,java.lang.Iterable,java.lang.Iterable,java.lang.Iterable):469:469 -> b
    11:11:java.lang.Iterable getWildcards():290 -> b
    1:9:boolean isSpecific():277:285 -> c
    10:12:int com.android.tools.r8.com.google.common.collect.Iterables.size(java.lang.Iterable):126:128 -> c
    10:12:boolean isSpecific():285 -> c
    13:17:int com.android.tools.r8.com.google.common.collect.Iterators.size(java.util.Iterator):168:172 -> c
    13:17:int com.android.tools.r8.com.google.common.collect.Iterables.size(java.lang.Iterable):128 -> c
    13:17:boolean isSpecific():285 -> c
    1:11:com.android.tools.r8.shaking.ProguardMemberRule materialize():304:314 -> d
    1:25:boolean equals(java.lang.Object):319:343 -> equals
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getAccessFlags():137:137 -> getAccessFlags
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getAnnotation():133:133 -> getAnnotation
    1:1:java.util.List getArguments():157:157 -> getArguments
    1:1:com.android.tools.r8.shaking.ProguardNameMatcher getName():153:153 -> getName
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getNegatedAccessFlags():141:141 -> getNegatedAccessFlags
    1:1:com.android.tools.r8.shaking.ProguardMemberRuleReturnValue getReturnValue():165:165 -> getReturnValue
    1:1:com.android.tools.r8.shaking.ProguardMemberType getRuleType():145:145 -> getRuleType
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getType():149:149 -> getType
    1:1:boolean hasReturnValue():161:161 -> hasReturnValue
    1:7:int hashCode():348:354 -> hashCode
    1:36:java.lang.String toString():360:395 -> toString
    37:45:java.lang.String toString():373:381 -> toString
    46:63:java.lang.String toString():370:387 -> toString
    64:97:java.lang.String toString():367:400 -> toString
com.android.tools.r8.shaking.ProguardMemberRule$1 -> com.android.tools.r8.shaking.ga:
    int[] $SwitchMap$com$android$tools$r8$shaking$ProguardMemberType -> a
    1:1:void <clinit>():175:175 -> <clinit>
com.android.tools.r8.shaking.ProguardMemberRule$Builder -> com.android.tools.r8.shaking.ProguardMemberRule$a:
    com.android.tools.r8.shaking.ProguardNameMatcher name -> f
    boolean $assertionsDisabled -> i
    com.android.tools.r8.shaking.ProguardMemberType ruleType -> d
    com.android.tools.r8.shaking.ProguardTypeMatcher type -> e
    com.android.tools.r8.shaking.ProguardTypeMatcher annotation -> a
    com.android.tools.r8.shaking.ProguardAccessFlags negatedAccessFlags -> c
    com.android.tools.r8.shaking.ProguardAccessFlags accessFlags -> b
    java.util.List arguments -> g
    com.android.tools.r8.shaking.ProguardMemberRuleReturnValue returnValue -> h
    1:1:void <clinit>():24:24 -> <clinit>
    1:1:void <init>():35:35 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardMemberRule$1):24 -> <init>
    2:3:void <init>():27:28 -> <init>
    2:3:void <init>(com.android.tools.r8.shaking.ProguardMemberRule$1):24 -> <init>
    1:1:void setAnnotation(com.android.tools.r8.shaking.ProguardTypeMatcher):38:38 -> a
    2:2:com.android.tools.r8.shaking.ProguardMemberRule$Builder setAccessFlags(com.android.tools.r8.shaking.ProguardAccessFlags):46:46 -> a
    3:3:com.android.tools.r8.shaking.ProguardMemberRule$Builder setRuleType(com.android.tools.r8.shaking.ProguardMemberType):59:59 -> a
    4:4:com.android.tools.r8.shaking.ProguardMemberRule$Builder setName(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards):73:73 -> a
    5:5:void setArguments(java.util.List):78:78 -> a
    6:6:com.android.tools.r8.shaking.ProguardMemberRule$Builder setReturnValue(com.android.tools.r8.shaking.ProguardMemberRuleReturnValue):82:82 -> a
    7:8:com.android.tools.r8.shaking.ProguardMemberRule build():91:92 -> a
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getAccessFlags():42:42 -> b
    2:2:com.android.tools.r8.shaking.ProguardMemberRule$Builder setTypeMatcher(com.android.tools.r8.shaking.ProguardTypeMatcher):68:68 -> b
    1:1:com.android.tools.r8.shaking.ProguardAccessFlags getNegatedAccessFlags():51:51 -> c
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher getTypeMatcher():64:64 -> d
    1:1:boolean isValid():87:87 -> e
com.android.tools.r8.shaking.ProguardMemberRuleReturnValue -> com.android.tools.r8.shaking.ProguardMemberRuleReturnValue:
    com.android.tools.r8.utils.LongInterval longInterval -> c
    boolean $assertionsDisabled -> e
    com.android.tools.r8.shaking.ProguardMemberRuleReturnValue$Type type -> a
    com.android.tools.r8.graph.DexField field -> d
    boolean booleanValue -> b
    1:1:void <clinit>():10:10 -> <clinit>
    1:5:void <init>(boolean):23:27 -> <init>
    6:10:void <init>(com.android.tools.r8.utils.LongInterval):30:34 -> <init>
    11:15:void <init>(com.android.tools.r8.graph.DexField):37:41 -> <init>
    16:20:void <init>():44:48 -> <init>
    1:2:boolean getBoolean():68:69 -> getBoolean
    1:2:com.android.tools.r8.graph.DexField getField():105:106 -> getField
    1:8:long getSingleValue():89:96 -> getSingleValue
    1:2:com.android.tools.r8.utils.LongInterval getValueRange():100:101 -> getValueRange
    1:1:boolean isBoolean():52:52 -> isBoolean
    1:1:boolean isField():60:60 -> isField
    1:1:boolean isNull():64:64 -> isNull
    1:1:boolean isSingleValue():78:78 -> isSingleValue
    1:1:boolean isValueRange():56:56 -> isValueRange
    1:17:java.lang.String toString():111:127 -> toString
com.android.tools.r8.shaking.ProguardMemberRuleReturnValue$Type -> com.android.tools.r8.shaking.ProguardMemberRuleReturnValue$a:
    com.android.tools.r8.shaking.ProguardMemberRuleReturnValue$Type BOOLEAN -> a
    com.android.tools.r8.shaking.ProguardMemberRuleReturnValue$Type FIELD -> c
    com.android.tools.r8.shaking.ProguardMemberRuleReturnValue$Type VALUE_RANGE -> b
    com.android.tools.r8.shaking.ProguardMemberRuleReturnValue$Type NULL -> d
    1:4:void <clinit>():12:15 -> <clinit>
    5:5:void <clinit>():11:11 -> <clinit>
    1:1:void <init>(java.lang.String,int):11:11 -> <init>
com.android.tools.r8.shaking.ProguardMemberType -> com.android.tools.r8.shaking.ProguardMemberType:
    com.android.tools.r8.shaking.ProguardMemberType[] $VALUES -> b
    com.android.tools.r8.shaking.ProguardMemberType CONSTRUCTOR -> a
    1:7:void <clinit>():8:14 -> <clinit>
    8:8:void <clinit>():6:6 -> <clinit>
    1:1:void <init>(java.lang.String,int):6:6 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardMemberType[] values():6:6 -> a
    1:1:boolean includesFields():17:17 -> includesFields
    1:1:boolean includesMethods():21:21 -> includesMethods
com.android.tools.r8.shaking.ProguardNameMatcher -> com.android.tools.r8.shaking.ProguardNameMatcher:
    boolean $assertionsDisabled -> b
    com.android.tools.r8.shaking.ProguardNameMatcher MATCH_ALL_NAMES -> a
    1:3:void <clinit>():14:16 -> <clinit>
    1:1:void <init>():18:18 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardNameMatcher$1):14 -> <init>
    1:1:boolean access$100(java.lang.String,int,java.lang.String,int,java.util.List,int):14:14 -> a
    2:2:java.lang.Iterable getWildcards():93:93 -> a
    3:3:java.lang.Iterable getWildcardsOrEmpty(com.android.tools.r8.shaking.ProguardNameMatcher):97:97 -> a
    com.android.tools.r8.shaking.ProguardNameMatcher materialize() -> b
    1:43:boolean matchFieldOrMethodNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int):39:81 -> b
    44:66:boolean matchFieldOrMethodNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int):56:78 -> b
    67:111:boolean matchFieldOrMethodNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int):43:87 -> b
    1:6:com.android.tools.r8.shaking.ProguardNameMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards):23:28 -> create
com.android.tools.r8.shaking.ProguardNameMatcher$1 -> com.android.tools.r8.shaking.ha:
com.android.tools.r8.shaking.ProguardNameMatcher$MatchAllNames -> com.android.tools.r8.shaking.ProguardNameMatcher$a:
    com.android.tools.r8.shaking.ProguardWildcard wildcard -> c
    1:1:void <init>():108:108 -> <init>
    2:3:void <init>(com.android.tools.r8.shaking.ProguardWildcard):111:112 -> <init>
    2:3:void <init>():108 -> <init>
    4:5:void <init>(com.android.tools.r8.shaking.ProguardWildcard):111:112 -> <init>
    1:1:java.lang.Iterable getWildcards():123:123 -> a
    1:1:com.android.tools.r8.shaking.ProguardNameMatcher$MatchAllNames materialize():128:128 -> b
    1:1:com.android.tools.r8.shaking.ProguardNameMatcher materialize():104 -> b
    1:1:boolean matches(java.lang.String):117:117 -> matches
com.android.tools.r8.shaking.ProguardNameMatcher$MatchNamePattern -> com.android.tools.r8.shaking.ProguardNameMatcher$b:
    java.util.List wildcards -> d
    java.lang.String pattern -> c
    1:3:void <init>(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards):142:144 -> <init>
    1:1:java.lang.Iterable getWildcards():158:158 -> a
    1:1:com.android.tools.r8.shaking.ProguardNameMatcher materialize():137:137 -> b
    2:6:com.android.tools.r8.shaking.ProguardNameMatcher$MatchNamePattern materialize():163:167 -> b
    1:1:boolean equals(java.lang.Object):180:180 -> equals
    1:1:int hashCode():185:185 -> hashCode
    1:3:boolean matches(java.lang.String):149:151 -> matches
    1:1:java.lang.String toString():172:172 -> toString
com.android.tools.r8.shaking.ProguardNameMatcher$MatchSpecificName -> com.android.tools.r8.shaking.ProguardNameMatcher$c:
    java.lang.String name -> c
    1:2:void <init>(java.lang.String):193:194 -> <init>
    1:1:boolean equals(java.lang.Object):209:209 -> equals
    1:1:int hashCode():214:214 -> hashCode
    1:1:boolean matches(java.lang.String):199:199 -> matches
    1:1:java.lang.String toString():204:204 -> toString
com.android.tools.r8.shaking.ProguardPathFilter -> com.android.tools.r8.shaking.ProguardPathFilter:
    boolean enabled -> a
    com.android.tools.r8.com.google.common.collect.ImmutableList patterns -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():9:9 -> <clinit>
    1:7:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,boolean):44:50 -> <init>
    1:7:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,boolean,com.android.tools.r8.shaking.ProguardPathFilter$1):9 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardPathFilter$Builder builder():14:14 -> a
    1:1:boolean isEnabled():55:55 -> b
    1:3:boolean matches(java.lang.String):59:61 -> matches
com.android.tools.r8.shaking.ProguardPathFilter$1 -> com.android.tools.r8.shaking.ia:
com.android.tools.r8.shaking.ProguardPathFilter$Builder -> com.android.tools.r8.shaking.ProguardPathFilter$a:
    boolean enabled -> a
    com.android.tools.r8.com.google.common.collect.ImmutableList$Builder patterns -> b
    1:1:void <init>():21:21 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardPathFilter$1):17 -> <init>
    2:3:void <init>():18:19 -> <init>
    2:3:void <init>(com.android.tools.r8.shaking.ProguardPathFilter$1):17 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardPathFilter$Builder addPattern(com.android.tools.r8.shaking.ProguardPathList):25:25 -> a
    2:2:com.android.tools.r8.shaking.ProguardPathFilter build():40:40 -> a
    1:1:com.android.tools.r8.shaking.ProguardPathFilter$Builder disable():30:30 -> b
    1:1:com.android.tools.r8.shaking.ProguardPathFilter$Builder enable():35:35 -> c
com.android.tools.r8.shaking.ProguardPathList -> com.android.tools.r8.shaking.oa:
    1:1:void <init>():10:10 -> <init>
    boolean matches(java.lang.String) -> a
    1:1:com.android.tools.r8.shaking.ProguardPathList$Builder builder():13:13 -> a
    1:1:com.android.tools.r8.shaking.ProguardPathList emptyList():17:17 -> b
com.android.tools.r8.shaking.ProguardPathList$1 -> com.android.tools.r8.shaking.ja:
com.android.tools.r8.shaking.ProguardPathList$Builder -> com.android.tools.r8.shaking.ka:
    com.android.tools.r8.com.google.common.collect.ImmutableList$Builder matchers -> a
    1:1:void <init>():26:26 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardPathList$1):22 -> <init>
    2:2:void <init>():24:24 -> <init>
    2:2:void <init>(com.android.tools.r8.shaking.ProguardPathList$1):22 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardPathList$Builder addFileName(java.lang.String,boolean):34:34 -> a
    1:1:com.android.tools.r8.shaking.ProguardPathList$Builder addFileName(java.lang.String):30 -> a
    2:2:com.android.tools.r8.shaking.ProguardPathList$Builder addFileName(java.lang.String,boolean):34:34 -> a
    3:7:com.android.tools.r8.shaking.ProguardPathList build():39:43 -> a
com.android.tools.r8.shaking.ProguardPathList$EmptyPathList -> com.android.tools.r8.shaking.la:
    1:1:void <init>():124:124 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardPathList$1):122 -> <init>
    boolean matches(java.lang.String) -> a
com.android.tools.r8.shaking.ProguardPathList$FileNameMatcher -> com.android.tools.r8.shaking.ma:
    boolean negated -> a
    java.lang.String pattern -> b
    1:3:void <init>(boolean,java.lang.String):52:54 -> <init>
    1:1:boolean match(java.lang.String):58:58 -> a
    1:1:boolean access$300(com.android.tools.r8.shaking.ProguardPathList$FileNameMatcher,java.lang.String):48 -> a
    2:28:boolean matchImpl(java.lang.String,int,java.lang.String,int):62:88 -> a
    29:29:boolean matchImpl(java.lang.String,int,java.lang.String,int):83:83 -> a
    30:33:boolean matchImpl(java.lang.String,int,java.lang.String,int):66:69 -> a
    34:34:boolean containsSeparatorsStartingAt(java.lang.String,int):98:98 -> a
    34:34:boolean matchImpl(java.lang.String,int,java.lang.String,int):70 -> a
    35:56:boolean matchImpl(java.lang.String,int,java.lang.String,int):73:94 -> a
com.android.tools.r8.shaking.ProguardPathList$PathList -> com.android.tools.r8.shaking.na:
    java.util.List matchers -> a
    1:2:void <init>(java.util.List):106:107 -> <init>
    1:2:void <init>(java.util.List,com.android.tools.r8.shaking.ProguardPathList$1):103 -> <init>
    1:4:boolean matches(java.lang.String):112:115 -> a
com.android.tools.r8.shaking.ProguardRuleParserException -> com.android.tools.r8.shaking.ProguardRuleParserException:
    com.android.tools.r8.origin.Origin origin -> c
    com.android.tools.r8.position.Position position -> d
    java.lang.String message -> a
    java.lang.String snippet -> b
    1:5:void <init>(java.lang.String,java.lang.String,com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):18:22 -> <init>
    1:1:java.lang.String getDiagnosticMessage():43:43 -> getDiagnosticMessage
    1:1:java.lang.String getMessage():48:48 -> getMessage
    1:1:com.android.tools.r8.origin.Origin getOrigin():33:33 -> getOrigin
    1:1:com.android.tools.r8.position.Position getPosition():38:38 -> getPosition
com.android.tools.r8.shaking.ProguardTypeMatcher -> com.android.tools.r8.shaking.ProguardTypeMatcher:
    1:1:void <init>():28:28 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardTypeMatcher$1):20 -> <init>
    1:5:boolean matches(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.AppView):42:46 -> a
    6:6:java.lang.Iterable getWildcards():52:52 -> a
    7:7:java.lang.Iterable getWildcardsOrEmpty(com.android.tools.r8.shaking.ProguardTypeMatcher):56:56 -> a
    boolean isTripleDotPattern() -> b
    1:1:boolean matchesSpecificType():116:116 -> c
    1:18:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.graph.DexItemFactory):74:91 -> create
    19:19:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.graph.DexItemFactory):90:90 -> create
    20:20:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.graph.DexItemFactory):87:87 -> create
    21:21:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.graph.DexItemFactory):85:85 -> create
    22:22:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.graph.DexItemFactory):83:83 -> create
    23:23:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.graph.DexItemFactory):81:81 -> create
    24:38:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.graph.DexItemFactory):79:93 -> create
    39:39:com.android.tools.r8.shaking.ProguardTypeMatcher create(com.android.tools.r8.graph.DexType):98:98 -> create
    com.android.tools.r8.shaking.ProguardTypeMatcher materialize() -> d
com.android.tools.r8.shaking.ProguardTypeMatcher$1 -> com.android.tools.r8.shaking.pa:
com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType -> com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType:
    1:2:void <clinit>():32:33 -> <clinit>
    3:3:void <clinit>():31:31 -> <clinit>
    1:1:void <init>(java.lang.String,int):31:31 -> <init>
com.android.tools.r8.shaking.ProguardTypeMatcher$MatchAllTypes -> com.android.tools.r8.shaking.ProguardTypeMatcher$a:
    com.android.tools.r8.shaking.ProguardWildcard wildcard -> a
    com.android.tools.r8.shaking.ProguardTypeMatcher MATCH_ALL_TYPES -> b
    1:1:void <clinit>():121:121 -> <clinit>
    2:2:void <init>():126:126 -> <clinit>
    2:2:void <clinit>():121 -> <clinit>
    3:3:void <clinit>():121:121 -> <clinit>
    1:2:void <init>(com.android.tools.r8.shaking.ProguardWildcard):129:130 -> <init>
    1:1:java.lang.Iterable getWildcards():141:141 -> a
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher$MatchAllTypes materialize():146:146 -> d
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher materialize():119 -> d
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher access$000():119:119 -> e
    1:1:boolean equals(java.lang.Object):156:156 -> equals
    1:1:int hashCode():161:161 -> hashCode
    1:1:boolean matches(com.android.tools.r8.graph.DexType):135:135 -> matches
com.android.tools.r8.shaking.ProguardTypeMatcher$MatchAnyArgSequence -> com.android.tools.r8.shaking.ProguardTypeMatcher$b:
    com.android.tools.r8.shaking.ProguardTypeMatcher MATCH_ANY_ARG_SEQUENCE -> a
    1:1:void <clinit>():167:167 -> <clinit>
    1:1:void <init>():165:165 -> <init>
    boolean isTripleDotPattern() -> b
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher access$100():165:165 -> e
    1:1:boolean equals(java.lang.Object):186:186 -> equals
    1:1:int hashCode():191:191 -> hashCode
com.android.tools.r8.shaking.ProguardTypeMatcher$MatchBasicTypes -> com.android.tools.r8.shaking.ProguardTypeMatcher$c:
    com.android.tools.r8.shaking.ProguardWildcard wildcard -> a
    com.android.tools.r8.shaking.ProguardTypeMatcher MATCH_BASIC_TYPES -> b
    1:1:void <clinit>():252:252 -> <clinit>
    2:2:void <init>():257:257 -> <clinit>
    2:2:void <clinit>():252 -> <clinit>
    3:3:void <clinit>():252:252 -> <clinit>
    1:2:void <init>(com.android.tools.r8.shaking.ProguardWildcard):260:261 -> <init>
    1:1:java.lang.Iterable getWildcards():275:275 -> a
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher$MatchBasicTypes materialize():280:280 -> d
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher materialize():250 -> d
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher access$400():250:250 -> e
    1:1:boolean equals(java.lang.Object):290:290 -> equals
    1:1:int hashCode():295:295 -> hashCode
    1:2:boolean matches(com.android.tools.r8.graph.DexType):266:267 -> matches
com.android.tools.r8.shaking.ProguardTypeMatcher$MatchClassTypes -> com.android.tools.r8.shaking.ProguardTypeMatcher$d:
    com.android.tools.r8.shaking.ProguardWildcard wildcard -> b
    com.android.tools.r8.shaking.ProguardTypeMatcher MATCH_CLASS_TYPES -> c
    boolean $assertionsDisabled -> e
    com.android.tools.r8.shaking.ProguardTypeMatcher LEGACY_MATCH_CLASS_TYPES -> d
    java.lang.String pattern -> a
    1:3:void <clinit>():195:197 -> <clinit>
    4:4:void <init>(java.lang.String):206:206 -> <clinit>
    4:4:void <clinit>():197 -> <clinit>
    5:7:void <clinit>():197:199 -> <clinit>
    8:8:void <init>(java.lang.String):206:206 -> <clinit>
    8:8:void <clinit>():199 -> <clinit>
    9:9:void <clinit>():199:199 -> <clinit>
    1:4:void <init>(java.lang.String,com.android.tools.r8.shaking.ProguardWildcard):209:212 -> <init>
    1:1:java.lang.Iterable getWildcards():226:226 -> a
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher$MatchClassTypes materialize():231:231 -> d
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher materialize():195 -> d
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher access$200():195:195 -> e
    1:1:boolean equals(java.lang.Object):241:241 -> equals
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher access$300():195:195 -> f
    1:1:int hashCode():246:246 -> hashCode
    1:2:boolean matches(com.android.tools.r8.graph.DexType):217:218 -> matches
    1:1:java.lang.String toString():236:236 -> toString
com.android.tools.r8.shaking.ProguardTypeMatcher$MatchSpecificType -> com.android.tools.r8.shaking.ProguardTypeMatcher$e:
    com.android.tools.r8.graph.DexType type -> a
    1:2:void <init>(com.android.tools.r8.graph.DexType):303:304 -> <init>
    1:2:void <init>(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ProguardTypeMatcher$1):299 -> <init>
    1:2:boolean equals(java.lang.Object):319:320 -> equals
    1:1:com.android.tools.r8.graph.DexType getSpecificType():332:332 -> getSpecificType
    1:1:int hashCode():327:327 -> hashCode
    1:1:boolean matches(com.android.tools.r8.graph.DexType):309:309 -> matches
    1:1:java.lang.String toString():314:314 -> toString
com.android.tools.r8.shaking.ProguardTypeMatcher$MatchTypePattern -> com.android.tools.r8.shaking.ProguardTypeMatcher$f:
    java.util.List wildcards -> b
    java.lang.String pattern -> a
    com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType kind -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():336:336 -> <clinit>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType,com.android.tools.r8.shaking.ProguardTypeMatcher$1):336:336 -> <init>
    2:5:void <init>(com.android.tools.r8.shaking.ProguardConfigurationParser$IdentifierPatternWithWildcards,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType):343:346 -> <init>
    1:1:java.lang.Iterable getWildcards():362:362 -> a
    2:93:boolean matchClassOrTypeNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType):382:473 -> a
    94:117:boolean matchClassOrTypeNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType):446:469 -> a
    118:139:boolean matchClassOrTypeNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType):386:407 -> a
    140:140:boolean containsSeparatorsStartingAt(java.lang.String,int):483:483 -> a
    140:140:boolean matchClassOrTypeNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType):409 -> a
    141:174:boolean matchClassOrTypeNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType):410:443 -> a
    175:212:boolean matchClassOrTypeNameImpl(java.lang.String,int,java.lang.String,int,java.util.List,int,com.android.tools.r8.shaking.ProguardTypeMatcher$ClassOrType):442:479 -> a
    213:217:boolean isArrayType(java.lang.String):487:491 -> a
    1:1:com.android.tools.r8.shaking.ProguardTypeMatcher materialize():336:336 -> d
    2:6:com.android.tools.r8.shaking.ProguardTypeMatcher$MatchTypePattern materialize():367:371 -> d
    1:3:boolean equals(java.lang.Object):501:503 -> equals
    1:1:int hashCode():510:510 -> hashCode
    1:4:boolean matches(com.android.tools.r8.graph.DexType):352:355 -> matches
    1:1:java.lang.String toString():496:496 -> toString
com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule -> com.android.tools.r8.shaking.ra:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):46:46 -> <init>
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule$1):10 -> <init>
    1:1:com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule$Builder builder():52:52 -> builder
com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule$1 -> com.android.tools.r8.shaking.qa:
com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule$Builder -> com.android.tools.r8.shaking.ra$a:
    1:1:void <init>():16:16 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.ProguardWhyAreYouKeepingRule$1):12 -> <init>
    com.android.tools.r8.shaking.ProguardClassSpecification$Builder self() -> g
com.android.tools.r8.shaking.ProguardWildcard -> com.android.tools.r8.shaking.ProguardWildcard:
    1:1:void <init>():8:8 -> <init>
    void clearCaptured() -> a
    void setCaptured(java.lang.String) -> a
    com.android.tools.r8.shaking.ProguardWildcard materialize() -> b
com.android.tools.r8.shaking.ProguardWildcard$BackReference -> com.android.tools.r8.shaking.ProguardWildcard$BackReference:
    1:2:void <init>(int):85:86 -> <init>
    void clearCaptured() -> a
    1:1:void setCaptured(java.lang.String):95:95 -> a
    1:1:com.android.tools.r8.shaking.ProguardWildcard materialize():80:80 -> b
    2:6:com.android.tools.r8.shaking.ProguardWildcard$BackReference materialize():110:114 -> b
    1:1:java.lang.String getCaptured():105:105 -> c
    1:1:void setReference(com.android.tools.r8.shaking.ProguardWildcard$Pattern):90:90 -> setReference
    1:1:java.lang.String toString():130:130 -> toString
com.android.tools.r8.shaking.ProguardWildcard$Pattern -> com.android.tools.r8.shaking.ProguardWildcard$Pattern:
    java.lang.String pattern -> a
    java.lang.String captured -> b
    1:1:void <init>(java.lang.String):35:35 -> <init>
    2:5:void <init>(java.lang.String):33:36 -> <init>
    1:1:void setCaptured(java.lang.String):41:41 -> a
    2:2:void clearCaptured():46:46 -> a
    1:1:com.android.tools.r8.shaking.ProguardWildcard materialize():31:31 -> b
    2:6:com.android.tools.r8.shaking.ProguardWildcard$Pattern materialize():56:60 -> b
    1:1:java.lang.String getCaptured():51:51 -> c
    1:1:java.lang.String toString():76:76 -> toString
com.android.tools.r8.shaking.RootSetBuilder -> com.android.tools.r8.shaking.RootSetBuilder:
    java.util.Set identifierNameStrings -> w
    java.util.Map dependentNoShrinking -> s
    com.android.tools.r8.graph.AppView appView -> a
    com.android.tools.r8.shaking.DexStringCache dexStringCache -> y
    java.lang.Iterable rules -> c
    java.util.LinkedHashMap reasonAsked -> g
    java.util.Map noSideEffects -> u
    com.android.tools.r8.graph.DirectMappedDexApplication application -> b
    java.util.Set rulesThatUseExtendsOrImplementsWrong -> i
    java.util.Set noOptimization -> e
    java.util.Set keepUnusedArguments -> o
    java.util.Set neverMerge -> q
    boolean $assertionsDisabled -> A
    java.util.Set alwaysInline -> k
    java.util.Set neverInline -> m
    java.util.Map mayHaveSideEffects -> t
    java.util.Set ifRules -> z
    java.util.Map assumedValues -> v
    java.util.Set keepPackageName -> h
    java.util.Map noShrinking -> d
    java.util.Set checkDiscarded -> j
    java.util.Set noObfuscation -> f
    java.util.Set neverClassInline -> p
    java.util.Set neverPropagateValue -> r
    com.android.tools.r8.utils.InternalOptions options -> x
    java.util.Set forceInline -> l
    java.util.Set keepParametersWithConstantValue -> n
    1:1:void <clinit>():62:62 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,java.lang.Iterable):97:97 -> <init>
    2:36:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,java.lang.Iterable):67:101 -> <init>
    boolean lambda$process$0(com.android.tools.r8.graph.DexDefinition) -> a
    1:1:com.android.tools.r8.graph.DirectMappedDexApplication access$100(com.android.tools.r8.shaking.RootSetBuilder):62:62 -> a
    2:2:boolean access$1200(com.android.tools.r8.shaking.RootSetBuilder,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexClass):62:62 -> a
    3:3:boolean access$1300(com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexClass):62:62 -> a
    4:4:boolean access$1500(com.android.tools.r8.shaking.RootSetBuilder,com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):62:62 -> a
    5:5:void access$1600(com.android.tools.r8.shaking.RootSetBuilder,java.util.concurrent.ExecutorService,java.util.List,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):62:62 -> a
    6:6:boolean access$1700(com.android.tools.r8.shaking.RootSetBuilder,com.android.tools.r8.shaking.ProguardMemberRule,java.lang.Iterable):62:62 -> a
    7:10:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):113:116 -> a
    11:11:boolean satisfyAnnotation(com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexClass):626:626 -> a
    11:11:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):119 -> a
    12:52:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):127:167 -> a
    53:53:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):146:146 -> a
    54:56:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):141:143 -> a
    57:57:void markClass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):855:855 -> a
    57:57:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):151 -> a
    58:78:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):152:172 -> a
    79:79:void markClass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):855:855 -> a
    79:79:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):173 -> a
    80:94:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):175:189 -> a
    95:95:void markClass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):855:855 -> a
    95:95:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):190 -> a
    96:101:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):192:197 -> a
    102:102:void markClass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):855:855 -> a
    102:102:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):198 -> a
    103:112:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):200:209 -> a
    113:113:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):195:195 -> a
    114:115:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):186:187 -> a
    116:116:void markClass(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):855:855 -> a
    116:116:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):181 -> a
    117:118:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):182:183 -> a
    119:119:void process(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):170:170 -> a
    120:132:void runPerRule(java.util.concurrent.ExecutorService,java.util.List,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):219:231 -> a
    133:138:void lambda$runPerRule$4(com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardIfRule):232:237 -> a
    139:139:com.android.tools.r8.shaking.RootSetBuilder$IfRuleEvaluator getIfRuleEvaluator(java.util.Set,java.util.Set,java.util.Set,java.util.concurrent.ExecutorService):291:291 -> a
    140:149:com.android.tools.r8.graph.DexDefinition testAndGetPrecondition(com.android.tools.r8.graph.DexDefinition,java.util.Map):473:482 -> a
    150:151:void lambda$markMatchingVisibleMethods$5(java.util.Map,java.util.Collection,java.util.Set,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexEncodedMethod):505:506 -> a
    152:153:void lambda$markMatchingMethods$7(java.util.Map,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexEncodedMethod):527:528 -> a
    154:162:void markMatchingVisibleFields(com.android.tools.r8.graph.DexClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map,boolean):539:547 -> a
    163:163:void markMatchingFields(com.android.tools.r8.graph.DexClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map):556:556 -> a
    164:165:void lambda$markMatchingFields$9(java.util.Map,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexEncodedField):558:559 -> a
    166:179:void writeSeeds(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,java.io.PrintStream,java.util.function.Predicate):566:579 -> a
    180:205:void writeSeeds(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,java.io.PrintStream,java.util.function.Predicate):574:599 -> a
    206:221:void writeSeeds(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,java.io.PrintStream,java.util.function.Predicate):598:613 -> a
    222:247:boolean anyImplementedInterfaceMatchesImplementsRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):702:727 -> a
    248:253:boolean anySourceMatchesInheritanceRuleDirectly(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule,boolean):734:739 -> a
    254:254:boolean lambda$anySourceMatchesInheritanceRuleDirectly$10(boolean,com.android.tools.r8.graph.DexType):738:738 -> a
    255:255:boolean allRulesSatisfied(java.util.Collection,com.android.tools.r8.graph.DexClass):744:744 -> a
    256:259:boolean ruleSatisfied(com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexClass):757:760 -> a
    256:259:boolean allRulesSatisfied(java.util.Collection,com.android.tools.r8.graph.DexClass):745 -> a
    260:262:boolean ruleSatisfiedByFields(com.android.tools.r8.shaking.ProguardMemberRule,java.lang.Iterable):780:782 -> a
    263:267:boolean containsAnnotation(com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.graph.DexAnnotationSet):799:803 -> a
    268:281:void markMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.Collection,java.util.Set,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexDefinition):817:830 -> a
    282:288:void markField(com.android.tools.r8.graph.DexEncodedField,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexDefinition):840:846 -> a
    289:308:void includeDescriptor(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ProguardKeepRule):859:878 -> a
    309:328:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition):901:920 -> a
    329:357:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition):917:945 -> a
    358:368:void includeDescriptorClasses(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardKeepRule):882:892 -> a
    358:368:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition):946 -> a
    369:394:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition):948:973 -> a
    395:395:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition):967:967 -> a
    396:452:void addItemToSets(com.android.tools.r8.graph.DexDefinition,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.shaking.ProguardMemberRule,com.android.tools.r8.graph.DexDefinition):964:1020 -> a
    453:453:java.util.Map lambda$addItemToSets$13(com.android.tools.r8.graph.DexReference):932:932 -> a
    1:1:java.util.Map access$1000(com.android.tools.r8.shaking.RootSetBuilder):62:62 -> b
    2:2:boolean access$1800(com.android.tools.r8.shaking.RootSetBuilder,com.android.tools.r8.shaking.ProguardMemberRule,java.lang.Iterable):62:62 -> b
    3:3:boolean lambda$process$1(com.android.tools.r8.graph.DexDefinition):157:157 -> b
    4:27:void markMatchingVisibleMethods(com.android.tools.r8.graph.DexClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map,boolean):493:516 -> b
    28:29:void lambda$markMatchingVisibleMethods$6(java.util.Map,java.util.Collection,java.util.Set,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexEncodedMethod):513:514 -> b
    30:30:void markMatchingMethods(com.android.tools.r8.graph.DexClass,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,java.util.Map):525:525 -> b
    31:32:void lambda$markMatchingVisibleFields$8(java.util.Map,java.util.Collection,com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexEncodedField):544:545 -> b
    33:33:boolean satisfyAnnotation(com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexClass):626:626 -> b
    33:33:boolean access$1400(com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexClass):62 -> b
    34:34:boolean satisfyExtendsRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):660:660 -> b
    34:34:boolean satisfyInheritanceRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):630 -> b
    35:47:boolean anySuperTypeMatchesExtendsRule(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.ProguardConfigurationRule):670:682 -> b
    35:47:boolean satisfyExtendsRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):660 -> b
    35:47:boolean satisfyInheritanceRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):630 -> b
    48:48:boolean satisfyExtendsRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):665:665 -> b
    48:48:boolean satisfyInheritanceRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):630 -> b
    49:54:boolean satisfyImplementsRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):688:693 -> b
    49:54:boolean satisfyInheritanceRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):633 -> b
    55:65:boolean satisfyInheritanceRule(com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.ProguardConfigurationRule):639:649 -> b
    66:68:boolean ruleSatisfiedByMethods(com.android.tools.r8.shaking.ProguardMemberRule,java.lang.Iterable):765:767 -> b
    69:69:java.util.Set lambda$addItemToSets$14(com.android.tools.r8.graph.DexReference):933:933 -> b
    boolean lambda$process$2(com.android.tools.r8.graph.DexDefinition) -> c
    1:1:java.lang.Iterable access$200(com.android.tools.r8.shaking.RootSetBuilder):62:62 -> c
    2:3:boolean satisfyAccessFlag(com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexClass):621:622 -> c
    4:4:java.util.Set lambda$addItemToSets$15(com.android.tools.r8.graph.DexReference):936:936 -> c
    com.android.tools.r8.graph.DexReference lambda$addItemToSets$16(com.android.tools.r8.graph.DexReference) -> d
    boolean lambda$process$3(com.android.tools.r8.graph.DexDefinition) -> d
    1:1:com.android.tools.r8.graph.AppView access$300(com.android.tools.r8.shaking.RootSetBuilder):62:62 -> d
    2:2:boolean satisfyClassType(com.android.tools.r8.shaking.ProguardConfigurationRule,com.android.tools.r8.graph.DexClass):617:617 -> d
    1:1:com.android.tools.r8.utils.InternalOptions access$400(com.android.tools.r8.shaking.RootSetBuilder):62:62 -> e
    2:2:java.util.Map lambda$includeDescriptor$11(com.android.tools.r8.graph.DexReference):874:874 -> e
    1:1:java.util.Set access$500(com.android.tools.r8.shaking.RootSetBuilder):62:62 -> f
    2:2:java.util.Set lambda$includeDescriptor$12(com.android.tools.r8.graph.DexReference):875:875 -> f
    1:1:java.util.Set access$600(com.android.tools.r8.shaking.RootSetBuilder):62:62 -> g
    1:1:java.util.Map access$700(com.android.tools.r8.shaking.RootSetBuilder):62:62 -> h
    1:1:java.util.Set access$800(com.android.tools.r8.shaking.RootSetBuilder):62:62 -> i
    1:1:java.util.Set access$900(com.android.tools.r8.shaking.RootSetBuilder):62:62 -> j
    1:23:com.android.tools.r8.shaking.RootSetBuilder$RootSet run(java.util.concurrent.ExecutorService):245:267 -> run
    24:24:com.android.tools.r8.shaking.RootSetBuilder$RootSet run(java.util.concurrent.ExecutorService):261:261 -> run
com.android.tools.r8.shaking.RootSetBuilder$1 -> com.android.tools.r8.shaking.sa:
    int[] $SwitchMap$com$android$tools$r8$shaking$InlineRule$Type -> b
    int[] $SwitchMap$com$android$tools$r8$shaking$ClassInlineRule$Type -> c
    int[] $SwitchMap$com$android$tools$r8$shaking$ClassMergingRule$Type -> d
    int[] $SwitchMap$com$android$tools$r8$shaking$MemberValuePropagationRule$Type -> e
    int[] $SwitchMap$com$android$tools$r8$shaking$ProguardKeepRuleType -> a
    1:1:void <clinit>():997:997 -> <clinit>
    2:2:void <clinit>():987:987 -> <clinit>
    3:3:void <clinit>():977:977 -> <clinit>
    4:4:void <clinit>():962:962 -> <clinit>
    5:5:void <clinit>():138:138 -> <clinit>
com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet -> com.android.tools.r8.shaking.RootSetBuilder$a:
    java.util.Map noShrinking -> c
    java.util.Set noOptimization -> d
    java.util.Set noObfuscation -> e
    java.util.Set neverInline -> a
    java.util.Set neverClassInline -> b
    java.util.Map dependentNoShrinking -> f
    1:7:void <init>(java.util.Set,java.util.Set,java.util.Map,java.util.Set,java.util.Set,java.util.Map):1376:1382 -> <init>
    1:7:void <init>(java.util.Set,java.util.Set,java.util.Map,java.util.Set,java.util.Set,java.util.Map,com.android.tools.r8.shaking.RootSetBuilder$1):1362 -> <init>
com.android.tools.r8.shaking.RootSetBuilder$IfRuleEvaluator -> com.android.tools.r8.shaking.RootSetBuilder$b:
    java.util.concurrent.ExecutorService executorService -> d
    java.util.Set targetedMethods -> c
    java.util.List futures -> e
    boolean $assertionsDisabled -> g
    java.util.Set liveFields -> a
    java.util.Set liveMethods -> b
    com.android.tools.r8.shaking.RootSetBuilder this$0 -> f
    1:1:void <clinit>():294:294 -> <clinit>
    1:1:void <init>(com.android.tools.r8.shaking.RootSetBuilder,java.util.Set,java.util.Set,java.util.Set,java.util.concurrent.ExecutorService):308:308 -> <init>
    2:12:void <init>(com.android.tools.r8.shaking.RootSetBuilder,java.util.Set,java.util.Set,java.util.Set,java.util.concurrent.ExecutorService):302:312 -> <init>
    1:44:com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet run(java.util.Set):316:359 -> a
    45:45:com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet run(java.util.Set):351:351 -> a
    46:75:void evaluateIfRule(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):368:397 -> a
    76:85:void evaluateIfRule(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):395:404 -> a
    86:104:void evaluateIfRule(com.android.tools.r8.shaking.ProguardIfRule,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):402:420 -> a
    105:106:boolean lambda$evaluateIfRule$0(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedField):399:400 -> a
    107:108:boolean lambda$evaluateIfRule$1(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexEncodedMethod):406:407 -> a
    109:123:void lambda$evaluateIfRule$3(java.util.Collection,com.android.tools.r8.shaking.ProguardIfRule,java.util.Set):423:437 -> a
    124:125:boolean lambda$evaluateIfRule$2(java.util.Collection,java.util.Collection,com.android.tools.r8.shaking.ProguardMemberRule):434:435 -> a
    126:145:void materializeIfRule(com.android.tools.r8.shaking.ProguardIfRule):443:462 -> a
com.android.tools.r8.shaking.RootSetBuilder$RootSet -> com.android.tools.r8.shaking.RootSetBuilder$RootSet:
    java.util.Map assumedValues -> q
    java.util.Map dependentNoShrinking -> r
    java.util.Set identifierNameStrings -> s
    java.util.Set ifRules -> t
    java.util.Map mayHaveSideEffects -> o
    java.util.Map noSideEffects -> p
    boolean $assertionsDisabled -> u
    java.util.Set noOptimization -> b
    com.android.tools.r8.com.google.common.collect.ImmutableList reasonAsked -> d
    java.util.Map noShrinking -> a
    java.util.Set alwaysInline -> g
    java.util.Set forceInline -> h
    java.util.Set neverInline -> i
    java.util.Set keepConstantArguments -> j
    java.util.Set noObfuscation -> c
    java.util.Set keepPackageName -> e
    java.util.Set checkDiscarded -> f
    java.util.Set keepUnusedArguments -> k
    java.util.Set neverClassInline -> l
    java.util.Set neverMerge -> m
    java.util.Set neverPropagateValue -> n
    1:1:void <clinit>():1025:1025 -> <clinit>
    1:21:void <init>(java.util.Map,java.util.Set,java.util.Set,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Map,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Set):1069:1089 -> <init>
    1:21:void <init>(java.util.Map,java.util.Set,java.util.Set,com.android.tools.r8.com.google.common.collect.ImmutableList,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Set,java.util.Map,java.util.Map,java.util.Map,java.util.Map,java.util.Set,java.util.Set,com.android.tools.r8.shaking.RootSetBuilder$1):1025 -> <init>
    1:5:void addConsequentRootSet(com.android.tools.r8.shaking.RootSetBuilder$ConsequentRootSet):1137:1141 -> a
    6:6:void addDependentItems(java.util.Map):1147:1147 -> a
    7:8:void lambda$addDependentItems$1(com.android.tools.r8.graph.DexReference,java.util.Map):1150:1151 -> a
    9:10:java.util.Map getDependentItems(com.android.tools.r8.graph.DexDefinition):1155:1156 -> a
    11:11:java.util.Map getDependentItems(com.android.tools.r8.graph.DexDefinition):1155:1155 -> a
    12:16:void prune(com.android.tools.r8.graph.DexReference):1178:1182 -> a
    17:29:boolean verifyKeptFieldsAreAccessedAndLive(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness):1191:1203 -> a
    30:38:boolean isKeptDirectlyOrIndirectly(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness):1241:1249 -> a
    39:111:boolean verifyKeptItemsAreKept(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppInfo):1256:1328 -> a
    112:112:java.util.Set lambda$verifyKeptItemsAreKept$2(com.android.tools.r8.graph.DexType):1274:1274 -> a
    113:113:void lambda$toString$3(java.lang.StringBuilder,com.android.tools.r8.graph.DexReference):1355:1355 -> a
    1:1:java.util.Map lambda$addDependentItems$0(com.android.tools.r8.graph.DexReference):1150:1150 -> b
    2:12:boolean verifyKeptMethodsAreTargetedAndLive(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness):1211:1221 -> b
    1:5:boolean verifyKeptTypesAreLive(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness):1230:1234 -> c
    1:22:java.lang.String toString():1336:1357 -> toString
com.android.tools.r8.shaking.ScopedDexMethodSet -> com.android.tools.r8.shaking.ta:
    java.util.Map items -> b
    com.android.tools.r8.com.google.common.base.Equivalence METHOD_EQUIVALENCE -> c
    com.android.tools.r8.shaking.ScopedDexMethodSet parent -> a
    1:1:void <clinit>():16:16 -> <clinit>
    1:1:void <init>(com.android.tools.r8.shaking.ScopedDexMethodSet):25:25 -> <init>
    1:1:void <init>():22 -> <init>
    2:9:void <init>(com.android.tools.r8.shaking.ScopedDexMethodSet):19:26 -> <init>
    2:9:void <init>():22 -> <init>
    10:10:void <init>(com.android.tools.r8.shaking.ScopedDexMethodSet):25:25 -> <init>
    11:18:void <init>(com.android.tools.r8.shaking.ScopedDexMethodSet):19:26 -> <init>
    1:2:com.android.tools.r8.graph.DexEncodedMethod lookup(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):34:35 -> a
    3:3:boolean addMethod(com.android.tools.r8.graph.DexEncodedMethod):43:43 -> a
    4:4:boolean contains(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):39:39 -> a
    4:4:boolean addMethod(com.android.tools.r8.graph.DexEncodedMethod):44 -> a
    5:5:boolean addMethod(com.android.tools.r8.graph.DexEncodedMethod):47:47 -> a
    6:6:com.android.tools.r8.shaking.ScopedDexMethodSet getParent():62:62 -> a
    1:1:com.android.tools.r8.shaking.ScopedDexMethodSet newNestedScope():30:30 -> b
    2:5:boolean addMethodIfMoreVisible(com.android.tools.r8.graph.DexEncodedMethod):52:55 -> b
com.android.tools.r8.shaking.StaticClassMerger -> com.android.tools.r8.shaking.xa:
    com.android.tools.r8.graph.AppView appView -> a
    boolean $assertionsDisabled -> i
    com.android.tools.r8.com.google.common.base.Equivalence fieldEquivalence -> c
    int numberOfMergedClasses -> h
    com.android.tools.r8.com.google.common.collect.BiMap fieldMapping -> f
    com.android.tools.r8.com.google.common.collect.BiMap methodMapping -> g
    com.android.tools.r8.com.google.common.base.Equivalence methodEquivalence -> d
    com.android.tools.r8.shaking.MainDexClasses mainDexClasses -> b
    java.util.Map representatives -> e
    1:1:void <clinit>():60:60 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.shaking.MainDexClasses):211:211 -> <init>
    2:22:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.utils.InternalOptions,com.android.tools.r8.shaking.MainDexClasses):201:221 -> <init>
    1:1:com.android.tools.r8.com.google.common.base.Equivalence access$000(com.android.tools.r8.shaking.StaticClassMerger):60:60 -> a
    2:4:com.android.tools.r8.graph.GraphLense run():225:227 -> a
    5:9:boolean merge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.StaticClassMerger$MergeGroup):315:319 -> a
    5:9:com.android.tools.r8.graph.GraphLense run():228 -> a
    10:39:boolean mergeGlobally(com.android.tools.r8.graph.DexProgramClass,java.lang.String,com.android.tools.r8.shaking.StaticClassMerger$MergeGroup):325:354 -> a
    10:39:boolean merge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.StaticClassMerger$MergeGroup):320 -> a
    10:39:com.android.tools.r8.graph.GraphLense run():228 -> a
    40:72:boolean mergeInsidePackage(com.android.tools.r8.graph.DexProgramClass,java.lang.String,com.android.tools.r8.shaking.StaticClassMerger$MergeGroup):361:393 -> a
    40:72:boolean merge(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.shaking.StaticClassMerger$MergeGroup):321 -> a
    40:72:com.android.tools.r8.graph.GraphLense run():228 -> a
    73:85:com.android.tools.r8.graph.GraphLense buildGraphLense():242:254 -> a
    73:85:com.android.tools.r8.graph.GraphLense run():238 -> a
    86:95:com.android.tools.r8.graph.GraphLense buildGraphLense():243:252 -> a
    86:95:com.android.tools.r8.graph.GraphLense run():238 -> a
    96:96:boolean isValidRepresentative(com.android.tools.r8.graph.DexProgramClass):311:311 -> a
    97:105:com.android.tools.r8.shaking.StaticClassMerger$Representative getOrCreateRepresentative(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key,com.android.tools.r8.graph.DexProgramClass):399:407 -> a
    106:123:void setRepresentative(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key,com.android.tools.r8.shaking.StaticClassMerger$Representative):411:428 -> a
    124:124:void clearRepresentative(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key):440:440 -> a
    125:125:boolean lambda$mayMergeAcrossPackageBoundaries$2(com.android.tools.r8.graph.DexEncodedMethod):451:451 -> a
    126:126:boolean lambda$mayMergeAcrossPackageBoundaries$3(com.android.tools.r8.graph.DexEncodedField):455:455 -> a
    127:135:void moveMembersFromSourceToTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):487:495 -> a
    136:139:void moveMembersFromSourceToTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):494:497 -> a
    140:143:void moveMembersFromSourceToTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):496:499 -> a
    144:150:void moveMembersFromSourceToTarget(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):498:504 -> a
    151:151:com.android.tools.r8.com.google.common.base.Equivalence$Wrapper lambda$mergeMethods$5(com.android.tools.r8.utils.MethodSignatureEquivalence,com.android.tools.r8.graph.DexEncodedMethod):515:515 -> a
    152:152:boolean lambda$mergeMethods$6(java.util.Set,com.android.tools.r8.utils.MethodSignatureEquivalence,com.android.tools.r8.graph.DexMethod):519:519 -> a
    153:171:com.android.tools.r8.graph.DexEncodedField[] mergeFields(java.util.List,java.util.List,com.android.tools.r8.graph.DexProgramClass):540:558 -> a
    172:184:com.android.tools.r8.graph.DexEncodedField renameFieldIfNeeded(com.android.tools.r8.graph.DexEncodedField,com.android.tools.r8.graph.DexProgramClass,java.util.function.Predicate):598:610 -> a
    172:184:com.android.tools.r8.graph.DexEncodedField[] mergeFields(java.util.List,java.util.List,com.android.tools.r8.graph.DexProgramClass):560 -> a
    185:194:com.android.tools.r8.graph.DexEncodedField[] mergeFields(java.util.List,java.util.List,com.android.tools.r8.graph.DexProgramClass):561:570 -> a
    195:195:com.android.tools.r8.com.google.common.base.Equivalence$Wrapper lambda$mergeFields$7(com.android.tools.r8.utils.FieldSignatureEquivalence,com.android.tools.r8.graph.DexEncodedField):552:552 -> a
    196:196:boolean lambda$mergeFields$8(java.util.Set,com.android.tools.r8.utils.FieldSignatureEquivalence,com.android.tools.r8.graph.DexField):556:556 -> a
    1:1:com.android.tools.r8.com.google.common.base.Equivalence access$100(com.android.tools.r8.shaking.StaticClassMerger):60:60 -> b
    2:2:boolean lambda$satisfiesMergeCriteria$0(com.android.tools.r8.graph.DexEncodedField):269:269 -> b
    3:27:boolean mayMergeAcrossPackageBoundaries(com.android.tools.r8.graph.DexProgramClass):446:470 -> b
    28:28:boolean lambda$mayMergeAcrossPackageBoundaries$4(com.android.tools.r8.graph.DexEncodedMethod):463:463 -> b
    29:39:java.util.List mergeMethods(java.util.List,java.util.List,com.android.tools.r8.graph.DexProgramClass):512:522 -> b
    40:53:com.android.tools.r8.graph.DexEncodedMethod renameMethodIfNeeded(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexProgramClass,java.util.function.Predicate):578:591 -> b
    40:53:java.util.List mergeMethods(java.util.List,java.util.List,com.android.tools.r8.graph.DexProgramClass):524 -> b
    54:60:java.util.List mergeMethods(java.util.List,java.util.List,com.android.tools.r8.graph.DexProgramClass):525:531 -> b
    1:49:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup satisfiesMergeCriteria(com.android.tools.r8.graph.DexProgramClass):258:306 -> c
    50:55:boolean lambda$satisfiesMergeCriteria$1(com.android.tools.r8.graph.DexEncodedMethod):281:286 -> c
com.android.tools.r8.shaking.StaticClassMerger$MergeGroup -> com.android.tools.r8.shaking.va:
    com.android.tools.r8.shaking.StaticClassMerger$MergeGroup DONT_MERGE -> d
    boolean $assertionsDisabled -> i
    com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key mainDexDependenciesGlobalKey -> f
    com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key mainDexRootsGlobalKey -> e
    com.android.tools.r8.shaking.StaticClassMerger$MergeGroup[] $VALUES -> h
    com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key notMainDexGlobalKey -> g
    com.android.tools.r8.shaking.StaticClassMerger$MergeGroup NOT_MAIN_DEX -> c
    com.android.tools.r8.shaking.StaticClassMerger$MergeGroup MAIN_DEX_DEPENDENCIES -> b
    com.android.tools.r8.shaking.StaticClassMerger$MergeGroup MAIN_DEX_ROOTS -> a
    1:5:void <clinit>():62:66 -> <clinit>
    6:16:void <clinit>():62:72 -> <clinit>
    1:1:void <init>(java.lang.String,int):62:62 -> <init>
    1:9:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key globalKey():114:122 -> a
    10:10:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key globalKey():120:120 -> a
    11:11:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key globalKey():118:118 -> a
    12:13:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key key(java.lang.String):127:128 -> a
    1:9:java.lang.String toString():133:141 -> toString
com.android.tools.r8.shaking.StaticClassMerger$MergeGroup$Key -> com.android.tools.r8.shaking.ua:
    java.lang.String packageOrGlobal -> b
    com.android.tools.r8.shaking.StaticClassMerger$MergeGroup mergeGroup -> a
    1:3:void <init>(com.android.tools.r8.shaking.StaticClassMerger$MergeGroup,java.lang.String):78:80 -> <init>
    1:1:com.android.tools.r8.shaking.StaticClassMerger$MergeGroup getMergeGroup():84:84 -> a
    1:5:boolean equals(java.lang.Object):105:109 -> equals
    1:1:int hashCode():97:97 -> hashCode
com.android.tools.r8.shaking.StaticClassMerger$Representative -> com.android.tools.r8.shaking.wa:
    com.android.tools.r8.shaking.StaticClassMerger this$0 -> d
    com.android.tools.r8.graph.DexProgramClass clazz -> a
    com.android.tools.r8.com.google.common.collect.HashMultiset methodBuckets -> c
    com.android.tools.r8.com.google.common.collect.HashMultiset fieldBuckets -> b
    1:1:void <init>(com.android.tools.r8.shaking.StaticClassMerger,com.android.tools.r8.graph.DexProgramClass):161:161 -> <init>
    2:7:void <init>(com.android.tools.r8.shaking.StaticClassMerger,com.android.tools.r8.graph.DexProgramClass):158:163 -> <init>
    1:1:com.android.tools.r8.graph.DexProgramClass access$200(com.android.tools.r8.shaking.StaticClassMerger$Representative):152:152 -> a
    2:8:void include(com.android.tools.r8.graph.DexProgramClass):168:174 -> a
    9:13:boolean isFull():184:188 -> a
com.android.tools.r8.shaking.TreePruner -> com.android.tools.r8.shaking.ya:
    com.android.tools.r8.graph.DexApplication application -> a
    com.android.tools.r8.graph.AppView appView -> b
    java.util.Set prunedTypes -> d
    com.android.tools.r8.shaking.UsagePrinter usagePrinter -> c
    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView):38:38 -> <init>
    2:12:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView):36:46 -> <init>
    1:51:java.util.List getNewProgramClasses(java.util.List):74:124 -> a
    52:57:boolean isAttributeReferencingPrunedItem(com.android.tools.r8.graph.EnclosingMethodAttribute):131:136 -> a
    58:80:boolean isAttributeReferencingPrunedType(com.android.tools.r8.graph.InnerClassAttribute):140:162 -> a
    81:82:int firstUnreachableIndex(java.util.List,java.util.function.Predicate):167:168 -> a
    83:98:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):181:196 -> a
    99:100:boolean isDefaultConstructor(com.android.tools.r8.graph.DexEncodedMethod):176:177 -> a
    99:100:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):196 -> a
    101:103:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):199:201 -> a
    104:134:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):198:228 -> a
    135:150:com.android.tools.r8.graph.DexEncodedMethod[] reachableMethods(java.util.List,com.android.tools.r8.graph.DexClass):223:238 -> a
    151:153:boolean lambda$reachableFields$0(com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness,com.android.tools.r8.graph.DexField):245:247 -> a
    154:154:java.util.Collection getRemovedClasses():278:278 -> a
    1:12:com.android.tools.r8.graph.DexApplication run():50:61 -> b
    13:14:com.android.tools.r8.graph.DexApplication$Builder removeUnused(com.android.tools.r8.graph.DexApplication):69:70 -> b
    13:14:com.android.tools.r8.graph.DexApplication run():61 -> b
    15:17:com.android.tools.r8.graph.DexApplication run():61:63 -> b
    18:50:com.android.tools.r8.graph.DexEncodedField[] reachableFields(java.util.List):242:274 -> b
com.android.tools.r8.shaking.UnusedArgumentRule -> com.android.tools.r8.shaking.Aa:
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List):57:57 -> <init>
    1:1:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position,java.lang.String,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardAccessFlags,com.android.tools.r8.shaking.ProguardAccessFlags,boolean,com.android.tools.r8.shaking.ProguardClassType,com.android.tools.r8.shaking.ProguardClassNameList,com.android.tools.r8.shaking.ProguardTypeMatcher,com.android.tools.r8.shaking.ProguardTypeMatcher,boolean,java.util.List,com.android.tools.r8.shaking.UnusedArgumentRule$1):10 -> <init>
    1:1:com.android.tools.r8.shaking.UnusedArgumentRule$Builder builder():74:74 -> builder
com.android.tools.r8.shaking.UnusedArgumentRule$1 -> com.android.tools.r8.shaking.za:
com.android.tools.r8.shaking.UnusedArgumentRule$Builder -> com.android.tools.r8.shaking.Aa$a:
    1:1:void <init>():16:16 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.UnusedArgumentRule$1):12 -> <init>
    com.android.tools.r8.shaking.ProguardClassSpecification$Builder self() -> g
com.android.tools.r8.shaking.UsagePrinter -> com.android.tools.r8.shaking.Da:
    com.android.tools.r8.graph.DexProgramClass enclosingClazz -> b
    boolean $assertionsDisabled -> e
    java.lang.StringBuilder writer -> a
    com.android.tools.r8.shaking.UsagePrinter DONT_PRINT -> d
    boolean clazzPrefixPrinted -> c
    1:4:void <clinit>():11:14 -> <clinit>
    1:1:void <init>():20:20 -> <init>
    2:6:void <init>():17:21 -> <init>
    1:1:java.lang.String toStringContent():25:25 -> a
    2:3:void printUnusedClass(com.android.tools.r8.graph.DexProgramClass):33:34 -> a
    4:20:void printUnusedMethod(com.android.tools.r8.graph.DexEncodedMethod):59:75 -> a
    21:29:void printUnusedField(com.android.tools.r8.graph.DexEncodedField):79:87 -> a
    1:2:void visiting(com.android.tools.r8.graph.DexProgramClass):39:40 -> b
    3:4:void visited():45:46 -> b
    1:5:void printClazzPrefixIfNecessary():50:54 -> c
com.android.tools.r8.shaking.UsagePrinter$1 -> com.android.tools.r8.shaking.Ba:
com.android.tools.r8.shaking.UsagePrinter$NoOpUsagePrinter -> com.android.tools.r8.shaking.Ca:
    1:1:void <init>():91:91 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.UsagePrinter$1):91 -> <init>
    void printUnusedClass(com.android.tools.r8.graph.DexProgramClass) -> a
    void printUnusedField(com.android.tools.r8.graph.DexEncodedField) -> a
    void printUnusedMethod(com.android.tools.r8.graph.DexEncodedMethod) -> a
    void visited() -> b
    void visiting(com.android.tools.r8.graph.DexProgramClass) -> b
com.android.tools.r8.shaking.VerticalClassMerger -> com.android.tools.r8.shaking.Ga:
    boolean $assertionsDisabled -> o
    com.android.tools.r8.graph.AppView appView -> c
    com.android.tools.r8.shaking.MainDexClasses mainDexClasses -> n
    com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness appInfo -> b
    java.util.Collection invokes -> g
    java.util.Set mergeCandidates -> h
    com.android.tools.r8.graph.DexApplication application -> a
    java.util.concurrent.ExecutorService executorService -> d
    com.android.tools.r8.utils.Timing timing -> f
    com.android.tools.r8.ir.optimize.MethodPoolCollection methodPoolCollection -> e
    java.util.Map mergedClasses -> i
    java.util.Map mergedClassesInverse -> j
    com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder renamedMembersLense -> l
    java.util.Set pinnedTypes -> k
    java.util.List synthesizedBridges -> m
    1:1:void <clinit>():92:92 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing,com.android.tools.r8.shaking.MainDexClasses):233:233 -> <init>
    2:36:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing,com.android.tools.r8.shaking.MainDexClasses):209:243 -> <init>
    37:75:void initializePinnedTypes(java.lang.Iterable):265:303 -> <init>
    37:75:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing,com.android.tools.r8.shaking.MainDexClasses):244 -> <init>
    76:78:void initializeMergeCandidates(java.lang.Iterable):253:255 -> <init>
    76:78:void <init>(com.android.tools.r8.graph.DexApplication,com.android.tools.r8.graph.AppView,java.util.concurrent.ExecutorService,com.android.tools.r8.utils.Timing,com.android.tools.r8.shaking.MainDexClasses):245 -> <init>
    1:1:java.util.Set access$100(com.android.tools.r8.shaking.VerticalClassMerger):92:92 -> a
    2:2:com.android.tools.r8.graph.DexProto access$1200(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProto):92:92 -> a
    3:3:com.android.tools.r8.shaking.VerticalClassMerger$VerticallyMergedClasses getMergedClasses():249:249 -> a
    4:21:void extractPinnedItems(java.lang.Iterable,com.android.tools.r8.shaking.VerticalClassMerger$AbortReason):308:325 -> a
    22:31:void markTypeAsPinned(com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.VerticalClassMerger$AbortReason):332:341 -> a
    32:66:boolean isMergeCandidate(com.android.tools.r8.graph.DexProgramClass,java.util.Set):354:388 -> a
    67:76:boolean disallowInlining(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexType):1618:1627 -> a
    67:76:boolean isMergeCandidate(com.android.tools.r8.graph.DexProgramClass,java.util.Set):388 -> a
    77:77:boolean isMergeCandidate(com.android.tools.r8.graph.DexProgramClass,java.util.Set):396:396 -> a
    78:96:boolean isStillMergeCandidate(com.android.tools.r8.graph.DexProgramClass):410:428 -> a
    97:134:boolean mergeMayLeadToIllegalAccesses(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):459:496 -> a
    97:134:boolean isStillMergeCandidate(com.android.tools.r8.graph.DexProgramClass):435 -> a
    135:177:boolean methodResolutionMayChange(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):687:729 -> a
    135:177:boolean isStillMergeCandidate(com.android.tools.r8.graph.DexProgramClass):441 -> a
    178:195:boolean fieldResolutionMayChange(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):818:835 -> a
    178:195:boolean isStillMergeCandidate(com.android.tools.r8.graph.DexProgramClass):449 -> a
    196:196:boolean lambda$isStillMergeCandidate$0(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexType):421:421 -> a
    197:252:boolean verifyGraphLense(com.android.tools.r8.graph.GraphLense):616:671 -> a
    253:256:void makePrivate(com.android.tools.r8.graph.DexEncodedMethod):1397:1400 -> a
    253:256:void access$1300(com.android.tools.r8.graph.DexEncodedMethod):92 -> a
    257:260:com.android.tools.r8.graph.DexProto getStaticProto(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexProto):1404:1407 -> a
    1:1:com.android.tools.r8.utils.Timing access$1000(com.android.tools.r8.shaking.VerticalClassMerger):92:92 -> b
    2:59:void mergeClassIfPossible(com.android.tools.r8.graph.DexProgramClass):741:798 -> b
    60:60:void mergeClassIfPossible(com.android.tools.r8.graph.DexProgramClass):793:793 -> b
    61:61:java.util.Collection getRemovedClasses():1931:1931 -> b
    1:1:com.android.tools.r8.ir.optimize.MethodPoolCollection access$1100(com.android.tools.r8.shaking.VerticalClassMerger):92:92 -> c
    2:12:com.android.tools.r8.graph.GraphLense run():600:610 -> c
    13:18:com.android.tools.r8.graph.GraphLense run():606:611 -> c
    1:1:com.android.tools.r8.graph.DexApplication access$1400(com.android.tools.r8.shaking.VerticalClassMerger):92:92 -> d
    2:6:com.android.tools.r8.graph.GraphLense mergeClasses():679:683 -> d
    1:1:java.util.Map access$1500(com.android.tools.r8.shaking.VerticalClassMerger):92:92 -> e
    1:1:java.util.Map access$1600(com.android.tools.r8.shaking.VerticalClassMerger):92:92 -> f
    1:1:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder access$1700(com.android.tools.r8.shaking.VerticalClassMerger):92:92 -> g
    1:1:java.util.List access$1800(com.android.tools.r8.shaking.VerticalClassMerger):92:92 -> h
    1:4:java.util.Collection getInvokes():505:508 -> i
    1:4:java.util.Collection access$1900(com.android.tools.r8.shaking.VerticalClassMerger):92 -> i
    1:1:com.android.tools.r8.shaking.Enqueuer$AppInfoWithLiveness access$200(com.android.tools.r8.shaking.VerticalClassMerger):92:92 -> j
    1:1:com.android.tools.r8.graph.AppView access$300(com.android.tools.r8.shaking.VerticalClassMerger):92:92 -> k
    1:1:java.util.concurrent.ExecutorService access$900(com.android.tools.r8.shaking.VerticalClassMerger):92:92 -> l
com.android.tools.r8.shaking.VerticalClassMerger$1 -> com.android.tools.r8.shaking.Ea:
    int[] $SwitchMap$com$android$tools$r8$shaking$VerticalClassMerger$Rename -> b
    int[] $SwitchMap$com$android$tools$r8$ir$code$Invoke$Type -> c
    int[] $SwitchMap$com$android$tools$r8$shaking$VerticalClassMerger$AbortReason -> a
    1:1:void <clinit>():1914:1914 -> <clinit>
    2:2:void <clinit>():1331:1331 -> <clinit>
    3:3:void <clinit>():144:144 -> <clinit>
com.android.tools.r8.shaking.VerticalClassMerger$AbortReason -> com.android.tools.r8.shaking.Fa:
    com.android.tools.r8.shaking.VerticalClassMerger$AbortReason RESOLUTION_FOR_FIELDS_MAY_CHANGE -> h
    com.android.tools.r8.shaking.VerticalClassMerger$AbortReason PINNED_SOURCE -> g
    com.android.tools.r8.shaking.VerticalClassMerger$AbortReason NO_SIDE_EFFECTS -> f
    com.android.tools.r8.shaking.VerticalClassMerger$AbortReason NATIVE_METHOD -> e
    com.android.tools.r8.shaking.VerticalClassMerger$AbortReason ILLEGAL_ACCESS -> d
    com.android.tools.r8.shaking.VerticalClassMerger$AbortReason CONFLICT -> c
    com.android.tools.r8.shaking.VerticalClassMerger$AbortReason ALWAYS_INLINE -> b
    com.android.tools.r8.shaking.VerticalClassMerger$AbortReason ALREADY_MERGED -> a
    com.android.tools.r8.shaking.VerticalClassMerger$AbortReason UNSUPPORTED_ATTRIBUTES -> n
    com.android.tools.r8.shaking.VerticalClassMerger$AbortReason UNSAFE_INLINING -> m
    com.android.tools.r8.shaking.VerticalClassMerger$AbortReason UNHANDLED_INVOKE_SUPER -> l
    com.android.tools.r8.shaking.VerticalClassMerger$AbortReason UNHANDLED_INVOKE_DIRECT -> k
    com.android.tools.r8.shaking.VerticalClassMerger$AbortReason STATIC_INITIALIZERS -> j
    com.android.tools.r8.shaking.VerticalClassMerger$AbortReason RESOLUTION_FOR_METHODS_MAY_CHANGE -> i
    com.android.tools.r8.shaking.VerticalClassMerger$AbortReason[] $VALUES -> o
    1:15:void <clinit>():122:136 -> <clinit>
    16:16:void <clinit>():122:122 -> <clinit>
    1:1:void <init>(java.lang.String,int):122:122 -> <init>
    1:1:com.android.tools.r8.shaking.VerticalClassMerger$AbortReason[] values():122:122 -> a
com.android.tools.r8.shaking.VerticalClassMerger$ClassMerger -> com.android.tools.r8.shaking.Ga$a:
    com.android.tools.r8.graph.DexClass source -> a
    com.android.tools.r8.graph.DexClass target -> b
    com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder deferredRenamings -> c
    java.util.List synthesizedBridges -> d
    boolean abortMerge -> e
    boolean $assertionsDisabled -> g
    com.android.tools.r8.shaking.VerticalClassMerger this$0 -> f
    1:1:void <clinit>():846:846 -> <clinit>
    1:1:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):858:858 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.VerticalClassMerger$1):846 -> <init>
    2:10:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):852:860 -> <init>
    2:10:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass,com.android.tools.r8.shaking.VerticalClassMerger$1):846 -> <init>
    1:4:boolean lambda$merge$0(java.util.Set,java.util.Map,java.util.Map,com.android.tools.r8.graph.DexMethod):875:878 -> a
    5:7:boolean lambda$merge$1(java.util.function.Predicate,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool,com.android.tools.r8.graph.DexMethod):946:948 -> a
    8:8:boolean lambda$merge$1(java.util.function.Predicate,com.android.tools.r8.ir.optimize.MemberPoolCollection$MemberPool,com.android.tools.r8.graph.DexMethod):947:947 -> a
    9:9:boolean lambda$merge$2(java.util.Set,com.android.tools.r8.graph.DexField):1007:1007 -> a
    10:10:java.util.Set lambda$merge$3(com.android.tools.r8.graph.DexType):1051:1051 -> a
    11:27:boolean restoreDebuggingState(java.util.stream.Stream):1057:1073 -> a
    28:28:boolean restoreDebuggingState(java.util.stream.Stream):1072:1072 -> a
    29:31:void lambda$restoreDebuggingState$4(com.android.tools.r8.graph.DexEncodedMethod):1059:1061 -> a
    32:32:com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder getRenamings():1081:1081 -> a
    33:33:void add(java.util.Map,com.android.tools.r8.graph.KeyedDexItem,com.android.tools.r8.com.google.common.base.Equivalence):1239:1239 -> a
    34:37:com.android.tools.r8.graph.DexEncodedField[] mergeFields(java.util.Collection,java.util.Collection,java.util.function.Predicate,java.util.Set):1261:1264 -> a
    38:53:com.android.tools.r8.graph.DexEncodedField renameFieldIfNeeded(com.android.tools.r8.graph.DexEncodedField,java.util.function.Predicate):1362:1377 -> a
    38:53:com.android.tools.r8.graph.DexEncodedField[] mergeFields(java.util.Collection,java.util.Collection,java.util.function.Predicate,java.util.Set):1265 -> a
    54:55:com.android.tools.r8.graph.DexEncodedField[] mergeFields(java.util.Collection,java.util.Collection,java.util.function.Predicate,java.util.Set):1266:1267 -> a
    56:56:void com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder.map(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):262:262 -> a
    56:56:com.android.tools.r8.graph.DexEncodedField[] mergeFields(java.util.Collection,java.util.Collection,java.util.function.Predicate,java.util.Set):1267 -> a
    57:62:com.android.tools.r8.graph.DexEncodedField[] mergeFields(java.util.Collection,java.util.Collection,java.util.function.Predicate,java.util.Set):1268:1273 -> a
    63:67:com.android.tools.r8.graph.DexString getFreshName(java.lang.String,int,com.android.tools.r8.graph.DexType):1282:1286 -> a
    68:68:com.android.tools.r8.graph.DexEncodedMethod renameMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate,com.android.tools.r8.shaking.VerticalClassMerger$Rename):1316:1316 -> a
    69:97:com.android.tools.r8.graph.DexEncodedMethod renameMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate,com.android.tools.r8.shaking.VerticalClassMerger$Rename,com.android.tools.r8.graph.DexProto):1326:1354 -> a
    98:122:com.android.tools.r8.graph.DexEncodedMethod renameMethod(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate,com.android.tools.r8.shaking.VerticalClassMerger$Rename,com.android.tools.r8.graph.DexProto):1333:1357 -> a
    1:5:void lambda$restoreDebuggingState$5(com.android.tools.r8.graph.DexEncodedMethod):1065:1069 -> b
    6:6:java.util.List getSynthesizedBridges():1085:1085 -> b
    1:2:boolean merge():867:868 -> c
    3:4:void addAll(java.util.Collection,java.lang.Iterable,com.android.tools.r8.com.google.common.base.Equivalence):1244:1245 -> c
    3:4:boolean merge():868 -> c
    5:17:boolean merge():870:882 -> c
    18:37:com.android.tools.r8.graph.DexEncodedMethod renameConstructor(com.android.tools.r8.graph.DexEncodedMethod,java.util.function.Predicate):1291:1310 -> c
    18:37:boolean merge():885 -> c
    38:38:boolean merge():886:886 -> c
    39:48:boolean merge():883:892 -> c
    49:58:boolean merge():889:898 -> c
    59:59:void blockRedirectionOfSuperCalls(com.android.tools.r8.graph.DexMethod):1165:1165 -> c
    59:59:boolean merge():898 -> c
    60:60:boolean merge():903:903 -> c
    61:69:com.android.tools.r8.graph.DexEncodedMethod findMethodInTarget(com.android.tools.r8.graph.DexEncodedMethod):1210:1218 -> c
    61:69:boolean merge():904 -> c
    70:79:boolean merge():906:915 -> c
    80:116:boolean merge():914:950 -> c
    117:117:boolean merge():943:943 -> c
    118:128:void makeStatic(com.android.tools.r8.graph.DexEncodedMethod):1381:1391 -> c
    118:128:boolean merge():951 -> c
    129:143:boolean merge():954:968 -> c
    144:198:void redirectSuperCallsInTarget(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):1089:1143 -> c
    144:198:boolean merge():968 -> c
    199:199:boolean merge():969:969 -> c
    200:200:void blockRedirectionOfSuperCalls(com.android.tools.r8.graph.DexMethod):1165:1165 -> c
    200:200:boolean merge():969 -> c
    201:234:com.android.tools.r8.graph.DexEncodedMethod buildBridgeMethod(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):1170:1203 -> c
    201:234:boolean merge():977 -> c
    235:245:boolean merge():978:988 -> c
    246:271:boolean merge():987:1012 -> c
    272:281:boolean merge():1010:1019 -> c
    282:289:boolean merge():1017:1024 -> c
    290:292:java.util.Set mergeArrays(java.lang.Object[],java.lang.Object[]):1250:1252 -> c
    290:292:boolean merge():1024 -> c
    293:318:boolean merge():1027:1052 -> c
    319:320:boolean lambda$restoreDebuggingState$6(com.android.tools.r8.graph.DexEncodedMethod):1075:1076 -> c
com.android.tools.r8.shaking.VerticalClassMerger$CollisionDetector -> com.android.tools.r8.shaking.Ha:
    java.util.Map seenPositions -> a
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap sourceProtoCache -> c
    java.util.Collection invokes -> f
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap targetProtoCache -> b
    com.android.tools.r8.graph.DexType source -> d
    boolean $assertionsDisabled -> h
    com.android.tools.r8.shaking.VerticalClassMerger this$0 -> g
    com.android.tools.r8.graph.DexType target -> e
    1:1:void <clinit>():1507:1507 -> <clinit>
    1:1:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):1518:1518 -> <init>
    1:1:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.VerticalClassMerger$1):1507 -> <init>
    2:14:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):1512:1524 -> <init>
    2:14:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType,com.android.tools.r8.shaking.VerticalClassMerger$1):1507 -> <init>
    1:22:boolean mayCollide():1528:1549 -> a
    23:24:com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2IntMap lambda$fillSeenPositions$0(com.android.tools.r8.graph.DexString):1561:1562 -> a
    25:56:int computePositionsFor(com.android.tools.r8.graph.DexProto,com.android.tools.r8.graph.DexType,com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2IntMap):1581:1612 -> a
    1:18:void fillSeenPositions():1554:1571 -> b
com.android.tools.r8.shaking.VerticalClassMerger$IllegalAccessDetector -> com.android.tools.r8.shaking.Ga$b:
    com.android.tools.r8.graph.AppView appView -> e
    boolean $assertionsDisabled -> g
    com.android.tools.r8.graph.DexMethod context -> d
    com.android.tools.r8.graph.DexClass source -> f
    boolean foundIllegalAccess -> c
    1:1:void <clinit>():1717:1717 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):1726:1726 -> <init>
    2:11:void <init>(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexClass):1719:1728 -> <init>
    1:1:boolean foundIllegalAccess():1732:1732 -> a
    2:2:void setContext(com.android.tools.r8.graph.DexEncodedMethod):1736:1736 -> a
    3:6:boolean registerInvokeDirect(com.android.tools.r8.graph.DexMethod):1799:1802 -> a
    7:7:boolean registerInstanceFieldRead(com.android.tools.r8.graph.DexField):1836:1836 -> a
    1:4:boolean registerInvokeInterface(com.android.tools.r8.graph.DexMethod):1815:1818 -> b
    5:5:boolean registerInstanceFieldWrite(com.android.tools.r8.graph.DexField):1831:1831 -> b
    1:4:boolean registerInvokeStatic(com.android.tools.r8.graph.DexMethod):1807:1810 -> c
    5:5:boolean registerNewInstance(com.android.tools.r8.graph.DexType):1841:1841 -> c
    6:6:boolean registerStaticFieldRead(com.android.tools.r8.graph.DexField):1846:1846 -> c
    1:4:boolean registerInvokeSuper(com.android.tools.r8.graph.DexMethod):1823:1826 -> d
    5:5:boolean registerStaticFieldWrite(com.android.tools.r8.graph.DexField):1851:1851 -> d
    6:6:boolean registerTypeReference(com.android.tools.r8.graph.DexType):1856:1856 -> d
    1:10:boolean checkFieldReference(com.android.tools.r8.graph.DexField):1740:1749 -> e
    11:17:boolean checkTypeReference(com.android.tools.r8.graph.DexType):1776:1782 -> e
    18:21:boolean registerInvokeVirtual(com.android.tools.r8.graph.DexMethod):1791:1794 -> e
    1:12:boolean checkMethodReference(com.android.tools.r8.graph.DexMethod):1757:1768 -> f
com.android.tools.r8.shaking.VerticalClassMerger$OverloadedMethodSignaturesRetriever -> com.android.tools.r8.shaking.Ga$c:
    com.android.tools.r8.com.google.common.base.Equivalence equivalence -> b
    java.util.Set mergeeCandidates -> c
    com.android.tools.r8.shaking.VerticalClassMerger this$0 -> d
    com.android.tools.r8.it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap cache -> a
    1:1:void <init>(com.android.tools.r8.shaking.VerticalClassMerger):519:519 -> <init>
    2:9:void <init>(com.android.tools.r8.shaking.VerticalClassMerger):514:521 -> <init>
    1:9:java.util.Collection get():526:534 -> a
    10:24:boolean protoMayReferenceMergedSourceOrTarget(com.android.tools.r8.graph.DexProto):565:579 -> a
    10:24:java.util.Collection get():535 -> a
    25:46:java.util.Collection get():536:557 -> a
    47:47:com.android.tools.r8.graph.DexProto lambda$get$0(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexString):542:542 -> a
    48:55:boolean typeMayReferenceMergedSourceOrTarget(com.android.tools.r8.graph.DexType):585:592 -> a
com.android.tools.r8.shaking.VerticalClassMerger$Rename -> com.android.tools.r8.shaking.Ia:
    com.android.tools.r8.shaking.VerticalClassMerger$Rename[] $VALUES -> d
    com.android.tools.r8.shaking.VerticalClassMerger$Rename IF_NEEDED -> b
    com.android.tools.r8.shaking.VerticalClassMerger$Rename ALWAYS -> a
    com.android.tools.r8.shaking.VerticalClassMerger$Rename NEVER -> c
    1:3:void <clinit>():195:197 -> <clinit>
    4:4:void <clinit>():194:194 -> <clinit>
    1:1:void <init>(java.lang.String,int):194:194 -> <init>
    1:1:com.android.tools.r8.shaking.VerticalClassMerger$Rename[] values():194:194 -> a
com.android.tools.r8.shaking.VerticalClassMerger$SingleTypeMapperGraphLense -> com.android.tools.r8.shaking.Ga$d:
    boolean $assertionsDisabled -> e
    com.android.tools.r8.shaking.VerticalClassMerger this$0 -> d
    com.android.tools.r8.graph.DexType target -> c
    com.android.tools.r8.graph.DexType source -> b
    1:1:void <clinit>():1635:1635 -> <clinit>
    1:3:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):1640:1642 -> <init>
    1:1:com.android.tools.r8.graph.DexType getOriginalType(com.android.tools.r8.graph.DexType):1647:1647 -> a
    2:2:com.android.tools.r8.graph.DexField getOriginalFieldSignature(com.android.tools.r8.graph.DexField):1652:1652 -> a
    3:3:com.android.tools.r8.graph.DexMethod getOriginalMethodSignature(com.android.tools.r8.graph.DexMethod):1657:1657 -> a
    4:21:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):1679:1696 -> a
    boolean isContextFreeForMethods() -> b
    1:1:com.android.tools.r8.graph.DexField getRenamedFieldSignature(com.android.tools.r8.graph.DexField):1662:1662 -> b
    2:2:com.android.tools.r8.graph.DexMethod getRenamedMethodSignature(com.android.tools.r8.graph.DexMethod):1667:1667 -> b
    3:3:com.android.tools.r8.graph.DexType lookupType(com.android.tools.r8.graph.DexType):1672:1672 -> b
    1:1:com.android.tools.r8.graph.DexField lookupField(com.android.tools.r8.graph.DexField):1706:1706 -> c
    1:1:com.android.tools.r8.graph.GraphLense$RewrittenPrototypeDescription lookupPrototypeChanges(com.android.tools.r8.graph.DexMethod):1701:1701 -> f
com.android.tools.r8.shaking.VerticalClassMerger$SynthesizedBridgeCode -> com.android.tools.r8.shaking.Ga$e:
    com.android.tools.r8.ir.code.Invoke$Type type -> f
    com.android.tools.r8.graph.DexMethod invocationTarget -> e
    boolean isInterface -> g
    com.android.tools.r8.graph.DexMethod originalMethod -> d
    com.android.tools.r8.graph.DexMethod method -> c
    1:6:void <init>(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type,boolean):1873:1878 -> <init>
    1:1:com.android.tools.r8.graph.DexMethod access$600(com.android.tools.r8.shaking.VerticalClassMerger$SynthesizedBridgeCode):1860:1860 -> a
    2:3:void updateMethodSignatures(java.util.function.Function):1893:1894 -> a
    4:8:com.android.tools.r8.ir.conversion.SourceCode lambda$getSourceCodeProvider$0(com.android.tools.r8.ir.code.Position):1900:1904 -> a
    9:19:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):1914:1924 -> a
    20:20:void lambda$getRegistryCallback$1(com.android.tools.r8.graph.UseRegistry):1916:1916 -> a
    1:1:java.util.function.Consumer getRegistryCallback():1913:1913 -> e
    1:1:com.android.tools.r8.ir.synthetic.AbstractSynthesizedCode$SourceCodeProvider getSourceCodeProvider():1899:1899 -> f
com.android.tools.r8.shaking.VerticalClassMerger$TreeFixer -> com.android.tools.r8.shaking.Ga$f:
    java.util.Map protoFixupCache -> b
    com.android.tools.r8.shaking.VerticalClassMerger this$0 -> c
    com.android.tools.r8.graph.GraphLense$Builder lense -> a
    1:4:void <init>(com.android.tools.r8.shaking.VerticalClassMerger):1410:1413 -> <init>
    1:4:void <init>(com.android.tools.r8.shaking.VerticalClassMerger,com.android.tools.r8.shaking.VerticalClassMerger$1):1410 -> <init>
    1:1:com.android.tools.r8.graph.GraphLense access$500(com.android.tools.r8.shaking.VerticalClassMerger$TreeFixer,com.android.tools.r8.graph.GraphLense):1410:1410 -> a
    2:15:com.android.tools.r8.graph.GraphLense fixupTypeReferences(com.android.tools.r8.graph.GraphLense):1417:1430 -> a
    16:22:void fixupMethods(java.util.List,com.android.tools.r8.graph.DexClass$MethodSetter):1437:1443 -> a
    23:31:void fixupFields(java.util.List,com.android.tools.r8.graph.DexClass$FieldSetter):1452:1460 -> a
    32:33:com.android.tools.r8.graph.DexMethod fixupMethod(com.android.tools.r8.graph.DexMethod):1466:1467 -> a
    34:37:com.android.tools.r8.graph.DexProto fixupProto(com.android.tools.r8.graph.DexProto):1471:1474 -> a
    34:37:com.android.tools.r8.graph.DexMethod fixupMethod(com.android.tools.r8.graph.DexMethod):1467 -> a
    38:40:com.android.tools.r8.graph.DexType[] fixupTypes(com.android.tools.r8.graph.DexType[]):1499:1501 -> a
    38:40:com.android.tools.r8.graph.DexProto fixupProto(com.android.tools.r8.graph.DexProto):1474 -> a
    38:40:com.android.tools.r8.graph.DexMethod fixupMethod(com.android.tools.r8.graph.DexMethod):1467 -> a
    41:42:com.android.tools.r8.graph.DexProto fixupProto(com.android.tools.r8.graph.DexProto):1475:1476 -> a
    41:42:com.android.tools.r8.graph.DexMethod fixupMethod(com.android.tools.r8.graph.DexMethod):1467 -> a
    43:43:com.android.tools.r8.graph.DexMethod fixupMethod(com.android.tools.r8.graph.DexMethod):1467:1467 -> a
    44:44:com.android.tools.r8.graph.DexMethod fixupMethod(com.android.tools.r8.graph.DexMethod):1466:1466 -> a
    45:55:com.android.tools.r8.graph.DexType fixupType(com.android.tools.r8.graph.DexType):1482:1492 -> a
com.android.tools.r8.shaking.VerticalClassMerger$VerticallyMergedClasses -> com.android.tools.r8.shaking.Ja:
    java.util.Map mergedClasses -> a
    java.util.Map sources -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():94:94 -> <clinit>
    1:1:void <init>(java.util.Map,com.android.tools.r8.shaking.VerticalClassMerger$1):94:94 -> <init>
    2:8:void <init>(java.util.Map):99:105 -> <init>
    1:1:void lambda$new$1(java.util.Map,com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):103:103 -> a
    2:2:java.util.List getSourcesFor(com.android.tools.r8.graph.DexType):109:109 -> a
    1:2:com.android.tools.r8.graph.DexType getTargetFor(com.android.tools.r8.graph.DexType):113:114 -> b
    1:1:boolean hasBeenMergedIntoSubtype(com.android.tools.r8.graph.DexType):118:118 -> c
    1:1:java.util.List lambda$new$0(com.android.tools.r8.graph.DexType):103:103 -> d
com.android.tools.r8.shaking.VerticalClassMergerGraphLense -> com.android.tools.r8.shaking.Ka:
    boolean $assertionsDisabled -> o
    java.util.Map originalMethodSignaturesForBridges -> n
    java.util.Map contextualVirtualToDirectMethodMaps -> l
    com.android.tools.r8.graph.AppView appView -> k
    java.util.Set mergedMethods -> m
    1:1:void <clinit>():50:50 -> <clinit>
    1:7:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,java.util.Map,java.util.Set,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap,java.util.Map,com.android.tools.r8.graph.GraphLense):70:76 -> <init>
    8:19:void <init>(com.android.tools.r8.graph.AppView,java.util.Map,java.util.Map,java.util.Set,java.util.Map,com.android.tools.r8.com.google.common.collect.BiMap,com.android.tools.r8.com.google.common.collect.BiMap,java.util.Map,com.android.tools.r8.graph.GraphLense):69:80 -> <init>
    1:1:com.android.tools.r8.graph.DexType getOriginalType(com.android.tools.r8.graph.DexType):85:85 -> a
    2:3:com.android.tools.r8.graph.DexMethod getOriginalMethodSignature(com.android.tools.r8.graph.DexMethod):90:91 -> a
    4:4:com.android.tools.r8.graph.DexMethod getOriginalMethodSignature(com.android.tools.r8.graph.DexMethod):90:90 -> a
    5:5:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):96:96 -> a
    6:12:boolean isContextFreeForMethod(com.android.tools.r8.graph.DexMethod):151:157 -> a
    6:12:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):96 -> a
    13:37:com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult lookupMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):96:120 -> a
    1:1:com.android.tools.r8.ir.code.Invoke$Type mapInvocationType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Invoke$Type):125:125 -> b
    2:2:boolean isContextFreeForMethods():146:146 -> b
    1:7:boolean isContextFreeForMethod(com.android.tools.r8.graph.DexMethod):151:157 -> c
    1:12:java.util.Set lookupMethodInAllContexts(com.android.tools.r8.graph.DexMethod):130:141 -> e
com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder -> com.android.tools.r8.shaking.Ka$a:
    java.util.Map methodMap -> b
    com.android.tools.r8.com.google.common.collect.BiMap fieldMap -> a
    java.util.Map contextualVirtualToDirectMethodMaps -> d
    com.android.tools.r8.com.google.common.collect.BiMap originalMethodSignatures -> e
    com.android.tools.r8.com.google.common.collect.ImmutableSet$Builder mergedMethodsBuilder -> c
    boolean $assertionsDisabled -> g
    java.util.Map originalMethodSignaturesForBridges -> f
    1:1:void <clinit>():164:164 -> <clinit>
    1:10:void <init>():164:173 -> <init>
    1:14:com.android.tools.r8.graph.GraphLense build(com.android.tools.r8.graph.GraphLense,java.util.Map,com.android.tools.r8.graph.AppView):180:193 -> a
    15:18:java.util.Set getMergedMethodSignaturesAfterClassMerging(java.util.Set,java.util.Map,com.android.tools.r8.graph.DexItemFactory,java.util.Map):209:212 -> a
    15:18:com.android.tools.r8.graph.GraphLense build(com.android.tools.r8.graph.GraphLense,java.util.Map,com.android.tools.r8.graph.AppView):192 -> a
    19:22:java.util.Set getMergedMethodSignaturesAfterClassMerging(java.util.Set,java.util.Map,com.android.tools.r8.graph.DexItemFactory,java.util.Map):211:214 -> a
    19:22:com.android.tools.r8.graph.GraphLense build(com.android.tools.r8.graph.GraphLense,java.util.Map,com.android.tools.r8.graph.AppView):192 -> a
    23:23:com.android.tools.r8.graph.GraphLense build(com.android.tools.r8.graph.GraphLense,java.util.Map,com.android.tools.r8.graph.AppView):192:192 -> a
    24:34:com.android.tools.r8.graph.DexMethod getMethodSignatureAfterClassMerging(com.android.tools.r8.graph.DexMethod,java.util.Map,com.android.tools.r8.graph.DexItemFactory,java.util.Map):222:232 -> a
    35:43:com.android.tools.r8.graph.DexType getTypeAfterClassMerging(com.android.tools.r8.graph.DexType,java.util.Map,com.android.tools.r8.graph.DexItemFactory):237:245 -> a
    35:43:com.android.tools.r8.graph.DexType lambda$getMethodSignatureAfterClassMerging$0(java.util.Map,com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexType):227 -> a
    44:47:boolean hasMappingForSignatureInContext(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexMethod):249:252 -> a
    48:48:void markMethodAsMerged(com.android.tools.r8.graph.DexMethod):258:258 -> a
    49:49:void map(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):266:266 -> a
    50:52:void mapVirtualMethodToDirectInType(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.GraphLense$GraphLenseLookupResult,com.android.tools.r8.graph.DexType):279:281 -> a
    53:53:java.util.Map lambda$mapVirtualMethodToDirectInType$1(com.android.tools.r8.graph.DexType):280:280 -> a
    54:67:void merge(com.android.tools.r8.shaking.VerticalClassMergerGraphLense$Builder):285:298 -> a
    1:1:void recordCreationOfBridgeMethod(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):274:274 -> b
    1:1:void recordMove(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):270:270 -> c
com.android.tools.r8.shaking.WhyAreYouKeepingConsumer -> com.android.tools.r8.shaking.WhyAreYouKeepingConsumer:
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():43:43 -> <clinit>
    1:1:void <init>(com.android.tools.r8.experimental.graphinfo.GraphConsumer):58:58 -> <init>
    1:2:com.android.tools.r8.experimental.graphinfo.ClassGraphNode getClassNode(com.android.tools.r8.references.ClassReference):62:63 -> a
    3:4:com.android.tools.r8.experimental.graphinfo.MethodGraphNode getMethodNode(com.android.tools.r8.references.MethodReference):71:72 -> a
    5:6:com.android.tools.r8.experimental.graphinfo.FieldGraphNode getFieldNode(com.android.tools.r8.references.FieldReference):80:81 -> a
    7:7:void printWhyAreYouKeeping(com.android.tools.r8.experimental.graphinfo.GraphNode,java.io.PrintStream):104:104 -> a
    8:27:java.util.List findShortestPathTo(com.android.tools.r8.experimental.graphinfo.GraphNode):132:151 -> a
    8:27:void printWhyAreYouKeeping(com.android.tools.r8.experimental.graphinfo.GraphNode,java.io.PrintStream):105 -> a
    28:29:void printNothingKeeping(com.android.tools.r8.experimental.graphinfo.GraphNode,java.io.PrintStream):119:120 -> a
    28:29:void printWhyAreYouKeeping(com.android.tools.r8.experimental.graphinfo.GraphNode,java.io.PrintStream):107 -> a
    30:33:void printWhyAreYouKeeping(com.android.tools.r8.experimental.graphinfo.GraphNode,java.io.PrintStream):110:113 -> a
    34:34:void printEdge(com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$Formatter):197:197 -> a
    34:34:void printWhyAreYouKeeping(com.android.tools.r8.experimental.graphinfo.GraphNode,java.io.PrintStream):113 -> a
    35:36:void addNodeMessage(com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$Formatter):240:241 -> a
    35:36:void printEdge(com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$Formatter):198 -> a
    35:36:void printWhyAreYouKeeping(com.android.tools.r8.experimental.graphinfo.GraphNode,java.io.PrintStream):113 -> a
    37:37:void printWhyAreYouKeeping(com.android.tools.r8.experimental.graphinfo.GraphNode,java.io.PrintStream):115:115 -> a
    38:39:java.util.List findShortestPathTo(com.android.tools.r8.experimental.graphinfo.GraphNode):153:154 -> a
    38:39:void printWhyAreYouKeeping(com.android.tools.r8.experimental.graphinfo.GraphNode,java.io.PrintStream):105 -> a
    40:53:java.util.List getCanonicalPath(com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$GraphPath,com.android.tools.r8.experimental.graphinfo.GraphNode):165:178 -> a
    54:62:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo getCanonicalInfo(java.util.Set):185:193 -> a
    63:63:com.android.tools.r8.experimental.graphinfo.GraphEdgeInfo getCanonicalInfo(java.util.Set):192:192 -> a
    1:3:java.lang.String getNodeString(com.android.tools.r8.experimental.graphinfo.GraphNode):202:204 -> c
    4:15:java.lang.String getNodeString(com.android.tools.r8.experimental.graphinfo.GraphNode):203:214 -> c
    16:33:java.lang.String getNodeString(com.android.tools.r8.experimental.graphinfo.GraphNode):213:230 -> c
    34:38:java.lang.String shortPositionInfo(com.android.tools.r8.position.Position):246:250 -> c
    34:38:java.lang.String getNodeString(com.android.tools.r8.experimental.graphinfo.GraphNode):230 -> c
    39:45:java.lang.String getNodeString(com.android.tools.r8.experimental.graphinfo.GraphNode):230:236 -> c
    46:46:java.lang.String getNodeString(com.android.tools.r8.experimental.graphinfo.GraphNode):235:235 -> c
    1:2:void printWhyAreYouKeeping(com.android.tools.r8.references.ClassReference,java.io.PrintStream):89:90 -> printWhyAreYouKeeping
    3:4:void printWhyAreYouKeeping(com.android.tools.r8.references.MethodReference,java.io.PrintStream):94:95 -> printWhyAreYouKeeping
    5:6:void printWhyAreYouKeeping(com.android.tools.r8.references.FieldReference,java.io.PrintStream):99:100 -> printWhyAreYouKeeping
com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$Formatter -> com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$a:
    java.io.PrintStream output -> a
    int indentation -> b
    1:1:void <init>(java.io.PrintStream):257:257 -> <init>
    2:5:void <init>(java.io.PrintStream):255:258 -> <init>
    1:3:void addMessage(java.lang.String):280:282 -> a
    4:4:void endItem():286:286 -> a
    1:2:void indent():268:269 -> b
    3:5:void addReason(java.lang.String):274:276 -> b
    1:3:void startItem(java.lang.String):262:264 -> c
com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$GraphPath -> com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$b:
    com.android.tools.r8.experimental.graphinfo.GraphNode node -> a
    com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$GraphPath path -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():46:46 -> <clinit>
    1:4:void <init>(com.android.tools.r8.experimental.graphinfo.GraphNode,com.android.tools.r8.shaking.WhyAreYouKeepingConsumer$GraphPath):50:53 -> <init>
com.android.tools.r8.utils.AbortException -> com.android.tools.r8.utils.AbortException:
    1:1:void <init>():12:12 -> <init>
    2:2:void <init>(java.lang.String):17:17 -> <init>
com.android.tools.r8.utils.Action -> com.android.tools.r8.utils.a:
com.android.tools.r8.utils.AndroidApiLevel -> com.android.tools.r8.utils.AndroidApiLevel:
    com.android.tools.r8.utils.AndroidApiLevel[] $VALUES -> s
    com.android.tools.r8.utils.AndroidApiLevel Q -> b
    com.android.tools.r8.utils.AndroidApiLevel K_WATCH -> c
    int level -> a
    com.android.tools.r8.utils.AndroidApiLevel J -> f
    com.android.tools.r8.utils.AndroidApiLevel H_MR2 -> g
    com.android.tools.r8.utils.AndroidApiLevel J_MR2 -> d
    com.android.tools.r8.utils.AndroidApiLevel J_MR1 -> e
    com.android.tools.r8.utils.AndroidApiLevel G_MR1 -> j
    com.android.tools.r8.utils.AndroidApiLevel G -> k
    com.android.tools.r8.utils.AndroidApiLevel H_MR1 -> h
    com.android.tools.r8.utils.AndroidApiLevel H -> i
    com.android.tools.r8.utils.AndroidApiLevel E_0_1 -> n
    com.android.tools.r8.utils.AndroidApiLevel E -> o
    com.android.tools.r8.utils.AndroidApiLevel F -> l
    com.android.tools.r8.utils.AndroidApiLevel E_MR1 -> m
    com.android.tools.r8.utils.AndroidApiLevel LATEST -> r
    com.android.tools.r8.utils.AndroidApiLevel C -> p
    com.android.tools.r8.utils.AndroidApiLevel B_1_1 -> q
    1:29:void <clinit>():12:40 -> <clinit>
    30:61:void <clinit>():11:42 -> <clinit>
    1:2:void <init>(java.lang.String,int,int):46:47 -> <init>
    1:1:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):143:143 -> getAndroidApiLevel
    2:2:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):141:141 -> getAndroidApiLevel
    3:3:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):139:139 -> getAndroidApiLevel
    4:4:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):137:137 -> getAndroidApiLevel
    5:5:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):135:135 -> getAndroidApiLevel
    6:6:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):133:133 -> getAndroidApiLevel
    7:7:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):131:131 -> getAndroidApiLevel
    8:8:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):129:129 -> getAndroidApiLevel
    9:9:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):127:127 -> getAndroidApiLevel
    10:10:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):125:125 -> getAndroidApiLevel
    11:11:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):123:123 -> getAndroidApiLevel
    12:12:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):121:121 -> getAndroidApiLevel
    13:13:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):119:119 -> getAndroidApiLevel
    14:14:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):117:117 -> getAndroidApiLevel
    15:15:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):115:115 -> getAndroidApiLevel
    16:16:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):113:113 -> getAndroidApiLevel
    17:17:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):111:111 -> getAndroidApiLevel
    18:18:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):109:109 -> getAndroidApiLevel
    19:19:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):107:107 -> getAndroidApiLevel
    20:20:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):105:105 -> getAndroidApiLevel
    21:21:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):103:103 -> getAndroidApiLevel
    22:22:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):101:101 -> getAndroidApiLevel
    23:23:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):99:99 -> getAndroidApiLevel
    24:24:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):97:97 -> getAndroidApiLevel
    25:25:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):95:95 -> getAndroidApiLevel
    26:26:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):93:93 -> getAndroidApiLevel
    27:27:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):91:91 -> getAndroidApiLevel
    28:28:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):89:89 -> getAndroidApiLevel
    29:29:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):87:87 -> getAndroidApiLevel
    30:30:com.android.tools.r8.utils.AndroidApiLevel getAndroidApiLevel(int):85:85 -> getAndroidApiLevel
    1:1:com.android.tools.r8.utils.AndroidApiLevel getDefault():59:59 -> getDefault
    1:1:com.android.tools.r8.utils.DexVersion getDexVersion():63:63 -> getDexVersion
    1:1:int getLevel():51:51 -> getLevel
    1:1:java.lang.String getName():55:55 -> getName
com.android.tools.r8.utils.AndroidApp -> com.android.tools.r8.utils.AndroidApp:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.StringResource proguardMapOutputData -> f
    com.android.tools.r8.com.google.common.collect.ImmutableList archiveProvidersToClose -> e
    com.android.tools.r8.com.google.common.collect.ImmutableMap programResourcesMainDescriptor -> b
    java.util.List mainDexClasses -> h
    java.util.List mainDexListResources -> g
    com.android.tools.r8.com.google.common.collect.ImmutableList programResourceProviders -> a
    com.android.tools.r8.com.google.common.collect.ImmutableList libraryResourceProviders -> d
    com.android.tools.r8.com.google.common.collect.ImmutableList classpathResourceProviders -> c
    1:1:void <clinit>():55:55 -> <clinit>
    1:1:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableMap,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.StringResource,java.util.List,java.util.List,com.android.tools.r8.utils.AndroidApp$1):55:55 -> <init>
    2:12:void <init>(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableMap,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.StringResource,java.util.List,java.util.List):136:146 -> <init>
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$200(com.android.tools.r8.utils.AndroidApp):55:55 -> a
    2:3:void closeInternalArchiveProviders():70:71 -> a
    4:7:void printClassFileProviders(java.lang.StringBuilder,java.util.Collection):109:112 -> a
    8:14:void printProgramResource(java.lang.StringBuilder,com.android.tools.r8.ProgramResource):118:124 -> a
    15:16:boolean verifyInternalProvidersInCloseSet(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.com.google.common.collect.ImmutableList):152:153 -> a
    17:17:boolean lambda$verifyInternalProvidersInCloseSet$0(com.android.tools.r8.com.google.common.collect.ImmutableList,com.android.tools.r8.ClassFileResourceProvider):154:154 -> a
    18:18:com.android.tools.r8.utils.AndroidApp$Builder builder(com.android.tools.r8.utils.Reporter):170:170 -> a
    19:19:com.android.tools.r8.utils.AndroidApp$Builder builder(com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.Reporter):182:182 -> a
    20:24:java.util.List filter(java.util.List,com.android.tools.r8.ProgramResource$Kind):267:271 -> a
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$300(com.android.tools.r8.utils.AndroidApp):55:55 -> b
    2:4:java.util.Collection computeAllProgramResources():187:189 -> b
    1:1:com.android.tools.r8.utils.Reporter defaultReporter():158:158 -> builder
    1:1:com.android.tools.r8.utils.AndroidApp$Builder builder():165 -> builder
    2:2:com.android.tools.r8.utils.AndroidApp$Builder builder():165:165 -> builder
    3:3:com.android.tools.r8.utils.Reporter defaultReporter():158:158 -> builder
    3:3:com.android.tools.r8.utils.AndroidApp$Builder builder(com.android.tools.r8.utils.AndroidApp):177 -> builder
    4:4:com.android.tools.r8.utils.AndroidApp$Builder builder(com.android.tools.r8.utils.AndroidApp):177:177 -> builder
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$400(com.android.tools.r8.utils.AndroidApp):55:55 -> c
    2:6:java.util.Set getDataEntryResourcesForTesting():221:225 -> c
    1:1:com.android.tools.r8.com.google.common.collect.ImmutableList access$500(com.android.tools.r8.utils.AndroidApp):55:55 -> d
    2:2:java.util.List getMainDexClasses():313:313 -> d
    1:1:java.util.List access$600(com.android.tools.r8.utils.AndroidApp):55:55 -> e
    2:2:java.util.List getMainDexListResources():306:306 -> e
    1:1:java.util.List access$700(com.android.tools.r8.utils.AndroidApp):55:55 -> f
    2:2:boolean hasMainDexList():292:292 -> f
    1:9:com.android.tools.r8.utils.AndroidApp withoutMainDexList():318:326 -> g
    1:6:java.util.List getClassProgramResourcesForTesting():210:215 -> getClassProgramResourcesForTesting
    1:1:java.util.List getClasspathResourceProviders():257:257 -> getClasspathResourceProviders
    1:6:java.util.List getDexProgramResourcesForTesting():197:202 -> getDexProgramResourcesForTesting
    1:1:java.util.List getLibraryResourceProviders():262:262 -> getLibraryResourceProviders
    1:2:java.lang.String getPrimaryClassDescriptor(com.android.tools.r8.Resource):380:381 -> getPrimaryClassDescriptor
    1:1:java.util.List getProgramResourceProviders():252:252 -> getProgramResourceProviders
    1:1:com.android.tools.r8.StringResource getProguardMapOutputData():285:285 -> getProguardMapOutputData
    1:1:boolean hasMainDexListResources():299:299 -> hasMainDexListResources
    1:5:java.lang.String toString():77:81 -> toString
    6:8:void printProgramResourceProviders(java.lang.StringBuilder,java.util.Collection):100:102 -> toString
    6:8:java.lang.String toString():81 -> toString
    9:20:java.lang.String toString():83:94 -> toString
    1:4:void write(java.nio.file.Path,com.android.tools.r8.OutputMode):333:336 -> write
    1:10:void writeToDirectory(java.nio.file.Path,com.android.tools.r8.OutputMode):344:353 -> writeToDirectory
    1:3:void writeToZip(java.nio.file.Path,com.android.tools.r8.OutputMode):360:362 -> writeToZip
    4:12:void writeToZip(java.nio.file.Path,com.android.tools.r8.OutputMode):361:369 -> writeToZip
    13:19:void writeToZip(java.nio.file.Path,com.android.tools.r8.OutputMode):368:374 -> writeToZip
com.android.tools.r8.utils.AndroidApp$1 -> com.android.tools.r8.utils.b:
    java.util.Set val$out -> a
    1:1:void <init>(com.android.tools.r8.utils.AndroidApp,java.util.Set):226:226 -> <init>
    1:6:void visit(com.android.tools.r8.DataEntryResource):236:241 -> visit
com.android.tools.r8.utils.AndroidApp$Builder -> com.android.tools.r8.utils.AndroidApp$Builder:
    boolean $assertionsDisabled -> m
    boolean ignoreDexInArchive -> j
    com.android.tools.r8.StringResource proguardMapOutputData -> k
    java.util.List programResources -> b
    com.android.tools.r8.utils.Reporter reporter -> l
    java.util.List programResourceProviders -> a
    java.util.Map programResourcesMainDescriptor -> d
    java.util.List libraryResourceProviders -> f
    java.util.List classpathResourceProviders -> e
    java.util.List dataResources -> c
    java.util.List mainDexListClasses -> i
    java.util.List mainDexListResources -> h
    java.util.List archiveProvidersToClose -> g
    1:1:void <clinit>():387:387 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.AndroidApp$1):387:387 -> <init>
    2:2:void <init>(com.android.tools.r8.utils.Reporter):407:407 -> <init>
    3:22:void <init>(com.android.tools.r8.utils.Reporter):389:408 -> <init>
    23:29:void <init>(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.AndroidApp):413:419 -> <init>
    23:29:void <init>(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.AndroidApp,com.android.tools.r8.utils.AndroidApp$1):387 -> <init>
    1:1:com.android.tools.r8.utils.AndroidApp$Builder addClasspathFile(java.nio.file.Path):471:471 -> a
    2:2:com.android.tools.r8.utils.AndroidApp$Builder addClasspathResourceProvider(com.android.tools.r8.ClassFileResourceProvider):479:479 -> a
    3:4:com.android.tools.r8.utils.AndroidApp$Builder addLibraryFiles(java.util.Collection):490:491 -> a
    5:6:com.android.tools.r8.utils.AndroidApp$Builder addDexProgramData(byte[],java.util.Set):529:530 -> a
    7:7:com.android.tools.r8.utils.AndroidApp$Builder addDexProgramData(byte[],java.util.Set):529:529 -> a
    8:8:com.android.tools.r8.utils.AndroidApp$Builder addDexProgramData(byte[],java.util.Set,java.lang.String):542:542 -> a
    9:12:com.android.tools.r8.utils.AndroidApp$Builder addDexProgramData(byte[],java.util.Set,java.lang.String):541:544 -> a
    13:13:com.android.tools.r8.utils.AndroidApp$Builder setProguardMapOutputData(java.lang.String):601:601 -> a
    14:14:com.android.tools.r8.utils.AndroidApp$Builder addMainDexListFiles(java.nio.file.Path[]):609:609 -> a
    15:15:com.android.tools.r8.utils.AndroidApp$Builder addMainDexClasses(java.lang.String[]):628:628 -> a
    16:16:com.android.tools.r8.utils.AndroidApp$Builder setIgnoreDexInArchive(boolean):651:651 -> a
    17:17:void addProgramResources(com.android.tools.r8.ProgramResource[]):723:723 -> a
    18:18:void addProgramResources(java.util.Collection):727:727 -> a
    18:18:void addProgramResources(com.android.tools.r8.ProgramResource[]):723 -> a
    19:22:void addClasspathOrLibraryProvider(java.nio.file.Path,java.util.List):740:743 -> a
    23:38:void addClasspathOrLibraryProvider(java.nio.file.Path,java.util.List):741:756 -> a
    39:39:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):29:29 -> a
    39:39:void addClasspathOrLibraryProvider(java.nio.file.Path,java.util.List):756 -> a
    40:40:void addClasspathOrLibraryProvider(java.nio.file.Path,java.util.List):756:756 -> a
    41:41:java.util.List getProgramResourceProviders():761:761 -> a
    1:2:com.android.tools.r8.utils.AndroidApp$Builder addClassProgramData(java.util.Collection):570:571 -> addClassProgramData
    3:3:com.android.tools.r8.utils.AndroidApp$Builder addClassProgramData(byte[],com.android.tools.r8.origin.Origin):580:580 -> addClassProgramData
    4:4:com.android.tools.r8.utils.AndroidApp$Builder addClassProgramData(byte[],com.android.tools.r8.origin.Origin,java.util.Set):584:584 -> addClassProgramData
    1:1:com.android.tools.r8.utils.AndroidApp$Builder addDataResource(com.android.tools.r8.DataResource):590:590 -> addDataResource
    2:2:void addDataResources(com.android.tools.r8.DataResource[]):731:731 -> addDataResource
    2:2:com.android.tools.r8.utils.AndroidApp$Builder addDataResource(com.android.tools.r8.DataResource):590 -> addDataResource
    3:3:void addDataResources(java.util.Collection):735:735 -> addDataResource
    3:3:void addDataResources(com.android.tools.r8.DataResource[]):731 -> addDataResource
    3:3:com.android.tools.r8.utils.AndroidApp$Builder addDataResource(com.android.tools.r8.DataResource):590 -> addDataResource
    1:1:com.android.tools.r8.utils.AndroidApp$Builder addDexProgramData(byte[],com.android.tools.r8.origin.Origin):552:552 -> addDexProgramData
    1:8:com.android.tools.r8.utils.AndroidApp$Builder addFilteredLibraryArchives(java.util.Collection):504:511 -> addFilteredLibraryArchives
    1:5:com.android.tools.r8.utils.AndroidApp$Builder addFilteredProgramArchives(java.util.Collection):441:445 -> addFilteredProgramArchives
    1:1:com.android.tools.r8.utils.AndroidApp$Builder addLibraryFile(java.nio.file.Path):498:498 -> addLibraryFile
    1:1:com.android.tools.r8.utils.AndroidApp$Builder addLibraryFiles(java.nio.file.Path[]):485:485 -> addLibraryFiles
    1:1:com.android.tools.r8.utils.AndroidApp$Builder addLibraryResourceProvider(com.android.tools.r8.ClassFileResourceProvider):521:521 -> addLibraryResourceProvider
    1:13:com.android.tools.r8.utils.AndroidApp$Builder addProgramFile(java.nio.file.Path):705:717 -> addProgramFile
    14:14:void com.android.tools.r8.errors.CompilationError.<init>(java.lang.String,com.android.tools.r8.origin.Origin):29:29 -> addProgramFile
    14:14:com.android.tools.r8.utils.AndroidApp$Builder addProgramFile(java.nio.file.Path):717 -> addProgramFile
    15:15:com.android.tools.r8.utils.AndroidApp$Builder addProgramFile(java.nio.file.Path):717:717 -> addProgramFile
    1:1:com.android.tools.r8.utils.AndroidApp$Builder addProgramFiles(java.nio.file.Path[]):428:428 -> addProgramFiles
    2:3:com.android.tools.r8.utils.AndroidApp$Builder addProgramFiles(java.util.Collection):433:434 -> addProgramFiles
    1:2:com.android.tools.r8.utils.AndroidApp$Builder addProgramResourceProvider(com.android.tools.r8.ProgramResourceProvider):451:452 -> addProgramResourceProvider
    1:1:com.android.tools.r8.utils.Reporter getReporter():423:423 -> b
    2:2:com.android.tools.r8.utils.AndroidApp$Builder addMainDexClasses(java.util.Collection):635:635 -> b
    1:40:com.android.tools.r8.utils.AndroidApp build():659:698 -> build
    1:7:com.android.tools.r8.utils.AndroidApp$Builder addMainDexListFiles(java.util.Collection):613:619 -> c
    8:8:com.android.tools.r8.utils.AndroidApp$Builder addMainDexListFiles(java.util.Collection):615:615 -> c
    9:9:boolean hasMainDexList():640:640 -> c
com.android.tools.r8.utils.AndroidApp$Builder$1 -> com.android.tools.r8.utils.d:
    java.util.List val$finalDataResources -> b
    java.util.List val$finalProgramResources -> a
    1:1:void <init>(com.android.tools.r8.utils.AndroidApp$Builder,java.util.List,java.util.List):664:664 -> <init>
    1:2:com.android.tools.r8.DataResourceProvider getDataResourceProvider():672:673 -> getDataResourceProvider
    1:1:java.util.Collection getProgramResources():667:667 -> getProgramResources
com.android.tools.r8.utils.AndroidApp$Builder$1$1 -> com.android.tools.r8.utils.c:
    com.android.tools.r8.utils.AndroidApp$Builder$1 this$1 -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():673:673 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.AndroidApp$Builder$1):673:673 -> <init>
    1:6:void accept(com.android.tools.r8.DataResourceProvider$Visitor):676:681 -> accept
com.android.tools.r8.utils.AndroidAppConsumers -> com.android.tools.r8.utils.AndroidAppConsumers:
    com.android.tools.r8.utils.AndroidApp$Builder builder -> a
    boolean $assertionsDisabled -> e
    boolean closed -> b
    com.android.tools.r8.StringConsumer proguardMapConsumer -> d
    com.android.tools.r8.ProgramConsumer programConsumer -> c
    1:1:void <clinit>():30:30 -> <clinit>
    1:1:void <init>():38:38 -> <init>
    2:6:void <init>():32:36 -> <init>
    7:7:void <init>(com.android.tools.r8.BaseCompilerCommand$Builder):42:42 -> <init>
    8:19:void <init>(com.android.tools.r8.BaseCompilerCommand$Builder):32:43 -> <init>
    20:20:void <init>(com.android.tools.r8.utils.InternalOptions):46:46 -> <init>
    21:37:void <init>(com.android.tools.r8.utils.InternalOptions):32:48 -> <init>
    1:1:com.android.tools.r8.utils.AndroidApp$Builder access$000(com.android.tools.r8.utils.AndroidAppConsumers):30:30 -> a
    2:2:boolean access$102(com.android.tools.r8.utils.AndroidAppConsumers,boolean):30:30 -> a
    3:14:com.android.tools.r8.StringConsumer wrapProguardMapConsumer(com.android.tools.r8.StringConsumer):69:80 -> a
    15:87:com.android.tools.r8.DexFilePerClassFileConsumer wrapDexFilePerClassFileConsumer(com.android.tools.r8.DexFilePerClassFileConsumer):162:234 -> a
    1:1:boolean access$100(com.android.tools.r8.utils.AndroidAppConsumers):30:30 -> b
    1:2:com.android.tools.r8.utils.AndroidApp build():311:312 -> build
    1:68:com.android.tools.r8.ClassFileConsumer wrapClassFileConsumer(com.android.tools.r8.ClassFileConsumer):239:306 -> wrapClassFileConsumer
    1:73:com.android.tools.r8.DexIndexedConsumer wrapDexIndexedConsumer(com.android.tools.r8.DexIndexedConsumer):84:156 -> wrapDexIndexedConsumer
    1:14:com.android.tools.r8.ProgramConsumer wrapProgramConsumer(com.android.tools.r8.ProgramConsumer):52:65 -> wrapProgramConsumer
com.android.tools.r8.utils.AndroidAppConsumers$1 -> com.android.tools.r8.utils.e:
    com.android.tools.r8.utils.AndroidAppConsumers this$0 -> b
    1:1:void <init>(com.android.tools.r8.utils.AndroidAppConsumers,com.android.tools.r8.StringConsumer):72:72 -> <init>
    1:2:void accept(java.lang.String,com.android.tools.r8.DiagnosticsHandler):75:76 -> accept
com.android.tools.r8.utils.AndroidAppConsumers$2 -> com.android.tools.r8.utils.g:
    com.android.tools.r8.it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap files -> c
    com.android.tools.r8.DexIndexedConsumer val$consumer -> d
    com.android.tools.r8.utils.AndroidAppConsumers this$0 -> e
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():86:86 -> <clinit>
    1:4:void <init>(com.android.tools.r8.utils.AndroidAppConsumers,com.android.tools.r8.DexIndexedConsumer,com.android.tools.r8.DexIndexedConsumer):86:89 -> <init>
    1:1:void lambda$finished$0(java.lang.Integer,com.android.tools.r8.utils.AndroidAppConsumers$DescriptorsWithContents):107:107 -> a
    2:2:void addDexFile(int,byte[],java.util.Set):153:153 -> a
    1:2:void accept(int,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):98:99 -> accept
    1:7:void finished(com.android.tools.r8.DiagnosticsHandler):104:110 -> finished
    8:8:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():117:117 -> finished
    8:8:void finished(com.android.tools.r8.DiagnosticsHandler):110 -> finished
    1:2:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():117:118 -> getDataResourceConsumer
com.android.tools.r8.utils.AndroidAppConsumers$2$1 -> com.android.tools.r8.utils.f:
    com.android.tools.r8.utils.AndroidAppConsumers$2 this$1 -> b
    com.android.tools.r8.DataResourceConsumer val$dataResourceConsumer -> a
    1:1:void <init>(com.android.tools.r8.utils.AndroidAppConsumers$2,com.android.tools.r8.DataResourceConsumer):118:118 -> <init>
    1:2:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):123:124 -> accept
    3:11:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):131:139 -> accept
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):145:146 -> finished
com.android.tools.r8.utils.AndroidAppConsumers$3 -> com.android.tools.r8.utils.i:
    java.util.TreeMap files -> c
    com.android.tools.r8.utils.AndroidAppConsumers this$0 -> e
    com.android.tools.r8.DexFilePerClassFileConsumer val$consumer -> d
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():164:164 -> <clinit>
    1:4:void <init>(com.android.tools.r8.utils.AndroidAppConsumers,com.android.tools.r8.DexFilePerClassFileConsumer,com.android.tools.r8.DexFilePerClassFileConsumer):164:167 -> <init>
    1:1:void addDexFile(java.lang.String,byte[],java.util.Set):181:181 -> a
    2:2:void lambda$finished$0(java.lang.String,com.android.tools.r8.utils.AndroidAppConsumers$DescriptorsWithContents):189:189 -> a
    1:2:void accept(java.lang.String,com.android.tools.r8.ByteDataView,java.util.Set,com.android.tools.r8.DiagnosticsHandler):175:176 -> accept
    1:7:void finished(com.android.tools.r8.DiagnosticsHandler):186:192 -> finished
    8:8:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():199:199 -> finished
    8:8:void finished(com.android.tools.r8.DiagnosticsHandler):192 -> finished
    1:2:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():199:200 -> getDataResourceConsumer
com.android.tools.r8.utils.AndroidAppConsumers$3$1 -> com.android.tools.r8.utils.h:
    com.android.tools.r8.utils.AndroidAppConsumers$3 this$1 -> b
    com.android.tools.r8.DataResourceConsumer val$dataResourceConsumer -> a
    1:1:void <init>(com.android.tools.r8.utils.AndroidAppConsumers$3,com.android.tools.r8.DataResourceConsumer):200:200 -> <init>
    1:2:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):205:206 -> accept
    3:11:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):213:221 -> accept
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):227:228 -> finished
com.android.tools.r8.utils.AndroidAppConsumers$4 -> com.android.tools.r8.utils.k:
    com.android.tools.r8.ClassFileConsumer val$consumer -> d
    com.android.tools.r8.utils.AndroidAppConsumers this$0 -> e
    java.util.List files -> c
    boolean $assertionsDisabled -> f
    1:1:void <clinit>():241:241 -> <clinit>
    1:3:void <init>(com.android.tools.r8.utils.AndroidAppConsumers,com.android.tools.r8.ClassFileConsumer,com.android.tools.r8.ClassFileConsumer):241:243 -> <init>
    1:1:void addClassFile(byte[],java.lang.String):252:252 -> a
    2:2:void lambda$finished$0(com.android.tools.r8.utils.AndroidAppConsumers$DescriptorsWithContents):261:261 -> a
    1:2:void accept(com.android.tools.r8.ByteDataView,java.lang.String,com.android.tools.r8.DiagnosticsHandler):247:248 -> accept
    1:8:void finished(com.android.tools.r8.DiagnosticsHandler):257:264 -> finished
    9:9:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():271:271 -> finished
    9:9:void finished(com.android.tools.r8.DiagnosticsHandler):264 -> finished
    1:2:com.android.tools.r8.DataResourceConsumer getDataResourceConsumer():271:272 -> getDataResourceConsumer
com.android.tools.r8.utils.AndroidAppConsumers$4$1 -> com.android.tools.r8.utils.j:
    com.android.tools.r8.utils.AndroidAppConsumers$4 this$1 -> b
    com.android.tools.r8.DataResourceConsumer val$dataResourceConsumer -> a
    1:1:void <init>(com.android.tools.r8.utils.AndroidAppConsumers$4,com.android.tools.r8.DataResourceConsumer):272:272 -> <init>
    1:2:void accept(com.android.tools.r8.DataDirectoryResource,com.android.tools.r8.DiagnosticsHandler):277:278 -> accept
    3:11:void accept(com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):285:293 -> accept
    1:2:void finished(com.android.tools.r8.DiagnosticsHandler):299:300 -> finished
com.android.tools.r8.utils.AndroidAppConsumers$DescriptorsWithContents -> com.android.tools.r8.utils.AndroidAppConsumers$a:
    byte[] contents -> b
    java.util.Set descriptors -> a
    1:3:void <init>(java.util.Set,byte[]):320:322 -> <init>
    1:3:void <init>(java.util.Set,byte[],com.android.tools.r8.utils.AndroidAppConsumers$1):315 -> <init>
com.android.tools.r8.utils.ArchiveBuilder -> com.android.tools.r8.utils.n:
    boolean $assertionsDisabled -> i
    com.android.tools.r8.origin.Origin origin -> b
    java.util.zip.ZipOutputStream stream -> c
    int classesFileIndex -> f
    int openCount -> e
    java.nio.file.Path archive -> a
    java.util.SortedSet delayedWrites -> h
    java.util.Map delayedClassesDexFiles -> g
    boolean closed -> d
    1:1:void <clinit>():28:28 -> <clinit>
    1:1:void <init>(java.nio.file.Path):38:38 -> <init>
    2:11:void <init>(java.nio.file.Path):31:40 -> <init>
    1:3:void close(com.android.tools.r8.DiagnosticsHandler):51:53 -> a
    4:11:void writeDelayed(com.android.tools.r8.DiagnosticsHandler):67:74 -> a
    4:11:void close(com.android.tools.r8.DiagnosticsHandler):54 -> a
    12:17:void close(com.android.tools.r8.DiagnosticsHandler):55:60 -> a
    18:23:java.util.zip.ZipOutputStream getStreamRaw():80:85 -> a
    24:29:void handleIOException(java.io.IOException,com.android.tools.r8.DiagnosticsHandler):100:105 -> a
    30:30:void addDirectory(java.lang.String,com.android.tools.r8.DiagnosticsHandler):111:111 -> a
    31:36:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):133:138 -> a
    37:37:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):137:137 -> a
    38:47:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):133:142 -> a
    48:48:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):141:141 -> a
    49:49:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):139:139 -> a
    50:50:void addFile(java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):148:148 -> a
    51:54:void addIndexedClassFile(int,java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):171:174 -> a
    55:59:void writeNextIfAvailable(com.android.tools.r8.DiagnosticsHandler):160:164 -> a
    55:59:void addIndexedClassFile(int,java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):175 -> a
    60:61:void addIndexedClassFile(int,java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):178:179 -> a
    62:62:void addIndexedClassFile(int,java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):178:178 -> a
    1:7:java.util.zip.ZipOutputStream getStream(com.android.tools.r8.DiagnosticsHandler):90:96 -> b
    8:21:void writeDirectoryNow(java.lang.String,com.android.tools.r8.DiagnosticsHandler):115:128 -> b
    22:24:void writeFileNow(java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):153:155 -> b
    1:1:com.android.tools.r8.origin.Origin getOrigin():185:185 -> getOrigin
    1:1:java.nio.file.Path getPath():190:190 -> getPath
    1:2:void open():45:46 -> open
com.android.tools.r8.utils.ArchiveBuilder$1 -> com.android.tools.r8.utils.l:
com.android.tools.r8.utils.ArchiveBuilder$DelayedData -> com.android.tools.r8.utils.m:
    com.android.tools.r8.ByteDataView content -> b
    java.lang.String name -> a
    boolean isDirectory -> c
    1:1:void <init>(java.lang.String,com.android.tools.r8.ByteDataView,boolean,com.android.tools.r8.utils.ArchiveBuilder$1):193:193 -> <init>
    2:5:void <init>(java.lang.String,com.android.tools.r8.ByteDataView,boolean):206:209 -> <init>
    1:1:com.android.tools.r8.utils.ArchiveBuilder$DelayedData createFile(java.lang.String,com.android.tools.r8.ByteDataView):199:199 -> a
    2:2:com.android.tools.r8.utils.ArchiveBuilder$DelayedData createDirectory(java.lang.String):203:203 -> a
    1:1:int compareTo(java.lang.Object):193:193 -> compareTo
    2:4:int compareTo(com.android.tools.r8.utils.ArchiveBuilder$DelayedData):215:217 -> compareTo
    2:4:int compareTo(java.lang.Object):193 -> compareTo
com.android.tools.r8.utils.ArchiveResourceProvider -> com.android.tools.r8.utils.ArchiveResourceProvider:
    com.android.tools.r8.origin.Origin origin -> a
    com.android.tools.r8.shaking.FilteredClassPath archive -> b
    boolean ignoreDexInArchive -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():35:35 -> <clinit>
    1:5:void <init>(com.android.tools.r8.shaking.FilteredClassPath,boolean):46:50 -> <init>
    1:15:java.util.List readArchive():54:68 -> a
    16:27:java.util.List readArchive():67:78 -> a
    28:36:java.util.List readArchive():74:82 -> a
    37:70:java.util.List readArchive():60:93 -> a
    71:101:java.util.List readArchive():56:86 -> a
    102:102:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):84:84 -> a
    1:6:void accept(com.android.tools.r8.DataResourceProvider$Visitor):112:117 -> accept
    7:7:boolean isProgramResourceName(java.lang.String):135:135 -> accept
    7:7:void accept(com.android.tools.r8.DataResourceProvider$Visitor):117 -> accept
    8:9:boolean com.android.tools.r8.utils.ZipUtils.isDexFile(java.lang.String):99:100 -> accept
    8:9:boolean isProgramResourceName(java.lang.String):135 -> accept
    8:9:void accept(com.android.tools.r8.DataResourceProvider$Visitor):117 -> accept
    10:10:boolean isProgramResourceName(java.lang.String):135:135 -> accept
    10:10:void accept(com.android.tools.r8.DataResourceProvider$Visitor):117 -> accept
    11:18:void accept(com.android.tools.r8.DataResourceProvider$Visitor):118:125 -> accept
    19:37:void accept(com.android.tools.r8.DataResourceProvider$Visitor):112:130 -> accept
    38:39:void accept(com.android.tools.r8.DataResourceProvider$Visitor):126:127 -> accept
    1:1:com.android.tools.r8.utils.ArchiveResourceProvider fromArchive(java.nio.file.Path,boolean):43:43 -> fromArchive
    2:2:com.android.tools.r8.shaking.FilteredClassPath com.android.tools.r8.shaking.FilteredClassPath.unfiltered(java.nio.file.Path):39:39 -> fromArchive
    2:2:com.android.tools.r8.utils.ArchiveResourceProvider fromArchive(java.nio.file.Path,boolean):43 -> fromArchive
    3:3:void com.android.tools.r8.shaking.FilteredClassPath.<init>(java.nio.file.Path):31:31 -> fromArchive
    3:3:com.android.tools.r8.shaking.FilteredClassPath com.android.tools.r8.shaking.FilteredClassPath.unfiltered(java.nio.file.Path):39 -> fromArchive
    3:3:com.android.tools.r8.utils.ArchiveResourceProvider fromArchive(java.nio.file.Path,boolean):43 -> fromArchive
    4:4:com.android.tools.r8.utils.ArchiveResourceProvider fromArchive(java.nio.file.Path,boolean):43:43 -> fromArchive
    1:3:java.util.Collection getProgramResources():99:101 -> getProgramResources
com.android.tools.r8.utils.ArrayUtils -> com.android.tools.r8.utils.ArrayUtils:
    1:10:java.lang.Object[] copyWithSparseChanges(java.lang.Class,java.lang.Object[],java.util.Map):25:34 -> copyWithSparseChanges
    1:20:java.lang.Object[] filter(java.lang.Class,java.lang.Object[],java.util.function.Predicate):50:69 -> filter
    21:21:java.lang.Object[] filter(java.lang.Class,java.lang.Object[],java.util.function.Predicate):68:68 -> filter
    1:24:java.lang.Object[] map(java.lang.Class,java.lang.Object[],java.util.function.Function):83:106 -> map
    25:25:java.lang.Object[] map(java.lang.Class,java.lang.Object[],java.util.function.Function):105:105 -> map
com.android.tools.r8.utils.BiMapContainer -> com.android.tools.r8.utils.BiMapContainer:
    1:3:void <init>(java.util.Map,java.util.Map):21:23 -> <init>
com.android.tools.r8.utils.BooleanUtils -> com.android.tools.r8.utils.BooleanUtils:
    java.lang.Boolean[] VALUES -> a
    1:1:void <clinit>():8:8 -> <clinit>
    1:1:java.lang.Boolean[] values():11:11 -> values
com.android.tools.r8.utils.CfgPrinter -> com.android.tools.r8.utils.CfgPrinter:
    java.util.Stack opened -> b
    java.lang.StringBuilder builder -> a
    int nextUnusedValue -> c
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():11:11 -> <clinit>
    1:7:void <init>():11:17 -> <init>
    1:1:com.android.tools.r8.utils.CfgPrinter append(int):55:55 -> a
    2:2:com.android.tools.r8.utils.CfgPrinter append(java.lang.String):60:60 -> a
    3:3:com.android.tools.r8.utils.CfgPrinter ln():70:70 -> a
    1:1:java.lang.String makeUnusedValue():20:20 -> b
    2:4:com.android.tools.r8.utils.CfgPrinter begin(java.lang.String):28:30 -> b
    5:6:com.android.tools.r8.utils.CfgPrinter print(int):43:44 -> b
    1:1:void resetUnusedValue():24:24 -> c
    2:5:com.android.tools.r8.utils.CfgPrinter end(java.lang.String):35:38 -> c
    1:2:com.android.tools.r8.utils.CfgPrinter print(java.lang.String):49:50 -> d
    3:3:com.android.tools.r8.utils.CfgPrinter sp():65:65 -> d
    1:2:void printIndent():75:76 -> e
    1:1:java.lang.String toString():82:82 -> toString
com.android.tools.r8.utils.ClassMap -> com.android.tools.r8.utils.q:
    java.util.concurrent.ConcurrentHashMap classes -> a
    java.util.concurrent.atomic.AtomicReference classProvider -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():34:34 -> <clinit>
    1:1:void <init>(java.util.concurrent.ConcurrentHashMap,com.android.tools.r8.utils.ClassProvider):58:58 -> <init>
    2:7:void <init>(java.util.concurrent.ConcurrentHashMap,com.android.tools.r8.utils.ClassProvider):56:61 -> <init>
    java.util.function.Supplier getTransparentSupplier(com.android.tools.r8.graph.DexClass) -> a
    com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass) -> a
    1:28:com.android.tools.r8.graph.DexClass get(com.android.tools.r8.graph.DexType):89:116 -> a
    29:29:com.android.tools.r8.graph.DexClass get(com.android.tools.r8.graph.DexType):114:114 -> a
    30:35:java.util.function.Supplier lambda$get$0(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexType):107:112 -> a
    36:46:java.util.List getAllClasses():123:133 -> a
    47:47:java.util.List getAllClasses():124:124 -> a
    48:106:void forceLoad(java.util.function.Predicate):166:224 -> a
    1:9:java.util.Map getAllClassesInMap():139:147 -> b
    10:10:java.util.Map getAllClassesInMap():140:140 -> b
    com.android.tools.r8.graph.ClassKind getClassKind() -> c
    1:1:java.lang.String toString():81:81 -> toString
com.android.tools.r8.utils.ClassMap$1 -> com.android.tools.r8.utils.o:
com.android.tools.r8.utils.ClassMap$ConcurrentClassLoader -> com.android.tools.r8.utils.p:
    boolean ready -> e
    boolean $assertionsDisabled -> f
    com.android.tools.r8.graph.DexType type -> c
    com.android.tools.r8.utils.ClassMap classMap -> a
    com.android.tools.r8.utils.ClassProvider provider -> b
    com.android.tools.r8.graph.DexClass clazz -> d
    1:1:void <clinit>():230:230 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.ClassMap,com.android.tools.r8.utils.ClassProvider,com.android.tools.r8.graph.DexType):239:239 -> <init>
    1:1:void <init>(com.android.tools.r8.utils.ClassMap,com.android.tools.r8.utils.ClassProvider,com.android.tools.r8.graph.DexType,com.android.tools.r8.utils.ClassMap$1):230 -> <init>
    2:8:void <init>(com.android.tools.r8.utils.ClassMap,com.android.tools.r8.utils.ClassProvider,com.android.tools.r8.graph.DexType):236:242 -> <init>
    2:8:void <init>(com.android.tools.r8.utils.ClassMap,com.android.tools.r8.utils.ClassProvider,com.android.tools.r8.graph.DexType,com.android.tools.r8.utils.ClassMap$1):230 -> <init>
    1:20:void lambda$get$0(com.android.tools.r8.graph.DexClass):255:274 -> a
    21:23:void lambda$get$0(com.android.tools.r8.graph.DexClass):260:262 -> a
    1:1:java.lang.Object get():230:230 -> get
    2:42:com.android.tools.r8.graph.DexClass get():247:287 -> get
    43:43:com.android.tools.r8.graph.DexClass get():283:283 -> get
com.android.tools.r8.utils.ClassProvider -> com.android.tools.r8.utils.v:
    com.android.tools.r8.graph.ClassKind classKind -> a
    1:2:void <init>(com.android.tools.r8.graph.ClassKind):30:31 -> <init>
    void collectClass(com.android.tools.r8.graph.DexType,java.util.function.Consumer) -> a
    java.util.Collection collectTypes() -> a
    1:1:com.android.tools.r8.utils.ClassProvider forClassFileResources(com.android.tools.r8.graph.ClassKind,com.android.tools.r8.ClassFileResourceProvider,com.android.tools.r8.graph.JarApplicationReader):62:62 -> a
    2:2:com.android.tools.r8.utils.ClassProvider combine(com.android.tools.r8.graph.ClassKind,java.util.List):78:78 -> a
    3:3:com.android.tools.r8.com.google.common.collect.ImmutableListMultimap$Builder com.android.tools.r8.com.google.common.collect.ImmutableListMultimap.builder():211:211 -> a
    3:3:com.android.tools.r8.utils.ClassProvider forPreloadedClasses(com.android.tools.r8.graph.ClassKind,java.util.Collection):68 -> a
    4:7:com.android.tools.r8.utils.ClassProvider forPreloadedClasses(com.android.tools.r8.graph.ClassKind,java.util.Collection):69:72 -> a
    1:1:com.android.tools.r8.graph.ClassKind getClassKind():36:36 -> b
com.android.tools.r8.utils.ClassProvider$1 -> com.android.tools.r8.utils.r:
com.android.tools.r8.utils.ClassProvider$ClassFileResourceReader -> com.android.tools.r8.utils.s:
    com.android.tools.r8.graph.JarApplicationReader reader -> d
    com.android.tools.r8.graph.ClassKind classKind -> b
    com.android.tools.r8.ClassFileResourceProvider provider -> c
    1:4:void <init>(com.android.tools.r8.graph.ClassKind,com.android.tools.r8.ClassFileResourceProvider,com.android.tools.r8.graph.JarApplicationReader):88:91 -> <init>
    1:4:void <init>(com.android.tools.r8.graph.ClassKind,com.android.tools.r8.ClassFileResourceProvider,com.android.tools.r8.graph.JarApplicationReader,com.android.tools.r8.utils.ClassProvider$1):81 -> <init>
    1:8:void collectClass(com.android.tools.r8.graph.DexType,java.util.function.Consumer):96:103 -> a
    9:11:void collectClass(com.android.tools.r8.graph.DexType,java.util.function.Consumer):102:104 -> a
    12:18:void collectClass(com.android.tools.r8.graph.DexType,java.util.function.Consumer):99:105 -> a
    19:21:java.util.Collection collectTypes():112:114 -> a
    1:1:java.lang.String toString():121:121 -> toString
com.android.tools.r8.utils.ClassProvider$CombinedClassProvider -> com.android.tools.r8.utils.t:
    java.util.List providers -> b
    1:2:void <init>(com.android.tools.r8.graph.ClassKind,java.util.List):155:156 -> <init>
    1:2:void <init>(com.android.tools.r8.graph.ClassKind,java.util.List,com.android.tools.r8.utils.ClassProvider$1):151 -> <init>
    1:2:void collectClass(com.android.tools.r8.graph.DexType,java.util.function.Consumer):161:162 -> a
    3:5:java.util.Collection collectTypes():168:170 -> a
    1:8:java.lang.String toString():177:184 -> toString
com.android.tools.r8.utils.ClassProvider$PreloadedClassProvider -> com.android.tools.r8.utils.u:
    com.android.tools.r8.com.google.common.collect.Multimap classes -> b
    1:2:void <init>(com.android.tools.r8.graph.ClassKind,com.android.tools.r8.com.google.common.collect.Multimap):129:130 -> <init>
    1:2:void <init>(com.android.tools.r8.graph.ClassKind,com.android.tools.r8.com.google.common.collect.Multimap,com.android.tools.r8.utils.ClassProvider$1):125 -> <init>
    1:2:void collectClass(com.android.tools.r8.graph.DexType,java.util.function.Consumer):135:136 -> a
    3:3:java.util.Collection collectTypes():142:142 -> a
    1:1:java.lang.String toString():147:147 -> toString
com.android.tools.r8.utils.ClasspathClassCollection -> com.android.tools.r8.utils.w:
    1:1:void <init>(com.android.tools.r8.utils.ClassProvider):14:14 -> <init>
    1:1:java.util.function.Supplier getTransparentSupplier(com.android.tools.r8.graph.DexClass):12:12 -> a
    2:2:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):12:12 -> a
    3:3:com.android.tools.r8.graph.DexClasspathClass resolveClassConflict(com.android.tools.r8.graph.DexClasspathClass,com.android.tools.r8.graph.DexClasspathClass):19:19 -> a
    3:3:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):12 -> a
    1:1:com.android.tools.r8.graph.ClassKind getClassKind():29:29 -> c
    1:1:java.lang.String toString():34:34 -> toString
com.android.tools.r8.utils.DescriptorUtils -> com.android.tools.r8.utils.DescriptorUtils:
    java.util.Map typeNameToLetterMap -> a
    boolean $assertionsDisabled -> b
    1:17:void <clinit>():17:33 -> <clinit>
    1:12:java.lang.String internalToDescriptor(java.lang.String,boolean,boolean):39:50 -> a
    13:17:java.lang.String internalToDescriptor(java.lang.String,boolean,boolean):49:53 -> a
    18:18:java.lang.String descriptorToJavaType(java.lang.String,com.android.tools.r8.naming.ClassNameMapper):167:167 -> a
    19:19:java.lang.String primitiveDescriptorToJavaType(char):205:205 -> a
    19:19:java.lang.String descriptorToJavaType(java.lang.String,com.android.tools.r8.naming.ClassNameMapper):180 -> a
    20:20:java.lang.String descriptorToJavaType(java.lang.String,com.android.tools.r8.naming.ClassNameMapper):177:177 -> a
    21:25:java.lang.String descriptorToJavaType(java.lang.String,com.android.tools.r8.naming.ClassNameMapper):170:174 -> a
    26:26:java.lang.String getPackageBinaryNameFromJavaType(java.lang.String):270:270 -> a
    1:26:boolean isClassDescriptor(java.lang.String):310:335 -> b
    1:7:java.lang.String descriptorToInternalName(java.lang.String):148:154 -> descriptorToInternalName
    8:8:java.lang.String descriptorToInternalName(java.lang.String):152:152 -> descriptorToInternalName
    1:1:java.lang.String descriptorToJavaType(java.lang.String):138:138 -> descriptorToJavaType
    1:1:java.lang.String getBinaryNameFromJavaType(java.lang.String):280:280 -> getBinaryNameFromJavaType
    1:3:java.lang.String getClassBinaryNameFromDescriptor(java.lang.String):258:260 -> getClassBinaryNameFromDescriptor
    1:2:java.lang.String getClassNameFromDescriptor(java.lang.String):226:227 -> getClassNameFromDescriptor
    1:2:java.lang.String getDescriptorFromClassBinaryName(java.lang.String):291:292 -> getDescriptorFromClassBinaryName
    1:1:java.lang.String getPackageNameFromDescriptor(java.lang.String):248:248 -> getPackageNameFromDescriptor
    2:4:java.lang.String getPackageNameFromBinaryName(java.lang.String):353:355 -> getPackageNameFromDescriptor
    2:4:java.lang.String getPackageNameFromDescriptor(java.lang.String):248 -> getPackageNameFromDescriptor
    1:3:java.lang.String getPathFromDescriptor(java.lang.String):403:405 -> getPathFromDescriptor
    1:2:java.lang.String getPathFromJavaType(java.lang.String):409:410 -> getPathFromJavaType
    1:1:java.lang.String getSimpleClassNameFromDescriptor(java.lang.String):216:216 -> getSimpleClassNameFromDescriptor
    2:6:java.lang.String getSimpleClassNameFromBinaryName(java.lang.String):302:306 -> getSimpleClassNameFromDescriptor
    2:6:java.lang.String getSimpleClassNameFromDescriptor(java.lang.String):216 -> getSimpleClassNameFromDescriptor
    1:5:java.lang.String guessTypeDescriptor(java.nio.file.Path):375:379 -> guessTypeDescriptor
    6:13:java.lang.String guessTypeDescriptor(java.lang.String):391:398 -> guessTypeDescriptor
    14:14:java.lang.String guessTypeDescriptor(java.lang.String):396:396 -> guessTypeDescriptor
    1:6:boolean isValidJavaType(java.lang.String):102:107 -> isValidJavaType
    1:2:java.lang.String javaTypeToDescriptor(java.lang.String):63:64 -> javaTypeToDescriptor
    1:2:java.lang.String javaTypeToDescriptorIgnorePrimitives(java.lang.String):78:79 -> javaTypeToDescriptorIgnorePrimitives
    1:1:java.lang.String javaTypeToShorty(java.lang.String):128:128 -> javaTypeToShorty
com.android.tools.r8.utils.DexVersion -> com.android.tools.r8.utils.DexVersion:
    byte[] dexVersionBytes -> b
    com.android.tools.r8.utils.DexVersion[] $VALUES -> g
    com.android.tools.r8.utils.DexVersion V35 -> c
    com.android.tools.r8.utils.DexVersion V37 -> d
    com.android.tools.r8.utils.DexVersion V38 -> e
    com.android.tools.r8.utils.DexVersion V39 -> f
    int dexVersion -> a
    1:4:void <clinit>():12:15 -> <clinit>
    5:5:void <clinit>():11:11 -> <clinit>
    1:3:void <init>(java.lang.String,int,int,byte[]):21:23 -> <init>
    1:1:int getIntValue():27:27 -> a
    2:36:com.android.tools.r8.utils.DexVersion getDexVersion(com.android.tools.r8.utils.AndroidApiLevel):39:73 -> a
    37:37:com.android.tools.r8.utils.DexVersion getDexVersion(com.android.tools.r8.utils.AndroidApiLevel):71:71 -> a
    38:38:com.android.tools.r8.utils.DexVersion getDexVersion(com.android.tools.r8.utils.AndroidApiLevel):47:47 -> a
    39:39:com.android.tools.r8.utils.DexVersion getDexVersion(com.android.tools.r8.utils.AndroidApiLevel):44:44 -> a
    40:40:com.android.tools.r8.utils.DexVersion getDexVersion(com.android.tools.r8.utils.AndroidApiLevel):41:41 -> a
    1:1:boolean matchesApiLevel(com.android.tools.r8.utils.AndroidApiLevel):35:35 -> b
    2:2:com.android.tools.r8.utils.DexVersion getDexVersion(int):88:88 -> b
    3:3:com.android.tools.r8.utils.DexVersion getDexVersion(int):86:86 -> b
    4:4:com.android.tools.r8.utils.DexVersion getDexVersion(int):84:84 -> b
    5:5:com.android.tools.r8.utils.DexVersion getDexVersion(int):82:82 -> b
    6:6:com.android.tools.r8.utils.DexVersion getDexVersion(int):80:80 -> b
    1:1:byte[] getBytes():31:31 -> getBytes
com.android.tools.r8.utils.DiagnosticWithThrowable -> com.android.tools.r8.utils.x:
    java.lang.Throwable throwable -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():9:9 -> <clinit>
    1:3:void <init>(java.lang.Throwable):13:15 -> <init>
    1:1:java.lang.Throwable getThrowable():19:19 -> getThrowable
com.android.tools.r8.utils.DirectoryBuilder -> com.android.tools.r8.utils.y:
    com.android.tools.r8.origin.Origin origin -> b
    java.nio.file.Path root -> a
    1:3:void <init>(java.nio.file.Path):24:26 -> <init>
    void close(com.android.tools.r8.DiagnosticsHandler) -> a
    1:5:void addDirectory(java.lang.String,com.android.tools.r8.DiagnosticsHandler):39:43 -> a
    6:8:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):49:51 -> a
    9:15:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):49:55 -> a
    16:16:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):54:54 -> a
    17:17:void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler):52:52 -> a
    18:23:void addFile(java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):61:66 -> a
    24:24:void addIndexedClassFile(int,java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler):73:73 -> a
    1:1:com.android.tools.r8.origin.Origin getOrigin():78:78 -> getOrigin
    1:1:java.nio.file.Path getPath():83:83 -> getPath
com.android.tools.r8.utils.EncodedValueUtils -> com.android.tools.r8.utils.EncodedValueUtils:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():9:9 -> <clinit>
    1:9:long parseSigned(com.android.tools.r8.dex.DexReader,int):12:20 -> a
    10:15:int putBitsFromRightZeroExtended(com.android.tools.r8.dex.DexOutputBuffer,long,int):84:89 -> a
    16:21:byte[] encodeBitsFromRightZeroExtended(long):96:101 -> a
    1:5:int putSigned(com.android.tools.r8.dex.DexOutputBuffer,long,int):25:29 -> b
    6:10:long parseUnsigned(com.android.tools.r8.dex.DexReader,int):48:52 -> b
    1:5:int putUnsigned(com.android.tools.r8.dex.DexOutputBuffer,long,int):61:65 -> c
    1:3:byte[] encodeDouble(double):137:139 -> encodeDouble
    1:3:byte[] encodeFloat(float):119:121 -> encodeFloat
    1:2:double parseDouble(com.android.tools.r8.dex.DexReader,int):127:128 -> parseDouble
    1:2:float parseFloat(com.android.tools.r8.dex.DexReader,int):109:110 -> parseFloat
    1:2:int putDouble(com.android.tools.r8.dex.DexOutputBuffer,double):132:133 -> putDouble
    1:2:int putFloat(com.android.tools.r8.dex.DexOutputBuffer,float):114:115 -> putFloat
com.android.tools.r8.utils.ExceptionDiagnostic -> com.android.tools.r8.utils.ExceptionDiagnostic:
    com.android.tools.r8.origin.Origin origin -> c
    1:2:void <init>(java.lang.Throwable,com.android.tools.r8.origin.Origin):23:24 -> <init>
    3:3:void <init>(com.android.tools.r8.ResourceException):28:28 -> <init>
    4:5:void <init>(java.lang.Throwable,com.android.tools.r8.origin.Origin):23:24 -> <init>
    4:5:void <init>(com.android.tools.r8.ResourceException):28 -> <init>
    1:13:java.lang.String getDiagnosticMessage():43:55 -> getDiagnosticMessage
    14:14:java.lang.String getDiagnosticMessage():45:45 -> getDiagnosticMessage
    1:1:com.android.tools.r8.origin.Origin getOrigin():33:33 -> getOrigin
    1:1:com.android.tools.r8.position.Position getPosition():38:38 -> getPosition
com.android.tools.r8.utils.ExceptionUtils -> com.android.tools.r8.utils.B:
    boolean com.android.tools.r8.utils.IdentifierUtils.isDexIdentifierPart(int) -> a
    1:1:void lambda$withConsumeResourceHandler$0(com.android.tools.r8.StringConsumer,java.lang.String,com.android.tools.r8.DiagnosticsHandler):24:24 -> a
    2:2:void withConsumeResourceHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.StringConsumer,java.lang.String):24:24 -> a
    3:7:void withConsumeResourceHandler(com.android.tools.r8.utils.Reporter,java.util.function.Consumer):30:34 -> a
    3:7:void withConsumeResourceHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.StringConsumer,java.lang.String):24 -> a
    8:22:java.lang.String[] com.android.tools.r8.utils.FlagFile.expandFlagFiles(java.lang.String[],com.android.tools.r8.BaseCommand$Builder):33:47 -> a
    23:33:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):60:70 -> a
    34:34:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):68:68 -> a
    35:35:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):66:66 -> a
    36:36:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):64:64 -> a
    37:37:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):62:62 -> a
    38:44:com.android.tools.r8.origin.Origin extractIOExceptionOrigin(java.io.IOException):99:105 -> a
    38:44:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):62 -> a
    45:55:void withCompilationHandler(com.android.tools.r8.utils.Reporter,com.android.tools.r8.utils.ExceptionUtils$CompileAction):62:72 -> a
    56:65:void withMainProgramHandler(com.android.tools.r8.utils.ExceptionUtils$MainAction):82:91 -> a
    66:67:void withMainProgramHandler(com.android.tools.r8.utils.ExceptionUtils$MainAction):85:86 -> a
    1:1:boolean com.android.tools.r8.utils.IdentifierUtils.isDexIdentifierStart(int):10:10 -> b
com.android.tools.r8.utils.ExceptionUtils$CompileAction -> com.android.tools.r8.utils.z:
com.android.tools.r8.utils.ExceptionUtils$MainAction -> com.android.tools.r8.utils.A:
com.android.tools.r8.utils.FeatureClassMapping -> com.android.tools.r8.utils.FeatureClassMapping:
    java.nio.file.Path mappingFile -> e
    java.util.HashSet mappings -> d
    java.util.HashMap parseNonClassRules -> b
    java.util.HashMap parsedRules -> a
    boolean usesOnlyExactMappings -> c
    1:1:void <init>(com.android.tools.r8.utils.FeatureClassMapping$1):47:47 -> <init>
    2:2:void <init>():168:168 -> <init>
    3:10:void <init>():49:56 -> <init>
    11:11:void <init>(java.util.List):187:187 -> <init>
    12:153:void <init>(java.util.List):49:190 -> <init>
    1:10:void addRule(java.lang.String,java.lang.String,int):240:249 -> a
    11:11:boolean com.android.tools.r8.utils.FeatureClassMapping$FeaturePredicate.isExactmapping():305:305 -> a
    11:11:void addRule(java.lang.String,java.lang.String,int):249 -> a
    12:12:void addRule(java.lang.String,java.lang.String,int):249:249 -> a
    13:13:void error(java.lang.String,int):253:253 -> a
    1:1:void addBaseMapping(java.lang.String):171:171 -> addBaseMapping
    1:1:void addBaseNonClassMapping(java.lang.String):175:175 -> addBaseNonClassMapping
    1:1:void addMapping(java.lang.String,java.lang.String):179:179 -> addMapping
    1:1:void addNonClassMapping(java.lang.String,java.lang.String):184:184 -> addNonClassMapping
    1:18:void parseAndAdd(java.lang.String,int):218:235 -> b
    19:19:void parseAndAdd(java.lang.String,int):230:230 -> b
    20:20:void parseAndAdd(java.lang.String,int):226:226 -> b
    1:5:java.lang.String featureForClass(java.lang.String):195:199 -> featureForClass
    6:11:boolean com.android.tools.r8.utils.FeatureClassMapping$FeaturePredicate.match(java.lang.String):295:300 -> featureForClass
    6:11:java.lang.String featureForClass(java.lang.String):200 -> featureForClass
    12:20:java.lang.String featureForClass(java.lang.String):201:209 -> featureForClass
    1:1:java.lang.String featureForNonClass(java.lang.String):214:214 -> featureForNonClass
    1:1:com.android.tools.r8.utils.FeatureClassMapping fromSpecification(java.nio.file.Path):92:92 -> fromSpecification
    2:12:com.android.tools.r8.utils.FeatureClassMapping fromSpecification(java.nio.file.Path,com.android.tools.r8.DiagnosticsHandler):97:107 -> fromSpecification
    13:14:com.android.tools.r8.utils.FeatureClassMapping fromSpecification(java.nio.file.Path,com.android.tools.r8.DiagnosticsHandler):102:103 -> fromSpecification
    1:1:java.lang.String getBaseName():64:64 -> getBaseName
com.android.tools.r8.utils.FeatureClassMapping$1 -> com.android.tools.r8.utils.C:
    1:1:void <init>():92:92 -> <init>
com.android.tools.r8.utils.FeatureClassMapping$FeatureMappingException -> com.android.tools.r8.utils.FeatureClassMapping$FeatureMappingException:
    1:1:void <init>(java.lang.String):260:260 -> <init>
com.android.tools.r8.utils.FeatureClassMapping$FeaturePredicate -> com.android.tools.r8.utils.FeatureClassMapping$a:
    java.lang.String predicate -> a
    java.lang.String feature -> b
    boolean isCatchAll -> c
    boolean isWildcard -> d
    1:1:void <clinit>():266:266 -> <clinit>
    1:12:void <init>(java.lang.String,java.lang.String):273:284 -> <init>
    13:23:void <init>(java.lang.String,java.lang.String):281:291 -> <init>
    24:24:void <init>(java.lang.String,java.lang.String):287:287 -> <init>
com.android.tools.r8.utils.FeatureClassMapping$Internal -> com.android.tools.r8.utils.FeatureClassMapping$b:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():112:112 -> <clinit>
    1:9:java.util.List getClassFileDescriptors(java.lang.String,com.android.tools.r8.DiagnosticsHandler):114:122 -> a
    10:10:boolean lambda$getNonClassFiles$0(java.util.zip.ZipEntry):129:129 -> a
    11:31:com.android.tools.r8.utils.FeatureClassMapping fromJarFiles(java.util.List,java.util.List,java.lang.String,com.android.tools.r8.DiagnosticsHandler):142:162 -> a
    1:6:java.util.List getNonClassFiles(java.lang.String,com.android.tools.r8.DiagnosticsHandler):127:132 -> b
    7:14:java.util.List getNonClassFiles(java.lang.String,com.android.tools.r8.DiagnosticsHandler):127:134 -> b
com.android.tools.r8.utils.FeatureClassMapping$JarFileOrigin -> com.android.tools.r8.utils.FeatureClassMapping$c:
    1:1:void <init>(java.nio.file.Path):82:82 -> <init>
    1:1:java.lang.String part():87:87 -> part
com.android.tools.r8.utils.FeatureClassMapping$SpecificationOrigin -> com.android.tools.r8.utils.FeatureClassMapping$d:
    1:1:void <init>(java.nio.file.Path):70:70 -> <init>
    1:1:java.lang.String part():75:75 -> part
com.android.tools.r8.utils.FieldSignatureEquivalence -> com.android.tools.r8.utils.D:
    boolean ignoreName -> a
    com.android.tools.r8.utils.FieldSignatureEquivalence INSTANCE_IGNORE_NAME -> c
    com.android.tools.r8.utils.FieldSignatureEquivalence INSTANCE -> b
    1:3:void <clinit>():16:18 -> <clinit>
    1:2:void <init>(boolean):23:24 -> <init>
    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):14:14 -> a
    2:5:boolean doEquivalent(com.android.tools.r8.graph.DexField,com.android.tools.r8.graph.DexField):37:40 -> a
    2:5:boolean doEquivalent(java.lang.Object,java.lang.Object):14 -> a
    6:6:int doHash(java.lang.Object):14:14 -> a
    7:10:int doHash(com.android.tools.r8.graph.DexField):45:48 -> a
    7:10:int doHash(java.lang.Object):14 -> a
    1:1:com.android.tools.r8.utils.FieldSignatureEquivalence getEquivalenceIgnoreName():32:32 -> c
    1:1:com.android.tools.r8.utils.FieldSignatureEquivalence get():28:28 -> get
com.android.tools.r8.utils.FileUtils -> com.android.tools.r8.utils.FileUtils:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():19:19 -> <clinit>
    1:3:java.nio.file.Path validateOutputFile(java.nio.file.Path,com.android.tools.r8.utils.Reporter):89:91 -> a
    4:5:java.io.OutputStream openPath(com.android.tools.r8.com.google.common.io.Closer,java.nio.file.Path,java.nio.file.OpenOption[]):105:106 -> a
    6:10:java.io.OutputStream openPathWithDefault(com.android.tools.r8.com.google.common.io.Closer,java.nio.file.Path,java.io.OutputStream,java.nio.file.OpenOption[]):117:121 -> a
    11:27:boolean isClassesDexFile(java.nio.file.Path):127:143 -> a
    28:38:void writeToFile(java.nio.file.Path,java.io.OutputStream,com.android.tools.r8.ByteDataView):158:168 -> a
    39:49:void writeToFile(java.nio.file.Path,java.io.OutputStream,com.android.tools.r8.ByteDataView):158:168 -> a
    1:2:boolean isVDexFile(java.nio.file.Path):36:37 -> b
    1:4:boolean isArchive(java.nio.file.Path):65:68 -> isArchive
    1:6:boolean isClassFile(java.nio.file.Path):41:46 -> isClassFile
    1:2:boolean isDexFile(java.nio.file.Path):31:32 -> isDexFile
    1:2:boolean isJarFile(java.nio.file.Path):50:51 -> isJarFile
    1:2:boolean isZipFile(java.nio.file.Path):55:56 -> isZipFile
    1:1:java.util.List readAllLines(java.nio.file.Path):76:76 -> readAllLines
    1:1:java.lang.String readTextFile(java.nio.file.Path,java.nio.charset.Charset):72:72 -> readTextFile
    1:6:java.lang.String withNativeFileSeparators(java.lang.String):172:177 -> withNativeFileSeparators
    1:1:void writeTextFile(java.nio.file.Path,java.util.List):80:80 -> writeTextFile
    2:2:void writeTextFile(java.nio.file.Path,java.lang.String[]):84:84 -> writeTextFile
    1:1:void writeToFile(java.nio.file.Path,java.io.OutputStream,byte[]):153:153 -> writeToFile
com.android.tools.r8.utils.FilteredArchiveClassFileProvider -> com.android.tools.r8.utils.E:
    1:1:void <init>(com.android.tools.r8.shaking.FilteredClassPath):13:13 -> <init>
    1:1:boolean lambda$new$0(com.android.tools.r8.shaking.FilteredClassPath,java.lang.String):13:13 -> a
com.android.tools.r8.utils.FlagFile$FlagFileOrigin -> com.android.tools.r8.utils.F:
    java.nio.file.Path path -> e
    1:2:void <init>(java.nio.file.Path):22:23 -> <init>
    1:1:java.lang.String part():28:28 -> part
com.android.tools.r8.utils.IROrdering -> com.android.tools.r8.utils.IROrdering:
    java.lang.Iterable order(java.lang.Iterable) -> a
    java.util.Collection order(java.util.Collection) -> a
com.android.tools.r8.utils.IROrdering$IdentityIROrdering -> com.android.tools.r8.utils.IROrdering$a:
    com.android.tools.r8.utils.IROrdering$IdentityIROrdering INSTANCE -> a
    1:1:void <clinit>():21:21 -> <clinit>
    1:1:void <init>():23:23 -> <init>
    java.lang.Iterable order(java.lang.Iterable) -> a
    java.util.Collection order(java.util.Collection) -> a
    1:1:com.android.tools.r8.utils.IROrdering$IdentityIROrdering getInstance():26:26 -> a
com.android.tools.r8.utils.IROrdering$NondeterministicIROrdering -> com.android.tools.r8.utils.IROrdering$NondeterministicIROrdering:
    com.android.tools.r8.utils.IROrdering$NondeterministicIROrdering INSTANCE -> a
    1:1:void <clinit>():42:42 -> <clinit>
    1:1:void <init>():44:44 -> <init>
    1:1:java.lang.Iterable order(java.lang.Iterable):40:40 -> a
    2:2:java.util.Collection order(java.util.Collection):40:40 -> a
    3:4:java.util.List order(java.lang.Iterable):52:53 -> a
    5:5:java.util.List order(java.util.Collection):59:59 -> a
    1:1:com.android.tools.r8.utils.IROrdering$NondeterministicIROrdering getInstance():47:47 -> getInstance
com.android.tools.r8.utils.InternalArchiveClassFileProvider -> com.android.tools.r8.utils.G:
    java.util.Set descriptors -> c
    com.android.tools.r8.origin.Origin origin -> b
    java.util.zip.ZipFile openedZipFile -> d
    boolean $assertionsDisabled -> e
    java.nio.file.Path path -> a
    1:1:void <clinit>():39:39 -> <clinit>
    1:1:void <init>(java.nio.file.Path):52:52 -> <init>
    2:2:void <init>(java.nio.file.Path,java.util.function.Predicate):62:62 -> <init>
    3:32:void <init>(java.nio.file.Path,java.util.function.Predicate):42:71 -> <init>
    boolean lambda$new$0(java.lang.String) -> a
    1:12:java.util.zip.ZipFile getOpenZipFile():101:112 -> a
    1:2:void close():117:118 -> close
    1:1:java.util.Set getClassDescriptors():78:78 -> getClassDescriptors
    1:1:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):83:83 -> getProgramResource
    2:3:java.util.zip.ZipEntry getZipEntryFromDescriptor(java.lang.String):122:123 -> getProgramResource
    2:3:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):87 -> getProgramResource
    4:9:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):88:93 -> getProgramResource
    10:15:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):89:94 -> getProgramResource
    16:24:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):88:96 -> getProgramResource
com.android.tools.r8.utils.InternalOptions -> com.android.tools.r8.utils.InternalOptions:
    com.android.tools.r8.shaking.ProguardConfiguration proguardConfiguration -> a
    boolean enableValuePropagation -> i
    java.util.List mainDexKeepRules -> v
    boolean ignoreMainDexMissingClasses -> k
    java.nio.file.Path proguardCompatibilityRulesOutput -> F
    boolean debugKeepRules -> u
    java.util.Map warningInvalidDebugInfo -> y
    boolean printCfg -> s
    java.util.Map missingEnclosingMembers -> w
    java.lang.String printCfgFile -> t
    com.android.tools.r8.dex.Marker marker -> m
    java.util.Set extensiveFieldMinifierLoggingFilter -> o
    boolean enableNonNullTracking -> f
    java.util.function.Consumer syntheticProguardRulesConsumer -> G
    boolean enableSwitchMapRemoval -> h
    com.android.tools.r8.StringConsumer usageInformationConsumer -> C
    com.android.tools.r8.experimental.graphinfo.GraphConsumer keptGraphConsumer -> E
    com.android.tools.r8.StringConsumer mainDexListConsumer -> A
    boolean enableHorizontalClassMerging -> d
    java.util.List methodsFilter -> q
    boolean quiet -> j
    boolean hasMarker -> l
    int inliningControlFlowResolutionBlocksThreshold -> g
    boolean enableMainDexListCheck -> r
    com.android.tools.r8.utils.Reporter reporter -> b
    java.util.Map warningInvalidParameterAnnotations -> x
    boolean skipReadingDexCode -> z
    boolean enableUnusedArgumentRemoval -> e
    java.util.Set extensiveInterfaceMethodMinifierLoggingFilter -> p
    boolean $assertionsDisabled -> H
    com.android.tools.r8.StringConsumer configurationConsumer -> D
    boolean passthroughDexCode -> c
    java.util.Set extensiveLoggingFilter -> n
    com.android.tools.r8.StringConsumer proguardSeedsConsumer -> B
    1:1:void <clinit>():43:43 -> <clinit>
    1:1:void <init>():70:70 -> <init>
    2:172:void <init>():64:234 -> <init>
    173:173:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getDefault():59:59 -> <init>
    173:173:void <init>():235 -> <init>
    174:341:void <init>():235:402 -> <init>
    342:344:void <init>():71:73 -> <init>
    345:345:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):77:77 -> <init>
    346:516:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):64:234 -> <init>
    517:517:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getDefault():59:59 -> <init>
    517:517:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):235 -> <init>
    518:685:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):235:402 -> <init>
    686:690:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.utils.Reporter):78:82 -> <init>
    691:691:void <init>(com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):86:86 -> <init>
    692:862:void <init>(com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):64:234 -> <init>
    863:863:com.android.tools.r8.utils.AndroidApiLevel com.android.tools.r8.utils.AndroidApiLevel.getDefault():59:59 -> <init>
    863:863:void <init>(com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):235 -> <init>
    864:1031:void <init>(com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):235:402 -> <init>
    1032:1051:void <init>(com.android.tools.r8.shaking.ProguardConfiguration,com.android.tools.r8.utils.Reporter):87:106 -> <init>
    1:1:boolean canUseJava8Methods():634:634 -> A
    1:1:boolean canUseLongCompareAndObjectsNonNull():657:657 -> B
    1:2:boolean canUseMultidex():652:653 -> C
    1:1:boolean canUseNotInstruction():719:719 -> D
    1:4:boolean canUseParameterNameAnnotations():668:671 -> E
    1:1:boolean canUsePrivateInterfaceMethods():638:638 -> F
    1:2:boolean canUseSameArrayAndResultRegisterInArrayGetWide():692:693 -> G
    1:1:boolean canUseSuppressedExceptions():661:661 -> H
    1:1:boolean canUseTwrCloseResourceMethod():630:630 -> I
    1:1:com.android.tools.r8.ClassFileConsumer getClassFileConsumer():217:217 -> J
    1:1:com.android.tools.r8.DexFilePerClassFileConsumer getDexFilePerClassFileConsumer():213:213 -> K
    1:1:com.android.tools.r8.DexIndexedConsumer getDexIndexedConsumer():209:209 -> L
    1:9:com.android.tools.r8.utils.InternalOutputMode getInternalOutputMode():181:189 -> M
    1:2:com.android.tools.r8.dex.Marker getMarker():172:173 -> N
    1:1:boolean hasConsumer():177:177 -> O
    1:1:boolean hasMarker():163:163 -> P
    1:1:boolean hasMethodsFilter():514:514 -> Q
    1:1:boolean isGeneratingClassFiles():205:205 -> R
    1:1:boolean isGeneratingDex():193:193 -> S
    1:1:boolean isGeneratingDexFilePerClassFile():201:201 -> T
    1:1:boolean isGeneratingDexIndexed():197:197 -> U
    1:6:boolean isInterfaceMethodDesugaringEnabled():643:648 -> V
    1:32:boolean printWarnings():440:471 -> W
    33:71:boolean printWarnings():467:505 -> W
    1:1:boolean shouldEnableKeepRuleSynthesisForRecompilation():293:293 -> X
    1:9:java.util.Set getExtensiveFieldMinifierLoggingFilter():310:318 -> Y
    1:9:java.util.Set getExtensiveInterfaceMethodMinifierLoggingFilter():323:331 -> Z
    1:1:boolean assertionsEnabled():406:406 -> a
    2:5:void warningMissingEnclosingMember(com.android.tools.r8.graph.DexType,com.android.tools.r8.origin.Origin,int):411:414 -> a
    6:10:void warningInvalidParameterAnnotations(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.origin.Origin,int,int):419:423 -> a
    11:17:void warningInvalidDebugInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.errors.InvalidDebugInfoException):428:434 -> a
    18:18:void warningInvalidDebugInfo(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.origin.Origin,com.android.tools.r8.errors.InvalidDebugInfoException):429:429 -> a
    19:19:java.util.List lambda$warningInvalidDebugInfo$2(com.android.tools.r8.origin.Origin):433:433 -> a
    20:25:boolean methodMatchesFilter(com.android.tools.r8.graph.DexEncodedMethod):519:524 -> a
    26:27:boolean hasMinApi(com.android.tools.r8.utils.AndroidApiLevel):597:598 -> a
    1:9:java.util.Set getExtensiveLoggingFilter():297:305 -> aa
    1:1:java.util.List lambda$warningInvalidParameterAnnotations$1(com.android.tools.r8.origin.Origin):422:422 -> b
    2:7:boolean methodMatchesLogArgumentsFilter(com.android.tools.r8.graph.DexEncodedMethod):529:534 -> b
    8:9:boolean canHaveArtInstanceOfVerifierBug():923:924 -> b
    1:1:java.util.List lambda$warningMissingEnclosingMember$0(com.android.tools.r8.origin.Origin):413:413 -> c
    2:2:boolean canHaveArtStringNewInitBug():849:849 -> c
    1:1:boolean canHaveArtCheckCastVerifierBug():968:968 -> canHaveArtCheckCastVerifierBug
    1:1:boolean canHaveBoundsCheckEliminationBug():710:710 -> d
    1:1:boolean canHaveCmpIfFloatBug():802:802 -> e
    1:1:boolean canHaveCmpLongBug():774:774 -> f
    1:1:boolean canHaveDex2OatInliningIssue():841:841 -> g
    1:1:com.android.tools.r8.shaking.ProguardConfiguration getProguardConfiguration():57:57 -> getProguardConfiguration
    1:1:boolean canHaveDex2OatLinkedListBug():833:833 -> h
    1:1:boolean canHaveExceptionTargetingLoopHeaderBug():882:882 -> i
    1:1:boolean canHaveExceptionTypeBug():960:960 -> j
    1:1:boolean canHaveForwardingInitInliningBug():870:870 -> k
    1:1:boolean canHaveLongToIntBug():947:947 -> l
    1:1:boolean canHaveMul2AddrBug():824:824 -> m
    1:1:boolean canHaveNumberConversionRegisterAllocationBug():857:857 -> n
    1:1:boolean canHaveOverlappingLongRegisterBug():741:741 -> o
    1:1:boolean canHaveThisJitCodeDebuggingBug():735:735 -> p
    1:1:boolean canHaveThisTypeVerifierBug():726:726 -> q
    1:1:boolean canHaveTracingPastInstructionsStreamBug():896:896 -> r
    1:1:boolean canLeaveStaticInterfaceMethodInvokes():626:626 -> s
    1:2:void setMarker(com.android.tools.r8.dex.Marker):167:168 -> setMarker
    1:4:void signalFinishedToConsumers():221:224 -> signalFinishedToConsumers
    1:1:boolean canUseConstantMethodHandle():610:610 -> t
    1:1:boolean canUseConstantMethodType():614:614 -> u
    1:1:boolean canUseDefaultAndStaticInterfaceMethods():622:622 -> v
    1:2:boolean canUseFilledNewArrayOfObjects():683:684 -> w
    1:1:boolean canUseInvokeCustom():618:618 -> x
    1:1:boolean canUseInvokePolymorphic():606:606 -> y
    1:1:boolean canUseInvokePolymorphicOnVarHandle():602:602 -> z
com.android.tools.r8.utils.InternalOptions$InvalidParameterAnnotationInfo -> com.android.tools.r8.utils.InternalOptions$a:
    int expectedParameterCount -> b
    int actualParameterCount -> c
    com.android.tools.r8.graph.DexMethod method -> a
    1:4:void <init>(com.android.tools.r8.graph.DexMethod,int,int):341:344 -> <init>
com.android.tools.r8.utils.InternalOptions$LineNumberOptimization -> com.android.tools.r8.utils.InternalOptions$LineNumberOptimization:
    1:2:void <clinit>():50:51 -> <clinit>
    3:3:void <clinit>():49:49 -> <clinit>
    1:1:void <init>(java.lang.String,int):49:49 -> <init>
com.android.tools.r8.utils.InternalOptions$OutlineOptions -> com.android.tools.r8.utils.InternalOptions$OutlineOptions:
    boolean enabled -> a
    1:9:void <init>():546:554 -> <init>
com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode -> com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode:
    com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode NONE -> a
    com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode[] $VALUES -> b
    1:5:void <clinit>():539:543 -> <clinit>
    6:6:void <clinit>():537:537 -> <clinit>
    1:1:void <init>(java.lang.String,int):537:537 -> <init>
    1:1:com.android.tools.r8.utils.InternalOptions$PackageObfuscationMode[] values():537:537 -> a
com.android.tools.r8.utils.InternalOptions$TestingOptions -> com.android.tools.r8.utils.InternalOptions$TestingOptions:
    boolean alwaysUsePessimisticRegisterAllocation -> a
    boolean dontCreateMarkerInD8 -> b
    1:24:void <init>():557:580 -> <init>
com.android.tools.r8.utils.InternalOptions$TestingOptions$MinifierTestingOptions -> com.android.tools.r8.utils.InternalOptions$TestingOptions$MinifierTestingOptions:
    1:3:void <init>():582:584 -> <init>
    1:4:java.util.Comparator createInterfaceMethodOrdering(com.android.tools.r8.naming.InterfaceMethodNameMinifier):588:591 -> a
    5:5:int lambda$createInterfaceMethodOrdering$0(com.android.tools.r8.com.google.common.base.Equivalence$Wrapper,com.android.tools.r8.com.google.common.base.Equivalence$Wrapper):589:589 -> a
com.android.tools.r8.utils.InternalOptions$TypeVersionPair -> com.android.tools.r8.utils.InternalOptions$b:
    com.android.tools.r8.graph.DexType type -> b
    int version -> a
    1:3:void <init>(int,com.android.tools.r8.graph.DexType):353:355 -> <init>
com.android.tools.r8.utils.InternalOutputMode -> com.android.tools.r8.utils.H:
    com.android.tools.r8.utils.InternalOutputMode DexIndexed -> a
    com.android.tools.r8.utils.InternalOutputMode DexFilePerClassFile -> b
    com.android.tools.r8.utils.InternalOutputMode ClassFile -> c
    1:3:void <clinit>():8:10 -> <clinit>
    4:4:void <clinit>():7:7 -> <clinit>
    1:1:void <init>(java.lang.String,int):7:7 -> <init>
    1:1:boolean isGeneratingClassFiles():13:13 -> a
    1:1:boolean isGeneratingDex():17:17 -> b
com.android.tools.r8.utils.IteratorUtils -> com.android.tools.r8.utils.I:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():11:11 -> <clinit>
    1:4:java.lang.Object peekNext(java.util.ListIterator):20:23 -> a
    5:8:void removeIf(java.util.Iterator,java.util.function.Predicate):30:33 -> a
    9:21:boolean anyRemainingMatch(java.util.ListIterator,java.util.function.Predicate):43:55 -> a
    1:3:java.lang.Object peekPrevious(java.util.ListIterator):13:15 -> b
com.android.tools.r8.utils.LRUCacheTable -> com.android.tools.r8.utils.K:
    int columnCapacity -> b
    int rowCapacity -> a
    1:3:void <init>(int,int,float):31:33 -> <init>
    1:1:java.util.Map lambda$put$0(java.lang.Object):46:46 -> a
    2:3:java.lang.Object put(java.lang.Object,java.lang.Object,java.lang.Object):46:47 -> a
    1:1:com.android.tools.r8.utils.LRUCacheTable create(int,int):37:37 -> b
    2:2:java.lang.Object get(java.lang.Object,java.lang.Object):55:55 -> b
    1:1:boolean removeEldestEntry(java.util.Map$Entry):42:42 -> removeEldestEntry
com.android.tools.r8.utils.LRUCacheTable$LRUCacheRow -> com.android.tools.r8.utils.J:
    int columnCapacity -> a
    1:2:void <init>(int,float):17:18 -> <init>
    1:1:boolean removeEldestEntry(java.util.Map$Entry):23:23 -> removeEldestEntry
com.android.tools.r8.utils.LebUtils -> com.android.tools.r8.utils.LebUtils:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():10:10 -> <clinit>
    1:13:byte[] encodeSleb128(int):76:88 -> encodeSleb128
    1:10:byte[] encodeUleb128(int):32:41 -> encodeUleb128
    1:6:int parseSleb128(com.android.tools.r8.dex.BinaryReader):65:70 -> parseSleb128
    1:6:int parseUleb128(com.android.tools.r8.dex.BinaryReader):21:26 -> parseUleb128
    1:1:void putSleb128(com.android.tools.r8.dex.DexOutputBuffer,int):99:99 -> putSleb128
    1:5:void putUleb128(com.android.tools.r8.dex.DexOutputBuffer,int):48:52 -> putUleb128
    1:1:int sizeAsSleb128(int):110:110 -> sizeAsSleb128
    1:1:int sizeAsUleb128(int):57:57 -> sizeAsUleb128
com.android.tools.r8.utils.LibraryClassCollection -> com.android.tools.r8.utils.L:
    1:1:void <init>(com.android.tools.r8.utils.ClassProvider):15:15 -> <init>
    1:1:java.util.function.Supplier getTransparentSupplier(com.android.tools.r8.graph.DexClass):13:13 -> a
    2:2:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):13:13 -> a
    1:1:com.android.tools.r8.graph.ClassKind getClassKind():34:34 -> c
    1:1:java.lang.String toString():39:39 -> toString
com.android.tools.r8.utils.LineNumberOptimizer -> com.android.tools.r8.utils.Q:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():54:54 -> <clinit>
    1:13:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):167:179 -> a
    14:16:void addClassToClassNaming(com.android.tools.r8.graph.DexType,com.android.tools.r8.graph.DexString,java.util.function.Supplier):343:345 -> a
    14:16:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):187 -> a
    17:43:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):190:216 -> a
    44:146:void optimizeDexCodePositions(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List,boolean):425:527 -> a
    44:146:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):217 -> a
    147:147:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):219:219 -> a
    148:179:void optimizeCfCodePositions(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List):535:566 -> a
    148:179:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):220 -> a
    180:180:void optimizeCfCodePositions(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List):559:559 -> a
    180:180:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):220 -> a
    181:212:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):224:255 -> a
    213:213:void com.android.tools.r8.naming.MemberNaming.<init>(com.android.tools.r8.naming.MemberNaming$Signature,java.lang.String):60:60 -> a
    213:213:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):255 -> a
    214:242:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):256:284 -> a
    243:253:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):282:292 -> a
    254:266:com.android.tools.r8.naming.ClassNameMapper run(com.android.tools.r8.graph.AppView,com.android.tools.r8.graph.DexApplication,com.android.tools.r8.naming.NamingLens):289:301 -> a
    267:268:com.android.tools.r8.naming.ClassNaming$Builder lambda$run$0(com.android.tools.r8.naming.ClassNameMapper$Builder,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):182:183 -> a
    269:269:com.android.tools.r8.naming.ClassNaming$Builder lambda$run$0(com.android.tools.r8.naming.ClassNameMapper$Builder,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexType):181:181 -> a
    270:271:com.android.tools.r8.naming.MemberNaming$MethodSignature lambda$run$2(com.android.tools.r8.graph.AppView,java.util.Map,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexMethod):247:248 -> a
    272:273:com.android.tools.r8.naming.MemberNaming$MethodSignature lambda$run$1(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexMethod):251:252 -> a
    274:274:com.android.tools.r8.naming.MemberNaming$MethodSignature lambda$run$1(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexMethod):251:251 -> a
    275:288:int getMethodStartLine(com.android.tools.r8.graph.DexEncodedMethod):305:318 -> a
    289:289:void sortMethods(java.util.List):327:327 -> a
    290:291:int lambda$sortMethods$3(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):329:330 -> a
    292:292:int com.android.tools.r8.graph.DexEncodedMethod.slowCompare(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):762:762 -> a
    292:292:int lambda$sortMethods$3(com.android.tools.r8.graph.DexEncodedMethod,com.android.tools.r8.graph.DexEncodedMethod):333 -> a
    293:293:void addFieldsToClassNaming(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass,java.util.function.Supplier):354:354 -> a
    294:300:void lambda$addFieldsToClassNaming$4(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass,java.util.function.Supplier,com.android.tools.r8.graph.DexEncodedField):356:362 -> a
    301:301:void com.android.tools.r8.naming.MemberNaming.<init>(com.android.tools.r8.naming.MemberNaming$Signature,java.lang.String):60:60 -> a
    301:301:void lambda$addFieldsToClassNaming$4(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass,java.util.function.Supplier,com.android.tools.r8.graph.DexEncodedField):362 -> a
    302:302:void lambda$addFieldsToClassNaming$4(com.android.tools.r8.graph.GraphLense,com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass,java.util.function.Supplier,com.android.tools.r8.graph.DexEncodedField):363:363 -> a
    303:308:java.util.IdentityHashMap groupMethodsByRenamedName(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass):370:375 -> a
    309:316:boolean doesContainPositions(com.android.tools.r8.graph.DexEncodedMethod):383:390 -> a
    309:316:java.util.IdentityHashMap groupMethodsByRenamedName(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass):375 -> a
    317:317:java.util.IdentityHashMap groupMethodsByRenamedName(com.android.tools.r8.naming.NamingLens,com.android.tools.r8.graph.DexProgramClass):376:376 -> a
    318:318:java.util.List lambda$groupMethodsByRenamedName$5(com.android.tools.r8.graph.DexString):376:376 -> a
    319:324:boolean doesContainPositions(com.android.tools.r8.graph.DexCode):396:401 -> a
    325:327:boolean doesContainPositions(com.android.tools.r8.graph.CfCode):409:411 -> a
com.android.tools.r8.utils.LineNumberOptimizer$1 -> com.android.tools.r8.utils.M:
    com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper val$positionRemapper -> i
    com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter val$positionEventEmitter -> h
    boolean $assertionsDisabled -> l
    java.util.List val$mappedPositions -> j
    int emittedPc -> g
    java.util.List val$processedEvents -> k
    1:1:void <clinit>():434:434 -> <clinit>
    1:4:void <init>(int,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter,com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper,java.util.List,java.util.List):434:437 -> <init>
    1:8:void visit(com.android.tools.r8.graph.DexDebugEvent$Default):450:457 -> a
    9:18:void visit(com.android.tools.r8.graph.DexDebugEvent$Default):453:462 -> a
    19:26:void visit(com.android.tools.r8.graph.DexDebugEvent$Default):458:465 -> a
    27:27:void visit(com.android.tools.r8.graph.DexDebugEvent$SetFile):474:474 -> a
    28:28:void visit(com.android.tools.r8.graph.DexDebugEvent$SetPrologueEnd):479:479 -> a
    29:29:void visit(com.android.tools.r8.graph.DexDebugEvent$SetEpilogueBegin):484:484 -> a
    30:31:void visit(com.android.tools.r8.graph.DexDebugEvent$StartLocal):491:492 -> a
    32:33:void visit(com.android.tools.r8.graph.DexDebugEvent$EndLocal):497:498 -> a
    34:35:void visit(com.android.tools.r8.graph.DexDebugEvent$RestartLocal):503:504 -> a
    1:3:void flushPc():441:443 -> d
com.android.tools.r8.utils.LineNumberOptimizer$IdentityPositionRemapper -> com.android.tools.r8.utils.N:
    1:1:void <init>():63:63 -> <init>
    1:1:void <init>(com.android.tools.r8.utils.LineNumberOptimizer$1):63 -> <init>
    1:1:com.android.tools.r8.ir.code.Position createRemappedPosition(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):67:67 -> a
com.android.tools.r8.utils.LineNumberOptimizer$MappedPosition -> com.android.tools.r8.utils.O:
    int obfuscatedLine -> d
    int originalLine -> b
    com.android.tools.r8.ir.code.Position caller -> c
    com.android.tools.r8.graph.DexMethod method -> a
    1:5:void <init>(com.android.tools.r8.graph.DexMethod,int,com.android.tools.r8.ir.code.Position,int):155:159 -> <init>
    1:5:void <init>(com.android.tools.r8.graph.DexMethod,int,com.android.tools.r8.ir.code.Position,int,com.android.tools.r8.utils.LineNumberOptimizer$1):148 -> <init>
    1:1:com.android.tools.r8.graph.DexMethod access$100(com.android.tools.r8.utils.LineNumberOptimizer$MappedPosition):148:148 -> a
    1:1:int access$200(com.android.tools.r8.utils.LineNumberOptimizer$MappedPosition):148:148 -> b
    1:1:int access$300(com.android.tools.r8.utils.LineNumberOptimizer$MappedPosition):148:148 -> c
    1:1:com.android.tools.r8.ir.code.Position access$400(com.android.tools.r8.utils.LineNumberOptimizer$MappedPosition):148:148 -> d
com.android.tools.r8.utils.LineNumberOptimizer$OptimizingPositionRemapper -> com.android.tools.r8.utils.P:
    boolean $assertionsDisabled -> e
    int nextOptimizedLineNumber -> d
    com.android.tools.r8.graph.DexMethod previousMethod -> b
    int previousSourceLine -> c
    int maxLineDelta -> a
    1:1:void <clinit>():71:71 -> <clinit>
    1:1:void <init>(com.android.tools.r8.utils.InternalOptions):77:77 -> <init>
    2:10:void <init>(com.android.tools.r8.utils.InternalOptions):73:81 -> <init>
    1:12:com.android.tools.r8.ir.code.Position createRemappedPosition(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position):87:98 -> a
com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter -> com.android.tools.r8.utils.Q$a:
    java.util.List processedEvents -> f
    boolean $assertionsDisabled -> g
    int previousPc -> d
    int startLine -> b
    com.android.tools.r8.graph.DexMethod method -> c
    com.android.tools.r8.graph.DexItemFactory dexItemFactory -> a
    com.android.tools.r8.ir.code.Position previousPosition -> e
    1:1:void <clinit>():105:105 -> <clinit>
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod,java.util.List):114:114 -> <init>
    1:1:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod,java.util.List,com.android.tools.r8.utils.LineNumberOptimizer$1):105 -> <init>
    2:12:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod,java.util.List):107:117 -> <init>
    2:12:void <init>(com.android.tools.r8.graph.DexItemFactory,com.android.tools.r8.graph.DexMethod,java.util.List,com.android.tools.r8.utils.LineNumberOptimizer$1):105 -> <init>
    1:1:int access$900(com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter):105:105 -> a
    2:3:void emitAdvancePc(int):121:122 -> a
    2:3:void access$600(com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter,int):105 -> a
    4:16:void emitPositionEvents(int,com.android.tools.r8.ir.code.Position):126:138 -> a
    4:16:void access$800(com.android.tools.r8.utils.LineNumberOptimizer$PositionEventEmitter,int,com.android.tools.r8.ir.code.Position):105 -> a
    17:18:int getStartLine():142:143 -> a
com.android.tools.r8.utils.LineNumberOptimizer$PositionRemapper -> com.android.tools.r8.utils.S:
    com.android.tools.r8.ir.code.Position createRemappedPosition(int,com.android.tools.r8.graph.DexString,com.android.tools.r8.graph.DexMethod,com.android.tools.r8.ir.code.Position) -> a
com.android.tools.r8.utils.ListUtils -> com.android.tools.r8.utils.ListUtils:
    1:3:java.util.List map(java.util.Collection,java.util.function.Function):15:17 -> map
com.android.tools.r8.utils.LongInterval -> com.android.tools.r8.utils.LongInterval:
    long max -> b
    long min -> a
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():10:10 -> <clinit>
    1:4:void <init>(int,int):15:18 -> <init>
    5:8:void <init>(long,long):21:24 -> <init>
    1:2:long getSingleValue():40:41 -> a
    3:3:boolean containsValue(long):45:45 -> a
    4:4:boolean overlapsWith(com.android.tools.r8.utils.LongInterval):53:53 -> a
    1:1:boolean isSingleValue():36:36 -> b
    1:2:boolean equals(java.lang.Object):66:67 -> equals
    1:1:long getMax():32:32 -> getMax
    1:1:long getMin():28:28 -> getMin
    1:1:int hashCode():58:58 -> hashCode
    1:1:java.lang.String toString():74:74 -> toString
com.android.tools.r8.utils.MainDexList -> com.android.tools.r8.utils.MainDexList:
    1:9:com.android.tools.r8.graph.DexType parseEntry(java.lang.String,com.android.tools.r8.graph.DexItemFactory):21:29 -> parseEntry
    10:10:com.android.tools.r8.graph.DexType parseEntry(java.lang.String,com.android.tools.r8.graph.DexItemFactory):26:26 -> parseEntry
    11:11:com.android.tools.r8.graph.DexType parseEntry(java.lang.String,com.android.tools.r8.graph.DexItemFactory):22:22 -> parseEntry
    1:16:java.util.Set parseList(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexItemFactory):35:50 -> parseList
    17:17:java.util.Set parseList(com.android.tools.r8.StringResource,com.android.tools.r8.graph.DexItemFactory):37:37 -> parseList
com.android.tools.r8.utils.MethodJavaSignatureEquivalence -> com.android.tools.r8.utils.T:
    com.android.tools.r8.utils.MethodJavaSignatureEquivalence INSTANCE_IGNORE_NAME -> c
    com.android.tools.r8.utils.MethodJavaSignatureEquivalence INSTANCE -> b
    boolean ignoreName -> a
    1:4:void <clinit>():17:20 -> <clinit>
    1:2:void <init>(boolean):25:26 -> <init>
    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):15:15 -> a
    2:5:boolean doEquivalent(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):39:42 -> a
    2:5:boolean doEquivalent(java.lang.Object,java.lang.Object):15 -> a
    6:6:int doHash(java.lang.Object):15:15 -> a
    7:10:int doHash(com.android.tools.r8.graph.DexMethod):47:50 -> a
    7:10:int doHash(java.lang.Object):15 -> a
    1:1:com.android.tools.r8.utils.MethodJavaSignatureEquivalence getEquivalenceIgnoreName():34:34 -> c
    1:1:com.android.tools.r8.utils.MethodJavaSignatureEquivalence get():30:30 -> get
com.android.tools.r8.utils.MethodSignatureEquivalence -> com.android.tools.r8.utils.U:
    com.android.tools.r8.utils.MethodSignatureEquivalence INSTANCE -> b
    com.android.tools.r8.utils.MethodSignatureEquivalence INSTANCE_IGNORE_NAME -> c
    boolean ignoreName -> a
    1:3:void <clinit>():16:18 -> <clinit>
    1:2:void <init>(boolean):23:24 -> <init>
    1:1:boolean doEquivalent(java.lang.Object,java.lang.Object):14:14 -> a
    2:5:boolean doEquivalent(com.android.tools.r8.graph.DexMethod,com.android.tools.r8.graph.DexMethod):37:40 -> a
    2:5:boolean doEquivalent(java.lang.Object,java.lang.Object):14 -> a
    6:6:int doHash(java.lang.Object):14:14 -> a
    7:10:int doHash(com.android.tools.r8.graph.DexMethod):45:48 -> a
    7:10:int doHash(java.lang.Object):14 -> a
    1:1:com.android.tools.r8.utils.MethodSignatureEquivalence getEquivalenceIgnoreName():32:32 -> c
    1:1:com.android.tools.r8.utils.MethodSignatureEquivalence get():28:28 -> get
com.android.tools.r8.utils.OffOrAuto -> com.android.tools.r8.utils.OffOrAuto:
    com.android.tools.r8.utils.OffOrAuto[] $VALUES -> a
    1:1:void <clinit>():11:11 -> <clinit>
    2:2:void <clinit>():10:10 -> <clinit>
    1:1:void <init>(java.lang.String,int):10:10 -> <init>
com.android.tools.r8.utils.OneShotByteResource -> com.android.tools.r8.utils.V:
    com.android.tools.r8.origin.Origin origin -> a
    java.util.Set classDescriptors -> d
    boolean $assertionsDisabled -> e
    com.android.tools.r8.ProgramResource$Kind kind -> b
    byte[] bytes -> c
    1:1:void <clinit>():13:13 -> <clinit>
    1:6:void <init>(com.android.tools.r8.origin.Origin,com.android.tools.r8.ProgramResource$Kind,byte[],java.util.Set):26:31 -> <init>
    1:1:com.android.tools.r8.ProgramResource create(com.android.tools.r8.ProgramResource$Kind,com.android.tools.r8.origin.Origin,byte[],java.util.Set):22:22 -> a
    1:3:java.io.InputStream getByteStream():46:48 -> getByteStream
    1:1:java.util.Set getClassDescriptors():54:54 -> getClassDescriptors
    1:1:com.android.tools.r8.ProgramResource$Kind getKind():41:41 -> getKind
    1:1:com.android.tools.r8.origin.Origin getOrigin():36:36 -> getOrigin
com.android.tools.r8.utils.OptionsParsing -> com.android.tools.r8.utils.X:
    boolean $assertionsDisabled -> a
    1:1:void <clinit>():10:10 -> <clinit>
    1:13:java.lang.String tryParseSingle(com.android.tools.r8.utils.OptionsParsing$ParseContext,java.lang.String,java.lang.String):37:49 -> a
    14:18:java.lang.String tryParseSingle(com.android.tools.r8.utils.OptionsParsing$ParseContext,java.lang.String,java.lang.String):39:43 -> a
    19:19:java.lang.String tryParseSingle(com.android.tools.r8.utils.OptionsParsing$ParseContext,java.lang.String,java.lang.String):41:41 -> a
    20:27:java.lang.Boolean tryParseBoolean(com.android.tools.r8.utils.OptionsParsing$ParseContext,java.lang.String):60:67 -> a
    1:11:java.util.List tryParseMulti(com.android.tools.r8.utils.OptionsParsing$ParseContext,java.lang.String):18:28 -> b
com.android.tools.r8.utils.OptionsParsing$ParseContext -> com.android.tools.r8.utils.W:
    java.lang.String[] args -> a
    int nextIndex -> b
    1:1:void <init>(java.lang.String[]):76:76 -> <init>
    2:5:void <init>(java.lang.String[]):74:77 -> <init>
    1:1:java.lang.String head():81:81 -> a
    1:5:java.lang.String next():85:89 -> b
com.android.tools.r8.utils.OrderedMergingIterator -> com.android.tools.r8.utils.Y:
    java.util.List other -> b
    java.util.List one -> a
    int otherIndex -> d
    int oneIndex -> c
    1:1:void <init>(java.util.List,java.util.List):21:21 -> <init>
    2:7:void <init>(java.util.List,java.util.List):18:23 -> <init>
    1:1:boolean hasNext():35:35 -> hasNext
    1:1:java.lang.Object next():13:13 -> next
    2:3:com.android.tools.r8.graph.KeyedDexItem next():40:41 -> next
    4:7:java.lang.Object getNextChecked(java.util.List,int):27:30 -> next
    4:7:com.android.tools.r8.graph.KeyedDexItem next():41 -> next
    8:8:com.android.tools.r8.graph.KeyedDexItem next():41:41 -> next
    9:9:java.lang.Object getNextChecked(java.util.List,int):28:28 -> next
    9:9:com.android.tools.r8.graph.KeyedDexItem next():41 -> next
    10:11:com.android.tools.r8.graph.KeyedDexItem next():43:44 -> next
    12:15:java.lang.Object getNextChecked(java.util.List,int):27:30 -> next
    12:15:com.android.tools.r8.graph.KeyedDexItem next():44 -> next
    16:16:com.android.tools.r8.graph.KeyedDexItem next():44:44 -> next
    17:17:java.lang.Object getNextChecked(java.util.List,int):28:28 -> next
    17:17:com.android.tools.r8.graph.KeyedDexItem next():44 -> next
    18:25:com.android.tools.r8.graph.KeyedDexItem next():46:53 -> next
    26:26:com.android.tools.r8.graph.KeyedDexItem next():51:51 -> next
com.android.tools.r8.utils.OutputBuilder -> com.android.tools.r8.utils.Z:
    void addDirectory(java.lang.String,com.android.tools.r8.DiagnosticsHandler) -> a
    void addFile(java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler) -> a
    void addFile(java.lang.String,com.android.tools.r8.DataEntryResource,com.android.tools.r8.DiagnosticsHandler) -> a
    void addIndexedClassFile(int,java.lang.String,com.android.tools.r8.ByteDataView,com.android.tools.r8.DiagnosticsHandler) -> a
    void close(com.android.tools.r8.DiagnosticsHandler) -> a
com.android.tools.r8.utils.Pair -> com.android.tools.r8.utils.Pair:
    java.lang.Object second -> b
    java.lang.Object first -> a
    1:3:void <init>(java.lang.Object,java.lang.Object):23:25 -> <init>
    1:1:void setFirst(java.lang.Object):37:37 -> a
    1:1:void setSecond(java.lang.Object):41:41 -> b
    1:1:boolean equals(java.lang.Object):51:51 -> equals
    1:1:java.lang.Object getFirst():29:29 -> getFirst
    1:1:java.lang.Object getSecond():33:33 -> getSecond
    1:1:int hashCode():46:46 -> hashCode
com.android.tools.r8.utils.PreloadedClassFileProvider -> com.android.tools.r8.utils.PreloadedClassFileProvider:
    java.util.Map content -> a
    1:2:void <init>(java.util.Map):37:38 -> <init>
    1:2:void <init>(java.util.Map,com.android.tools.r8.utils.PreloadedClassFileProvider$1):19 -> <init>
    1:1:com.android.tools.r8.utils.PreloadedClassFileProvider$Builder builder():71:71 -> builder
    1:3:com.android.tools.r8.ClassFileResourceProvider fromClassData(java.lang.String,byte[]):57:59 -> fromClassData
    1:1:java.util.Set getClassDescriptors():43:43 -> getClassDescriptors
    1:6:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):48:53 -> getProgramResource
    7:7:com.android.tools.r8.ProgramResource getProgramResource(java.lang.String):52:52 -> getProgramResource
    1:1:java.lang.String toString():64:64 -> toString
com.android.tools.r8.utils.PreloadedClassFileProvider$1 -> com.android.tools.r8.utils.aa:
com.android.tools.r8.utils.PreloadedClassFileProvider$Builder -> com.android.tools.r8.utils.PreloadedClassFileProvider$Builder:
    java.util.Map content -> a
    boolean $assertionsDisabled -> b
    1:1:void <clinit>():74:74 -> <clinit>
    1:1:void <init>():78:78 -> <init>
    1:1:void <init>(com.android.tools.r8.utils.PreloadedClassFileProvider$1):74 -> <init>
    2:2:void <init>():76:76 -> <init>
    2:2:void <init>(com.android.tools.r8.utils.PreloadedClassFileProvider$1):74 -> <init>
    1:5:com.android.tools.r8.utils.PreloadedClassFileProvider$Builder addResource(java.lang.String,byte[]):82:86 -> addResource
    1:3:com.android.tools.r8.utils.PreloadedClassFileProvider build():91:93 -> build
com.android.tools.r8.utils.PreloadedClassFileProvider$ClassDescriptorOrigin -> com.android.tools.r8.utils.PreloadedClassFileProvider$a:
    java.lang.String descriptor -> e
    1:2:void <init>(java.lang.String):25:26 -> <init>
    1:1:java.lang.String part():31:31 -> part
com.android.tools.r8.utils.ProgramClassCollection -> com.android.tools.r8.utils.ba:
    boolean $assertionsDisabled -> d
    1:1:void <clinit>():20:20 -> <clinit>
    1:1:void <init>(java.util.concurrent.ConcurrentHashMap):34:34 -> <init>
    1:1:java.util.function.Supplier getTransparentSupplier(com.android.tools.r8.graph.DexClass):20:20 -> a
    2:2:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):20:20 -> a
    3:3:com.android.tools.r8.graph.DexProgramClass resolveClassConflict(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):44:44 -> a
    3:3:com.android.tools.r8.graph.DexClass resolveClassConflict(com.android.tools.r8.graph.DexClass,com.android.tools.r8.graph.DexClass):20 -> a
    4:9:com.android.tools.r8.utils.ProgramClassCollection create(java.util.List,com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver):25:30 -> a
    10:10:java.util.function.Supplier lambda$create$0(com.android.tools.r8.dex.ApplicationReader$ProgramClassConflictResolver,java.util.function.Supplier,java.util.function.Supplier):28:28 -> a
    11:16:com.android.tools.r8.graph.DexProgramClass resolveClassConflictImpl(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):58:63 -> a
    17:20:boolean assumeClassesAreEqual(com.android.tools.r8.graph.DexProgramClass):71:74 -> a
    17:20:com.android.tools.r8.graph.DexProgramClass resolveClassConflictImpl(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):64 -> a
    21:21:com.android.tools.r8.graph.DexProgramClass resolveClassConflictImpl(com.android.tools.r8.graph.DexProgramClass,com.android.tools.r8.graph.DexProgramClass):67:67 -> a
    1:1:com.android.tools.r8.graph.ClassKind getClassKind():54:54 -> c
    1:1:java.lang.String toString():39:39 -> toString
com.android.tools.r8.utils.Reporter -> com.android.tools.r8.utils.Reporter:
    com.android.tools.r8.DiagnosticsHandler clientHandler -> a
    com.android.tools.r8.Diagnostic lastError -> c
    java.util.Collection suppressedExceptions -> d
    int errorCount -> b
    1:1:void <init>():24:24 -> <init>
    2:2:void <init>(com.android.tools.r8.DiagnosticsHandler):27:27 -> <init>
    3:12:void <init>(com.android.tools.r8.DiagnosticsHandler):19:28 -> <init>
    1:4:void error(com.android.tools.r8.Diagnostic,java.lang.Throwable):53:56 -> a
    5:7:java.lang.RuntimeException fatalError(com.android.tools.r8.Diagnostic):71:73 -> a
    8:26:void failIfPendingErrors():89:107 -> a
    27:27:java.lang.Throwable addSuppressedExceptions(java.lang.Throwable):111:111 -> a
    1:3:java.lang.RuntimeException fatalError(com.android.tools.r8.Diagnostic,java.lang.Throwable):80:82 -> b
    1:3:void error(com.android.tools.r8.Diagnostic):43:45 -> error
    4:4:void error(java.lang.String):49:49 -> error
    1:2:java.lang.RuntimeException fatalError(java.lang.String):63:64 -> fatalError
    1:1:void info(com.android.tools.r8.Diagnostic):33:33 -> info
    1:1:void warning(com.android.tools.r8.Diagnostic):38:38 -> warning
com.android.tools.r8.utils.Reporter$1 -> com.android.tools.r8.utils.ca:
    1:1:void <init>():24:24 -> <init>
com.android.tools.r8.utils.SelfRetraceTest -> com.android.tools.r8.utils.da:
    1:1:void <init>():9:9 -> <init>
com.android.tools.r8.utils.SingletonEquivalence -> com.android.tools.r8.utils.ea:
    1:1:void <init>():11:11 -> <init>
    boolean doEquivalent(java.lang.Object,java.lang.Object) -> a
    int doHash(java.lang.Object) -> a
com.android.tools.r8.utils.StringDiagnostic -> com.android.tools.r8.utils.StringDiagnostic:
    com.android.tools.r8.origin.Origin origin -> a
    com.android.tools.r8.position.Position position -> b
    java.lang.String message -> c
    1:1:void <init>(java.lang.String):28:28 -> <init>
    2:2:void <init>(java.lang.String,com.android.tools.r8.origin.Origin):32:32 -> <init>
    3:6:void <init>(java.lang.String,com.android.tools.r8.origin.Origin,com.android.tools.r8.position.Position):35:38 -> <init>
    1:1:java.lang.String getDiagnosticMessage():53:53 -> getDiagnosticMessage
    1:1:com.android.tools.r8.origin.Origin getOrigin():43:43 -> getOrigin
    1:1:com.android.tools.r8.position.Position getPosition():48:48 -> getPosition
com.android.tools.r8.utils.StringUtils -> com.android.tools.r8.utils.StringUtils:
    char[] IDENTIFIER_LETTERS -> a
    int NUMBER_OF_LETTERS -> b
    boolean $assertionsDisabled -> c
    1:7:void <clinit>():15:21 -> <clinit>
    1:8:boolean appendNonEmpty(java.lang.StringBuilder,java.lang.String,java.lang.Object,java.lang.String):67:74 -> a
    9:12:java.lang.StringBuilder appendLeftPadded(java.lang.StringBuilder,java.lang.String,int):90:93 -> a
    13:19:java.lang.String zeroPrefixString(java.lang.String,int):200:206 -> a
    20:28:java.lang.String hexString(int,int,boolean):217:225 -> a
    29:37:java.lang.String hexString(long,int,boolean):234:242 -> a
    29:37:java.lang.String hexString(long,int):230 -> a
    38:57:java.lang.String numberToIdentifier(char[],int,boolean):263:282 -> a
    1:1:java.lang.StringBuilder append(java.lang.StringBuilder,java.util.Collection):106:106 -> append
    2:12:java.lang.StringBuilder append(java.lang.StringBuilder,java.util.Collection,java.lang.String,com.android.tools.r8.utils.StringUtils$BraceType):111:121 -> append
    1:3:java.lang.StringBuilder appendRightPadded(java.lang.StringBuilder,java.lang.String,int):98:100 -> b
    1:1:java.lang.String hexString(int,int):213:213 -> hexString
    1:1:java.lang.String join(java.util.Collection,java.lang.String):126:126 -> join
    2:2:java.lang.String join(java.lang.String,java.lang.String[]):130:130 -> join
    3:3:java.lang.String join(java.util.Collection,java.lang.String,com.android.tools.r8.utils.StringUtils$BraceType):134:134 -> join
    4:6:java.lang.String join(java.util.Collection,java.lang.String,com.android.tools.r8.utils.StringUtils$BraceType,java.util.function.Function):139:141 -> join
    1:1:java.lang.String joinLines(java.lang.String[]):167:167 -> joinLines
    1:5:java.lang.String lines(java.util.List):145:149 -> lines
    6:6:java.lang.String lines(java.lang.String[]):153:153 -> lines
    1:18:java.util.List splitLines(java.lang.String):171:188 -> splitLines
    1:9:java.lang.String toASCIIString(java.lang.String):51:59 -> toASCIIString
    1:5:java.lang.String withNativeLineSeparator(java.lang.String):157:161 -> withNativeLineSeparator
    1:1:java.lang.String zeroPrefix(int,int):195:195 -> zeroPrefix
com.android.tools.r8.utils.StringUtils$BraceType -> com.android.tools.r8.utils.StringUtils$BraceType:
    com.android.tools.r8.utils.StringUtils$BraceType TUBORG -> a
    com.android.tools.r8.utils.StringUtils$BraceType[] $VALUES -> b
    1:4:void <clinit>():24:27 -> <clinit>
    5:5:void <clinit>():23:23 -> <clinit>
    1:1:void <init>(java.lang.String,int):23:23 -> <init>
    1:6:java.lang.String left():30:35 -> a
    1:6:java.lang.String right():40:45 -> b
com.android.tools.r8.utils.ThreadUtils -> com.android.tools.r8.utils.ThreadUtils:
    1:14:void awaitFutures(java.lang.Iterable):18:31 -> a
    15:25:void awaitFutures(java.lang.Iterable):24:34 -> a
    1:2:java.util.concurrent.ExecutorService getExecutorService(int):48:49 -> getExecutorService
    3:3:java.util.concurrent.ExecutorService getExecutorService(com.android.tools.r8.utils.InternalOptions):53:53 -> getExecutorService
    1:2:java.util.concurrent.ExecutorService getExecutorServiceForProcessors(int):41:42 -> getExecutorServiceForProcessors
com.android.tools.r8.utils.ThrowingBiConsumer -> com.android.tools.r8.utils.fa:
com.android.tools.r8.utils.ThrowingConsumer -> com.android.tools.r8.utils.ga:
com.android.tools.r8.utils.ThrowingFunction -> com.android.tools.r8.utils.ha:
com.android.tools.r8.utils.Timing -> com.android.tools.r8.utils.Timing:
    java.util.Stack stack -> a
    1:1:void <init>():25:25 -> <init>
    2:4:void <init>(java.lang.String):28:30 -> <init>
    1:10:void begin(java.lang.String):86:95 -> a
    11:12:void end():99:100 -> a
    1:4:void report():104:107 -> b
com.android.tools.r8.utils.Timing$Node -> com.android.tools.r8.utils.Timing$a:
    java.util.Map children -> b
    boolean $assertionsDisabled -> e
    java.lang.String title -> a
    long start_time -> d
    long duration -> c
    1:1:void <clinit>():33:33 -> <clinit>
    1:1:void <init>(java.lang.String):40:40 -> <init>
    2:8:void <init>(java.lang.String):36:42 -> <init>
    1:3:void end():51:53 -> a
    4:4:long duration():57:57 -> a
    4:4:void end():53 -> a
    5:5:void end():53:53 -> a
    6:6:void report(int,com.android.tools.r8.utils.Timing$Node):72:72 -> a
    7:7:long duration():57:57 -> a
    7:7:void report(int,com.android.tools.r8.utils.Timing$Node):72 -> a
    8:15:void report(int,com.android.tools.r8.utils.Timing$Node):72:79 -> a
    16:16:java.lang.String toString(com.android.tools.r8.utils.Timing$Node):66:66 -> a
    16:16:void report(int,com.android.tools.r8.utils.Timing$Node):79 -> a
    17:17:long duration():57:57 -> a
    17:17:java.lang.String toString(com.android.tools.r8.utils.Timing$Node):67 -> a
    17:17:void report(int,com.android.tools.r8.utils.Timing$Node):79 -> a
    18:19:java.lang.String toString(com.android.tools.r8.utils.Timing$Node):67:68 -> a
    18:19:void report(int,com.android.tools.r8.utils.Timing$Node):79 -> a
    20:21:void report(int,com.android.tools.r8.utils.Timing$Node):79:80 -> a
    22:22:void lambda$report$0(int,com.android.tools.r8.utils.Timing$Node,com.android.tools.r8.utils.Timing$Node):80:80 -> a
    1:2:void restart():46:47 -> b
    1:1:java.lang.String toString():62:62 -> toString
    2:2:long duration():57:57 -> toString
    2:2:java.lang.String toString():62 -> toString
    3:3:java.lang.String toString():62:62 -> toString
com.android.tools.r8.utils.VersionProperties -> com.android.tools.r8.utils.VersionProperties:
    java.lang.String sha -> a
    java.lang.String releaser -> b
    boolean $assertionsDisabled -> c
    1:1:void <clinit>():14:14 -> <clinit>
    2:7:com.android.tools.r8.utils.VersionProperties get():28:33 -> <clinit>
    2:7:void <clinit>():16 -> <clinit>
    8:13:com.android.tools.r8.utils.VersionProperties get():29:34 -> <clinit>
    8:13:void <clinit>():16 -> <clinit>
    14:14:void <clinit>():16:16 -> <clinit>
    1:1:void <init>():38:38 -> <init>
    2:10:void <init>(java.io.InputStream):41:49 -> <init>
    1:1:java.lang.String getDescription():53:53 -> a
    1:1:boolean isEngineering():66:66 -> b
    1:1:java.lang.String getSha():57:57 -> getSha
    1:1:java.lang.String toString():62:62 -> toString
com.android.tools.r8.utils.ZipUtils -> com.android.tools.r8.utils.ZipUtils:
    boolean lambda$unzip$0(java.util.zip.ZipEntry) -> a
    1:1:void $closeResource(java.lang.Throwable,java.lang.AutoCloseable):44:44 -> a
    2:4:java.util.List unzip(java.lang.String,java.io.File,java.util.function.Predicate):53:55 -> a
    5:11:void iter(java.lang.String,com.android.tools.r8.utils.ZipUtils$OnEntryHandler):36:42 -> a
    5:11:java.util.List unzip(java.lang.String,java.io.File,java.util.function.Predicate):55 -> a
    12:16:void iter(java.lang.String,com.android.tools.r8.utils.ZipUtils$OnEntryHandler):40:44 -> a
    12:16:java.util.List unzip(java.lang.String,java.io.File,java.util.function.Predicate):55 -> a
    17:25:void iter(java.lang.String,com.android.tools.r8.utils.ZipUtils$OnEntryHandler):36:44 -> a
    17:25:java.util.List unzip(java.lang.String,java.io.File,java.util.function.Predicate):55 -> a
    26:38:void lambda$unzip$1(java.util.function.Predicate,java.nio.file.Path,java.util.List,java.util.zip.ZipEntry,java.io.InputStream):56:68 -> a
    39:41:void lambda$unzip$1(java.util.function.Predicate,java.nio.file.Path,java.util.List,java.util.zip.ZipEntry,java.io.InputStream):65:67 -> a
    42:42:void lambda$unzip$1(java.util.function.Predicate,java.nio.file.Path,java.util.List,java.util.zip.ZipEntry,java.io.InputStream):60:60 -> a
    43:55:void writeToZipStream(java.util.zip.ZipOutputStream,java.lang.String,com.android.tools.r8.ByteDataView,int):83:95 -> a
    56:57:boolean isDexFile(java.lang.String):99:100 -> a
    1:8:boolean isClassFile(java.lang.String):104:111 -> isClassFile
    1:1:java.util.List unzip(java.lang.String,java.io.File):48:48 -> unzip
    1:1:void writeToZipStream(java.util.zip.ZipOutputStream,java.lang.String,byte[],int):77:77 -> writeToZipStream
com.android.tools.r8.utils.ZipUtils$OnEntryHandler -> com.android.tools.r8.utils.ZipUtils$a:
    void onEntry(java.util.zip.ZipEntry,java.io.InputStream) -> a
