# {"id":"partitionSourceFiles","fileNameMappings":{"okhttp3.ResponseBody$Companion":"ResponseBody.kt","okhttp3.Request":"Request.kt","okio.Buffer":"Buffer.kt","com.ustadmobile.libcache.okhttp.RequestExtKt":"RequestExt.kt","kotlinx.coroutines.flow.ReadonlyStateFlow":"Share.kt","com.ustadmobile.libcache.headers.HttpHeadersExtKt":"HttpHeadersExt.kt","okhttp3.internal.http.RealInterceptorChain":"RealInterceptorChain.kt","com.ustadmobile.ihttp.okhttp.headers.OkHttpHeadersAdapterKt":"OkHttpHeadersAdapter.kt","com.ustadmobile.libcache.okhttp.UstadCacheInterceptor$PartialFileMetadata":"UstadCacheInterceptor.kt","com.ustadmobile.libcache.connectivitymonitor.ConnectivityState":"ConnectivityMonitor.kt","kotlin.jvm.internal.Intrinsics":"Intrinsics.java","com.ustadmobile.ihttp.okhttp.request.OkHttpRequestAdapterKt":"OkHttpRequestAdapter.kt","com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitorAndroid":"ConnectivityMonitorAndroid.kt","okio.Okio__OkioKt":"Okio.kt","com.ustadmobile.libcache.cachecontrol.RequestCacheControlHeader":"RequestCacheControlHeader.kt","okhttp3.internal.Internal":"internal.kt","okhttp3.Response$Builder":"Response.kt","okhttp3.Response":"Response.kt","kotlin.time.Clock$System":"Clock.kt","okhttp3.HttpUrl":"HttpUrl.kt","kotlin.time.InstantJvmKt":"InstantJvm.kt"}}
com.ustadmobile.libcache.okhttp.UstadCacheInterceptor -> ru7:
# {"id":"sourceFile","fileName":"UstadCacheInterceptor.kt"}
    com.ustadmobile.libcache.UstadCache cache -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lnu7;"}
    kotlin.jvm.functions.Function0 tmpDirProvider -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lp7;"}
    com.ustadmobile.libcache.logging.UstadCacheLogger logger -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lb42;"}
    com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker cacheControlFreshnessChecker -> d
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lkl4;"}
    com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker responseCacheabilityChecker -> e
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lkl4;"}
    kotlinx.io.files.FileSystem fileSystem -> f
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ldb4;"}
    kotlinx.serialization.json.Json json -> g
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lvi3;"}
    com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor connectivityMonitor -> h
      # {"id":"com.android.tools.r8.residualsignature","signature":"Li71;"}
    java.util.concurrent.ExecutorService executor -> i
    1:2:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor,int,kotlin.jvm.internal.DefaultConstructorMarker):66:66 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lnu7;Lp7;Lb42;Lvi3;Li71;)V"}
    3:5:void com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessCheckerImpl.<init>():8:8 -> <init>
    3:5:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor,int,kotlin.jvm.internal.DefaultConstructorMarker):66 -> <init>
    6:7:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor,int,kotlin.jvm.internal.DefaultConstructorMarker):68:68 -> <init>
    8:10:void com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityCheckerImpl.<init>():5:5 -> <init>
    8:10:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor,int,kotlin.jvm.internal.DefaultConstructorMarker):68 -> <init>
    11:12:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor,int,kotlin.jvm.internal.DefaultConstructorMarker):69:69 -> <init>
    13:15:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor,int,kotlin.jvm.internal.DefaultConstructorMarker):61:61 -> <init>
    16:18:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor):60:60 -> <init>
    16:18:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor,int,kotlin.jvm.internal.DefaultConstructorMarker):61 -> <init>
    19:20:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor):62:62 -> <init>
    19:20:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor,int,kotlin.jvm.internal.DefaultConstructorMarker):61 -> <init>
    21:22:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor):63:63 -> <init>
    21:22:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor,int,kotlin.jvm.internal.DefaultConstructorMarker):61 -> <init>
    23:24:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor):64:64 -> <init>
    23:24:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor,int,kotlin.jvm.internal.DefaultConstructorMarker):61 -> <init>
    25:26:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor):65:65 -> <init>
    25:26:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor,int,kotlin.jvm.internal.DefaultConstructorMarker):61 -> <init>
    27:28:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor):67:67 -> <init>
    27:28:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor,int,kotlin.jvm.internal.DefaultConstructorMarker):61 -> <init>
    29:30:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor):69:69 -> <init>
    29:30:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor,int,kotlin.jvm.internal.DefaultConstructorMarker):61 -> <init>
    31:32:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor):70:70 -> <init>
    31:32:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor,int,kotlin.jvm.internal.DefaultConstructorMarker):61 -> <init>
    33:34:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor):71:71 -> <init>
    33:34:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor,int,kotlin.jvm.internal.DefaultConstructorMarker):61 -> <init>
    35:41:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor):74:74 -> <init>
    35:41:void <init>(com.ustadmobile.libcache.UstadCache,kotlin.jvm.functions.Function0,com.ustadmobile.libcache.logging.UstadCacheLogger,com.ustadmobile.libcache.cachecontrol.CacheControlFreshnessChecker,com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,kotlinx.io.files.FileSystem,kotlinx.serialization.json.Json,com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitor,int,kotlin.jvm.internal.DefaultConstructorMarker):61 -> <init>
    7:8:okhttp3.Request okhttp3.internal.http.RealInterceptorChain.request():309:309 -> a
    7:8:okhttp3.Response intercept(okhttp3.Interceptor$Chain):264 -> a
    7:8:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
      # {"id":"com.android.tools.r8.synthesized"}
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lxq5;)Lv46;"}
    9:14:okhttp3.HttpUrl okhttp3.Request.url():38:38 -> a
    9:14:okhttp3.Response intercept(okhttp3.Interceptor$Chain):265 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    9:14:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    15:16:java.lang.String okhttp3.HttpUrl.toString():757:757 -> a
    15:16:okhttp3.Response intercept(okhttp3.Interceptor$Chain):265 -> a
    15:16:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    17:18:okhttp3.Call okhttp3.internal.http.RealInterceptorChain.call():307:307 -> a
    17:18:okhttp3.Response intercept(okhttp3.Interceptor$Chain):266 -> a
    17:18:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    19:45:okhttp3.Response intercept(okhttp3.Interceptor$Chain):267:267 -> a
    19:45:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    46:47:okhttp3.Response intercept(okhttp3.Interceptor$Chain):269:269 -> a
    46:47:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    48:54:java.lang.String com.ustadmobile.ihttp.okhttp.headers.OkHttpHeadersAdapter.get(java.lang.String):10:10 -> a
    48:54:okhttp3.Response intercept(okhttp3.Interceptor$Chain):269 -> a
    48:54:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    55:61:okhttp3.Response intercept(okhttp3.Interceptor$Chain):270:270 -> a
    55:61:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    62:70:boolean com.ustadmobile.libcache.okhttp.RequestExtKt.mightBeCacheable(okhttp3.Request,com.ustadmobile.libcache.cachecontrol.RequestCacheControlHeader):9:9 -> a
    62:70:okhttp3.Response intercept(okhttp3.Interceptor$Chain):274 -> a
    62:70:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    71:72:boolean com.ustadmobile.libcache.okhttp.RequestExtKt.mightBeCacheable(okhttp3.Request,com.ustadmobile.libcache.cachecontrol.RequestCacheControlHeader):10:10 -> a
    71:72:okhttp3.Response intercept(okhttp3.Interceptor$Chain):274 -> a
    71:72:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    73:76:boolean kotlin.jvm.internal.Intrinsics.areEqual(java.lang.Object,java.lang.Object):169:169 -> a
    73:76:boolean com.ustadmobile.libcache.okhttp.RequestExtKt.mightBeCacheable(okhttp3.Request,com.ustadmobile.libcache.cachecontrol.RequestCacheControlHeader):10 -> a
    73:76:okhttp3.Response intercept(okhttp3.Interceptor$Chain):274 -> a
    73:76:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    77:86:boolean com.ustadmobile.libcache.okhttp.RequestExtKt.mightBeCacheable(okhttp3.Request,com.ustadmobile.libcache.cachecontrol.RequestCacheControlHeader):10:10 -> a
    77:86:okhttp3.Response intercept(okhttp3.Interceptor$Chain):274 -> a
    77:86:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    87:95:boolean kotlin.jvm.internal.Intrinsics.areEqual(java.lang.Object,java.lang.Object):169:169 -> a
    87:95:boolean com.ustadmobile.libcache.okhttp.RequestExtKt.mightBeCacheable(okhttp3.Request,com.ustadmobile.libcache.cachecontrol.RequestCacheControlHeader):10 -> a
    87:95:okhttp3.Response intercept(okhttp3.Interceptor$Chain):274 -> a
    87:95:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    96:99:boolean com.ustadmobile.libcache.cachecontrol.RequestCacheControlHeader.getNoStore():15:15 -> a
    96:99:boolean com.ustadmobile.libcache.okhttp.RequestExtKt.mightBeCacheable(okhttp3.Request,com.ustadmobile.libcache.cachecontrol.RequestCacheControlHeader):10 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    96:99:okhttp3.Response intercept(okhttp3.Interceptor$Chain):274 -> a
    96:99:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    100:106:java.lang.String okhttp3.Request.header(java.lang.String):86:86 -> a
    100:106:okhttp3.Request removeXInterceptHeaders(okhttp3.Request):250 -> a
    100:106:okhttp3.Response intercept(okhttp3.Interceptor$Chain):276 -> a
    100:106:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    107:110:okhttp3.Request removeXInterceptHeaders(okhttp3.Request):253:253 -> a
    107:110:okhttp3.Response intercept(okhttp3.Interceptor$Chain):276 -> a
    107:110:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    111:117:okhttp3.Request$Builder okhttp3.Request$Builder.removeHeader(java.lang.String):275:275 -> a
    111:117:okhttp3.Request$Builder removeXInterceptHeaders(okhttp3.Request$Builder):260 -> a
    111:117:okhttp3.Request removeXInterceptHeaders(okhttp3.Request):254 -> a
    111:117:okhttp3.Response intercept(okhttp3.Interceptor$Chain):276 -> a
    111:117:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    118:122:okhttp3.Request okhttp3.Request$Builder.build():432:432 -> a
    118:122:okhttp3.Request removeXInterceptHeaders(okhttp3.Request):255 -> a
    118:122:okhttp3.Response intercept(okhttp3.Interceptor$Chain):276 -> a
    118:122:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    123:126:okhttp3.Response intercept(okhttp3.Interceptor$Chain):276:276 -> a
    123:126:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    127:148:okhttp3.Response intercept(okhttp3.Interceptor$Chain):279:279 -> a
    127:148:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    149:153:okhttp3.Response intercept(okhttp3.Interceptor$Chain):277:277 -> a
    149:153:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    154:155:okhttp3.Response intercept(okhttp3.Interceptor$Chain):285:285 -> a
    154:155:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    156:159:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0:0 -> a
    160:164:void com.ustadmobile.libcache.logging.NapierLoggingAdapter.e(java.lang.String,java.lang.String,java.lang.Throwable):39:39 -> a
    160:164:okhttp3.Response intercept(okhttp3.Interceptor$Chain):283 -> a
    160:164:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    165:165:okhttp3.Response intercept(okhttp3.Interceptor$Chain):288:288 -> a
    165:165:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    166:171:okhttp3.Response intercept(okhttp3.Interceptor$Chain):292:292 -> a
    166:171:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    172:178:okhttp3.Response intercept(okhttp3.Interceptor$Chain):293:293 -> a
    172:178:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    179:183:com.ustadmobile.ihttp.request.IHttpRequest com.ustadmobile.ihttp.okhttp.request.OkHttpRequestAdapterKt.asIHttpRequest(okhttp3.Request):22:22 -> a
    179:183:okhttp3.Response intercept(okhttp3.Interceptor$Chain):296 -> a
    179:183:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    184:192:okhttp3.Response intercept(okhttp3.Interceptor$Chain):297:297 -> a
    184:192:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    193:194:java.lang.Object kotlinx.coroutines.BuildersKt__Builders_concurrentKt.runBlockingK$default(kotlin.coroutines.CoroutineContext,kotlin.jvm.functions.Function2,int,java.lang.Object):158:158 -> a
    193:194:java.lang.Object kotlinx.coroutines.BuildersKt.runBlockingK$default(kotlin.coroutines.CoroutineContext,kotlin.jvm.functions.Function2,int,java.lang.Object):1 -> a
    193:194:okhttp3.Response intercept(okhttp3.Interceptor$Chain):297 -> a
    193:194:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    195:198:java.lang.Object kotlinx.coroutines.BuildersKt.runBlockingK(kotlin.coroutines.CoroutineContext,kotlin.jvm.functions.Function2):1:1 -> a
    195:198:java.lang.Object kotlinx.coroutines.BuildersKt__Builders_concurrentKt.runBlockingK$default(kotlin.coroutines.CoroutineContext,kotlin.jvm.functions.Function2,int,java.lang.Object):157 -> a
    195:198:java.lang.Object kotlinx.coroutines.BuildersKt.runBlockingK$default(kotlin.coroutines.CoroutineContext,kotlin.jvm.functions.Function2,int,java.lang.Object):1 -> a
    195:198:okhttp3.Response intercept(okhttp3.Interceptor$Chain):297 -> a
    195:198:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    199:205:okhttp3.Response intercept(okhttp3.Interceptor$Chain):297:297 -> a
    199:205:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    206:213:com.ustadmobile.ihttp.okhttp.headers.OkHttpHeadersAdapter com.ustadmobile.ihttp.okhttp.headers.OkHttpHeadersAdapterKt.asIHttpHeaders(okhttp3.Headers):22:22 -> a
    206:213:okhttp3.Response intercept(okhttp3.Interceptor$Chain):301 -> a
    206:213:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    214:217:okhttp3.Response intercept(okhttp3.Interceptor$Chain):303:303 -> a
    214:217:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    218:236:okhttp3.Response intercept(okhttp3.Interceptor$Chain):304:304 -> a
    218:236:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    237:242:kotlin.time.Instant kotlin.time.InstantJvmKt.systemClockNow():13:13 -> a
    237:242:kotlin.time.Instant kotlin.time.Clock$System.now():60 -> a
    237:242:okhttp3.Response intercept(okhttp3.Interceptor$Chain):305 -> a
    237:242:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    243:246:okhttp3.Response intercept(okhttp3.Interceptor$Chain):305:305 -> a
    243:246:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    247:263:okhttp3.Response intercept(okhttp3.Interceptor$Chain):306:306 -> a
    247:263:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    264:269:kotlin.time.Instant kotlin.time.InstantJvmKt.systemClockNow():13:13 -> a
    264:269:kotlin.time.Instant kotlin.time.Clock$System.now():60 -> a
    264:269:okhttp3.Response intercept(okhttp3.Interceptor$Chain):307 -> a
    264:269:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    270:276:okhttp3.Response intercept(okhttp3.Interceptor$Chain):307:307 -> a
    270:276:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    277:289:okhttp3.Response intercept(okhttp3.Interceptor$Chain):300:300 -> a
    277:289:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    290:291:okhttp3.Response intercept(okhttp3.Interceptor$Chain):311:311 -> a
    290:291:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    292:293:kotlinx.coroutines.flow.StateFlow com.ustadmobile.libcache.connectivitymonitor.ConnectivityMonitorAndroid.getStatusFlow():19:19 -> a
    292:293:okhttp3.Response intercept(okhttp3.Interceptor$Chain):311 -> a
    292:293:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    294:299:java.lang.Object kotlinx.coroutines.flow.ReadonlyStateFlow.getValue():0:0 -> a
    294:299:okhttp3.Response intercept(okhttp3.Interceptor$Chain):311 -> a
    294:299:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    300:301:okhttp3.Response intercept(okhttp3.Interceptor$Chain):311:311 -> a
    300:301:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    302:307:boolean com.ustadmobile.libcache.connectivitymonitor.ConnectivityState.isConnected():9:9 -> a
    302:307:okhttp3.Response intercept(okhttp3.Interceptor$Chain):311 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    302:307:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    308:320:boolean com.ustadmobile.libcache.cachecontrol.RequestCacheControlHeader.getOnlyIfCached():17:17 -> a
    308:320:okhttp3.Response intercept(okhttp3.Interceptor$Chain):312 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    308:320:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    321:334:boolean com.ustadmobile.libcache.cachecontrol.CachedResponseStatus.isFresh():15:15 -> a
    321:334:okhttp3.Response intercept(okhttp3.Interceptor$Chain):313 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    321:334:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    335:338:okhttp3.Response intercept(okhttp3.Interceptor$Chain):321:321 -> a
    335:338:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    339:368:okhttp3.Response intercept(okhttp3.Interceptor$Chain):322:322 -> a
    339:368:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    369:373:boolean com.ustadmobile.libcache.cachecontrol.RequestCacheControlHeader.getOnlyIfCached():17:17 -> a
    369:373:okhttp3.Response intercept(okhttp3.Interceptor$Chain):334 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    369:373:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    374:375:void okhttp3.Response$Builder.<init>():360:360 -> a
    374:375:okhttp3.Response intercept(okhttp3.Interceptor$Chain):335 -> a
    374:375:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    376:382:void okhttp3.Headers$Builder.<init>():206:206 -> a
    376:382:void okhttp3.Response$Builder.<init>():371 -> a
    376:382:okhttp3.Response intercept(okhttp3.Interceptor$Chain):335 -> a
    376:382:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    383:384:kotlin.Pair okhttp3.internal.Internal.chooseCharset(okhttp3.MediaType):93:93 -> a
    383:384:okhttp3.ResponseBody okhttp3.ResponseBody$Companion.create(java.lang.String,okhttp3.MediaType):245 -> a
    383:384:okhttp3.ResponseBody okhttp3.ResponseBody$Companion.create$default(okhttp3.ResponseBody$Companion,java.lang.String,okhttp3.MediaType,int,java.lang.Object):244 -> a
    383:384:okhttp3.Response intercept(okhttp3.Interceptor$Chain):340 -> a
    383:384:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    385:386:okhttp3.ResponseBody okhttp3.ResponseBody$Companion.create(java.lang.String,okhttp3.MediaType):246:246 -> a
    385:386:okhttp3.ResponseBody okhttp3.ResponseBody$Companion.create$default(okhttp3.ResponseBody$Companion,java.lang.String,okhttp3.MediaType,int,java.lang.Object):244 -> a
    385:386:okhttp3.Response intercept(okhttp3.Interceptor$Chain):340 -> a
    385:386:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    387:389:void okio.Buffer.<init>():76:76 -> a
    387:389:okhttp3.ResponseBody okhttp3.ResponseBody$Companion.create(java.lang.String,okhttp3.MediaType):246 -> a
    387:389:okhttp3.ResponseBody okhttp3.ResponseBody$Companion.create$default(okhttp3.ResponseBody$Companion,java.lang.String,okhttp3.MediaType,int,java.lang.Object):244 -> a
    387:389:okhttp3.Response intercept(okhttp3.Interceptor$Chain):340 -> a
    387:389:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    390:392:okio.Buffer okio.Buffer.writeString(java.lang.String,java.nio.charset.Charset):0:0 -> a
    390:392:okhttp3.ResponseBody okhttp3.ResponseBody$Companion.create(java.lang.String,okhttp3.MediaType):246 -> a
    390:392:okhttp3.ResponseBody okhttp3.ResponseBody$Companion.create$default(okhttp3.ResponseBody$Companion,java.lang.String,okhttp3.MediaType,int,java.lang.Object):244 -> a
    390:392:okhttp3.Response intercept(okhttp3.Interceptor$Chain):340 -> a
    390:392:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    393:396:boolean kotlin.jvm.internal.Intrinsics.areEqual(java.lang.Object,java.lang.Object):169:169 -> a
    393:396:okio.Buffer okio.Buffer.writeString(java.lang.String,int,int,java.nio.charset.Charset):407 -> a
    393:396:okio.Buffer okio.Buffer.writeString(java.lang.String,java.nio.charset.Charset):391 -> a
    393:396:okhttp3.ResponseBody okhttp3.ResponseBody$Companion.create(java.lang.String,okhttp3.MediaType):246 -> a
    393:396:okhttp3.ResponseBody okhttp3.ResponseBody$Companion.create$default(okhttp3.ResponseBody$Companion,java.lang.String,okhttp3.MediaType,int,java.lang.Object):244 -> a
    393:396:okhttp3.Response intercept(okhttp3.Interceptor$Chain):340 -> a
    393:396:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    397:408:okio.Buffer okio.Buffer.writeString(java.lang.String,int,int,java.nio.charset.Charset):407:407 -> a
    397:408:okio.Buffer okio.Buffer.writeString(java.lang.String,java.nio.charset.Charset):391 -> a
    397:408:okhttp3.ResponseBody okhttp3.ResponseBody$Companion.create(java.lang.String,okhttp3.MediaType):246 -> a
    397:408:okhttp3.ResponseBody okhttp3.ResponseBody$Companion.create$default(okhttp3.ResponseBody$Companion,java.lang.String,okhttp3.MediaType,int,java.lang.Object):244 -> a
    397:408:okhttp3.Response intercept(okhttp3.Interceptor$Chain):340 -> a
    397:408:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    409:415:okio.Buffer okio.Buffer.writeString(java.lang.String,int,int,java.nio.charset.Charset):408:408 -> a
    409:415:okio.Buffer okio.Buffer.writeString(java.lang.String,java.nio.charset.Charset):391 -> a
    409:415:okhttp3.ResponseBody okhttp3.ResponseBody$Companion.create(java.lang.String,okhttp3.MediaType):246 -> a
    409:415:okhttp3.ResponseBody okhttp3.ResponseBody$Companion.create$default(okhttp3.ResponseBody$Companion,java.lang.String,okhttp3.MediaType,int,java.lang.Object):244 -> a
    409:415:okhttp3.Response intercept(okhttp3.Interceptor$Chain):340 -> a
    409:415:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    416:419:okio.Buffer okio.Buffer.writeString(java.lang.String,int,int,java.nio.charset.Charset):409:409 -> a
    416:419:okio.Buffer okio.Buffer.writeString(java.lang.String,java.nio.charset.Charset):391 -> a
    416:419:okhttp3.ResponseBody okhttp3.ResponseBody$Companion.create(java.lang.String,okhttp3.MediaType):246 -> a
    416:419:okhttp3.ResponseBody okhttp3.ResponseBody$Companion.create$default(okhttp3.ResponseBody$Companion,java.lang.String,okhttp3.MediaType,int,java.lang.Object):244 -> a
    416:419:okhttp3.Response intercept(okhttp3.Interceptor$Chain):340 -> a
    416:419:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    420:422:long okio.Buffer.size():80:80 -> a
    420:422:okhttp3.ResponseBody okhttp3.ResponseBody$Companion.create(java.lang.String,okhttp3.MediaType):247 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    420:422:okhttp3.ResponseBody okhttp3.ResponseBody$Companion.create$default(okhttp3.ResponseBody$Companion,java.lang.String,okhttp3.MediaType,int,java.lang.Object):244 -> a
    420:422:okhttp3.Response intercept(okhttp3.Interceptor$Chain):340 -> a
    420:422:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    423:429:okhttp3.ResponseBody okhttp3.ResponseBody$Companion.create(okio.BufferedSource,okhttp3.MediaType,long):273:273 -> a
    423:429:okhttp3.ResponseBody okhttp3.ResponseBody$Companion.create(java.lang.String,okhttp3.MediaType):247 -> a
    423:429:okhttp3.ResponseBody okhttp3.ResponseBody$Companion.create$default(okhttp3.ResponseBody$Companion,java.lang.String,okhttp3.MediaType,int,java.lang.Object):244 -> a
    423:429:okhttp3.Response intercept(okhttp3.Interceptor$Chain):340 -> a
    423:429:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    430:431:okhttp3.Headers okhttp3.internal._HeadersCommonKt.commonBuild(okhttp3.Headers$Builder):139:139 -> a
    430:431:okhttp3.Headers okhttp3.Headers$Builder.build():326 -> a
    430:431:okhttp3.Response okhttp3.Response$Builder.build():516 -> a
    430:431:okhttp3.Response intercept(okhttp3.Interceptor$Chain):341 -> a
    430:431:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    432:439:okhttp3.Headers okhttp3.internal._HeadersCommonKt.commonBuild(okhttp3.Headers$Builder):215:215 -> a
    432:439:okhttp3.Headers okhttp3.Headers$Builder.build():326 -> a
    432:439:okhttp3.Response okhttp3.Response$Builder.build():516 -> a
    432:439:okhttp3.Response intercept(okhttp3.Interceptor$Chain):341 -> a
    432:439:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    440:443:okhttp3.Headers okhttp3.internal._HeadersCommonKt.commonBuild(okhttp3.Headers$Builder):139:139 -> a
    440:443:okhttp3.Headers okhttp3.Headers$Builder.build():326 -> a
    440:443:okhttp3.Response okhttp3.Response$Builder.build():516 -> a
    440:443:okhttp3.Response intercept(okhttp3.Interceptor$Chain):341 -> a
    440:443:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    444:472:okhttp3.Response okhttp3.Response$Builder.build():510:510 -> a
    444:472:okhttp3.Response intercept(okhttp3.Interceptor$Chain):341 -> a
    444:472:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    473:507:okhttp3.Response intercept(okhttp3.Interceptor$Chain):342:342 -> a
    473:507:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    508:529:okhttp3.Response intercept(okhttp3.Interceptor$Chain):350:350 -> a
    508:529:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    530:533:okhttp3.Response intercept(okhttp3.Interceptor$Chain):351:351 -> a
    530:533:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    534:540:okhttp3.Request$Builder okhttp3.Request$Builder.removeHeader(java.lang.String):275:275 -> a
    534:540:okhttp3.Request$Builder removeXInterceptHeaders(okhttp3.Request$Builder):260 -> a
    534:540:okhttp3.Response intercept(okhttp3.Interceptor$Chain):352 -> a
    534:540:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    541:544:okhttp3.Response intercept(okhttp3.Interceptor$Chain):353:353 -> a
    541:544:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    545:547:okhttp3.Response intercept(okhttp3.Interceptor$Chain):354:354 -> a
    545:547:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    548:551:okhttp3.Response intercept(okhttp3.Interceptor$Chain):356:356 -> a
    548:551:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    552:554:okhttp3.Response intercept(okhttp3.Interceptor$Chain):357:357 -> a
    552:554:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    555:559:okhttp3.Request okhttp3.Request$Builder.build():432:432 -> a
    555:559:okhttp3.Response intercept(okhttp3.Interceptor$Chain):360 -> a
    555:559:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    560:563:okhttp3.Response intercept(okhttp3.Interceptor$Chain):360:360 -> a
    560:563:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    564:569:int okhttp3.Response.code():61:61 -> a
    564:569:okhttp3.Response intercept(okhttp3.Interceptor$Chain):366 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    564:569:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    570:572:okhttp3.Response intercept(okhttp3.Interceptor$Chain):367:367 -> a
    570:572:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    573:581:okhttp3.Response intercept(okhttp3.Interceptor$Chain):368:368 -> a
    573:581:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    582:584:java.lang.Object kotlinx.coroutines.BuildersKt.runBlockingK$default(kotlin.coroutines.CoroutineContext,kotlin.jvm.functions.Function2,int,java.lang.Object):1:1 -> a
    582:584:okhttp3.Response intercept(okhttp3.Interceptor$Chain):368 -> a
    582:584:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    585:588:com.ustadmobile.ihttp.headers.IHttpHeaders com.ustadmobile.ihttp.okhttp.request.OkHttpRequestAdapter.getHeaders():11:11 -> a
    585:588:okhttp3.Response intercept(okhttp3.Interceptor$Chain):374 -> a
    585:588:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    589:595:boolean com.ustadmobile.libcache.headers.HttpHeadersExtKt.containsHeader(com.ustadmobile.ihttp.headers.IHttpHeaders,java.lang.String):28:28 -> a
    589:595:boolean com.ustadmobile.libcache.headers.HttpHeadersExtKt.hasCacheValidators(com.ustadmobile.ihttp.headers.IHttpHeaders):35 -> a
    589:595:okhttp3.Response intercept(okhttp3.Interceptor$Chain):374 -> a
    589:595:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    596:601:boolean com.ustadmobile.libcache.headers.HttpHeadersExtKt.containsHeader(com.ustadmobile.ihttp.headers.IHttpHeaders,java.lang.String):28:28 -> a
    596:601:boolean com.ustadmobile.libcache.headers.HttpHeadersExtKt.hasCacheValidators(com.ustadmobile.ihttp.headers.IHttpHeaders):36 -> a
    596:601:okhttp3.Response intercept(okhttp3.Interceptor$Chain):374 -> a
    596:601:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    602:603:okhttp3.Response intercept(okhttp3.Interceptor$Chain):377:377 -> a
    602:603:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    604:618:okhttp3.Response intercept(okhttp3.Interceptor$Chain):379:379 -> a
    604:618:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    619:620:okhttp3.Response intercept(okhttp3.Interceptor$Chain):381:381 -> a
    619:620:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    621:623:okhttp3.Response intercept(okhttp3.Interceptor$Chain):377:377 -> a
    621:623:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    624:627:okhttp3.Response intercept(okhttp3.Interceptor$Chain):382:382 -> a
    624:627:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    628:637:okhttp3.Response intercept(okhttp3.Interceptor$Chain):385:385 -> a
    628:637:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    638:641:okhttp3.Response intercept(okhttp3.Interceptor$Chain):383:383 -> a
    638:641:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    642:645:okhttp3.Response intercept(okhttp3.Interceptor$Chain):389:389 -> a
    642:645:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    646:673:okhttp3.Response intercept(okhttp3.Interceptor$Chain):390:390 -> a
    646:673:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    674:683:okhttp3.Response intercept(okhttp3.Interceptor$Chain):394:394 -> a
    674:683:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    684:687:boolean com.ustadmobile.libcache.okhttp.ResponseCacheabilityCheckerExtKt.canStore$default(com.ustadmobile.libcache.cachecontrol.ResponseCacheabilityChecker,okhttp3.Response,boolean,int,java.lang.Object):8:8 -> a
    684:687:okhttp3.Response intercept(okhttp3.Interceptor$Chain):395 -> a
    684:687:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    688:691:okhttp3.Response intercept(okhttp3.Interceptor$Chain):395:395 -> a
    688:691:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    692:695:okhttp3.Response intercept(okhttp3.Interceptor$Chain):397:397 -> a
    692:695:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    696:723:okhttp3.Response intercept(okhttp3.Interceptor$Chain):398:398 -> a
    696:723:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    724:747:okhttp3.Response intercept(okhttp3.Interceptor$Chain):403:403 -> a
    724:747:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    748:752:okhttp3.Response intercept(okhttp3.Interceptor$Chain):402:402 -> a
    748:752:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    753:754:okhttp3.Response intercept(okhttp3.Interceptor$Chain):362:362 -> a
    753:754:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    755:758:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0:0 -> a
    759:763:void com.ustadmobile.libcache.logging.NapierLoggingAdapter.e(java.lang.String,java.lang.String,java.lang.Throwable):39:39 -> a
    759:763:okhttp3.Response intercept(okhttp3.Interceptor$Chain):362 -> a
    759:763:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    764:766:okhttp3.Response intercept(okhttp3.Interceptor$Chain):363:363 -> a
    764:766:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    767:778:okhttp3.Response intercept(okhttp3.Interceptor$Chain):412:412 -> a
    767:778:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    779:782:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0:0 -> a
    783:791:okhttp3.Response intercept(okhttp3.Interceptor$Chain):412:412 -> a
    783:791:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    792:808:okhttp3.Response intercept(okhttp3.Interceptor$Chain):416:416 -> a
    792:808:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    809:833:okhttp3.Response intercept(okhttp3.Interceptor$Chain):418:418 -> a
    809:833:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    834:840:java.lang.String com.ustadmobile.libcache.okhttp.UstadCacheInterceptor$PartialFileMetadata.getEtag():85:85 -> a
    834:840:okhttp3.Response intercept(okhttp3.Interceptor$Chain):420 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    834:840:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    841:844:okhttp3.Response intercept(okhttp3.Interceptor$Chain):423:423 -> a
    841:844:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    845:851:okhttp3.Request$Builder okhttp3.Request$Builder.removeHeader(java.lang.String):275:275 -> a
    845:851:okhttp3.Request$Builder removeXInterceptHeaders(okhttp3.Request$Builder):260 -> a
    845:851:okhttp3.Response intercept(okhttp3.Interceptor$Chain):424 -> a
    845:851:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    852:856:okhttp3.Response intercept(okhttp3.Interceptor$Chain):425:425 -> a
    852:856:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    857:864:okhttp3.Response intercept(okhttp3.Interceptor$Chain):426:426 -> a
    857:864:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    865:868:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0:0 -> a
    869:873:okhttp3.Response intercept(okhttp3.Interceptor$Chain):426:426 -> a
    869:873:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    874:879:okhttp3.Request okhttp3.Request$Builder.build():432:432 -> a
    874:879:okhttp3.Response intercept(okhttp3.Interceptor$Chain):427 -> a
    874:879:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    880:888:java.lang.String okhttp3.Request.header(java.lang.String):86:86 -> a
    880:888:okhttp3.Request removeXInterceptHeaders(okhttp3.Request):250 -> a
    880:888:okhttp3.Response intercept(okhttp3.Interceptor$Chain):429 -> a
    880:888:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    889:892:okhttp3.Request removeXInterceptHeaders(okhttp3.Request):253:253 -> a
    889:892:okhttp3.Response intercept(okhttp3.Interceptor$Chain):429 -> a
    889:892:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    893:899:okhttp3.Request$Builder okhttp3.Request$Builder.removeHeader(java.lang.String):275:275 -> a
    893:899:okhttp3.Request$Builder removeXInterceptHeaders(okhttp3.Request$Builder):260 -> a
    893:899:okhttp3.Request removeXInterceptHeaders(okhttp3.Request):254 -> a
    893:899:okhttp3.Response intercept(okhttp3.Interceptor$Chain):429 -> a
    893:899:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    900:904:okhttp3.Request okhttp3.Request$Builder.build():432:432 -> a
    900:904:okhttp3.Request removeXInterceptHeaders(okhttp3.Request):255 -> a
    900:904:okhttp3.Response intercept(okhttp3.Interceptor$Chain):429 -> a
    900:904:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    905:913:okhttp3.Response intercept(okhttp3.Interceptor$Chain):433:433 -> a
    905:913:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    914:919:okhttp3.Response intercept(okhttp3.Interceptor$Chain):444:444 -> a
    914:919:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    920:923:okhttp3.Response intercept(okhttp3.Interceptor$Chain):449:449 -> a
    920:923:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    924:951:okhttp3.Response intercept(okhttp3.Interceptor$Chain):450:450 -> a
    924:951:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    952:980:okhttp3.Response intercept(okhttp3.Interceptor$Chain):454:454 -> a
    952:980:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    981:982:okhttp3.Response intercept(okhttp3.Interceptor$Chain):437:437 -> a
    981:982:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    983:986:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0:0 -> a
    987:991:void com.ustadmobile.libcache.logging.NapierLoggingAdapter.e(java.lang.String,java.lang.String,java.lang.Throwable):39:39 -> a
    987:991:okhttp3.Response intercept(okhttp3.Interceptor$Chain):435 -> a
    987:991:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    992:992:okhttp3.Response intercept(okhttp3.Interceptor$Chain):440:440 -> a
    992:992:Response UstadCacheInterceptor.intercept(RealInterceptorChain1):0 -> a
    1:2:int okhttp3.Response.code():61:61 -> b
    1:2:java.lang.String logSummary(okhttp3.Response):79 -> b
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    1:2:java.lang.String UstadCacheInterceptor.logSummary(Response):0 -> b
      # {"id":"com.android.tools.r8.synthesized"}
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lv46;)Ljava/lang/String;"}
    3:4:java.lang.String okhttp3.Response.message():59:59 -> b
    3:4:java.lang.String logSummary(okhttp3.Response):79 -> b
    3:4:java.lang.String UstadCacheInterceptor.logSummary(Response):0 -> b
    5:6:okhttp3.Headers okhttp3.Response.headers():68:68 -> b
    5:6:java.lang.String logSummary(okhttp3.Response):79 -> b
    5:6:java.lang.String UstadCacheInterceptor.logSummary(Response):0 -> b
    7:12:java.lang.String logSummary(okhttp3.Response):79:79 -> b
    7:12:java.lang.String UstadCacheInterceptor.logSummary(Response):0 -> b
    13:61:java.lang.String logSummary(okhttp3.Response):80:80 -> b
    13:61:java.lang.String UstadCacheInterceptor.logSummary(Response):0 -> b
    62:66:java.lang.String UstadCacheInterceptor.logSummary(Response):0:0 -> b
    1:2:okhttp3.Request okhttp3.Response.request():55:55 -> c
    1:2:okhttp3.Response newCacheAndStoreResponse(okhttp3.Response,okhttp3.Call):230 -> c
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Loq5;Lv46;)Lv46;"}
    3:4:java.lang.String okhttp3.Request.method():41:41 -> c
    3:4:okhttp3.Response newCacheAndStoreResponse(okhttp3.Response,okhttp3.Call):230 -> c
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    5:6:okhttp3.HttpUrl okhttp3.Request.url():38:38 -> c
    5:6:okhttp3.Response newCacheAndStoreResponse(okhttp3.Response,okhttp3.Call):231 -> c
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    7:8:int okhttp3.Response.code():61:61 -> c
    7:8:okhttp3.Response newCacheAndStoreResponse(okhttp3.Response,okhttp3.Call):231 -> c
    9:10:java.lang.String okhttp3.Response.message():59:59 -> c
    9:10:okhttp3.Response newCacheAndStoreResponse(okhttp3.Response,okhttp3.Call):231 -> c
    11:51:okhttp3.Response newCacheAndStoreResponse(okhttp3.Response,okhttp3.Call):231:231 -> c
    52:56:okhttp3.Response newCacheAndStoreResponse(okhttp3.Response,okhttp3.Call):230:230 -> c
    57:61:okhttp3.Response newCacheAndStoreResponse(okhttp3.Response,okhttp3.Call):232:232 -> c
    62:66:okhttp3.Response newCacheAndStoreResponse(okhttp3.Response,okhttp3.Call):233:233 -> c
    67:70:okhttp3.Response newCacheAndStoreResponse(okhttp3.Response,okhttp3.Call):235:235 -> c
    71:72:okhttp3.Response newCacheAndStoreResponse(okhttp3.Response,okhttp3.Call):236:236 -> c
    73:76:okio.Source okio.Okio.source(java.io.InputStream):1:1 -> c
    73:76:okhttp3.Response newCacheAndStoreResponse(okhttp3.Response,okhttp3.Call):236 -> c
    77:81:okio.BufferedSource okio.Okio__OkioKt.buffer(okio.Source):33:33 -> c
    77:81:okio.BufferedSource okio.Okio.buffer(okio.Source):1 -> c
    77:81:okhttp3.Response newCacheAndStoreResponse(okhttp3.Response,okhttp3.Call):236 -> c
    82:97:okhttp3.Response newCacheAndStoreResponse(okhttp3.Response,okhttp3.Call):237:237 -> c
    98:101:okhttp3.Response newCacheAndStoreResponse(okhttp3.Response,okhttp3.Call):238:238 -> c
    102:106:okhttp3.ResponseBody okhttp3.ResponseBody$Companion.create(okio.BufferedSource,okhttp3.MediaType,long):273:273 -> c
    102:106:okhttp3.Response newCacheAndStoreResponse(okhttp3.Response,okhttp3.Call):236 -> c
    107:108:okhttp3.Response$Builder okhttp3.Response$Builder.body(okhttp3.ResponseBody):453:453 -> c
    107:108:okhttp3.Response newCacheAndStoreResponse(okhttp3.Response,okhttp3.Call):235 -> c
    109:112:okhttp3.Response newCacheAndStoreResponse(okhttp3.Response,okhttp3.Call):241:241 -> c
    113:127:okhttp3.Response newCacheAndStoreResponse(okhttp3.Response,okhttp3.Call):242:242 -> c
