CM – The Casual Marvel Fan Guide to Eternals

0

Harry Styles! As announced by his hobbit-looking companion, Pip the Troll (voiced by Patton Oswalt), the One Direction singer and occasional actor (you may or may not remember him as one of the many similar-looking men from Dunkirk), plays Eros , aka Starfox, aka Thanos’ brother. He’s an eternal companion, at least he claims, who drops by on Earth to rescue his recently captured brothers.

It may seem hard to believe that Thanos’ brother could be a good guy or look as hot as Styles . But according to the Marvel Comics, Eros is just that: he was born an Eternal on the planet Titan and followed the path of good where his brother went the other way. Although his maiden name is Eros, after the god of love, he is sometimes called Starfox when he is more conspicuous as a superhero. So now you know this isn’t an unexpected synergy with the Nintendo Cinematic Universe for better or worse.

Wait, wait, wait – is Eros an Eternal too? But Thanos is his brother too? Does that mean he wasn’t created by that Celestial guy with the skyscraper-sized face like the other Eternals?

So that’s one of the (many) confusing sticking points of this film. Unless Patton Oswalt lies to us, we know Eros is Thanos’ brother – that’s how he was introduced to us in the film, and that’s part of comic book lore. But in the comics, Eros also has two parents who are clearly not Arishem, the creator of the other Eternals featured here in the film. It actually comes from a planet, Titan, as opposed to the non-existent planet Olympia. Does this mean that there are entirely different kinds of Eternals that are not related but technically belong to the same « species »? Or does Eros throw a whole wrench into everything Arishem said about being the only creator of each of the Eternals we see here? Marvel better sort this out for us next time because we’re sure to be lost.

May I ask about the other post-credits scene? What is the family history of Jon Snow? Is he just another superhero? And what did these words on the box with his sword mean? And do we finally know who that voice was?

As comic book readers already know, Dane Whitman (Kit Harington) the Marvel superhero known as the Black Knight is the owner of the mystical ebony blade that has been around since time is passed on by King Arthur from his family. The words engraved on the chest are Mors Mihi Lucrum, Latin for « Death is my reward ». We do not yet exactly know whose voice we will hear at the end of the credits! Could it be Mahershala Ali making his first appearance as Blade? We asked Disney, but so far they have declined confirmation.

Is this the first Marvel film to feature DC superheroes like Batman and Superman?

Good job! Marvel films have occasionally alluded to DC films and characters, but Eternals is the first film in the Marvel Cinematic Universe to mention DC’s most famous characters by name. Chloé Zhao, the film’s writer and director, spoke in a recent interview with Cinema Blend about why she wanted to include those nods – and specifically the Superman, who is a joke about the Kryptonian-like Ikaris (Richard Madden).

I take responsibility for that, because in comics and superhero films we research mythologies that have existed in human history from all cultures. And you have a character like Superman and the comics for example, and also the brilliant filmmakers who brought Superman to life in different films, they are basically doing a modern take on mythology. And Ikaris is in some ways our take on that mythology, but that doesn’t mean we can’t pay tribute and have a good time with some of these iconic creations we all love so much.

So there you have it: Chloé Zhao doesn’t play the DC vs. Marvel game that so many others swear allegiance to. In the Zhao-Iverse we can all be friends!

The basic idea is that the characters in Mythos are based on the Eternals, even if the myth makers misunderstood most of the details. (Hey, a lot of things can get garbled after playing the phone for a few millennia.) So the Greek warrior Ajax was actually Salma Hayek’s Ajak, who is a healer, not a fighter. Gemma Chans Sersi can transform matter like the sorceress in The Odyssey, but only if she is not sentient: that is, dust in water, but not people in pigs. Lauren Ridloff’s Makkari (Mercury) is fast, Angelina Jolie’s Thena (Athena) is a tough fighter, Brian Tyree Henry’s Phastos (Hephaestus) is a masterful weapon maker and inventor similar to the Greek god of fire, and Don Lee’s Gilgamesh has it all echoed all the way from ancient Mesopotamia. Still, the mythological parallels seem less clear for Kingo (Kumail Nanjiani) and Druig (Barry Keoghan). Druig sounds like a druid, like the ancient Celts, and it’s probably no coincidence that he’s played by an Irish actor, but it’s not that Druig is known for building henges. As for Ikaris, a quasi-Superman who can fly and shoot rays from his eyes, Sprite apparently thought it would be a good gag to share stories about the melting of his wings after flying too close to the sun and the story stayed.

Look, the great thing about this plotter is that you can just say, because Arishem made it that way. In the same way, he made them of different age, ability, gender, and race.

What was Harry Styles’ accent? What is something anyway? To be fair, if you had lived 7,000 years, you would probably experience a lot of weird voice tics.

Why did some Eternals have to learn different languages, but others were already fluent?

