1(self.__LOADABLE_LOADED_CHUNKS__=self.__LOADABLE_LOADED_CHUNKS__||[]).push([[4439],{25105:(function(re,Y,w){var S=Object.defineProperty,R=Object.getOwnPropertySymbols,m=Object.prototype.hasOwnProperty,K=Object.prototype.propertyIsEnumerable,M=(s,r,i)=>r in s?S(s,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):s[r]=i,V=(s,r)=>{for(var i in r||(r={}))m.call(r,i)&&M(s,i,r[i]);if(R)for(var i of R(r))K.call(r,i)&&M(s,i,r[i]);return s},H=Object.create,v=Object.defineProperty,G=Object.getOwnPropertyDescriptor,z=Object.getOwnPropertyNames,Z=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty,Q=(s,r,i)=>r in s?v(s,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):s[r]=i,J=(s,r)=>{for(var i in r)v(s,i,{get:r[i],enumerable:!0})},$=(s,r,i,e)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of z(r))!F.call(s,t)&&t!==i&&v(s,t,{get:()=>r[t],enumerable:!(e=G(r,t))||e.enumerable});return s},x=(s,r,i)=>(i=s!=null?H(Z(s)):{},$(r||!s||!s.__esModule?v(i,"default",{value:s,enumerable:!0}):i,s)),X=s=>$(v({},"__esModule",{value:!0}),s),P=(s,r,i)=>(Q(s,typeof r!="symbol"?r+"":r,i),i),L={};J(L,{default:()=>D}),re.exports=X(L);var B=x(w(67294)),g=w(35457),_=w(58279);const q="https://www.youtube.com/iframe_api",T="YT",d="onYouTubeIframeAPIReady",I=/[?&](?:list|channel)=([a-zA-Z0-9_-]+)/,U=/user\/([a-zA-Z0-9_-]+)\/?/,ee=/youtube-nocookie\.com/,C="https://www.youtube-nocookie.com";class D extends B.Component{constructor(){super(...arguments),P(this,"callPlayer",g.callPlayer),P(this,"parsePlaylist",r=>{if(r instanceof Array)return{listType:"playlist",playlist:r.map(this.getID).join(",")};if(I.test(r)){const[,i]=r.match(I);return{listType:"playlist",list:i.replace(/^UC/,"UU")}}if(U.test(r)){const[,i]=r.match(U);return{listType:"user_uploads",list:i}}return{}}),P(this,"onStateChange",r=>{const{data:i}=r,{onPlay:e,onPause:t,onBuffer:a,onBufferEnd:n,onEnded:o,onReady:c,loop:u,config:{playerVars:l,onUnstarted:f}}=this.props,{UNSTARTED:p,PLAYING:h,PAUSED:y,BUFFERING:E,ENDED:O,CUED:k}=window[T].PlayerState;if(i===p&&f(),i===h&&(e(),n()),i===y&&t(),i===E&&a(),i===O){const A=!!this.callPlayer("getPlaylist");u&&!A&&(l.start?this.seekTo(l.start):this.play()),o()}i===k&&c()}),P(this,"mute",()=>{this.callPlayer("mute")}),P(this,"unmute",()=>{this.callPlayer("unMute")}),P(this,"ref",r=>{this.container=r})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}getID(r){return!r||r instanceof Array||I.test(r)?null:r.match(_.MATCH_URL_YOUTUBE)[1]}load(r,i){const{playing:e,muted:t,playsinline:a,controls:n,loop:o,config:c,onError:u}=this.props,{playerVars:l,embedOptions:f}=c,p=this.getID(r);if(i){if(I.test(r)||U.test(r)||r instanceof Array){this.player.loadPlaylist(this.parsePlaylist(r));return}this.player.cueVideoById({videoId:p,startSeconds:(0,g.parseStartTime)(r)||l.start,endSeconds:(0,g.parseEndTime)(r)||l.end});return}(0,g.getSDK)(q,T,d,h=>h.loaded).then(h=>{this.container&&(this.player=new h.Player(this.container,V({width:"100%",height:"100%",videoId:p,playerVars:V(V({autoplay:e?1:0,mute:t?1:0,controls:n?1:0,start:(0,g.parseStartTime)(r),end:(0,g.parseEndTime)(r),origin:window.location.origin,playsinline:a?1:0},this.parsePlaylist(r)),l),events:{onReady:()=>{o&&this.player.setLoop(!0),this.props.onReady()},onPlaybackRateChange:y=>this.props.onPlaybackRateChange(y.data),onPlaybackQualityChange:y=>this.props.onPlaybackQualityChange(y),onStateChange:this.onStateChange,onError:y=>u(y.data)},host:ee.test(r)?C:void 0},f)))},u),f.events&&console.warn("Using `embedOptions.events` will likely break things. Use ReactPlayer\u2019s callback props instead, eg onReady, onPlay, onPause")}play(){this.callPlayer("playVideo")}pause(){this.callPlayer("pauseVideo")}stop(){document.body.contains(this.callPlayer("getIframe"))&&this.callPlayer("stopVideo")}seekTo(r,i=!1){this.callPlayer("seekTo",r),!i&&!this.props.playing&&this.pause()}setVolume(r){this.callPlayer("setVolume",r*100)}setPlaybackRate(r){this.callPlayer("setPlaybackRate",r)}setLoop(r){this.callPlayer("setLoop",r)}getDuration(){return this.callPlayer("getDuration")}getCurrentTime(){return this.callPlayer("getCurrentTime")}getSecondsLoaded(){return this.callPlayer("getVideoLoadedFraction")*this.getDuration()}render(){const{display:r}=this.props,i={width:"100%",height:"100%",display:r};return B.default.createElement("div",{style:i},B.default.createElement("div",{ref:this.ref}))}}
1P(D,"displayName","YouTube"),P(D,"canPlay",_.canPlay.youtube)}),85034:(function(re,Y,w){"use strict";function S(e){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?S=function(a){return typeof a}:S=function(a){return a&&typeof Symbol=="function"&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},S(e)}Object.defineProperty(Y,"__esModule",{value:!0}),Y.default=void 0;var R=V(w(67294)),m=w(56281),K=w(99790);function M(){if(typeof WeakMap!="function")return null;var e=new WeakMap;return M=function(){return e},e}function V(e){if(e&&e.__esModule)return e;if(e===null||S(e)!=="object"&&typeof e!="function")return{default:e};var t=M();if(t&&t.has(e))return t.get(e);var a={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var c=n?Object.getOwnPropertyDescriptor(e,o):null;c&&(c.get||c.set)?Object.defineProperty(a,o,c):a[o]=e[o]}return a.default=e,t&&t.set(e,a),a}function H(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),a.push.apply(a,n)}return a}function v(e){for(var t=1;t<arguments.length;t++){var a=arguments[t]!=null?arguments[t]:{};t%2?H(Object(a),!0).forEach(function(n){d(e,n,a[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):H(Object(a)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(a,n))})}return e}function G(e,t){return J(e)||Q(e,t)||Z(e,t)||z()}function z(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. 2In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Z(e,t){if(e){if(typeof e=="string")return F(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);if(a==="Object"&&e.constructor&&(a=e.constructor.name),a==="Map"||a==="Set")return Array.from(e);if(a==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return F(e,t)}}function F(e,t){(t==null||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}function Q(e,t){if(!(typeof Symbol=="undefined"||!(Symbol.iterator in Object(e)))){var a=[],n=!0,o=!1,c=void 0;try{for(var u=e[Symbol.iterator](),l;!(n=(l=u.next()).done)&&(a.push(l.value),!(t&&a.length===t));n=!0);}catch(f){o=!0,c=f}finally{try{!n&&u.return!=null&&u.return()}finally{if(o)throw c}}return a}}function J(e){if(Array.isArray(e))return e}function $(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function x(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function X(e,t,a){return t&&x(e.prototype,t),a&&x(e,a),e}function P(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&L(e,t)}
2function L(e,t){return L=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},L(e,t)}function B(e){var t=q();return function(){var n=T(e),o;if(t){var c=T(this).constructor;o=Reflect.construct(n,arguments,c)}else o=n.apply(this,arguments);return g(this,o)}}function g(e,t){return t&&(S(t)==="object"||typeof t=="function")?t:_(e)}function _(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function q(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}function T(e){return T=Object.setPrototypeOf?Object.getPrototypeOf:function(a){return a.__proto__||Object.getPrototypeOf(a)},T(e)}function d(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var I="https://www.youtube.com/iframe_api",U="YT",ee="onYouTubeIframeAPIReady",C=/[?&](?:list|channel)=([a-zA-Z0-9_-]+)/,D=/user\/([a-zA-Z0-9_-]+)\/?/,s=/youtube-nocookie\.com/,r="https://www.youtube-nocookie.com",i=(function(e){P(a,e);var t=B(a);function a(){var n;$(this,a);for(var o=arguments.length,c=new Array(o),u=0;u<o;u++)c[u]=arguments[u];return n=t.call.apply(t,[this].concat(c)),d(_(n),"callPlayer",m.callPlayer),d(_(n),"parsePlaylist",function(l){if(l instanceof Array)return{listType:"playlist",playlist:l.map(n.getID).join(",")};if(C.test(l)){var f=l.match(C),p=G(f,2),h=p[1];return{listType:"playlist",list:h.replace(/^UC/,"UU")}}if(D.test(l)){var y=l.match(D),E=G(y,2),O=E[1];return{listType:"user_uploads",list:O}}return{}}),d(_(n),"onStateChange",function(l){var f=l.data,p=n.props,h=p.onPlay,y=p.onPause,E=p.onBuffer,O=p.onBufferEnd,k=p.onEnded,A=p.onReady,W=p.loop,j=p.config,N=j.playerVars,te=j.onUnstarted,b=window[U].PlayerState,ne=b.UNSTARTED,ae=b.PLAYING,oe=b.PAUSED,ie=b.BUFFERING,se=b.ENDED,le=b.CUED;if(f===ne&&te(),f===ae&&(h(),O()),f===oe&&y(),f===ie&&E(),f===se){var ue=!!n.callPlayer("getPlaylist");W&&!ue&&(N.start?n.seekTo(N.start):n.play()),k()}f===le&&A()}),d(_(n),"mute",function(){n.callPlayer("mute")}),d(_(n),"unmute",function(){n.callPlayer("unMute")}),d(_(n),"ref",function(l){n.container=l}),n}return X(a,[{key:"componentDidMount",value:function(){this.props.onMount&&this.props.onMount(this)}},{key:"getID",value:function(o){return!o||o instanceof Array||C.test(o)?null:o.match(K.MATCH_URL_YOUTUBE)[1]}},{key:"load",value:function(o,c){var u=this,l=this.props,f=l.playing,p=l.muted,h=l.playsinline,y=l.controls,E=l.loop,O=l.config,k=l.onError,A=O.playerVars,W=O.embedOptions,j=this.getID(o);if(c){if(C.test(o)||D.test(o)||o instanceof Array){this.player.loadPlaylist(this.parsePlaylist(o));return}this.player.cueVideoById({videoId:j,startSeconds:(0,m.parseStartTime)(o)||A.start,endSeconds:(0,m.parseEndTime)(o)||A.end});return}(0,m.getSDK)(I,U,ee,function(N){return N.loaded}).then(function(N){u.container&&(u.player=new N.Player(u.container,v({width:"100%",height:"100%",videoId:j,playerVars:v(v({autoplay:f?1:0,mute:p?1:0,controls:y?1:0,start:(0,m.parseStartTime)(o),end:(0,m.parseEndTime)(o),origin:window.location.origin,playsinline:h?1:0},u.parsePlaylist(o)),A),events:{onReady:function(){E&&u.player.setLoop(!0),u.props.onReady()},onStateChange:u.onStateChange,onError:function(b){return k(b.data)}},host:s.test(o)?r:void 0},W)))},k),W.events&&console.warn("Using `embedOptions.events` will likely break things. Use ReactPlayer\u2019s callback props instead, eg onReady, onPlay, onPause")}},{key:"play",value:function(){this.callPlayer("playVideo")}},{key:"pause",value:function(){this.callPlayer("pauseVideo")}},{key:"stop",value:function(){document.body.contains(this.callPlayer("getIframe"))&&this.callPlayer("stopVideo")}},{key:"seekTo",value:function(o){this.callPlayer("seekTo",o),this.props.playing||this.pause()}},{key:"setVolume",value:function(o){this.callPlayer("setVolume",o*100)}},{key:"setPlaybackRate",value:function(o){this.callPlayer("setPlaybackRate",o)}},{key:"setLoop",value:function(o){this.callPlayer("setLoop",o)}},{key:"getDuration",value:function(){return this.callPlayer("getDuration")}},{key:"getCurrentTime",value:function(){return this.callPlayer("getCurrentTime")}},{key:"getSecondsLoaded",value:function(){return this.callPlayer("getVideoLoadedFraction")*this.getDuration()}},{key:"render",value:function(){var o=this.props.display,c={width:"100%",height:"100%",display:o};return R.default.createElement("div",{style:c},R.default.createElement("div",{ref:this.ref}))}}]),a})(R.Component);
2Y.default=i,d(i,"displayName","YouTube"),d(i,"canPlay",K.canPlay.youtube)})}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.