| ExoWrapper |   | 57% |   | 40% | 9 | 17 | 13 | 34 | 5 | 11 | 0 | 1 |
| ExoVideoSwitcher |  | 0% |  | 0% | 6 | 6 | 19 | 19 | 3 | 3 | 1 | 1 |
| InstreamExoWrapper |  | 0% | | n/a | 6 | 6 | 13 | 13 | 6 | 6 | 1 | 1 |
| ExoWrapper.exoListener.new Player.EventListener() {...} |   | 7% | | n/a | 13 | 14 | 17 | 18 | 13 | 14 | 0 | 1 |
| IExoVideoLoader.ExoVideoLoader |   | 66% |   | 30% | 5 | 7 | 4 | 15 | 0 | 2 | 0 | 1 |
| ExoWrapper.exoListener.1.onPlayerError.new Function3() {...} |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 | 1 | 1 |
| ExoWrapper.1.new Function3() {...} |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 | 1 | 1 |
| ExoWrapper.exoListener.1.onPlayerError.new Function3() {...} |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 | 1 | 1 |
| ExoWrapper.seek.new Function3() {...} |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 | 1 | 1 |
| ExoWrapper.update.new Function3() {...} |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 | 1 | 1 |
| ExoWrapper.seek.new Function3() {...} |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| SxVideoPlayerEvent |   | 77% |   | 70% | 8 | 11 | 3 | 6 | 5 | 6 | 0 | 1 |
| PlaybackState.ERROR |  | 0% | | n/a | 2 | 2 | 1 | 1 | 2 | 2 | 1 | 1 |
| ExoWrapper.Companion |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| PlaybackState.ENDED |  | 0% | | n/a | 2 | 2 | 1 | 1 | 2 | 2 | 1 | 1 |
| PlaybackState.PAUSED |  | 0% | | n/a | 2 | 2 | 1 | 1 | 2 | 2 | 1 | 1 |
| IExoVideoLoader.DefaultImpls |   | 78% |   | 50% | 5 | 6 | 0 | 4 | 0 | 1 | 0 | 1 |
| AbsVideoPlayerWrapper |   | 97% | | n/a | 1 | 10 | 0 | 17 | 1 | 10 | 0 | 1 |
| SxInstreamVideoPlayerWrapper.DefaultImpls |  | 0% | | n/a | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 |
| ExoWrapper.update.new Function3() {...} |  | 100% | | n/a | 0 | 1 | 0 | 6 | 0 | 1 | 0 | 1 |
| ExoWrapper.new Function2() {...} |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 | 0 | 1 |
| ExoHolder |  | 100% | | n/a | 0 | 3 | 0 | 6 | 0 | 3 | 0 | 1 |
| IExoVideoLoader.ExoVideoLoader.Companion |  | 100% | | n/a | 0 | 2 | 0 | 3 | 0 | 2 | 0 | 1 |
| ExoWrapper.1.new Function3() {...} |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 | 0 | 1 |
| PlaybackState.BUFFERING |  | 100% | | n/a | 0 | 2 | 0 | 1 | 0 | 2 | 0 | 1 |
| PlaybackState.PLAYING |  | 100% | | n/a | 0 | 2 | 0 | 1 | 0 | 2 | 0 | 1 |
| PlaybackState.IDLE |  | 100% | | n/a | 0 | 2 | 0 | 1 | 0 | 2 | 0 | 1 |
| AbsVideoPlayerWrapper.playbackStateObservable.new Function2() {...} |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 | 0 | 1 |
| PlaybackState |  | 100% | | n/a | 0 | 2 | 0 | 2 | 0 | 2 | 0 | 1 |
| AbsVideoPlayerWrapper.playWhenReadyControllable.new Function2() {...} |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 | 0 | 1 |
| AbsVideoPlayerWrapper.mediaUrl.new Function2() {...} |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 | 0 | 1 |
| AbsVideoPlayerWrapper.durationObservable.new Function2() {...} |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 | 0 | 1 |
| AbsVideoPlayerWrapper.positionObservable.new Function2() {...} |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 | 0 | 1 |
| ExoWrapper.updateJob.new Function1() {...} |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 | 0 | 1 |
| AbsVideoPlayerWrapper.playWhenReadyControllable.new Function1() {...} |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |