{
  "nativeAdsAdapter.adapter,getVersion": "return '7.0.7-Bitmovin8-ads-js';",
  "nativeAdsAdapter.adapter,getPlayhead": "var ret=null;if(this.player&&this.flags&&this.flags.isStarted){ret=this.player.getCurrentTime();}return ret;",
  "nativeAdsAdapter.adapter,getTitle": "return this.title;",
  "nativeAdsAdapter.adapter,getDuration": "return this.duration;",
  "nativeAdsAdapter.adapter,getResource": "return this.src;",
  "nativeAdsAdapter.adapter,getRendition": "return this.getNpawUtils().buildRenditionString(this.width,this.height,this.bitrate);",
  "nativeAdsAdapter.adapter,getBitrate": "return this.bitrate*1000;",
  "nativeAdsAdapter.adapter,getAudioEnabled": "var ret=true;if(this.player){ret=this.player.getVolume()>0&&!this.player.isMuted();}return ret;",
  "nativeAdsAdapter.adapter,getIsSkippable": "return this.skippable;",
  "nativeAdsAdapter.adapter,getIsFullscreen": "var ret=false;if(this.player){ret=this.player.getViewMode()==='fullscreen';}return ret;",
  "nativeAdsAdapter.adapter,getIsVisible": "var ret=false;if(this.player&&this.player.getVideoElement&&this.player.getVideoElement()){ret=this.getNpawUtils().calculateAdViewability(this.player.getVideoElement());}return ret;",
  "nativeAdsAdapter.adapter,getCreativeId": "return this.creativeId;",
  "nativeAdsAdapter.adapter,getPosition": "var ret=this.position;var adapterInst=this.getVideo().getAdapter();if(adapterInst&&!adapterInst.flags.isJoined){ret=this.getNpawReference().Constants.AdPosition.Preroll;}return ret;",
  "nativeAdsAdapter.adapter,registerListeners": "var events=this.player.exports.PlayerEvent;this.monitorPlayhead(true,true);this.references={};this.references[events.AdBreakStarted]=this.breakStartListener.bind(this);this.references[events.AdBreakFinished]=this.breakEndListener.bind(this);this.references[events.AdStarted]=this.adStartListener.bind(this);this.references[events.AdFinished]=this.adEndListener.bind(this);this.references[events.AdQuartile]=this.quartileListener.bind(this);this.references[events.AdSkipped]=this.skipListener.bind(this);this.references[events.AdClicked]=this.clickListener.bind(this);this.references[events.AdError]=this.errorListener.bind(this);this.references[events.Destroy]=this.destroyListener.bind(this);this.references[events.Paused]=this.pauseListener.bind(this);this.references[events.Playing]=this.resumeListener.bind(this);this.references[events.TimeChanged]=this.timeupdateListener.bind(this);for(var key in this.references){this.player.on(key,this.references[key]);}",
  "nativeAdsAdapter.adapter,pauseListener": "this.firePause();",
  "nativeAdsAdapter.adapter,resumeListener": "this.fireResume();",
  "nativeAdsAdapter.adapter,timeupdateListener": "this.lastPlayhead=this.getPlayhead();",
  "nativeAdsAdapter.adapter,unregisterListeners": "if(this.monitor)this.monitor.stop();try{if(this.player&&this.player.off&&this.references){for(var key in this.references){this.player.off(key,this.references[key]);}delete this.references;}}catch(err){}",
  "nativeAdsAdapter.adapter,breakStartListener,e": "this.getVideo().fireInit();var adapterInst=this.getVideo().getAdapter();if(adapterInst){adapterInst.firePause();};var position=e.adBreak.position;if(position==='pre'){this.position=this.getNpawReference().Constants.AdPosition.Preroll;}else if(position==='post'||adapterInst&&adapterInst.getDuration()!==0&&(adapterInst.getPlayhead()||position)>adapterInst.getDuration()-1){this.position=this.getNpawReference().Constants.AdPosition.Postroll;}else{this.position=this.getNpawReference().Constants.AdPosition.Midroll;}",
  "nativeAdsAdapter.adapter,breakEndListener,e": "this.fireBreakStop();if(this.getVideo().requestBuilder.lastSent.adPosition!==this.getNpawReference().Constants.AdPosition.Postroll){var adapterInst=this.getVideo().getAdapter();if(adapterInst){adapterInst.fireResume();}}else{this.getVideo().fireStop();}",
  "nativeAdsAdapter.adapter,adStartListener,e": "if(e.ad&&e.ad.data){this.title=e.ad.data.adTitle;this.bitrate=e.ad.data.bitrate;this.creativeId=(e.ad.data.creative)? e.ad.data.creative.id : undefined;this.src=e.ad.mediaFileUrl;this.height=e.ad.height;this.width=e.ad.width;this.skippable=e.ad.skippable;this.duration=e.ad.duration;}this.lastPlayhead=0;this.counter=0;this.fireStart();this.fireJoin();",
  "nativeAdsAdapter.adapter,adEndListener,e": "var videoPlayhead=this.getVideo().getPlayhead();this.fireStop({adPlayhead: this.lastPlayhead,playhead: videoPlayhead});if(this.getVideo().requestBuilder.lastSent.adPosition===this.getNpawReference().Constants.AdPosition.Postroll){this.getVideo().fireStop();}this.lastPlayhead=0;",
  "nativeAdsAdapter.adapter,quartileListener,e": "var position=1;switch(e.quartile){case 'midpoint': position=2;break;case 'thirdQuartile': position=3;};this.fireQuartile(position);",
  "nativeAdsAdapter.adapter,skipListener,e": "var videoPlayhead=this.getVideo().getPlayhead();this.fireSkip({adPlayhead: this.lastPlayhead,playhead: videoPlayhead});if(this.getVideo().requestBuilder.lastSent.adPosition===this.getNpawReference().Constants.AdPosition.Postroll){this.getVideo().fireStop();}this.lastPlayhead=0;",
  "nativeAdsAdapter.adapter,clickListener,e": "this.fireClick(e.clickThroughUrl);",
  "nativeAdsAdapter.adapter,errorListener,e": "var errObj=e.data ? e.data : e;this.fireError(errObj.code,errObj.message);",
  "nativeAdsAdapter.adapter,destroyListener,e": "this.player=null;this.tag=null;var videoPlayhead=this.getVideo().getPlayhead();this.fireStop({adPlayhead: this.lastPlayhead,playhead: videoPlayhead});this.lastPlayhead=0;this.getVideo().removeAdsAdapter();",

  "adapter,getVersion": "return '7.0.7-bitmovin8-js';",
  "adapter,getPlayhead": "var ret=this.player ? this.player.getCurrentTime(): null;if(this.getVideo().getAdsAdapter()&&this.getVideo().getAdsAdapter().flags.isStarted){ret=this.lastPlayhead||0;}return ret;",
  "adapter,getPlayrate": "return this.player ? this.player.getPlaybackSpeed(): null;",
  "adapter,getStopParams": "var params={};if(this.getVideo().getPlayhead()>0){params={playhead: this.getVideo().getPlayhead()};}return params;",
  "adapter,getDroppedFrames": "return this.player ? this.player.getDroppedVideoFrames(): null;",
  "adapter,getDuration": "var ret=null;if(this.player){this.lastDuration=this.player.getDuration()||this.lastDuration;ret=this.lastDuration;}return ret;",
  "adapter,getBitrate": "var ret=null;if(this.player){var videodata=this.player.getPlaybackVideoData();var videoquality=this.player.getVideoQuality();if(videoquality&&videoquality.bitrate){ret=videoquality.bitrate;}else if(videodata&&videodata.bitrate){ret=videodata.bitrate;}}return ret;",
  "adapter,getRendition": "var ret=null;if(this.player){var videodata=this.player.getPlaybackVideoData();var videoquality=this.player.getVideoQuality();if(videoquality&&videoquality.bitrate){ret=this.getNpawUtils().buildRenditionString(videoquality.width,videoquality.height,videoquality.bitrate);}else if(videodata&&videodata.bitrate){ret=this.getNpawUtils().buildRenditionString(videodata.width,videodata.height,videodata.bitrate);}}return ret;",
  "adapter,detectQualityChange,e": "var ret;if(e.targetQuality&&e.targetQuality.bitrate){ret=this.getNpawUtils().buildRenditionString(e.targetQuality.width,e.targetQuality.height,e.targetQuality.bitrate);}if(ret&&this.storeNewRendition){this.storeNewRendition(ret);}",
  "adapter,getTitle": "return this.player ? this.player.getSource().title : null;",
  "adapter,getIsLive": "return this.player ? this.player.isLive(): null;",
  "adapter,getResource": "var ret=null;if(this.player&&this.player.getSource&&this.player.getSource()){try{if(this.player.getStreamType&&this.player.getStreamType()){if(this.player.getSource()[this.player.getStreamType()]){return this.player.getSource()[this.player.getStreamType()];}}}catch(e){};ret=this.player.getSource().progressive||this.player.getSource().hls;}try{if(this.player&&this.player.getManifest&&this.player.getManifest()){if(this.player.getManifest().indexOf('MPD')>0){ret=this.player.getSource().dash;}else{ret=this.player.getSource().hls;}}}catch(err){this.log.notice(\"Can't get manifest\");}return ret;",
  "adapter,getPlayerVersion": "return this.player ? this.player.version : null;",
  "adapter,getPlayerName": "return 'Bitmovin';",
  "adapter,_checkAdsAdapter": "var adsAdapterInst=this.getVideo().getAdsAdapter();if(!adsAdapterInst){this.plugin.setAdsAdapter(this.getAdapterClass('nativeAdsAdapter'),this.getVideo().getVideoKey());this.getVideo().getAdsAdapter().registerListeners();}else if(adsAdapterInst&&!adsAdapterInst.player){adsAdapterInst.setPlayer(this.player);}",
  "adapter,registerListeners": "var events=this.player.exports.PlayerEvent;this.monitorPlayhead(true,false);this.references={};this.references[events.Play]=this.playListener.bind(this);this.references[events.Paused]=this.pauseListener.bind(this);this.references[events.Playing]=this.playingListener.bind(this);this.references[events.Error]=this.errorListener.bind(this);this.references[events.Seek]=this.seekingListener.bind(this);this.references[events.TimeShift]=this.seekingListener.bind(this);this.references[events.TimeShifted]=this.seekedListener.bind(this);this.references[events.PlaybackFinished]=this.endedListener.bind(this);this.references[events.TimeChanged]=this.timeupdateListener.bind(this);this.references[events.SourceUnloaded]=this.endedListener.bind(this);this.references[events.Destroy]=this.destroyListener.bind(this);this.references[events.Ready]=this.readyListener.bind(this);this.references[events.AdBreakStarted]=this._checkAdsAdapter.bind(this);this.references[events.VideoPlaybackQualityChanged]=this.detectQualityChange.bind(this);for(var key in this.references){this.player.on(key,this.references[key]);}this.plugin.setAdsAdapter(this.getAdapterClass('nativeAdsAdapter'),this.getVideo().getVideoKey());this.getVideo().getAdsAdapter().registerListeners();",
  "adapter,unregisterListeners": "if(this.monitor)this.monitor.stop();try{if(this.getVideo()){this.getVideo().removeAdsAdapter();}if(this.player&&this.player.off&&this.references){for(var key in this.references){this.player.off(key,this.references[key])}delete this.references;}}catch(err){}",
  "adapter,readyListener,e": "this._checkAdsAdapter();",
  "adapter,playListener,e": "this.firePlayerLog('playListener',{});this.lastPlayhead=0;this.fireStart();this.failedView=false;",
  "adapter,timeupdateListener,e": "if(!this.getVideo().getAdsAdapter()||!this.getVideo().getAdsAdapter().flags.isStarted){this.lastPlayhead=this.player.getCurrentTime();}if(this.getPlayhead()>0.2&&(this.getIsLive()||this.getPlayhead()+1<this.getDuration())){this.fireStart();this.failedView=false;if(!this.flags.isJoined){this.monitor.skipNextTick();this.fireJoin();}}if(!this.player.isPaused()&&this.flags.isSeeking){this.fireSeekEnd({},'timeupdateListener');this.monitor.skipNextTick();}",
  "adapter,pauseListener,e": "this.firePlayerLog('pauseListener',{});if(e.issuer&&e.issuer==='ui-seek'){this.fireSeekBegin({},false,'pauseListener');}else{this.firePause();}",
  "adapter,playingListener,e": "this.firePlayerLog('playingListener',{});this.fireStart();this.failedView=false;this.fireResume();if(!this.flags.isJoined){this.monitor.skipNextTick();}",
  "adapter,errorListener,e": "this.firePlayerLog('errorListener',{});if(this.failedView)return;if(!this.flags.isStarted)this.failedView=true;this.fireError(e.code,e.name);this.fireStop(this.getStopParams());",
  "adapter,seekingListener,e": "this.firePlayerLog('seekingListener',{});this.fireSeekBegin({},false,'seekingListener');",
  "adapter,seekedListener,e": "this.firePlayerLog('seekedListener',{});this.fireSeekEnd({},'seekedListener');",
  "adapter,endedListener,e": "this.firePlayerLog('endedListener',{});this.fireStop(this.getStopParams());",
  "adapter,destroyListener,e": "this.player=null;this.tag=null;this.fireStop();this.getVideo().removeAdapter();"
}