Oh, the language problem . It seems like the film hasn’t put much thought into how the language works. Of course, it doesn’t make sense at first that their main language is English, considering that the Eternals preceded their development, but the same could be said for the Asgarden or Wakandans. What makes things even more confusing here is that we are being told that there are other languages ​​that the Eternals must learn – languages ​​older than the language they are currently speaking. Had the movie just not mentioned this, we might have simply assumed that the Eternals were omniscient, or weren’t at all surprised, but unfortunately we’re here.

Most of the time they just move a lot (every five years seems the standard to be). That of course makes it difficult to keep a job or maintain a relationship, although Phastos at least seems to have privy to the whole Eternals affair with his husband. The only person who really hacked the system is Kingo, who made a centuries-long career in Bollywood films by pretending to be his own great grandfather, grandfather, and father.

Because Arishem told them she was shouldn’t. The reason they are told is not to get involved in human conflict, but we eventually find out that there is a darker motive. As Phastos explains, wars lead to technological advances, and technological advances allow populations to grow to the point where there is enough energy to fuel Tiamut’s emergence.

What is this « insane » thing that you keep talking about? Is it literally just making you … really tired of saving the world over and over again for thousands of years? And this charged form of burnout makes you go nuts and start killing people? Especially when you repress the traumatic memories of entire civilizations being destroyed?

If they are all from the same Creator, aren’t they technically siblings? You keep referring to yourself as family, but Ikaris and Sersi were married / had sex? And Sprite is in love with Ikaris? And Makkari and Druig are in love? What’s wrong with it?

I think of this less as a family family than as « I’m stuck with these people in a zombie apocalypse » family. « The Apocalypse got us close, but that doesn’t mean we can’t get any closer. » Even if monotheistic people believe that they have a common Creator and sometimes even refer to other children of God as “brother” or “sister”, this does not mean that they are literally biological brothers and sisters or that all sex with others is incest. Get your mind out of the gutter!

How long were the Deviants in the polar ice caps? And how did Ikaris know where they were?

Not to say exactly, but at least a few hundred years. Ikaris mentions an oil drilling crew who were mysteriously slaughtered after a melting glacier freed the renegade Deviants, and apparently he had shut down his Google notifications for just such a case.

Why does the main anomaly have the ability, the powers to absorb the Eternal, something Sersi says she has never heard of? Did it stay frozen all the time, gave it extra juice or what?

There is no real explanation for this, but a few things should be noted. First of all, it should be noted that the deviants develop. This is ultimately one of the main reasons Arishem creates the Eternals: a new apex predator who takes care of the Deviants after they evolve beyond what Arishem intended. Second, has a deviant killed an Eternal before? I think the answer is no. It wasn’t until the Deviants killed Ajak that they could have absorbed the power of an Eternal.

The Eternals had successfully fought the deviants for millennia before the Avengers were ever assembled, so why break their own cover now and ask for help? You can also really start to knot your brain by asking these questions, « But where was X? » Questions about almost every standalone Marvel movie.

We’re … not sure. The film seems to suggest that any eternal found knows where the next one we meet has been through the years. In fact, it’s one of those moments in the movie when you just nod and say yes. We’re always happy to explain things when we can, but when it comes to movies about flying demigods shooting lasers out of their eyes, sometimes it’s better to just roll with them.

