@castlabs/prestoplay 6.3.0 → 6.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +70 -1
  2. package/cjs/cl.adobe.js +3 -3
  3. package/cjs/cl.airplay.js +3 -3
  4. package/cjs/cl.broadpeak.js +6 -6
  5. package/cjs/cl.cast.js +108 -107
  6. package/cjs/cl.conviva.js +33 -33
  7. package/cjs/cl.core.js +426 -398
  8. package/cjs/cl.crypto.js +10 -10
  9. package/cjs/cl.dash.js +72 -69
  10. package/cjs/cl.externs.js +79 -155
  11. package/cjs/cl.freewheel.js +24 -24
  12. package/cjs/cl.hls.js +47 -44
  13. package/cjs/cl.hlssmpte.js +6 -6
  14. package/cjs/cl.htmlcue.js +31 -32
  15. package/cjs/cl.ima.js +22 -22
  16. package/cjs/cl.mse.js +259 -254
  17. package/cjs/cl.muxdata.js +12 -12
  18. package/cjs/cl.onboard.js +3 -3
  19. package/cjs/cl.persistent.js +14 -14
  20. package/cjs/cl.playlist.js +6 -6
  21. package/cjs/cl.smooth.js +69 -69
  22. package/cjs/cl.thumbnails.js +24 -23
  23. package/cjs/cl.tizen.js +70 -70
  24. package/cjs/cl.ttml.js +27 -26
  25. package/cjs/cl.verimatrix.js +5 -5
  26. package/cjs/cl.vimond.js +13 -13
  27. package/cjs/cl.vr.js +18 -18
  28. package/cjs/cl.vtt.js +14 -14
  29. package/cjs/cl.youbora.js +20 -19
  30. package/cl.adobe.js +3 -3
  31. package/cl.airplay.js +3 -3
  32. package/cl.broadpeak.js +5 -5
  33. package/cl.cast.js +88 -87
  34. package/cl.conviva.js +27 -27
  35. package/cl.core.js +365 -348
  36. package/cl.crypto.js +8 -8
  37. package/cl.dash.js +67 -63
  38. package/cl.externs.js +74 -154
  39. package/cl.freewheel.js +19 -19
  40. package/cl.hls.js +39 -37
  41. package/cl.hlssmpte.js +5 -5
  42. package/cl.htmlcue.js +25 -25
  43. package/cl.ima.js +16 -16
  44. package/cl.mse.js +233 -222
  45. package/cl.muxdata.js +8 -8
  46. package/cl.onboard.js +4 -4
  47. package/cl.persistent.js +10 -10
  48. package/cl.playlist.js +5 -5
  49. package/cl.smooth.js +58 -58
  50. package/cl.thumbnails.js +17 -17
  51. package/cl.tizen.js +57 -57
  52. package/cl.ttml.js +22 -21
  53. package/cl.verimatrix.js +4 -4
  54. package/cl.vimond.js +8 -8
  55. package/cl.vr.js +14 -14
  56. package/cl.vtt.js +12 -12
  57. package/cl.youbora.js +16 -15
  58. package/package.json +4 -2
package/CHANGELOG.md CHANGED
@@ -1,3 +1,73 @@
1
+ # 6.4.1
2
+
3
+ ## **Warning!**
4
+ Changes in this release might be breaking for some very specific use cases:
5
+ * Removed `clpp.EventBus` from the API. *It is unlikely that this will cause
6
+ any issues, since this API is not intended to be public and is not relevant
7
+ to player functionality.*
8
+
9
+ ## New Features
10
+
11
+ * Add an option to enable detailed video track info and player stats for HLS on Safari.
12
+ To enable this experimental feature configure `safari.enableHlsVideoTrackInfo: true`.
13
+
14
+ ## Changes
15
+
16
+ * Fix the `textStyle` config option for subtitle styles.
17
+ * Make sure it always overrides styles embedded in TTML and WebVTT files and any other styles.
18
+ * Make sure `textStyle.edgeType: "none"` config removes any existing text shadow from the subtitles.
19
+ * Fix handling of HDR CICP EssentialProperty schemes for DASH streams.
20
+ * Add CICP ColourPrimaries, Transfer-Characteristics, MatrixCoefficients as valid EssentialProperty.
21
+ * Fix `ReferenceError` due to unavailable `MediaEncryptedEvent` on Safari < 12.1.
22
+
23
+ # 6.4.0
24
+
25
+ ## New Features
26
+
27
+ * Add track accessibility features to the public API for DASH streams (under `clpp.Track.accessibility`).
28
+ * HTTP status codes that will not trigger the retry behaviour can now be configured.
29
+ Previously, status codes 401 and 403 were not triggering the retry behaviour. This is still
30
+ the default, but can be changed now in the [AttemptParameters](https://demo.castlabs.com/#/docs?q=clpp.net#AttemptParameters)
31
+ for requests types, and globally by adjusting `clpp.net.DEFAULT_FATAL_STATUS_CODES`. The
32
+ configuration is also forwarded to [clpp.net.Request](https://demo.castlabs.com/#/docs?q=clpp.net#Request)
33
+ and can be adjusted per request using a [RequestModifier](https://demo.castlabs.com/#/docs?q=clpp.net#RequestModifier).
34
+ * Add support for Low-Latency HLS.
35
+ * Support for Partial Segments and Preload Hint.
36
+ * Support for Blocking Playlist Reload.
37
+ * Configuration by [Player configuration](https://demo.castlabs.com/#/docs/configuration) property `lowLatencyMode`, defaults to `false`.
38
+
39
+ ## Changes
40
+
41
+ * Fix timeline of dynamic to static transition in DASH.
42
+ * Several improvements of tracks.
43
+ * Fix an issue in DASH where similar `AdaptationSet` tags with distinct `Accessibility` tags where being
44
+ processed as renditions of the same track instead of being treated as two distinct tracks.
45
+ * Fix a corner-case issue where tracks with the same roles but in a different order were being treated as two
46
+ separate tracks instead of a single track with two different renditions.
47
+ * Fix issues with audio track selection when `preferredAudioRole` or `preferredAudioLanguage` is configured.
48
+ * Warn when an unsupported version of `youboralib` is supplied to the `YouboraPlugin` and emit
49
+ a recoverable error. Supported versions are 6.8.12 - 6.8.25.
50
+ * Fix support for custom styling of subtitles.
51
+ * Fix `clpp.utils.obj.merge`.
52
+ * Make sure it merges attributes with values that are DOM `Element`.
53
+ * Fix documentation: `clpp.utils.obj.merge` merges from left to right, not the other way around.
54
+ * Improve `clpp.PlayerSurface`.
55
+ * Add `clpp-video` class to the video/media element.
56
+ * Protect PRESTOplay class attributes from modification. This prevents unexpected
57
+ styling issues related to the re-rendering of the video or container element that can
58
+ easily occur when used with React, Vue or similar UI frameworks.
59
+ * Improve validation of arguments passed to `clpp.Player`.
60
+ * Fix an issue where special kinds of live streams such as IPR (in-progress recording)
61
+ were not correctly classified as live by `Player.isLive()`.
62
+ * Fix error reporting for invalid or failing thumbnails (VTT, BIF).
63
+ * Improved sync byte search for TS segment start time parsing
64
+ * Update metadata `player_name` default of Mux Analytics to `CastLabsPlayer`
65
+ * Fix time synchronization issues during sender/receiver switch for Smooth Streaming live streams on Chromecast.
66
+ * Dedicated handling for Widevine server certificate requests. We are now logging
67
+ Widevine Server Certificate requests explicitly and set the `licenseRequestType` of
68
+ the `request` to 'certificate-request'.
69
+ * Fixed issues with handling key restrictions in different multi period scenarios
70
+
1
71
  # 6.3.0
2
72
 
3
73
  ## **Warning!**
@@ -5,7 +75,6 @@ Changes in this release might cause breaking changes for some use cases. Please
5
75
  * `player.getPresentationStartTime()` - For non-live content, this method now returns `null`, instead of the previous `0`.
6
76
 
7
77
  ## Changes
8
-
9
78
  * Fix issues with `YouboraPlugin`.
10
79
  * Fix crash when Youbora configuration is not passed via `clpp.Player` constructor.
11
80
  * Fix an issue where Youbora plugin stopped reporting events after a call to `setYouboraPlugin`.
package/cjs/cl.adobe.js CHANGED
@@ -1,7 +1,7 @@
1
1
  (function(){var g={}; var _ = _ || {}
2
- var f=function(window){var HL=function(){this.l=this.f=null;this.a="";this.g=new _.G("clpp.adobe.AdobePlugin")},KL=function(a){a.f=new _.Wf;a.f.on(a.l,_.Ee,function(){return IL(a)});a.f.on(a.l,_.De,function(){s.Media.play(a.a,a.l.getPosition())});a.f.on(a.l,_.md,function(){return JL(a)});a.f.on(a.l,_.ie,function(b){b=b.detail;switch(b.currentState){case _.km:a.a.length||JL(a);s.Media.play(a.a,a.l.getPosition());break;case _.jm:case _.bm:IL(a);break;case _.dm:case _.Xl:case _.hm:a.g.info("Close session for "+a.a+" in player state "+
3
- (b.currentState+".")),IL(a),s.Media.close(a.a),a.a=""}})},JL=function(a){var b=a.l.getLoadedSource();a.a=b?b.name||b.url:"";a.g.info("Open session for "+a.a+" with duration "+a.l.getDuration());s.Media.open(a.a,a.l.getDuration(),_.oa)},IL=function(a){s.Media.stop(a.a,a.l.getPosition())},LL=function(){};_.v(HL,_.rp);HL.prototype.onPlayerCreated=function(a){window.s&&s.Media?(this.l=a,KL(this)):this.g.warn("Adobe API not available.")};
4
- HL.prototype.onPlayerWillDestroy=function(){this.f&&(this.f.release(),this.f=null);this.l=null;this.a=""};HL.prototype.id=function(){return"adobe"};_.B("clpp.adobe.AdobeAnalyticsPlugin",HL);HL.Id="adobe";LL.prototype.create=function(){return new HL};_.Fn(new LL);};
2
+ var f=function(window){var SM=function(){this.l=this.f=null;this.a="";this.g=new _.H("clpp.adobe.AdobePlugin")},VM=function(a){a.f=new _.cg;a.f.on(a.l,_.Le,function(){return TM(a)});a.f.on(a.l,_.Ke,function(){s.Media.play(a.a,a.l.getPosition())});a.f.on(a.l,_.ud,function(){return UM(a)});a.f.on(a.l,_.pe,function(b){b=b.detail;switch(b.currentState){case _.bn:a.a.length||UM(a);s.Media.play(a.a,a.l.getPosition());break;case _.an:case _.Tm:TM(a);break;case _.Vm:case _.Om:case _.Zm:a.g.info("Close session for "+a.a+" in player state "+
3
+ (b.currentState+".")),TM(a),s.Media.close(a.a),a.a=""}})},UM=function(a){var b=a.l.getLoadedSource();a.a=b?b.name||b.url:"";a.g.info("Open session for "+a.a+" with duration "+a.l.getDuration());s.Media.open(a.a,a.l.getDuration(),_.ta)},TM=function(a){s.Media.stop(a.a,a.l.getPosition())},WM=function(){};_.v(SM,_.cq);SM.prototype.onPlayerCreated=function(a){window.s&&s.Media?(this.l=a,VM(this)):this.g.warn("Adobe API not available.")};
4
+ SM.prototype.onPlayerWillDestroy=function(){this.f&&(this.f.release(),this.f=null);this.l=null;this.a=""};SM.prototype.id=function(){return"adobe"};_.B("clpp.adobe.AdobeAnalyticsPlugin",SM);SM.Id="adobe";WM.prototype.create=function(){return new SM};_.uo(new WM);};
5
5
  if(typeof(module)!="undefined"&&module.exports){var x=require("./cl.core.js");_ = x._;(f.call(g,this));module.exports=g;}
6
6
  else if (typeof(define)!="undefined"&&define.amd) {define(["./cl.core"], function(c){_=c._;(f.call(g,this));return g;});}
7
7
  else{_=this.clpp._;(f.call(g,this));}
package/cjs/cl.airplay.js CHANGED
@@ -1,7 +1,7 @@
1
1
  (function(){var g={}; var _ = _ || {}
2
- var f=function(window){var FL=function(){var a=this;this.a=this.l=null;this.j=this.f=this.h=!1;this.m=new _.oh(function(){a.l.play()["catch"](function(){})});this.g=new _.Wf},GL=function(){};_.v(FL,_.rp);_.t=FL.prototype;_.t.onPlayerCreated=function(a){this.l=a;this.a=a.getSurface().getMedia()};_.t.onContentWillLoad=function(){this.a&&(this.g.on(this.a,"webkitplaybacktargetavailabilitychanged",this.Ai.bind(this)),this.g.on(this.a,"webkitcurrentplaybacktargetiswirelesschanged",this.aj.bind(this)))};
3
- _.t.onPlayerWillRelease=function(){this.m.stop();this.g.release()};_.t.id=function(){return"airplay"};_.t.Ai=function(a){switch(a.availability){case "available":this.f=!0;break;case "not-available":this.f=!1}this.l.trigger(new _.I(_.Qb,{canCast:this.f}))};_.t.aj=function(){var a=(this.h=this.a.webkitCurrentPlaybackTargetIsWireless)?_.Pb:_.Ob;if(this.j||!this.l.isPaused()||this.l.getState()===_.km)this.j?this.l.play()["catch"](function(){}):this.m.$(.01);this.l.trigger(new _.I(a))};_.t.eb=function(){return this.h};
4
- _.t.Xd=function(){return this.f};_.t.qj=function(){this.f&&(this.j=!this.l.isPaused(),this.a.webkitShowPlaybackTargetPicker())};_.B("clpp.airplay.AirPlayPlugin",FL);FL.prototype.showCastMenu=FL.prototype.qj;FL.prototype.canCast=FL.prototype.Xd;FL.prototype.isCasting=FL.prototype.eb;FL.Id="airplay";GL.prototype.create=function(){return new FL};_.Fn(new GL);};
2
+ var f=function(window){var QM=function(){var a=this;this.a=this.l=null;this.j=this.f=this.h=!1;this.m=new _.Ji(function(){a.l.play()["catch"](function(){})});this.g=new _.cg},RM=function(){};_.v(QM,_.cq);_.t=QM.prototype;_.t.onPlayerCreated=function(a){this.l=a;this.a=a.getSurface().getMedia()};_.t.onContentWillLoad=function(){this.a&&(this.g.on(this.a,"webkitplaybacktargetavailabilitychanged",this.Si.bind(this)),this.g.on(this.a,"webkitcurrentplaybacktargetiswirelesschanged",this.sj.bind(this)))};
3
+ _.t.onPlayerWillRelease=function(){this.m.stop();this.g.release()};_.t.id=function(){return"airplay"};_.t.Si=function(a){switch(a.availability){case "available":this.f=!0;break;case "not-available":this.f=!1}this.l.trigger(new _.I(_.Zb,{canCast:this.f}))};_.t.sj=function(){var a=(this.h=this.a.webkitCurrentPlaybackTargetIsWireless)?_.Yb:_.Xb;if(this.j||!this.l.isPaused()||this.l.getState()===_.bn)this.j?this.l.play()["catch"](function(){}):this.m.Z(.01);this.l.trigger(new _.I(a))};_.t.ib=function(){return this.h};
4
+ _.t.ee=function(){return this.f};_.t.Kj=function(){this.f&&(this.j=!this.l.isPaused(),this.a.webkitShowPlaybackTargetPicker())};_.B("clpp.airplay.AirPlayPlugin",QM);QM.prototype.showCastMenu=QM.prototype.Kj;QM.prototype.canCast=QM.prototype.ee;QM.prototype.isCasting=QM.prototype.ib;QM.Id="airplay";RM.prototype.create=function(){return new QM};_.uo(new RM);};
5
5
  if(typeof(module)!="undefined"&&module.exports){var x=require("./cl.core.js");_ = x._;(f.call(g,this));module.exports=g;}
6
6
  else if (typeof(define)!="undefined"&&define.amd) {define(["./cl.core"], function(c){_=c._;(f.call(g,this));return g;});}
7
7
  else{_=this.clpp._;(f.call(g,this));}
@@ -1,10 +1,10 @@
1
1
  (function(){var g={}; var _ = _ || {}
2
- var f=function(window){var xL=function(a,b){this.l=a;this.f=b;this.a=new _.Wf;this.g=!1},yL=function(a){var b=GenericPlayerApi.call(this)||this;b.l=a;b.a=_.ji();return b},zL=function(){this.h=this.f=this.a=this.g=this.l=null;this.j=new _.Wf},AL=function(a,b){var c=b.analyticsAddress||null,d=b.nanoCDNHost||null,e=b.broadpeakDomainNames||"",f=b.uuid||null;a.g||(a.g=SmartLib.getInstance(),a.g.init(c,d,e),typeof f===_.me&&a.g.setUUID(f))},BL=function(a,b){var c=b.customParameters||{};a.a=a.g.createStreamingSession();for(var d in c)a.a.setCustomParameter(d,
3
- c[d]);a.j.on(a.l,_.Zc,a.S.bind(a));a.h=new yL(a.l);a.a.attachPlayer(a.h)},CL=function(a,b){_.ag(a.j);a.f&&(a.f.release(),a.f=null);a.a&&(a.a.stopStreamingSession(b),a.a=null)},DL=function(){return!window.SmartLib||!window.GenericPlayerApi},EL=function(){};_.t=xL.prototype;_.t.init=function(){var a=this.l,b=this.a;b.on(a,_.ie,this.Ag.bind(this));b.on(a,_.ic,this.yg.bind(this));b.on(a,"seek",this.zg.bind(this))};
4
- _.t.yg=function(a){a=a.detail;typeof a.bandwidth===_.h&&this.f.notifyLayerSwitch(a.bandwidth/1E3)};_.t.Ag=function(a){var b=this.l,c=this.f;a=a.detail;var d=a.currentState;a.previousState===_.bm&&c.notifyStallEnd(!b.isPaused());switch(d){case _.bm:c.notifyStallStart();break;case _.km:this.g?c.notifyResume():(c.notifyFirstImage(),this.g=!0);break;case _.jm:c.notifyPause()}};_.t.zg=function(){var a=1E3*this.l.getPosition();this.f.notifySeek(a)};_.t.release=function(){this.a&&(_.ag(this.a),this.a=null)};_.v(yL,GenericPlayerApi);_.t=yL.prototype;_.t.getPlayerName=function(){return _.oa};_.t.getVersion=function(){return _.ea};_.t.getOSName=function(){return this.a.os};_.t.getDeviceVersion=function(){return this.a.osVersion.name};_.t.getDeviceType=function(){return"browser"};_.t.getTotalDuration=function(){return this.l.isLive()?0:1E3*this.l.getDuration()};_.t.getCurrentPosition=function(){return 1E3*this.l.getPosition()};
5
- _.t.getCurrentBitrate=function(){var a=this.l.getStats();return(a?a.streamBandwidth:0)/1E3};_.v(zL,_.rp);_.t=zL.prototype;_.t.onPlayerCreated=function(a){this.l=a};_.t.onContentWillLoad=function(a,b){var c=this,d=a.getConfiguration().broadpeak;if(d){if(DL())return a.onError(new _.K(1,9,11E3));AL(this,d);BL(this,d);return this.a.getURL(b.url).then(function(e){if(e.isError()){var f=e.getDetailedErrorCode();e=e.getDetailedErrorMessage();c.l.onError(new _.K(1,9,11001,{bpkErrorCode:f,message:e}));CL(c,void 0)}else b.url=e.getURL(),c.f=new xL(c.l,c.h),c.f.init()})}};
6
- _.t.S=function(a){a=a.detail;if(7003===a.code)CL(this,SmartLib.BPFormatNotSupportedError);else if(a.severity===_.M)switch(a.category){case 3:CL(this,SmartLib.BPDecodingError);break;case 1:CL(this,SmartLib.BPNetworkingError);break;case 6:CL(this,SmartLib.BPAccessRightError);break;default:CL(this,SmartLib.BPUnspecifiedError)}};_.t.onPlayerWillRelease=function(){DL()||CL(this,SmartLib.BPSessionEndsNormally)};_.t.id=function(){return"broadpeak"};_.B("clpp.broadpeak.BroadpeakPlugin",zL);
7
- zL.isSdkMissing=DL;zL.Id="broadpeak";EL.prototype.create=function(){return new zL};_.Fn(new EL);};
2
+ var f=function(window){var IM=function(a,b){this.l=a;this.f=b;this.a=new _.cg;this.g=!1},JM=function(a){var b=GenericPlayerApi.call(this)||this;b.l=a;b.a=_.Vh();return b},KM=function(){this.h=this.f=this.a=this.g=this.l=null;this.j=new _.cg},LM=function(a,b){var c=b.analyticsAddress||null,d=b.nanoCDNHost||null,e=b.broadpeakDomainNames||"",f=b.uuid||null;a.g||(a.g=SmartLib.getInstance(),a.g.init(c,d,e),typeof f===_.te&&a.g.setUUID(f))},MM=function(a,b){var c=b.customParameters||{};a.a=a.g.createStreamingSession();for(var d in c)a.a.setCustomParameter(d,
3
+ c[d]);a.j.on(a.l,_.fd,a.T.bind(a));a.h=new JM(a.l);a.a.attachPlayer(a.h)},NM=function(a,b){_.fg(a.j);a.f&&(a.f.release(),a.f=null);a.a&&(a.a.stopStreamingSession(b),a.a=null)},OM=function(){return!window.SmartLib||!window.GenericPlayerApi},PM=function(){};_.t=IM.prototype;_.t.init=function(){var a=this.l,b=this.a;b.on(a,_.pe,this.Lg.bind(this));b.on(a,_.qc,this.Jg.bind(this));b.on(a,"seek",this.Kg.bind(this))};
4
+ _.t.Jg=function(a){a=a.detail;typeof a.bandwidth===_.k&&this.f.notifyLayerSwitch(a.bandwidth/1E3)};_.t.Lg=function(a){var b=this.l,c=this.f;a=a.detail;var d=a.currentState;a.previousState===_.Tm&&c.notifyStallEnd(!b.isPaused());switch(d){case _.Tm:c.notifyStallStart();break;case _.bn:this.g?c.notifyResume():(c.notifyFirstImage(),this.g=!0);break;case _.an:c.notifyPause()}};_.t.Kg=function(){var a=1E3*this.l.getPosition();this.f.notifySeek(a)};_.t.release=function(){this.a&&(_.fg(this.a),this.a=null)};_.v(JM,GenericPlayerApi);_.t=JM.prototype;_.t.getPlayerName=function(){return _.ta};_.t.getVersion=function(){return _.ia};_.t.getOSName=function(){return this.a.os};_.t.getDeviceVersion=function(){return this.a.osVersion.name};_.t.getDeviceType=function(){return"browser"};_.t.getTotalDuration=function(){return this.l.isLive()?0:1E3*this.l.getDuration()};_.t.getCurrentPosition=function(){return 1E3*this.l.getPosition()};
5
+ _.t.getCurrentBitrate=function(){var a=this.l.getStats();return(a?a.streamBandwidth:0)/1E3};_.v(KM,_.cq);_.t=KM.prototype;_.t.onPlayerCreated=function(a){this.l=a};_.t.onContentWillLoad=function(a,b){var c=this,d=a.getConfiguration().broadpeak;if(d){if(OM())return a.onError(new _.L(1,9,11E3));LM(this,d);MM(this,d);return this.a.getURL(b.url).then(function(e){if(e.isError()){var f=e.getDetailedErrorCode();e=e.getDetailedErrorMessage();c.l.onError(new _.L(1,9,11001,{bpkErrorCode:f,message:e}));NM(c,void 0)}else b.url=e.getURL(),c.f=new IM(c.l,c.h),c.f.init()})}};
6
+ _.t.T=function(a){a=a.detail;if(7003===a.code)NM(this,SmartLib.BPFormatNotSupportedError);else if(a.severity===_.M)switch(a.category){case 3:NM(this,SmartLib.BPDecodingError);break;case 1:NM(this,SmartLib.BPNetworkingError);break;case 6:NM(this,SmartLib.BPAccessRightError);break;default:NM(this,SmartLib.BPUnspecifiedError)}};_.t.onPlayerWillRelease=function(){OM()||NM(this,SmartLib.BPSessionEndsNormally)};_.t.id=function(){return"broadpeak"};_.B("clpp.broadpeak.BroadpeakPlugin",KM);
7
+ KM.isSdkMissing=OM;KM.Id="broadpeak";PM.prototype.create=function(){return new KM};_.uo(new PM);};
8
8
  if(typeof(module)!="undefined"&&module.exports){var x=require("./cl.core.js");_ = x._;(f.call(g,this));module.exports=g;}
9
9
  else if (typeof(define)!="undefined"&&define.amd) {define(["./cl.core"], function(c){_=c._;(f.call(g,this));return g;});}
10
10
  else{_=this.clpp._;(f.call(g,this));}