« )); var p = g (h [i.size_id] .split (« x »). map (function (e) {return Number (e)}), 2); f.width = p [0], f.height = p [1]} f.rubiconTargeting = (Array.isArray (i.targeting)? I.targeting: []). Reduce (function (e, t) {return e [t.key] = t. Values ​​[0], e}, {rpfl_elemid: l.adUnitCode}), t.push (f)} else r.logError (« Rubicon: bidRequest undefined at index position: ». concat (o), n, e); return t}, [] ) .sort (function (e, t) {return (t.cpm || 0) – (e.cpm || 0)})}, getUserSyncs: function (e, t, n, r) {if (! U&&e .iframeEnabled) {var i = «  »; return n&& « string » == typeof n.consentString&& (« boolean » == typeof n.gdprApplies? i = « ? gdpr = » (concat (Number) n.gdprA  » &gdpr_consent = « ). Concat (n.consentString): i = »? Gdpr_consent = « . Concat (n.consentString)), r&& (i = » « . Concat (i? » CSSEANDCH AR « : »? « , » Us_privacy = « ) .concat (encodeURIComponent (r))), U =! 0, {type: » iframe « , url: » https: // « .concat (v.syncHost || « eus », « .rubiconproject.com / usync.html ») i}}}, transformBidParams: function (e, t) {return r.convertTypes ({acc ountId: « number », siteId: « number », zoneId: « number »}, e)}}; Function S (e, t) {var n = obgetConfig (« pageUrl »); return e.params.referrer? n = e.params.referrer: n || (n = t.refererInfo.referer), e.params.secure? n.replace (/ ^ http: / i, « https: »): n} Function A (e ) {var t, n = document.getElementById (e.adUnitCode); (t = n.querySelector (« div [id ^ = ‘google_ads’] »)) &&t.style.setProperty (« display », « none ») , function (e) {var t = e.querySelector (« script [id ^ = ‘sas_script’] »), n = t&&t.nextSibling; n&& « iframe » === n.localName&&n.sterty (« display » «  »Perty.sterty , « none »)} (n); var r = e.renderer.getConfig (); e.renderer.push (function () {window.MagniteApex.renderAd ({width: e.width, height: e.height, vastUrl: e.vastUrl, placement: {attachTo: « # ». concat (e.adUnitCode), align: r.align || « center », position: r.position || « append »}, closeButton: r.closeButton ||! 1, label: r.label || void 0, collapse: r.collapse ||! 0})})} Function I (e, t) {var n = e.params; if (« video » = == t) {var i = []; return n.video&CSSEANDCH ARn.video.playerWidth&&n.video.playerHeight? i = [n.video.playerWidth, n.video.playerHeight]: Array.isAr ray (r.deepAccess (e, « mediaTypes.video.playerSize »)) &&1 === e .mediaTypes.video.playerSize.length? i = e.mediaTypes.video.playerSize [0]: Array.isArray (e. sizes) &&e.sizes.length> 0&&Array.isArray (e.sizes [0]) &&e.sizes [0] .length> 1&& (i = e.sizes [0], i} return o .isArray (n.sizes)? o = n.sizes: void 0! == r.deepAccess (e, « mediaTypes.banner.sizes »)? o = T (e.mediaTypes.banner.sizes): Array.isArray (e.sizes) &&e.sizes.length> 0? o = T (e.sizes): r.logWarn (« Rubicon: No sizes were set up or found »), x (o)} function E (e, t , n) {var i = {user: {ext: {data: f ({}, e. params.visitor)}}, site: {ext: {data: f ({}, e.params.inventory)}}}; e.params.keywords&& (i.site.keywords = r.isArray (e.params. keywords)? e.params.keywords.join (« , »): e.params.keywords); var s = r.mergeDeep ({}, obgetConfig (« ortb2 ») | | {}, i), c = r .deepAccess (e.ortb2Imp, « ext.data ») || {}, u = {user: [3], site: [1,2]}, d = {user: « tg_v. », site: « tg_i . « , adserver: » tg_i.dfp_ad_unit_code « , pbadslot: » tg_i.pbadslot « , keywords: » kw « }, l = function (e, t, n) {if ( » data « === t&&Array.isArray (e )) return e.filter (function (e) {return e.segment&&r.deepAccess (e, « ext.segtax ») &&u [n] &&-1! == u [n] .indexOf (r.deepAccess (e, « ext.segtax »))}). map (function (e) {var t = e.segment.filter (function (e) {return e.id}). reduce (function (e, t) {return e. push (t.id), e}, []); if (t.length> 0) return t.toString ()}). toString (); if (« Object »! == y (e) || Array .isArray (e)) {if (void 0! == e) return Array.isArray (e)? e.filter (function (e) {if (« Object »! = = y (e) &&void 0! == e) return e.to String (); r.logWarn (« Rubicon: Filtered value: », e, « for key », t, « : Expected value is String, Integer, or an array of Strings / Ints »)}). ToString (): e.toString ()} else r.logWarn (« Rubicon: Filtered FPD key: », t, « : Expected value is String, Integer, or an array of Strings / Ints »)}, p = function (e, t , r) {var i =! (arguments.length> 3&&void 0! == arguments [3]) || arguments [3], o = l (e, r, t), a = d [r] &&i?  » « .concat (d [r]): » data « === r? » « . concat (d [t], » iab « ): » « . concat (d [t]). concat (r); n [a] = n [a]? n [a] .concat (« , », o): o}; Object.keys (c) .forEach (function (e) {« adserver » === e? [ » name « , » adslot « ]. forEach (function (t) {c [e] [t] && (c [e] [t] = c [e] [t] .toString (). replace (/ ^ / /, «  »))}): « pbadslot » === e&& (c [e] = c [e] .toString (). replace (/ ^ / /, » »)))),t===ab?([« site », »user » Autovermietung ).forEach(function(e){Object.keys(s[e]).forEach (function (t) {« site » === e&& « content » === t&&s [e] [t] .data? p (s [e] [t] .data, e, « data »): « ext « ! == t? p (s [e] [t], e, t): s [e] [t] .data&&Object.keys (s [e] .ext.data) .forEach (function (t) { p (s [e] .ext.data [t], e, t,! 1)})})}), Object.keys (c) .forEach (function (e) {« adserver » === e? p (c [e] .adslot, name, e): p (c [e], « site », e)})) 🙁 Object.keys (c) .length&&r.merg eDeep (n.imp [0] .ext, {data: c}), r.mergeDeep (n, s))} function T (e) {return r.parseSizesInput (e) .reduce (function (e, t) {var n = parseInt (h [ t], 10); return n&&e.push (n), e}, [])} function O (e) {return « object » === y (r.deepAccess (e, « params.video »)) &&void 0! == r.deepAccess (e, « mediaTypes. ». Concat (ad))} function C (e) {var t = arguments.length> 1&&void 0! == arguments [1] &&Argumente [1]; O ( e) return? -1 === [« outstream », « instream »]. indexOf (r.deepAccess (e , « mediaTypes. ». concat (ad, « . context »)))? void (t&&r.logError (« Rubicon: mediaTypes.video.context must be outstream or instream »)): I (e, « video »). length-1 || i> -1? -1 === r? 1: -1 === i? -1: ri: en})} function j (e) {var t = parseInt (r.deepAccess ( e, « params.video.size_id »)); return isNaN (t)? « outstream » === r.deepAccess (e, « mediaTypes. ». concat (ad, « . context »))? 203: 201: t} Function D (e) {return {ranges: {low: [{max: 5, increment: .5}], medium: [{max: 20, increment: .1}], high: [{max: 20 , Increment: .01}], auto: [{max: 5, increment: .05}, {min: 5, max: 10, increment: .1}, {min: 10, max: 20, increment :. 5}], dense: [{max: 3, increment: .01}, {min: 3, max: 8, increment: .05}, {min: 8, max: 20, increment: .5}], custom : e.getConfig (« customPriceBucket ») &&e.getConfig (« customPriceBucket ») .buckets} [e.getConfig (« priceGranularity »)]}} function k (e) {var t =! 0, n = Object.prototype. toString.call ([]), i = {mimes: n, protocols: n, linearity: Object.prototype.toString.call (0), api: n}; return Object.keys (i) .forEach (function (n ) {Object.prototype.toStri ng.call (r.deepAccess (e, « mediaTypes.video. » n))! == i [n] && (t =! 1, r.logError (« Rubicon: mediaTypes.video. » n « is required and must be of the type: « i [n]))}), t} Function P (e) {var t =! 1, n = [ » asi « , » sid « , » hp « ]; return e.nodes? ((t = e.nodes.reduce (function (e, t) {return e? n.every (function (e) {return t.hasOwnProperty (e)}): e} ,! 0)) || r. logError (« Rubicon: required Schain parameters are missing »), t): t} Function R (e, t) {return « rp_schain » === e? « rp_schain = ». concat (t): «  ». concat ( e, « = »). concat (encodeURIComponent (t))} var U =! 1; Object t (i.registerBidder) (_)}}, [622]), pbjsChunk ([87], {696: function ( e, t, n) {e.exports = n (697)}, 697: function (e, t, n) {Object.defineProperty (t, « __ esModule », {value:! 0}), nd (t, « tripleliftAdapterSpec », function () {return b}); var r = n (2), i = n (1), o = n (0), a = n (3); function s () {return (s = Object.assign || function (e) {for (var t = 1; te.length) && (t = e.length); for (var n = 0, r = new Array (t); n0&& (t. user = {ext: {eids: i}}); var c = function (e, t) {var n = {}; return o.isEm pty (e) || (n.schain = d ({}, e)), o.isEmpty (t) || (n.fpd = d ({}, t)), n} (n, r); return o.isEmpty (c) || ​​(t.ext = c), t} (e); if (n = o.tryAppendQueryString (n, « lib », « prebid »), n = o.tryAppendQueryString (n, « v », « 5.2.0 »), t&&t.refererInfo) {var i = t.refererInfo.referer; n = o.tryAppendQueryString (n, « referrer », i)} return t&&t.timeoutCSSE.CHARingApp (nQueryStringApp (n, « tmax », t.timeout)), t&&t.gdprConsent&& (void 0! == t.gdprConsent.gdCHARCSSEANDgSSEAND (void) rApplies, n = o.dtopringtring (« , gString ») ), void 0! == t.gdprConsent.consentString&& (m = t.gdprConsent.consentString, n = o. « us_privacy », t.uspConsent)) ,! 0 === abgetConfig (« coppa ») && (n = o.tryAppendQueryString (n, « coppa »,! 0)), n.lastIndexOf (« & ») == = n.length-1&& (n = n.substring (0, n.length-1)), o .logMessage (« tlCall request created: » n), {method: « POST », url: n, data: r, bidderRequest: t}}, interpretResponse: function (e, t) {var n = t.bidderRequest; return (e.body. Commandments || []). Map (function (e) {return function (e, t) {var n = {}, r = t.width || 1, i = t.height || 1, o = t. deal_id || «  », a = t.crid || «  », s = e.bids [t.imp_id]; return 0! = t.cpm&&t.ad&& (n = {requestId: s.bidId, cpm: t. cpm, width: r, height: i, netRevenue:! 0, ad: t.ad, creativeId: a, dealId: o, currency: « USD », ttl: 300, tl_source: t.tl_source, meta: {}} , y (s) CSSEUNDCHARCSEA NDCHAR (n.vastXml = t.ad, n.mediaType = « video »), t.advertiser_name&& (n.meta.advertiserName = t.advertiser_name), t.adomain&&t.&t.adom. meta.advertiserDomains = t adomain), t.tl_source&& « hdx » == t.tl_source&& (n.meta.mediaType = « banner »), t.tl_sourceCSSEANDmedia=& = « t.metlANDCHAR = » t.metlANDCHAR = « tlx » native « ) n} (n, e)})}, getUserSyncs: function (e, t, n, r) {var i = function (e) {if (e) return e.iframeEnabled? » iframe « : e. pixelEnabled? « image »: void 0} (e); if (i) {var a = « https://eb2.3lift.com/sync? »; return « image » === i& & (a = o.tryAppendQueryString (a, « px », 1), a = o.tryAppendQueryString (a, « src », « prebid »)), null! == m&& (a = o.tryAppendQueryString (a,  » gdpr « , g), a = o. tryAppendQueryString (a, « cmp_cs », m)), r&& (a = o.tryAppendQueryString (a, « us_privacy », r)), [{type: i, url: a}]}}}; function y (e) {return !! e.mediaTypes.video&& !! e.mediaTypes.vi deo.context&& « instream » === e.mediaTypes.video.context.toLowerCase ()} function v (e) {var t = null; if ( « function » == typeof e.getFloor) {var n = e. getFloor ({currency: « USD », mediaType: y (e)? « video »: « banner », size: « * »}); « object »! == c (n) || « USD »! == n.currency || isNaN (parseFloat (n.floor)) || (t = parseFloat (n.floor))} return null! == t? t: e.params.floor} function h (e, t) { o.isEmpty (t) || Object.keys (t) .forEach (function (n) {null! = t [n] && (e [n] = t [n])})} function _ (e, t , n, r) {return e.map (function (e) {return function (t) {return t&&t.userId&&t.userId [e]}} (t)). filter (function (e) {return !! e} ) .map (function (e, t) {return function (n) {return {source: e, uids: [{id: n, ext: {rtiPartner: t}}]}}} (n, r))} Function S (e) {return e.filter (A) .map (function (e) {return {w: e [0], h: e [1]}})} function A (e) {return 2 == = e.length&& « number » == typeof e [0] && « number » == typeof e [1]} Object (i.registerBidder) (b)}}, [696]), pbjsChunk ([7], { 21: Function (e, t, n) {tb = Function (e) {var t = []; for (var n in e) if (e.hasOwnProperty (n)) if (« pubProvidedId » === n) t = t.concat (e.pubProvidedId); else {var r = o (e [n], n); r&CSSEAN DCHARt.push (r)} return t}, ta = function (e) {var t = []; return e.filter (function (e) {return r.isPlainObject (e.idObj) &&Object.keys (e.idObj ) .length}). forEach (function (e) {Object.keys (e.idObj) .forEach (function (n) {r.deepAccess (e, « config.bidders ») &&Array.isArray (e.config.bidders ) &&r.deepAccess (i, n « .source ») &&t.push ({source: i [n] .source, bidders: e.config.bidders})})}), t}; var r = n (0 ), i = {intentIqId: {source: « intentiq.com », atype: 1}, pubcid: {source: « pubcid.org », atype: 1}, tdid: {source: « adserver.org », atype: 1, getUidExt: function () {return {rtiPartner: « TDID »}}}, id5id: {getValue: function (e) {return e.uid}, source: « id5 -sync.com », atype: 1, getUidExt : function (e) {if (e.ext) return e.ext}}, parrableId: {source: « parrable.com », atype: 1, getValue: function (e) {return e.eid? e.eid: e.ccpaOptout? « : null}, getUidExt: function (e) {var t = r.pick (e, [ » ibaOptout « , » ccpaOptout « ]); if (Object.keys (t) .length) return t} }, idl_env: {source: « liveramp.com », atype: 3}, lipb: {getValu e: function (e) {return e.lipbid}, source: « liveintent.com », atype: 3, getEidExt: function (e) {if (Array.isArray (e.segments) &&e .segments.length) return { segments: e.segments}}}, britepoolid: {source: « britepool.com », atype: 3}, dmdId: {source: « hcn.health », atype: 3}, lotamePanoramaId: {source: « crwdcntrl.net « , atype: 1}, criteoId: {source: » criteo.com « , atype: 1}, merkleId: {source: » merkleinc.com « , atype: 3, getValue: function (e) {return e.id} , getUidExt: function (e) {return e&&e.keyID? {keyID: e.keyID}: void 0}}, netId: {source: « netid.de », atype: 1}, IDP: {source: « zeotap. com « , atype: 1}, haloId: {source: » audigent.com « , atype: 1}, quantcastId: {source: » quantcast.com « , atype: 1}, nextrollId: {source: » nextroll.com  » , atype: 1}, idx: {source: « idx.lat », atype: 1}, connectid: {source: « verizonmedia.com », atype: 3}, fabrickId: {source: « neustar.biz », atype : 1}, mwOpenLinkId: {source: « mediawallahscript. com « , atype: 1}, tapadId: {source: » tapad.com « , atype: 1}, novatiq: {getValue: function (e) {return e.snowflake}, source: » novatiq.com « , atype: 1}, uid2: {source: « uidapi.com », atype: 3, getValue: function (e) {return e.id}}, deepintentId: {source: « deepintent.com », atype: 3}, admixerId: {source: « admixer.net », atype: 3}, amxId: {source: « amxrtb.com », atype: 1}}; function o (e, t) {var n = i [t]; if (n&&e ) {var o = {}; o.source = n.source; var a = r.isFn (n.getValue)? n.getValue (e): e; if (r.isStr (a)) {var s = {id: a, atype: n.atype}; if (r.isFn (n.getUidExt)) {var c = n.getUidExt (e); c&& (s.ext = c)} if (o.uids = [ s], r.isFn (n.getEidExt)) {var u = n.getEidExt (e); u&& (o.ext = u)} return o}} return null}}, 716: function (e, t, n ) {e.exports = n (717)}, 717: function (e, t, n) {Object.defineProperty (t, « __ esModule », {value:! 0}), nd (t, « PBJS_USER_ID_OPTOUT_NAME », function () {return w}), nd (t, « coreStorage », function () {return x}), nd (t, « syncDelay », function () {return S}), nd (t, « auctionDelay », function () {return A}), t.setSubmoduleRegistry = Funk tion (e) {R = e}, t.setStoredValue = U, t.setStoredConsentData = M, t.findRootDomain = L, t.requestBidsHook = G, nd (t, « validateGdprEnforcement », function () {return Q}) , t.attachIdSystem = $, t.init = Z; var r = n (11), i = nn (r), o = n (3), a = n (9), s = nn (a), c = n (0), u = n (16), d = n (7), l = n (5), f = nn (l), p = n (10), g = n (21), m = n (8), b = n (12), y = nn (b); function v (e, t) {(zero == t || t> e.length) && (t = e.length); for (var n = 0, r = new Array (t); n1&&void 0! == arguments [1]? arguments [1]: void 0, r = n? «  ». concat (e.name, « _ »). concat (n): e.name; try {if (e.type === E) t = x.getCookie (r); else if (e.type === T) {var i = x.getDataFromLocalStorage ( » « .concat (e.name, » _ exp « )); » « === i? t = x.getDataFromLocalStorage (r): i&&new Date (i) .getTime () – Date.now ()> 0&& (t = decodeURIComponent (x.getDataFromLocalStorage (r)))} « string » == typeof t&& « { » === t.trim (). charAt (0) && (t = JSON.parse (t))} catch (e) {c.logError (e)} return t} function N (e) {var t = {consentString: «  », gdprApplies:! 1, apiVersion: 0}; retu rn eCS SEANDCHAR& (t.consentString = e.consentString, t.gdprApplies = e.gdprApplies, t.apiVersion = e.apiVersion), c.cyrb53Hash (JSON.stringify (t))} function M (e) {try {var t = new Date (Date.now () 864e5 * C) .toUTCString (); x.setCookie (O, N (e), t, « Lax »)} catch (e) {c.logError (e)}} function q () {try {return x.getCookie (O)} catch (e) {c.logError (e)}} function F (e) {if (e&& « boolean » == typeof e.gdprApplies&&e.gdprApplies) { if (! e.consentString) return! 1; if (1 === e.apiVersion&&! 1 === c.deepAccess (e, « vendorData.purposeConsents.1 »)) return! 1; if (2 === e. apiVersion&&! 1 === c.deepAccess (e, « vendorData.purpose.consents.1 »)) return! 1} return! 0} function L () {var e = arguments.length> 0&&void 0! == arguments [ 0]? Arguments [0]: window.location.hostname; if (! X.cookiesAreEnabled ()) return e; var t, n, r = e.split (« . »); If (2 == r.length ) return e; var i = -2, o = « _ rdc » .concat (Date.now ()), a = « writeable »; do {t = r.slice (i) .join (« . »); var s = new date (c.timestamp () 1e4) .toUTCString (); x .setCookie (o, a, s, « Lax », t, void 0), x.getCookie (o, void 0) === a ? (n =! 1, x.setCookie (o, «  », « Thu, 01 Jan 1970 00:00:01 GMT », void 0, t, void 0)) 🙁 i = -1, n = Math. abs (i) 0) {t =! 0; var r =! 1, i = function () {r || (r =! 0, e ())}; c.logInfo («  ». concat (I, « – auction delayed by ») .concat (A, « to get at most IDs »)), _ = setTimeout (i, A), z (n, i)} else saon (faEVENTS.AUCTION_END, function e () {saoff (faEVENTS.AUCTION_END, e), S> 0? setTimeout (function () {z (n)}, S): z (n)})} e&&! t&&e ()} Function G (e, t) {V ( function () {(function (e, t) {[e] .some (function (e) {return! Array.i sArray (e) ||! e.length}) || e.forEach (function (e) {e.bids&&c.isArray (e.bids) &&e.bids .forEach (function (e) {var n = function (e , t) {return Array.isArray (e) &&e.length&&t? e.filter (function (e) {return! e.config.bidders ||! c. isArray (e.config.bidders) || y () (e.config.bidders, t)}). filter (function (e) {return c.isPlainObject (e.idObj) &&Object.keys (e.idObj). Length}). Reduce (function (e, t) {return Object.keys (t.idObj) .forEach (function (n) {e [n] = t.idObj [n]}), e}, {}): {}} (t, e.bidder); Object.keys (n) .length&& (e.userId = n, e.userIdAsEids = Object (gb) (n))})})}) (t.adUnits || Object (ua ) (). adUnits, h), e.call (this, t)})} function K () {return V (), W (h)} function H () {return V (), Object (gb) ( W (h))} Function J (e, t) {var n = e? E.submoduleNames: null; n || (n = []), V (function () {var e = d.gdprDataHandler.getConsentData ( ), r = Q (k, e), i = r.userIdModules; if (r.hasValidated || F (e)) {var o = q (); M (e); var a, s = [], u = function (e, t) {var n = « undefined »! = typeof Symbol&&e [Symbol.iterator] || e [« @@ iterator »]; if (! n) {if (Array.isArray (e) | | (n = function (e, t) {if (e) {if (« string » == typeof e) return v (e, t); var n = Object.prototype.toString.call (e) .slice ( 8, -1); return « Object » === n&&e.constructor&& (n = e.constructor.name), « Map » === n || « Set » === n? Array.from (e): « Arguments » === n || / ^ (?: Ui | I) nt (?: 8 | 16 | 32) (?: Clamped)? Array $ /. Test (n)? V (e, t): void 0}} (e)) || t&C SSEAND CHARe&& « number » == typeof e.length) {n&& (e = n); var r = 0, i = function () {}; return {s: i, n: function () {return r> = e . length? {done:! 0}: {done:! 1, value: e [r]}}, e: function (e) {throw e}, f: i}} throw new TypeError (« Invalid attempt, non – iterable instance. nTo be iterable, non-array objects must have a [Symbol.iterator] () method. « )} var o, a =! 0, s =! 1; return {s: function () {n = n.call (e)}, n: function () {var e = n.next (); return a = e.done, e}, e: function (e) {s =! 0, o = e}, f: function () {try {a || null == n.return || n.return ()} finally {if (s) throw o}}}} (i); try {for (us ( );! (a = un ()). done;) {var l = a.value; n.length> 0&&-1 === n.indexOf (l.submodul.name) || (c.logInfo ( » « .concat (I, » – Update « ) .concat (l.submodule.name)), Y (l, e, o,! 0), c.isFn (l.callback) &&s.push (l))} } catch (e) {ue (e)} finally {uf ()} s.length> 0&&z (s), t&&t ()} else c.logWarn («  ». concat (I, « – gdpr authorization not valid for local storage or cookies, exit module « ))})} var Q = Object (pb) ( » sync « , function (e, t) {return {userIdModules: e, hasValidated: t&&t.hasValidated}}, » validate GdprEnforcement « ); Function Y (e, t, n, r) {if (e.config.storage) {var i, o = B (e.config.storage), a =! 1; if ( » number « = = typeof e.config.storage.refreshInSeconds) {var s = new date (B (e.config.storage, « last »)); a = s&&Date.now () – s.getTime ()> 1e3 * e.config .storage.refreshInSeconds}! o || a || r ||! function (e, t) {return null! = n&&n === N (t)} (0, t)? i = e.submodule.getId (e.config, t, o): « function » == typeof e.submodule.extendId&& (i = e.submodule.extendId (e.config, t, o)), c.isPlainObject (i) && (i.id&& (U (e, i.id), o = i.id), « function » == typeof i.callback&& (e.callback = i.callback)), o&& (e.idObj = e.submodule.decode (o, e.config))} else if (e. config.value) e.idObj = e.config.value; else {var u = e.submodule.getId (e.config, t, void 0); c.isPlainObject (u) && (« function » == typeof u .Call back&& (e.callback = u.callback), u.id&& (e.idObj = e.submodule.decode (u.id, e.config)))}} function X () {var e = function (e , t, n) {return Array.isArray (e)? e.reduce (function (e, t) {return! t || c.isEmptyStr (t.name) || (! t.storage || c.isEmptyStr (t .storage.type) || c.isEmptyStr (t.storage.name) || -1 === n.indexOf (t.storage.type)? c.isPlainObject (t.value)? e.push ( t): t.storage || t.value || e.push ( t): e.push (t)), e}, []): []} (P, 0, j); if (e.length) {var t = R.filter (function (e) {return! i () (k, function (t) {return t.name === e.name})}); k = t.map (function (t) {var n = i () (e, function (e) {return e.name&& (e.name.toLowerCase () === t.name.toLowerCase () || t.aliasName&&e.name.toLowerCase () = == t.aliasName.toLowerCase ())}); return n& .name! == n.name&& (n.name = t.name), t.findRootDomain = L, n? {submodule: t, config: n, callback: void 0, idObj: void 0}: null}). filter (function (e) {return null! == e}),! D&&k.length&& (Object (u. a) (). requestBids.before (G, 40), c.logInfo («  ». concat (I, « – usersync configuration updated for ») .concat (k.length, « sub-modules: »), k.map (function (e) {return e.submodule.name})), D =! 0)}} function $ (e) {i () (R, function (t) {return t.name === e.name }) || (R.push (e), X ())} Function Z (e) {k = [], P = [], D =! 1, h = void 0, -1! == (j = [x.localStorageIsEnabled ()? T: null, x.cookiesAreEnabled ()? E: null] .filter (function (e) {return null! == e})). indexOf (E) &&x.getCookie (w) ? c.logInfo («  ». concat (I, « – opt-out cookie found, exit module »)): – 1! == j.indexOf (T) &&x.getDataFromLocalStorage (w)? c.logInfo ( » « . concat (I, » – Opt-out localStorage found, exit module « )) 🙁 e.getConfig (function (e) {var t = e.userSync; t&&t.userIds&& (P = t.userIds, S = c .isNumber (t.syncDelay)? t.syncDelay: 500, A = c.isNumber (t.auctionDelay)? t.auctionDelay: 0, X ())}), Object (ua) (). getUserIds = K, Object (ua) (). getUserIdsAsEids = H, Object (ua) (). refreshUserIds = J)} Z (ob), Object (pc) (« userId », $)}}, [716]), pbjs.processQueue ( );
}, {}];
window.modules [« visibility.legacy »] = [function (require, module, exports) {« use strict »; DS.service (« $ visibility », [« $ document », « $ window », « _ throttle », « Eventify », function (e, t, n, i) {var o, r, h = []; function s (e, t) {return et? E: t} function d (e, t, n) { ! e.preload&&e.preloadThreshhold&&function (e, t, n, i) {return t.top = e.shownThreshold&&! e.seen? (e.seen =! 0, setTimeout (function () {e.trigger) , new r (« shown », t))}, 15)) :(! n || i1&& (h = e (r, Math.floor (n / o), i-1, o)), h}, this.getVerticallyVisiblePixels = f, this.getViewportHeight = function () {return t.innerHeight || e.documentElement.clientHeight || e.body.clientHeight}, this.getViewportWidth = function () {return t.innerWidth || e. documentElement.clientWidth || e.body.clientWidth}, this.isElementNotHidden = u, this.isElementInViewport = function (n) {var i = n.getBoundingClientRect (); return i.top> = 0&&i.left> = 0CSSEottom .CHARCSS. = o.length) return {done: true}; return {done: false, value: o [i]}; }, e: function e (_e) {Throw _e; }, f: F}; } throw new TypeError (« Invalid attempt to iterate a non-iterable instance. nTo be iterable, non-array objects must have a [Symbol.iterator] () method. »); } var normalCompletion = true, didErr = false, err; return {s: function s () {it = o [symbol.iterator] (); }, n: function n () {var step = it.next (); normalCompletion = step.done; Return step; }, e: function e (_e2) {didErr = true; Error = _e2; }, f: function f () {try {if (! normalCompletion && it.return! = null) it.return (); } finally {if (didErr) throw err; }}}; }

Function _unsupportedIterableToArray (o, minLen) {if (! O) return; if (typeof o === « string ») return _arrayLikeToArray (o, minLen); var n = Object.prototype.toString.call (o) .slice (8, -1); if (n === « Object » && o.constructor) n = o.constructor.name; if (n === « Map » || n === « Set ») return Array.from (o); if (n === « Arguments » || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray (o, minLen); }

function _arrayLikeToArray (arr, len) {if (len == null || len> arr.length) len = arr.length; for (var i = 0, arr2 = new Array (len); i

Keywords:

Harry Styles,Starfox,Marvel Cinematic Universe,Post-credits scene,Thanos,Harry Styles, Starfox, Marvel Cinematic Universe, Post-credits scene, Thanos,,marvel, superheroes, casual-fans-guide,

Donnez votre avis et abonnez-vous pour plus d’infos

[gs-fb-comments]

[comment]

[supsystic-newsletter-form id=4]

Vidéo du jour: