PageSourceSearch

https://entertainment.ie/content/apps/

html entertainment.ie collected 2026-09-24 18:41:14 UTC 89,035 bytes, 1,704 lines download raw bytes

1<!DOCTYPE html>
2      <html lang="en" >
3      <head>
4          <title>Entertainment.ie : Cinema, TV, Listings, Celebrity Gossip, Photos, Clubbing, Theatre, Reviews, Trailers, Lotto</title>
5<meta charset="utf-8">
6<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
7<meta name="description" content="Entertainment.ie, reliable comprehensive Cinema listings, TV listings, Celebrity Gossip Stories, music, gigs, exhibitions, theatre, clubbing, comedy events, online ticket sales.  All Your...">
8<meta name="keywords" content="listings,show times,film times,booking,certificate,reviews,trailers,rating,editor,cinemas,listings,movies">
9<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
10<meta name="theme-color" content="#FF5700">
11<meta name="author" content="Entertainment.ie">
12
13<meta property="dfp" content="4844766/Entertainment.ie_New" />
14<meta property="dfpei" content="4844766/ei" />
15
16
17
18
19<meta property="dfpSection" content="Other" />
20<link rel="apple-touch-icon" href="https://entertainment.ie/images/apple-touch-icon.png">
21<link rel="icon" sizes="192x192" href="https://entertainment.ie/images/android-192x192.png">
22
23
24
25    <meta name="robots" content="index, follow">
26
27<meta property="fb:app_id" content="2788711801154650" />
28<meta name="powered-by" content="Entertainment Media Networks Ltd" />
29
30<link rel="canonical" href="https://entertainment.ie/content/apps/" />
31
32<meta property='og:title' content="Entertainment.ie : Cinema, TV, Listings, Celebrity Gossip, Photos, Clubbing, Theatre, Reviews, Trailers, Lotto">
33<meta property='og:description' content="Entertainment.ie, reliable comprehensive Cinema listings, TV listings, Celebrity Gossip Stories, music, gigs, exhibitions, theatre, clubbing, comedy events, online ticket sales.  All Your...">
34<meta property='og:type' content="article">
35<meta property='og:url' content="https://entertainment.ie/content/apps/">
36<meta property='og:site_name' content="Entertainment.ie">
37<meta property='og:image' content="https://entertainment.ie/images/entertainment-ie.png" />
38<meta property="og:image:type" content="image/jpeg" />
39
40<meta name="twitter:card" content="summary_large_image">
41    <meta name="twitter:site" content="@entertainmentIE">
42<meta name="twitter:url" content="https://entertainment.ie/content/apps">
43<meta name="twitter:title" content="Entertainment.ie : Cinema, TV, Listings, Celebrity Gossip, Photos, Clubbing, Theatre, Reviews, Trailers, Lotto">
44<meta name="twitter:description" content="Entertainment.ie, reliable comprehensive Cinema listings, TV listings, Celebrity Gossip Stories, music, gigs, exhibitions, theatre, clubbing, comedy events, online ticket sales.  All Your...">
45<meta name="twitter:image" content="https://entertainment.ie/images/entertainment-ie.png">
46
47
48
49<script>
50  var consentManager = {
51      cmpProcessed: false,
52      vendorsConsent: {
53          google: {
54              id: 755,
55              isAllowed: false
56          }
57      },
58      nonIabVendorsConsent: {
59          facebook: {
60              id: 16,
61              isAllowed: false,
62          },
63          twitter: {
64              id: 17,
65              isAllowed: false,
66          },
67      },
68      pixeltags:{
69        isAllowed: false,
70      },
71      consentString: "",
72      sentEventFbPixel: false,
73      sentEventTwPixel: false,
74      limit: 150,
75  
76      setCookie: function(name, value, expiry_days) {
77          var d = new Date();
78          d.setTime(d.getTime() + (expiry_days*24*60*60*1000));
79          var expires = "expires="+ d.toUTCString();
80          document.cookie = name + "=" + JSON.stringify(value) + ";" + expires + ";path=/";
81      },
82  
83      setCookieString: function(name, value, expiry_days) {
84          var d = new Date();
85          d.setTime(d.getTime() + (expiry_days*24*60*60*1000));
86          var expires = "expires="+ d.toUTCString();
87          document.cookie = name + "=" + escape(value) + ";" + expires + ";path=/";
88      },
89  
90      getCookie: function(name) {
91          var name = name + "=";
92          var decodedCookie = decodeURIComponent(document.cookie);
93          var ca = decodedCookie.split(';');
94          for(var i = 0; i <ca.length; i++) {
95              var c = ca[i];
96              while (c.charAt(0) == ' ') {
97                  c = c.substring(1);
98              }
99              if (c.indexOf(name) == 0) {
100                  return c.substring(name.length, c.length);
101              }
102          }
103          return "";
104      },
105  
106      deleteCookie: function(name) {
107          document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
108          return "";
109      },
110  
111      /**
112       * Is a given feature allowed to run, based on user consent settings?
113       *
114       * @param    name
115       *
116       * @return    Boolean
117       */
118      isAllowed: function(name) {
119          if (name == 'pixeltags') {
120              return this.pixeltags.isAllowed;
121          } else if (this.nonIabVendorsConsent[name] !== undefined) {
122              return this.nonIabVendorsConsent[name].isAllowed;
123          } else if (this.vendorsConsent[name] !== undefined) { 
124              return this.vendorsConsent[name].isAllowed;
125          } else {
126              console.log('Unknown permission: ' + name);
127              return false;
128          }
129      },
130  
131      trackPublisherConsentLevel: function (consents) {
132          var total = false;
133          var partial = false;
134          var length = Object.keys(consents).length;
135  
136          if (length > 0) {
137              total = true;
138  
139              for (var i = 1; i <= length; i++) {
140                  if (!consents[i]) {
141                      total = false;
142                  } else if (!total) {
143                      partial = true;
144                      break;
145                  }
146              }
147          }
148  
149          dataLayer.push({
150              'event':'ConsentPublisher',
151              'consentPublisher': total ? 'Total' : (partial ? 'Partial' : 'None')
152          });
153  
154          return total;
155      },
156  
157      trackVendorConsentLevel: function (consents) {
158          var total = false;
159          var partial = false;
160          var length = Object.keys(consents).length;
161  
162          if (length > 0) {
163              total = true;
164  
165              for (var i = 1; i <= length; i++) {
166                  if (!consents[i]) {
167                      total = false;
168                  } else if (!total) {
169                      partial = true;
170                      break;
171                  }
172              }
173          }
174  
175          dataLayer.push({
176              'event':'ConsentVendor',
177              'consentVendor': total ? 'Total' : (partial ? 'Partial' : 'None')
178          });
179  
180          return total;
181      },
182  
183      hasBeenProcessed: function() {
184          return this.cmpProcessed;
185      },
186  
187      /**
188       * Are we serving non-personalised ads?
189       * DFP syntax requires true for non-personalised, but we have isAllowed above.
190       * Littering the code with setNonPersonalised(!gdpr.isAllowed('dfp')) feels like
191       * an accident waiting to happen, so add a convenience wrapper here.
192       *
193       * @return    int
194       */
195      isServingNonPersonalisedAds: function() {
196          // Needs to be int, not boolean for dfp
197          if (this.isAllowed('google')) {
198              return false;
199          }
200  
201          return true;
202      },
203  
204      setConsentString: function (consentData) {
205          if (consentData) {
206              this.consentString = consentData;
207              localStorage.setItem('_cs', consentData);
208          }
209      },
210  
211      getConsentString: function () {
212          return localStorage.getItem('_cs');
213          //return this.consentString;
214      },
215  
216      isFromAmpPage: function () {
217          var regex = new RegExp("https?://(.*?)/amp/(.*?)-([0-9]+)(.*)", 'i');
218          return document.referrer.match(regex);
219      },
220      isSocialMediaReferrer: function(referrer) {
221          var twitter = new RegExp('(.*?)twitter(.*?)');
222  
223          if (twitter.exec(referrer) != null) {
224              return true;
225          } else if (referrer == 't.co') {
226              return true;
227          }
228          return false
229      },
230  
231      renderAds: function() {
232          if (window.cmp_processed) {
233              return;
234          }
235          if (typeof(window.dfpManager) !== 'undefined') {
236              //request has staging, adtest
237              const urlParams = new URLSearchParams(window.location.search);
238              const adtest = urlParams.get('adtest');
239              let staging = null;
240              window.dfpManager.start(consentManager.isServingNonPersonalisedAds(), adtest, staging);
241              window.cmp_processed = true;
242          }
243  
244          if (typeof(googletag.pubads) === 'undefined') {
245              setTimeout(self.renderAds, 250);
246              return;
247          }
248          googletag.pubads().enableSingleRequest();
249          googletag.pubads().setPrivacySettings({nonPersonalizedAds: consentManager.isServingNonPersonalisedAds()});
250          googletag.pubads().refresh();
251          window.cmp_processed = true;
252      },
253  
254      isEligible: function () {
255          var self = this;
256  
257          var referrer = document.createElement('a');
258          referrer.href = document.referrer;
259          if ((self.isSocialMediaReferrer(referrer.hostname) && self.getCookie('social_referer') === "") ||
260              self.isFromAmpPage()) {
261              self.setCookie('social_referer', referrer.hostname, 7);
262          }
263  
264          return (self.isSocialMediaReferrer(referrer.hostname) === false
265              && self.getCookie('social_referer') === "");
266      },
267  
268      setConsents: function(name, consent) {
269          if (this.vendorsConsent[name] == undefined) {
270              return false;
271          }
272  
273          // Undefined consent value? Let's set it to false
274          if (consent === undefined) {
275              consent = false;
276          }
277  
278          return this.vendorsConsent[name].isAllowed = consent;
279      },
280  
281      setUserConsent: function (tcData) {
282          for (const [key, vendor] of Object.entries(this.vendorsConsent)) {
283              if (tcData.vendor.consents[vendor.id] == -1) {
284                  // Vendor is not defined in vendorsConsent object or may not exists in the tcData;
285                  continue;
286              }
287  
288              // In the case of dfp, we need to check some publisher consents apart from the proper vendor consent
289              if (key == 'google') {
290                  this.setConsents(key, 
291                      tcData.vendor.consents[vendor.id]
292                      && tcData.purpose.consents[1] 
293                      && tcData.purpose.consents[3]
294                      && tcData.purpose.consents[4]
295                  )
296                  continue;
297              }
298  
299              this.setConsents(key, tcData.vendor.consents[vendor.id]);
300          }
301      },
302  
303      setNonIabConsents: function(name, consent) {
304          if (this.nonIabVendorsConsent[name] == undefined) {
305              return false;
306          }
307          return this.nonIabVendorsConsent[name].isAllowed = consent;
308      },
309  
310      setUserNonIabConsent: function (consent) {
311          if (consent.nonIabVendorConsents !== null) {
312            for (const [key, vendor] of Object.entries(this.nonIabVendorsConsent)) {
313              if (consent.nonIabVendorConsents[vendor.id]  === undefined) {
314                  continue;
315              }
316              this.setNonIabConsents(key, consent.nonIabVendorConsents[vendor.id]);
317          }
318          }
319      }
320  };
321  
322  window.consentManager = consentManager;
323  </script>
323
324  
325  <!-- InMobi Choice. Consent Manager Tag v3.0 (for TCF 2.2) -->
326  
326<script type="text/javascript" async=true>
327  
328  if (consentManager.isEligible()) {
329    var host = window.location.hostname;
330    var element = document.createElement('script');
331    var firstScript = document.getElementsByTagName('script')[0];
332    var url = 'https://cmp.inmobi.com'
333    .concat('/choice/', 'B5SB1j9zw5QGf', '/', host, '/choice.js?tag_version=V3');
334    var uspTries = 0;
335    var uspTriesLimit = 3;
336    element.async = true;
337    element.type = 'text/javascript';
338    element.src = url;
339  
340    firstScript.parentNode.insertBefore(element, firstScript);
341
342    function makeStub() {
343      var TCF_LOCATOR_NAME = '__tcfapiLocator';
344      var queue = [];
345      var win = window;
346      var cmpFrame;
347
348      function addFrame() {
349        var doc = win.document;
350        var otherCMP = !!(win.frames[TCF_LOCATOR_NAME]);
351
352        if (!otherCMP) {
353          if (doc.body) {
354            var iframe = doc.createElement('iframe');
355
356            iframe.style.cssText = 'display:none';
357            iframe.name = TCF_LOCATOR_NAME;
358            doc.body.appendChild(iframe);
359          } else {
360            setTimeout(addFrame, 5);
361          }
362        }
363        return !otherCMP;
364      }
365
366      function tcfAPIHandler() {
367        var gdprApplies;
368        var args = arguments;
369
370        if (!args.length) {
371          return queue;
372        } else if (args[0] === 'setGdprApplies') {
373          if (
374            args.length > 3 &&
375            args[2] === 2 &&
376            typeof args[3] === 'boolean'
377          ) {
378            gdprApplies = args[3];
379            if (typeof args[2] === 'function') {
380              args[2]('set', true);
381            }
382          }
383        } else if (args[0] === 'ping') {
384          var retr = {
385            gdprApplies: gdprApplies,
386            cmpLoaded: false,
387            cmpStatus: 'stub'
388          };
389
390          if (typeof args[2] === 'function') {
391            args[2](retr);
392          }
393        } else {
394          if(args[0] === 'init' && typeof args[3] === 'object') {
395            args[3] = Object.assign(args[3], { tag_version: 'V3' });
396          }
397          queue.push(args);
398        }
399      }
400
401      function postMessageEventHandler(event) {
402        var msgIsString = typeof event.data === 'string';
403        var json = {};
404
405        try {
406          if (msgIsString) {
407            json = JSON.parse(event.data);
408          } else {
409            json = event.data;
410          }
411        } catch (ignore) {}
412
413        var payload = json.__tcfapiCall;
414
415        if (payload) {
416          window.__tcfapi(
417            payload.command,
418            payload.version,
419            function(retValue, success) {
420              var returnMsg = {
421                __tcfapiReturn: {
422                  returnValue: retValue,
423                  success: success,
424                  callId: payload.callId
425                }
426              };
427              if (msgIsString) {
428                returnMsg = JSON.stringify(returnMsg);
429              }
430              if (event && event.source && event.source.postMessage) {
431                event.source.postMessage(returnMsg, '*');
432              }
433            },
434            payload.parameter
435          );
436        }
437      }
438
439      while (win) {
440        try {
441          if (win.frames[TCF_LOCATOR_NAME]) {
442            cmpFrame = win;
443            break;
444          }
445        } catch (ignore) {}
446
447        if (win === window.top) {
448          break;
449        }
450        win = win.parent;
451      }
452      if (!cmpFrame) {
453        addFrame();
454        win.__tcfapi = tcfAPIHandler;
455        win.addEventListener('message', postMessageEventHandler, false);
456      }
457    };
458
459    makeStub();
460
461    function makeGppStub() {
462      const CMP_ID = 10;
463      const SUPPORTED_APIS = [
464        '2:tcfeuv2',
465        '6:uspv1',
466        '7:usnatv1',
467        '8:usca',
468        '9:usvav1',
469        '10:uscov1',
470        '11:usutv1',
471        '12:usctv1'
472      ];
473
474      window.__gpp_addFrame = function (n) {
475        if (!window.frames[n]) {
476          if (document.body) {
477            var i = document.createElement("iframe");
478            i.style.cssText = "display:none";
479            i.name = n;
480            document.body.appendChild(i);
481          } else {
482            window.setTimeout(window.__gpp_addFrame, 10, n);
483          }
484        }
485      };
486      window.__gpp_stub = function () {
487        var b = arguments;
488        __gpp.queue = __gpp.queue || [];
489        __gpp.events = __gpp.events || [];
490
491        if (!b.length || (b.length == 1 && b[0] == "queue")) {
492          return __gpp.queue;
493        }
494
495        if (b.length == 1 && b[0] == "events") {
496          return __gpp.events;
497        }
498
499        var cmd = b[0];
500        var clb = b.length > 1 ? b[1] : null;
501        var par = b.length > 2 ? b[2] : null;
502        if (cmd === "ping") {
503          clb(
504            {
505              gppVersion: "1.1", // must be “Version.Subversion”, current: “1.1”
506              cmpStatus: "stub", // possible values: stub, loading, loaded, error
507              cmpDisplayStatus: "hidden", // possible values: hidden, visible, disabled
508              signalStatus: "not ready", // possible values: not ready, ready
509              supportedAPIs: SUPPORTED_APIS, // list of supported APIs
510              cmpId: CMP_ID, // IAB assigned CMP ID, may be 0 during stub/loading
511              sectionList: [],
512              applicableSections: [-1],
513              gppString: "",
514              parsedSections: {},
515            },
516            true
517          );
518        } else if (cmd === "addEventListener") {
519          if (!("lastId" in __gpp)) {
520            __gpp.lastId = 0;
521          }
522          __gpp.lastId++;
523          var lnr = __gpp.lastId;
524          __gpp.events.push({
525            id: lnr,
526            callback: clb,
527            parameter: par,
528          });
529          clb(
530            {
531              eventName: "listenerRegistered",
532              listenerId: lnr, // Registered ID of the listener
533              data: true, // positive signal
534              pingData: {
535                gppVersion: "1.1", // must be “Version.Subversion”, current: “1.1”
536                cmpStatus: "stub", // possible values: stub, loading, loaded, error
537                cmpDisplayStatus: "hidden", // possible values: hidden, visible, disabled
538                signalStatus: "not ready", // possible values: not ready, ready
539                supportedAPIs: SUPPORTED_APIS, // list of supported APIs
540                cmpId: CMP_ID, // list of supported APIs
541                sectionList: [],
542                applicableSections: [-1],
543                gppString: "",
544                parsedSections: {},
545              },
546            },
547            true
548          );
549        } else if (cmd === "removeEventListener") {
550          var success = false;
551          for (var i = 0; i < __gpp.events.length; i++) {
552            if (__gpp.events[i].id == par) {
553              __gpp.events.splice(i, 1);
554              success = true;
555              break;
556            }
557          }
558          clb(
559            {
560              eventName: "listenerRemoved",
561              listenerId: par, // Registered ID of the listener
562              data: success, // status info
563              pingData: {
564                gppVersion: "1.1", // must be “Version.Subversion”, current: “1.1”
565                cmpStatus: "stub", // possible values: stub, loading, loaded, error
566                cmpDisplayStatus: "hidden", // possible values: hidden, visible, disabled
567                signalStatus: "not ready", // possible values: not ready, ready
568                supportedAPIs: SUPPORTED_APIS, // list of supported APIs
569                cmpId: CMP_ID, // CMP ID
570                sectionList: [],
571                applicableSections: [-1],
572                gppString: "",
573                parsedSections: {},
574              },
575            },
576            true
577          );
578        } else if (cmd === "hasSection") {
579          clb(false, true);
580        } else if (cmd === "getSection" || cmd === "getField") {
581          clb(null, true);
582        }
583        //queue all other commands
584        else {
585          __gpp.queue.push([].slice.apply(b));
586        }
587      };
588      window.__gpp_msghandler = function (event) {
589        var msgIsString = typeof event.data === "string";
590        try {
591          var json = msgIsString ? JSON.parse(event.data) : event.data;
592        } catch (e) {
593          var json = null;
594        }
595        if (typeof json === "object" && json !== null && "__gppCall" in json) {
596          var i = json.__gppCall;
597          window.__gpp(
598            i.command,
599            function (retValue, success) {
600              var returnMsg = {
601                __gppReturn: {
602                  returnValue: retValue,
603                  success: success,
604                  callId: i.callId,
605                },
606              };
607              event.source.postMessage(msgIsString ? JSON.stringify(returnMsg) : returnMsg, "*");
608            },
609            "parameter" in i ? i.parameter : null,
610            "version" in i ? i.version : "1.1"
611          );
612        }
613      };
614      if (!("__gpp" in window) || typeof window.__gpp !== "function") {
615        window.__gpp = window.__gpp_stub;
616        window.addEventListener("message", window.__gpp_msghandler, false);
617        window.__gpp_addFrame("__gppLocator");
618      }
619    };
620
621    makeGppStub();
622
623    var uspStubFunction = function() {
624      var arg = arguments;
625      if (typeof window.__uspapi !== uspStubFunction) {
626        setTimeout(function() {
627          if (typeof window.__uspapi !== 'undefined') {
628            window.__uspapi.apply(window.__uspapi, arg);
629          }
630        }, 500);
631      }
632    };
633
634    var checkIfUspIsReady = function() {
635      uspTries++;
636      if (window.__uspapi === uspStubFunction && uspTries < uspTriesLimit) {
637        console.warn('USP is not accessible');
638      } else {
639        clearInterval(uspInterval);
640      }
641    };
642    
643    if (typeof window.__uspapi === 'undefined') {
644      window.__uspapi = uspStubFunction;
645      var uspInterval = setInterval(checkIfUspIsReady, 6000);
646    }
647  
648    // This callback is triggered on each page load.
649    // First time this callback is called without CMP processed, it will return an empty consent string,
650    // so we need to check this to avoid processing data. First load will be manage by the `addEventListener` callback.
651    __tcfapi('getTCData', 0, (tcData, success) => {
652      if (success) {
653          if (tcData.tcString != "") {
654              processCmpData(tcData);
655          }
656      }
657    });
658  
659    // This callback is triggered when CMP interface pops up
660    __tcfapi('addEventListener', 0, function(tcData, success) {
661      if (success && tcData.eventStatus == 'useractioncomplete') {
662          processCmpData(tcData);
663      }
664    });
665  }
666  
667  function processCmpData(tcData) {
668      // Flag that CMP has been processed.
669      consentManager.cmpProcessed = true;
670
671      consentManager.setUserConsent(tcData);
672      consentManager.setConsentString(tcData.tcString);
673      consentManager.trackPublisherConsentLevel(tcData.publisher.consents);
674      consentManager.trackVendorConsentLevel(tcData.vendor.consents);
675  
676      // If Publisher Purpose 1 is revoked, don't display ads
677      // https://support.google.com/admanager/answer/9805023?hl=en
678      if (consentManager.hasBeenProcessed() && tcData.purpose.consents[1]) {
679          consentManager.renderAds();
680          consentManager.pixeltags.isAllowed = true;
681      }
682  
683      // Facebook and Twitter are non IAB vendors, so we need to check their consents using a different callback
684      __tcfapi('getNonIABVendorConsents', 0, function(consent, success) {
685          if (success && consent.gdprApplies) {
686              consentManager.setUserNonIabConsent(consent);
687          }
688      })
689  
690      // Let the system now we have finished with CMP
691      window.cmp_processed = true;
692  }
693  </script>
693
694  <!-- End InMobi Choice. Consent Manager Tag v3.0 (for TCF 2.2) -->
695
696
697
698
699      
699<script>
700
701    let slotsRefresh = [
702        {name: 'div-gpt-top',count: 0, inview: 0},
703        {name: 'div-gpt-mob-sticky-header',count: 0, inview: 0}
704    ];
705
706    var refsource = '';
707
708    
709    if (document.referrer.match(/^https?:\/\/([^\/]+\.)?t\.co(\/|$)/i)) {
710        refsource = 'twitter';
711    } else if (document.referrer.match(/^https?:\/\/([^\/]+\.)?facebook\.com(\/|$)/i)) {
712        refsource = 'facebook';
713    }
714
715    window.googletag = window.googletag || {cmd: []};
716
717    var dfp_targets = new Object();
718    var dfp_mappings = new Object();
719    var dfp_placements = new Object();
720    var dfp_sequence = new Object();
721
722    if (refsource) {
723        dfp_targets.socref = refsource;
724    }
725
726    (function() {
727        var gads = document.createElement('script');
728        gads.async = true;
729        gads.type = 'text/javascript';
730        var useSSL = 'https:' == document.location.protocol;
731        gads.src = (useSSL ? 'https:' : 'http:') +
732            '//www.googletagservices.com/tag/js/gpt.js';
733        var node = document.getElementsByTagName('script')[0];
734        node.parentNode.insertBefore(gads, node);
735    })();
736
737    window.cmp_processed = true;
738    window.dfp_refresh_required = false;
739
740    googletag.cmd.push(function() {
741
742        googletag.pubads().setForceSafeFrame(false);
743
744        //top unit
745        dfp_mappings.mapTop = googletag.sizeMapping()
746            .addSize([970, 250], [[1, 1], [970, 250], [970, 90], [728, 90]])
747            .addSize([728, 90], [[1, 1], [728, 90]])
748            .addSize([0, 0], [[1, 1], [300, 250]])
749            .build();
750
751        // Home page MPU top right sidebar
752        dfp_mappings.mapRightSidebarTop = googletag.sizeMapping()
753            .addSize([0, 0], [[300, 250], [300, 600]])
754            .build();
755
756        // top of right column on almost all landing pages
757        dfp_mappings.mapRightSidebarMid = googletag.sizeMapping()
758            .addSize([728, 90], [[300, 250], [300, 600]])
759            .addSize([0, 0], [[300, 250]])
760            .build();
761
762        // e.g. 4th in a line of articles.
763        dfp_mappings.mapInIndex = googletag.sizeMapping()
764            .addSize([0, 0], [[300, 250], 'fluid'])
765            .build();
766
767        // A confusing case used only on videos page pagination
768        dfp_mappings.mapInIndexDesktop = googletag.sizeMapping()
769            .addSize([970, 90], [[970, 250], [970, 90], [728, 90]])
770            .addSize([728, 90], [728, 90])
771            .build();
772
773        // in article content mpus, possibly the only non-native space where we welcome fluid?
774        dfp_mappings.mapInContent = googletag.sizeMapping()
775            .addSize([1,1], [[300, 250], 'fluid'])
776            .build();
777
778        //interscroller only wants 1 size ever but should we disable it in larger resolutions?
779        dfp_mappings.mapInterscroller = googletag.sizeMapping()
780            .addSize([0, 0], [[768, 1230]])
781            .build();
782
783        // native river ads
784        dfp_mappings.mapNativeRiver = googletag.sizeMapping()
785            .addSize([768, 200], [[310, 289], 'fluid'])
786            .addSize([300, 250], [[300, 250], 'fluid'])
787            .addSize([0, 0], [[345, 309], 'fluid'])
788            .build();
789        // native rivers ads desktop, i think used when we need different css styles for two resolutions
790        dfp_mappings.mapNativeRiverDesktop = googletag.sizeMapping()
791            .addSize([0, 0], [[300, 250], 'fluid'])
792            .build();
793
794        //Removed from general pages but still in use in Where to Watch Mobile
795        dfp_mappings.mapMobileStickyBanner = googletag.sizeMapping()
796            .addSize([0, 0], [320, 50])
797            .build();
798
799        //Currently in test mode on trending and music only
800        dfp_mappings.mapMobileStickyHeader = googletag.sizeMapping()
801            .addSize([0, 0], [320, 50])
802            .build();
803
804        // now and next desktop. Two slots because the css is different?
805        dfp_mappings.mapNowNextNativeDesktop = googletag.sizeMapping()
806            .addSize([640, 108], ['fluid'])
807            .build();
808
809        // now and next native. Two slots because the css is different?
810        dfp_mappings.mapNowNextNativeMobile = googletag.sizeMapping()
811            .addSize([0, 0], ['fluid'])
812            .build();
813
814        // tv listings native. Two slots because the css is different?
815        dfp_mappings.mapTvNativeDesktop = googletag.sizeMapping()
816            .addSize([0, 0], ['fluid'])
817            .build();
818
819        // tv listings native desktop. Two slots because the css is different?
820        dfp_mappings.mapTvNativeMobile = googletag.sizeMapping()
821            .addSize([0, 0], ['fluid'])
822            .build();
823
824        // cinema listings native desktop. Two slots because the css is different?
825        dfp_mappings.mapCinemaListingsDesktop = googletag.sizeMapping()
826            .addSize([0, 0], ['fluid'])
827            .build();
828
829        // cinema listings native mobile. Two slots because the css is different?
830        dfp_mappings.mapCinemaListingsMobile = googletag.sizeMapping()
831            .addSize([0, 0], ['fluid'])
832            .build();
833
834        //used between cinemas and movies on cinema times pages. I think always MPU but maybe sometimes fluid?
835        dfp_mappings.mapCinemaTimes = googletag.sizeMapping()
836            .addSize([0, 0], [[300, 250], 'fluid'])
837            .build();
838
839        // desktop native ad for top of cinema page ("gold spot"?) not sure i ever saw this used
840        dfp_mappings.mapCinemaTimesTopDesktop = googletag.sizeMapping()
841            .addSize([0, 0], ['fluid'])
842            .build();
843        // mobile native ad for top of cinema page ("gold spot"?) not sure i ever saw this used
844        dfp_mappings.mapCinemaTimesTopMobile = googletag.sizeMapping()
845            .addSize([0, 0], ['fluid'])
846            .build();
847
848        // this seems to be the ad served in the fancybox when we click on "more info" in tv listings,
849        // now and next, etc. why is it called Christmas?!
850        // ***===>>> Because it was created to be used for christmas fancybox initially. I think :-)
851        // we can normalize it later
852        dfp_mappings.mapChristmasMobile = googletag.sizeMapping()
853            .addSize([0, 0], [[320, 50],'fluid'])
854            .build();
855
856        // A selection of Native ads for desktop
857        dfp_mappings.mapEventNativeListingDesktop = googletag.sizeMapping()
858            .addSize([640, 68], ['fluid'])
859            .build();
860        dfp_mappings.mapEventNativeListingMobile = googletag.sizeMapping()
861            .addSize([0, 0], ['fluid'])
862            .build();
863        dfp_mappings.mapEventNativeEvents_GoldspotDesktop = googletag.sizeMapping()
864            .addSize([640, 68], ['fluid'])
865            .build();
866        dfp_mappings.mapEventNativeEvents_GoldspotMobile = googletag.sizeMapping()
867            .addSize([1,1], ['fluid'])
868            .build();
869
870        // MPU shown in the Where to watch Movies and TV shows
871        dfp_mappings.mapMoviesMPU = googletag.sizeMapping()
872            .addSize([0, 0], [[300, 250]])
873            .build();
874
875        var dfpId = document.head.querySelector("[property=dfp]").content;
876        var dfpEiId = document.head.querySelector("[property=dfpei]").content;
877        var dfpSection = document.head.querySelector("[property=dfpSection]").content;
878
879        
880          
881                      dfp_placements.top = googletag.defineSlot(dfpId+'/'+dfpSection+'/'+dfpSection+'_Top', [1, 1], 'div-gpt-top')
882                .defineSizeMapping(dfp_mappings.mapTop)
883                .addService(googletag.pubads());
884          
885          dfp_placements.outStream = googletag.defineSlot(dfpId+'/Video/Video_OutStream', [1, 1], 'div-gpt-out-stream')
886                .addService(googletag.pubads());
887
888          dfp_placements.oop = googletag.defineOutOfPageSlot(dfpId+'/'+dfpSection+'/'+dfpSection+'_OutOfPage', 'div-gpt-oop')
889              .addService(googletag.pubads());
890
891          dfp_placements.interscroller = googletag.defineSlot(dfpId+'/'+dfpSection+'/'+dfpSection+'_Interscroller', [1, 1], 'div-gpt-isc')
892              .defineSizeMapping(dfp_mappings.mapInterscroller)
893              .addService(googletag.pubads());
894
895          if (document.body.clientWidth < 576) {
896                dfp_placements.mobileStickyHeader = googletag.defineSlot(dfpEiId+'/ei_mobile_banner_'+dfpSection, [1, 1], 'div-gpt-mob-sticky-header')
897                    .defineSizeMapping(dfp_mappings.mapMobileStickyHeader)
898                    .addService(googletag.pubads());
899          }
900
901        
902                                                        dfp_targets.kvpagetype = 'index';
903                                                                dfp_targets.kvcategory = 'content';
904                                                                dfp_targets.kvurl = 'content/apps';
905                                                
906        dfp_targets.consent_string = consentManager.getConsentString();
907
908        for (var key in dfp_targets) {
909            if (dfp_targets.hasOwnProperty(key)) {
910                googletag.pubads().setTargeting(key, dfp_targets[key]);
911            }
912        }
913
914        if (!consentManager.hasBeenProcessed() && consentManager.isEligible()) {
915            googletag.pubads().disableInitialLoad();
916            window.cmp_processed = false;
917            window.dfp_refresh_required = true;
918        }
919
920        googletag.pubads().enableSingleRequest();
921        googletag.pubads().setPrivacySettings({nonPersonalizedAds: consentManager.isServingNonPersonalisedAds()});
922        googletag.pubads().collapseEmptyDivs();
923
924        googletag.pubads().addEventListener('slotRenderEnded', function(event) {renderCallback(event);});
925        googletag.pubads().addEventListener('impressionViewable', function(event) {viewAbilityCallback(event);});
926        googletag.pubads().addEventListener('slotVisibilityChanged', function(event) {visibilityCallback(event);});
927
928        googletag.enableServices();
929
930        if (document.body.clientWidth < 576) {
931                googletag.display("div-gpt-mob-sticky-header");
932        }
933
934        var visibilityCallback = function(event) {
935            var slot = event.slot;
936            var slotName = slot.getSlotElementId();
937            var unitIdx = slotsRefresh.findIndex(e => slotName.indexOf(e.name) !== -1);
938            if (unitIdx !== -1) {
939                slotsRefresh[unitIdx].inview = event.inViewPercentage;
940                // console.group('Slot Visibility', slot.getSlotElementId(), 'changed.');
941                // console.log('Visible area:', event.inViewPercentage + '%');
942                // console.groupEnd();
943            }
944        }
945
946        var renderCallback = function(event) {
947            if (dfp_placements.top == event.slot) {
948                setTimeout(function(){
949                    if ($('html, body').hasClass('scroll-lock')) {
950                        $('body,html').removeClass('scroll-lock');
951                    }
952                }, 1000);
953            }
954
955            if (dfp_placements.interscroller == event.slot) {
956                if (event.isEmpty) {
957                    // console.log('ISC callback');
958                    if ($("#interscroller-ad" ).length) {
959                        // console.log('Hiding Interscroller');
960                        $('#interscroller-ad').addClass('d-none');
961                    }
962                }else{
963                    // I can see an Interscroller, lets hide first InContent
964                    // and update iframe style a little
965                    setTimeout(function() {
966                        $('#ad-in-content').first().addClass('d-none');
967                        $("#interscroller-ad iframe").css("width", "100%");
968                        $("#interscroller-ad iframe", function(){
969                            $("#interscroller-ad iframe").contents().find("head")
970                                .append($("<style type='text/css'> img{width:100% !important; height: auto !important;}  </style>"));
971                        });
972                    }, 1000);
973                }
974            }
975
976        }
977
978        var viewAbilityCallback = function(event) {
979            var slotView = event.slot;
980            var slotName = slotView.getSlotElementId();
981            var refreshSeconds = (slotName == 'div-gpt-mob-sticky-header' ? 5000 : 10000);
982
983            var unitIdx = slotsRefresh.findIndex(e => slotName.indexOf(e.name) !== -1);
984            if (unitIdx !== -1) {
985                if (slotsRefresh[unitIdx].count === 0) {
986                // console.log('==*** The ' + slotName + ' slot returned as displayed.');
987                slotsRefresh[unitIdx].count++;
988                // console.log('==*** Refreshing ' + slotName + ' in '+ refreshSeconds.toString() +' seconds');
989
990                setTimeout(function() {
991                    if (slotsRefresh[unitIdx].inview >= 50 ) {
992
993                        googletag.pubads().refresh([slotView]);
994                        $('#div-sticky').addClass('active');
995                        // console.log('==*** '+slotName+' has ' +slotsRefresh[unitIdx].inview+ '%');
996                        // console.log('==*** Refreshed '+slotName+' ' +slotsRefresh[unitIdx].count+ ' time');
997                    }
998                }, refreshSeconds);
999                }
1000            }
1001        }
1002
1003    });
1004
1005    /**
1006     * Handle oop-triggered js
1007     */
1008    function setBackground(data)
1009    {
1010      if ($(window).width() > 1280) {
1011
1012        if ($('#skin-wrapper').length){
1013          var adContainer = document.getElementById('skin-wrapper');
1014
1015          var linkLayer = document.createElement('a');
1016              linkLayer.setAttribute('id', 'skin-dfp');
1017              linkLayer.setAttribute('href', data.click_tracker);
1018              linkLayer.setAttribute('target', '_blank');
1019              linkLayer.classList.add('active');
1020          adContainer.appendChild(linkLayer);
1021
1022          var backgroundDiv = document.createElement('div');
1023              backgroundDiv.setAttribute('id', 'div-gpt-background_skin');
1024          linkLayer.appendChild(backgroundDiv);
1025
1026          var skin_img = document.createElement('img');
1027              skin_img.setAttribute('src', data.background_url);
1028              skin_img.setAttribute('id', 'SkinImage');
1029          backgroundDiv.appendChild(skin_img);
1030
1031          if (data.impressionTracker.length) {
1032              var impresion_DFP = document.createElement('img');
1033                  impresion_DFP.setAttribute('src', data.impressionTracker);
1034                  impresion_DFP.setAttribute('id', 'ImpressionTracker');
1035                  impresion_DFP.style.position = 'absolute';
1036                  impresion_DFP.style.bottom = 0;
1037              backgroundDiv.appendChild(impresion_DFP);
1038          }
1039
1040          if (data.thirdPartyImpressionTracker.length) {
1041              var impresion_thirdParty = document.createElement('img');
1042                  impresion_thirdParty.setAttribute('src', data.thirdPartyImpressionTracker);
1043                  impresion_thirdParty.setAttribute('id', 'ThirdPartyImpressionTracker');
1044                  impresion_thirdParty.style.position = 'absolute';
1045                  impresion_thirdParty.style.bottom = 0;
1046              backgroundDiv.appendChild(impresion_thirdParty);
1047          }
1048
1049          // Stick skin under nav
1050          var bottomBar = document.getElementsByClassName('bottom-bar')[0].getBoundingClientRect();
1051          adContainer.style.top = bottomBar.top + bottomBar.height+'px';
1052
1053        }
1054
1055      }
1056
1057    }
1058
1059</script>
1059
1060                        <link rel="stylesheet" href="/css/app.css?id=45b0dfbb129e7383f809">
1061          
1062          
1063          
1064
1065          
1066          
1067          
1068          
1068<script async='async' src='https://functions.adnami.io/api/macro/adsm.macro.entertainment.ie.js'></script>
1068
1069
1070          
1071                        <!-- Data Layer -->
1072<script>
1073	dataLayer=[];
1074	dataLayer.push({
1075		"authorName": "Entertainment.ie",
1076		"pageTitle": "Entertainment.ie : Cinema, TV, Listings, Celebrity Gossip, Photos, Clubbing, Theatre, Reviews, Trailers, Lotto"
1077	});
1078</script>
1078
1079<!-- End Data Layer -->
1080<!-- Google Tag Manager -->
1081<script>
vendor: 327 bytes, lines 1081-1085
1081(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
1082new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
1083j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
1084'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
1085})(window,document,'script','dataLayer','
1085GTM-W889X7M
vendor: 3 bytes, line 1085
1085');
1085</script>
1085
1086<!-- End Google Tag Manager -->
1087          
1088      </head>
1089              <body class="scroll-lock">
1090                              <!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 1090-1091
1090
1091<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
1091GTM-W889X7M
vendor: 83 bytes, lines 1091-1092
1091"
1092height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1093<!-- End Google Tag Manager (noscript) -->                    
1093<script>
1094
1095    window.fbAsyncInit = function() {
1096    FB.init({
1097      appId            : 2788711801154650,
1098      autoLogAppEvents : true,
1099      xfbml            : true,
1100      version          : 'v3.1'
1101    });
1102
1103      };
1104  if (consentManager.isAllowed('facebook')) {
1105    (function(d, s, id){
1106       var js, fjs = d.getElementsByTagName(s)[0];
1107       if (d.getElementById(id)) {return;}
1108       js = d.createElement(s); js.id = id;
1109       js.src = "https://connect.facebook.net/en_US/sdk.js";
1110       fjs.parentNode.insertBefore(js, fjs);
1111     }(document, 'script', 'facebook-jssdk'));
1112  }
1113</script>
1113
1114          <div id="wrapper">
1115              <header id="header" class="" itemscope="itemscope" itemtype="https://schema.org/WPHeader">
1116    <div class="top-bar">
1117        <div class="nav-opener"><a class="opener" href="#"></a></div>
1118        <div class="container">
1119          <strong class="logo"><a href="https://entertainment.ie/"><img src="https://entertainment.ie/images/entertainment-ie-logo2x.png" alt="Entertainment.ie" width="266" height="30"></a></strong>
1120
1121            <div class="header-holder">
1122                <a href="/on-demand/watchlist/" class="my-watchlist my-watchlist d-none d-md-inline-flex">My Watchlist</a>
1123                <user-name></user-name>
1124            </div>
1125        </div>
1126    </div>
1127    <nav id="account-nav">
1128      <btn-login class="btn-login"></btn-login>
1129    </nav>
1130    <div class="wrap-div">
1131        <div class="middle-bar">
1132            <div class="container">
1133              <strong class="logo-icon d-none d-md-block"><a href="https://entertainment.ie/"><img src="https://entertainment.ie/images/entertainment-logo-icon2x.png" alt="Entertainment.ie"></a></strong>
1134
1135                <nav id="nav" role="navigation" itemscope="itemscope" itemtype="https://schema.org/SiteNavigationElement">
1136    <ul class="nav-bar">
1137        <li>
1138            <a class="" href="https://entertainment.ie/">Home</a>
1139        </li>
1140
1141        <li>
1142            <a class="" href="https://entertainment.ie/tv/">TV</a>
1143            <ul class="seconde-level tv-subnav">
1144                <li class=""><a href="https://entertainment.ie/tv/">TV Home</a></li>
1145                <li class="">
1146                    <a href="https://entertainment.ie/tv/all-channels/all-types/page/1/">TV Listings
1147                    </a>
1148                </li>
1149                <li class="filter-channels-link "><a href="https://entertainment.ie/tv/whats-on-now/">Now &amp; Next</a></li>
1150                <li class=""><a href="https://entertainment.ie/tv/tonight/">Tonight's TV</a></li>
1151                <li class=""><a href="https://entertainment.ie/tv/todays-tv-highlights/">TV Highlights</a></li>
1152                <li class="filter-channels-link "><a href="https://entertainment.ie/tv/soap-watch/">Soaps <span class="desk-hidden">Watch</span></a></li>
1153                <li class="filter-channels-link "><a href="https://entertainment.ie/tv/sports/">Sports on TV</a></li>
1154                <li class="filter-channels-link "><a href="https://entertainment.ie/tv/movies/">Movies on TV</a></li>
1155            </ul>
1156        </li>
1157
1158        <li>
1159            <a class="" href="https://entertainment.ie/cinema/">Cinema Tickets</a>
1160            <ul class="seconde-level">
1161                <li class=""><a href="https://entertainment.ie/cinema/">Cinema Home</a></li>
1162                <li class=" cinema-listing-link"><a href="https://entertainment.ie/cinema/cinema-listings/">Cinema Listings</a></li>
1163                <li class=""><a href="https://entertainment.ie/movies/coming-soon/">Coming Soon</a></li>
1164                <li class=""><a href="https://entertainment.ie/videos/">Trailers</a></li>
1165            </ul>
1166        </li>
1167
1168
1169        <li>
1170            <a class="" href="https://entertainment.ie/on-demand/where-to-watch/">On Demand</a>
1171            <ul class="seconde-level">
1172                <li class=""><a href="https://entertainment.ie/on-demand/where-to-watch/">Where to Watch</a></li>
1173                <li class=""><a href="https://entertainment.ie/on-demand/watchlist/">My Watchlist</a></li>
1174                <li class=""><a href="https://entertainment.ie/on-demand/recommended/">Recommended</a></li>
1175            </ul>
1176        </li>
1177
1178
1179        <li>
1180            <a class="" href="https://entertainment.ie/movies/">Movies</a>
1181            <ul class="seconde-level">
1182                <li class=""><a href="https://entertainment.ie/movies/">Movies Home</a></li>
1183                <li class=""><a href="https://entertainment.ie/on-demand/where-to-watch/">Where to Watch</a></li>
1184                <li class=" cinema-listing-link"><a href="https://entertainment.ie/cinema/cinema-listings/">Cinema Listings</a></li>
1185                <li class="filter-channels-link "><a href="https://entertainment.ie/tv/movies/">Movies on TV</a></li>
1186                <li class=""><a href="https://entertainment.ie/videos/">Trailers</a></li>
1187                <li class=""><a href="https://entertainment.ie/movies/coming-soon/">Coming Soon</a></li>
1188
1189            </ul>
1190        </li>
1191
1192        <li>
1193            <a class="" href="https://entertainment.ie/videos/"><span><em>New:</em></span> Trailers</a>
1194        </li>
1195
1196
1197        <li>
1198            <a class="" href="https://entertainment.ie/events/">Events</a>
1199            <ul class="seconde-level">
1200                <li class=""><a href="https://entertainment.ie/events/">
1200Events Home</a></li>
1201                <li class="">
1202                    <a href="https://entertainment.ie/events/listing/all/dublin/all/">Events Listings
1203                    </a>
1204                </li>
1205                <li class=""><a href="https://entertainment.ie/events/submit-listing/">Submit a Listing</a></li>
1206            </ul>
1207        </li>
1208
1209
1210
1211        <li class="dropdown">
1212            <a class="active" href="#">More <span class="caret show-on-tablet-and-desktop"></span></a>
1213            <ul class="seconde-level more-menu">
1214              <li><a href="https://entertainment.ie/competitions/">Competitions</a></li>
1215              <li><a href="/quizzes">Quizzes</a></li>
1216              <li><a href="https://entertainment.ie/movies/movie-reviews/">Movie Reviews</a></li>
1217              <li><a href="https://entertainment.ie/tv/tv-news/">TV News</a></li>
1218              <li><a href="https://entertainment.ie/movies/movie-news/">Movie News</a></li>
1219              <li><a href="https://entertainment.ie/music/">Music</a></li>
1220              <li><a href="https://entertainment.ie/trending/">Trending</a></li>
1221              <li><a href="https://entertainment.ie/videos/interviews/">Interviews</a></li>
1222              <li><a href="https://entertainment.ie/gaming/">Gaming</a></li>
1223              <li><a href="https://entertainment.ie/on-demand/">On Demand News</a></li>
1224              <li><a href="https://entertainment.ie/event-news/">Event News</a></li>
1225              <li><a href="https://entertainment.ie/photos/">Photos</a></li>
1226              <li><a href="https://entertainment.ie/podcasts/">Podcasts</a></li>
1227            </ul>
1228        </li>
1229
1230
1231        <li class="dropdown">
1232            <a class="active" href="#">Info <span class="caret show-on-tablet-and-desktop"></span></a>
1233            <ul class="seconde-level more-menu">
1234
1235                <li class=" show-on-tablet-and-desktop">
1236                    <a class="auth-link" href="https://entertainment.ie/my-account/sign-in/">My Account</a>
1237                </li>
1238                <li class="active">
1239                    <a href="https://entertainment.ie/content/apps/">Apps</a>
1240                </li>
1241                <li class="">
1242                    <a href="https://entertainment.ie/content/contact-us/">Contact Us</a>
1243                </li>
1244                <li class="">
1245                    <a href="https://entertainment.ie/content/general-terms/">Terms &amp; Conditions</a>
1246                </li>
1247                <li class="">
1248                    <a href="https://entertainment.ie/content/privacy/">Privacy Policy</a>
1249                </li>
1250                <li class="">
1251                    <a href="https://entertainment.ie/content/cookies/">Cookies Policy</a>
1252                </li>
1253            </ul>
1254        </li>
1255
1256        <li class="show-only-on-mobile">
1257            <a class="" href="https://entertainment.ie/my-account/sign-in/">My Account</a>
1258        </li>
1259
1260
1261    </ul>
1262</nav>
1263                <a class="search-opener" href="#">
1264                  <svg class="icon">
1265                    <use xlink:href="#search"></use>
1266                  </svg>
1267                </a>
1268                <form method="POST" class="search-form" action="/search">
1269                    <input required type="search" name="q" value="" class="form-control" placeholder="Search">
1270                    <button class="btn-search" type="submit">
1271                      <svg class="icon">
1272                        <use xlink:href="#search"></use>
1273                      </svg>
1274
1275                      <span class="d-none">Search</span>
1276                    </button>
1277                </form>
1278            </div>
1279
1280        </div>
1281
1282        <div class="bottom-bar">
1283   <div class="container">
1284      <div class="slide-nav">
1285         <div>
1286            <a class="auth-link page-link "
1287               href="https://entertainment.ie/my-account/sign-in/">My Account</a>
1288         </div>
1289         <div><a class="page-link active"
1290            href="https://entertainment.ie/content/apps/">Apps</a></div>
1291         <div><a class="page-link "
1292            href="https://entertainment.ie/content/contact-us/">Contact Us</a></div>
1293         <div><a class="page-link "
1294            href="https://entertainment.ie/content/general-terms/">Terms &amp; Conditions</a></div>
1295         <div><a class="page-link "
1296            href="https://entertainment.ie/content/privacy/">Privacy Policy</a></div>
1297         <div><a class="page-link "
1298            href="https://entertainment.ie/content/cookies/">Cookies Policy</a></div>
1299         <svg class="icon">
1300            <use xlink:href="#arrow-right"></use>
1301         </svg>
1302      </div>
1303   </div>
1304</div>
1305
1306    </div>
1307
1308    </header>
1309
1310              
1311
1312              
1313              
1314              <main id="main">
1315                  <div class="main-holder">
1316
1317
1318
1319                          
1320                      
1321
1322                      
1323                        <div class="container">
1324                                <div class="river-block">
1325        <div class="row">
1326            <div class="article-frame col-md-12 app-store">
1327                <h1>Apps from entertainment.ie</h1>
1328
1329                <div class="row">
1330                  <div class="col-6 col-md-3 text-center mb-4">
1331                    <figure>
1332                      <img src="https://entertainment.ie/images/app/tv-app-listings.jpg" alt="iPhone image" class="app-image">
1333                    </figure>
1334                  </div>
1335                  <div class="col-6 col-md-3 text-center mb-4">
1336                    <figure>
1337                      <img src="https://entertainment.ie/images/app/tv-app-review.jpg" alt="iPhone image" class="app-image">
1338                    </figure>
1339                  </div>
1340                  <div class="col-md-6 col-sm-6 mb-4">
1341                    <h2>TV Guide Ireland</h2>
1342
1343                    <p>
1343Brand new release of Ireland's ultimate and essential FREE TV companion.</p>
1344                    <ul>
1345                    <li>7 Day TV channel listings guide with full programme details, descriptions and reminders so you don't miss your favourite shows.</li>
1346                    <li>TV & On Demand highlights & recommendations for the month ahead, including Netflix, Apple TV, Disney+, Amazon Prime, NOWTV, Google Play, Sky and Virgin OD.</li>
1347                    <li>Reviews and news of all the latest and greatest TV shows.</li>
1348                    <li>Over 100 of the most popular TV channels including RTE, TG4, Sky, Virgin Media, BBC, Channel 4, ITV, and all the rest...</li>
1349                    <li>Genre Search (search for Sport, Movies, Drama and more)</li>
1350                    <li>Customise your own favourite channels to appear in the TV listings, and get reminders so you won't miss your favourite shows.</li>
1351                    </ul>
1352
1353                    <div class="row">
1354                      <a href="https://itunes.apple.com/ie/app/tv-guide-ireland/id462753256?ls=1&amp;mt=8" class="store-button"><svg class="icon"><use xlink:href="#apple"></use></svg> Download for iPhone</a>
1355                      <a href="https://play.google.com/store/apps/details?id=ie.entertainment.tvguide" class="store-button"><svg class="icon"><use xlink:href="#android"></use></svg> Download for Android</a>
1356                    </div>
1357                  </div>
1358                </div>
1359
1360                <div class="row mt-4">
1361                  <div class="col-6 col-md-3 text-center mb-4">
1362                    <figure>
1363                      <img src="https://entertainment.ie/images/app/cinema-app-cinemas.jpg" alt="iPhone image" class="app-image">
1364                    </figure>
1365                  </div>
1366                  <div class="col-6 col-md-3 text-center mb-4">
1367                    <figure>
1368                      <img src="https://entertainment.ie/images/app/cinema-app-cinema.jpg" alt="iPhone image" class="app-image">
1369                    </figure>
1370                  </div>
1371                  <div class="col-md-6 col-sm-6 mb-4">
1372                    <h2>Cinema Guide Ireland</h2>
1373                    <p>Cinema listings, movie reviews, movie trailers, movie news and loads more that keeps you bang up to date. The most stimulating reviews and news written by the best entertainment.ie critics.</p>
1374                    <ul>
1375                      <li>Cinema listings - 7 days in advance</li>
1376                      <li>Every Cinema screen in Ireland</li>
1377                      <li>Movie news and reviews updated daily</li>
1378                    </ul>
1379                    <p>Cinema listings in Dublin, Cork, Galway, Limerick, Carlow, Cavan, Clare, Donegal, Kildare, Kilkenny, Kerry, Laois, Leitrim, Limerick, Longford, Louth, Mayo, Meath, Monaghan, Offaly, Roscommon, Sligo, Tipperary, Waterford, Wexford, Westmeath, Wicklow, Antrim, Armagh, Fermanagh, Tyrone, Down, Derry.</p>
1380
1381
1382                    <div class="row">
1383                      <a href="https://itunes.apple.com/ie/app/cinema-guide-ireland/id399770408?mt=8" class="store-button"><svg class="icon"><use xlink:href="#apple"></use></svg> Download for iPhone</a>
1384                      <a href="https://play.google.com/store/apps/details?id=net.fusio.cinemaguide" class="store-button"><svg class="icon"><use xlink:href="#android"></use></svg> Download for Android</a>
1385                    </div>
1386                  </div>
1387                </div>
1388
1389            </div>
1390        </div>
1391    </div>
1392
1393    
1394                        </div>
1395                      
1396
1397                  </div>
1398              </main>
1399                      <footer id="footer">
1400    <div class="container">
1401        <div class="footer-holder">
1402            <strong class="footer-logo"><a href="https://entertainment.ie/"><img data-src="https://entertainment.ie/images/footer-logo2x.png" alt="Entertainment.ie" width="228" height="26" class="lazyload"></a></strong>
1403            <p>&copy; 2026 Entertainment Media Networks Ltd</p>
1404            <p>Partners: <a href="https://www.beaut.ie/">
1404beaut.ie</a>&nbsp;| &nbsp;<a href="https://www.thesportschronicle.com/">thesportschronicle.com</a> | <a href="https://www.familyfriendlyhq.ie">familyfriendlyhq.ie</a> </p>
1405        </div>
1406        <div class="links-block">
1407            <div class="links-holder">
1408                <div class="links-col">
1409                    <h5><a href="https://entertainment.ie/tv/">TV</a></h5>
1410                    <ul class="nav-links">
1411                        <li>
1412                            <a href="https://entertainment.ie/tv/all-channels/all-types/page/1/">TV Listings
1413                            </a>
1414                        </li>
1415                        <li><a href="https://entertainment.ie/tv/whats-on-now/">Now &amp; Next</a></li>
1416                        <li><a href="https://entertainment.ie/tv/todays-tv-highlights/">TV Highlights</a></li>
1417                        <li><a href="https://entertainment.ie/tv/soap-watch/">Soaps <span class="desk-hidden">Watch</span></a></li>
1418                        <li><a href="https://entertainment.ie/tv/sports/">Sports on TV</a></li>
1419                        <li><a href="https://entertainment.ie/tv/movies/">Movies on TV</a></li>
1420                        <li><a href="https://entertainment.ie/tv/tonight/">Tonight's TV</a></li>
1421                    </ul>
1422                </div>
1423                <div class="links-col">
1424                    <h5><a href="https://entertainment.ie/cinema/">Cinema</a></h5>
1425                    <ul class="nav-links">
1426                        <li>
1427                            <a href="https://entertainment.ie/cinema/cinema-listings/">Cinema Listings
1428                            </a>
1429                        </li>
1430                        <li>
1431                            <a href="https://entertainment.ie/cinema/cinema-listings/dublin/">Dublin Cinema Listings
1432                            </a>
1433                        </li>
1434                        <li>
1435                            <a href="https://entertainment.ie/cinema/cinema-listings/cork/">Cork Cinema Listings
1436                            </a>
1437                        </li>
1438                        <li>
1439                            <a href="https://entertainment.ie/cinema/cinema-listings/galway/">Galway Cinema Listings
1440                            </a>
1441                        </li>
1442                        <li>
1443                            <a href="https://entertainment.ie/cinema/cinema-listings/limerick/">Limerick Cinema Listings
1444                            </a>
1445                        </li>
1446                        <li>
1447                            <a href="https://entertainment.ie/cinema/cinema-listings/antrim/">Belfast Cinema Listings
1448                            </a>
1449                        </li>
1450                        <li>
1451                            <a href="https://entertainment.ie/cinema/cinema-listings/waterford/">Waterford Cinema Listings
1452                            </a>
1453                        </li>
1454                        <li>
1455                            <a href="https://entertainment.ie/cinema/cinema-listings/kildare/">Kildare Cinema Listings
1456                            </a>
1457                        </li>
1458                        <li>
1459                            <a href="https://entertainment.ie/cinema/cinema-listings/louth/">Louth Cinema Listings
1460                            </a>
1461                        </li>
1462                        <li>
1463                            <a href="https://entertainment.ie/cinema/cinema-listings/wexford/">Wexford Cinema Listings
1464                            </a>
1465                        </li>
1466                        <li>
1467                            <a href="https://entertainment.ie/cinema/cinema-listings/kilkenny/">Kilkenny Cinema Listings
1468                            </a>
1469                        </li>
1470
1471                    </ul>
1472
1473
1474
1475                </div>
1476                <div class="links-col">
1477
1478                  <h5><a href="https://entertainment.ie/on-demand/where-to-watch/">On Demand</a></h5>
1479                  <ul class="nav-links">
1480                    <li><a href="https://entertainment.ie/on-demand/where-to-watch/">Where to Watch</a></li>
1481                    <li><a href="https://entertainment.ie/on-demand/watchlist/">My Watchlist</a></li>
1482                    <li><a href="https://entertainment.ie/on-demand/recommended/">Recommended</a></li>
1483                  </ul>
1484
1485                  <h5><a href="https://entertainment.ie/movies/">Movies</a></h5>
1486                  <ul class="nav-links">
1487                      <li><a href="https://entertainment.ie/videos/">Trailers</a></li>
1488                      <li><a href="https://entertainment.ie/movies/coming-soon/">Coming Soon</a></li>
1489                  </ul>
1490
1491
1492
1493                </div>
1494
1495
1496                <div class="links-col">
1497
1498
1499                  <h5><a href="https://entertainment.ie/events/">Events</a></h5>
1500                  <ul class="nav-links">
1501                    <li>
1502                        <a href="https://entertainment.ie/events/listing/all/dublin/all/">Events Listings
1503                        </a>
1504                    </li>
1505                    <li><a href="https://entertainment.ie/events/submit-listing/">Submit a Listing</a></li>
1506                  </ul>
1507
1508
1509                    <h5><a href="https://entertainment.ie/competitions/">Competitions</a></h5>
1510                    <h5><a href="https://entertainment.ie/videos/">Videos</a></h5>
1511
1512
1513
1514                </div>
1515
1516
1517
1518            </div>
1519
1520            <div class="social-area">
1521                <div class="nav-links icons-holder">
1522                    <h5><a href="https://entertainment.ie/content/apps/"><strong>Mobile Apps</strong></a></h5>
1523                    <ul class="ml-0 social-icons">
1524                      <li><a href="https://entertainment.ie/content/apps/" rel="noopener"><figure><img data-src="https://entertainment.ie/images/tv-app.webp" alt="TV Guide Ireland" width="35" height="35" class="lazyload"></figure></a></li>
1525                    </ul>
1526                </div>
1527
1528                            </div>
1529
1530        </div>
1531        <div class="nav-holder">
1532            <h5 class="d-md-none">other info</h5>
1533            <ul class="footer-nav">
1534                <li><a href="https://entertainment.ie/my-account/sign-in/">My Account</a></li>
1535                <li><a href="https://entertainment.ie/content/contact-us/">Contact Us</a></li>
1536                <li><a href="https://entertainment.ie/content/general-terms/">Terms &amp; Conditions</a></li>
1537                <li><a href="https://entertainment.ie/content/privacy/">Privacy Policy</a></li>
1538                <li><a href="https://entertainment.ie/content/cookies/">Cookie Policy</a></li>
1539                <li><a href="https://entertainment.ie/site-directory/">Site directory</a></li>
1540            </ul>
1541        </div>
1542
1543
1544    </div>
1545</footer>
1546                  
1547              <login-modal></login-modal>
1548              <forgot-modal></forgot-modal>
1549
1550          </div>
1551
1552          
1553          
1553<script src="/js/core.js?id=3ed7f76978ee8a31f2d7" defer></script>
1553
1554
1555                    
1556        
1557      
1558
1559      <svg width="0" height="0" class="hidden">
1560      <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 32" id="android">
1561      <title>android</title>
1562      <path d="M7.467 17.042v9.65c0 1.283-1.008 2.308-2.292 2.308-1.275 0-2.508-1.033-2.508-2.308v-9.65c0-1.258 1.233-2.292 2.508-2.292 1.258 0 2.292 1.033 2.292 2.292zM8.367 30.125c0 1.367 1.1 2.467 2.467 2.467h1.658l0.025 5.092c0 3.075 4.6 3.050 4.6 0v-5.092h3.1v5.092c0 3.058 4.625 3.067 4.625 0v-5.092h1.683c1.35 0 2.45-1.1 2.45-2.467v-14.95h-20.608v14.95zM29.033 14.367h-20.758c0-3.567 2.133-6.667 5.3-8.283l-1.592-2.942c-0.233-0.408 0.358-0.667 0.558-0.317l1.617 2.967c2.908-1.292 6.25-1.225 9.025 0l1.608-2.958c0.208-0.358 0.792-0.092 0.558 0.317l-1.592 2.933c3.142 1.617 5.275 4.717 5.275 8.283zM14.808 9.742c0-0.475-0.383-0.875-0.875-0.875-0.475 0-0.85 0.4-0.85 0.875s0.383 0.875 0.85 0.875c0.492 0 0.875-0.4 0.875-0.875zM24.258 9.742c0-0.475-0.383-0.875-0.85-0.875-0.492 0-0.875 0.4-0.875 0.875s0.383 0.875 0.875 0.875c0.467 0 0.85-0.4 0.85-0.875zM32.158 14.75c-1.258 0-2.292 1.008-2.292 2.292v9.65c0 1.283 1.033 2.308 2.292 2.308 1.283 0 2.508-1.033 2.508-2.308v-9.65c0-1.283-1.233-2.292-2.508-2.292z"></path>
1563    </symbol>
1564    <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 31 32" id="apple">
1565      <title>apple</title>
1566      <path d="M26.225 22.392c-0.017-3.058 1.367-5.367 4.167-7.067-1.567-2.242-3.933-3.475-7.058-3.717-2.958-0.233-6.192 1.725-7.375 1.725-1.25 0-4.117-1.642-6.367-1.642-4.65 0.075-9.592 3.708-9.592 11.1 0 2.183 0.4 4.442 1.2 6.767 1.067 3.058 4.917 10.558 8.933 10.433 2.1-0.050 3.583-1.492 6.317-1.492 2.65 0 4.025 1.492 6.367 1.492 4.050-0.058 7.533-6.875 8.55-9.942-5.433-2.558-5.142-7.5-5.142-7.658zM21.508 8.708c2.275-2.7 2.067-5.158 2-6.042-2.008 0.117-4.333 1.367-5.658 2.908-1.458 1.65-2.317 3.692-2.133 5.992 2.175 0.167 4.158-0.95 5.792-2.858z"></path>
1567    </symbol>
1568
1569  
1570  
1571  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 29 32" id="thumbs-down">
1572    <title>thumbs-down</title>
1573    <path d="M4.571 10.286c0 0.625-0.518 1.143-1.143 1.143-0.643 0-1.143-0.518-1.143-1.143 0-0.643 0.5-1.143 1.143-1.143 0.625 0 1.143 0.5 1.143 1.143zM7.429 19.429v-11.429c0-0.625-0.518-1.143-1.143-1.143h-5.143c-0.625 0-1.143 0.518-1.143 1.143v11.429c0 0.625 0.518 1.143 1.143 1.143h5.143c0.625 0 1.143-0.518 1.143-1.143zM27.589 16.768c0.607 0.679 0.982 1.714 0.982 2.661-0.018 1.857-1.571 3.429-3.429 3.429h-4.946c0.143 0.571 0.321 0.75 0.518 1.143 0.464 0.929 1 1.964 1 3.429 0 1.375 0 4.571-4 4.571-0.304 0-0.589-0.125-0.804-0.339-0.768-0.75-0.982-1.857-1.179-2.911-0.214-1.036-0.411-2.107-1.107-2.804-0.554-0.554-1.161-1.321-1.804-2.143-0.786-1.036-2.5-3.161-3.161-3.214-0.589-0.054-1.089-0.554-1.089-1.143v-11.446c0-0.625 0.536-1.125 1.143-1.143 0.625-0.018 1.696-0.393 2.821-0.786 1.929-0.661 4.339-1.5 6.893-1.5h2.304c1.571 0.018 2.75 0.482 3.518 1.393 0.679 0.804 0.982 1.893 0.875 3.232 0.446 0.429 0.786 1.018 0.964 1.679 0.196 0.714 0.196 1.429 0 2.089 0.536 0.714 0.804 1.554 0.768 2.446 0 0.25-0.071 0.786-0.268 1.357z"></path>
1574  </symbol>
1575  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 29 32" id="thumbs-up">
1576    <title>thumbs-up</title>
1577    <path d="M4.571 24c0-0.625-0.518-1.143-1.143-1.143-0.643 0-1.143 0.518-1.143 1.143 0 0.643 0.5 1.143 1.143 1.143 0.625 0 1.143-0.5 1.143-1.143zM7.429 14.857v11.429c0 0.625-0.518 1.143-1.143 1.143h-5.143c-0.625 0-1.143-0.518-1.143-1.143v-11.429c0-0.625 0.518-1.143 1.143-1.143h5.143c0.625 0 1.143 0.518 1.143 1.143zM28.571 14.857c0 0.946-0.375 1.964-0.982 2.661 0.196 0.571 0.268 1.107 0.268 1.357 0.036 0.893-0.232 1.732-0.768 2.446 0.196 0.661 0.196 1.375 0 2.089-0.179 0.661-0.518 1.25-0.964 1.679 0.107 1.339-0.196 2.429-0.875 3.232-0.768 0.911-1.946 1.375-3.518 1.393h-2.304c-2.554 0-4.964-0.839-6.893-1.5-1.125-0.393-2.196-0.768-2.821-0.786-0.607-0.018-1.143-0.518-1.143-1.143v-11.446c0-0.589 0.5-1.089 1.089-1.143 0.661-0.054 2.375-2.179 3.161-3.214 0.643-0.821 1.25-1.589 1.804-2.143 0.696-0.696 0.893-1.768 1.107-2.804 0.196-1.054 0.411-2.161 1.179-2.911 0.214-0.214 0.5-0.339 0.804-0.339 4 0 4 3.196 4 4.571 0 1.464-0.518 2.5-1 3.429-0.196 0.393-0.375 0.571-0.518 1.143h4.946c1.857 0 3.429 1.571 3.429 3.429z"></path>
1578  </symbol>
1579
1580
1581
1582
1583  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 32" id="arrow-right">
1584    <title>arrow-right</title>
1585    <path d="M15.955 16.572l0.046 0.050-0.847 0.818-13.429 14.561-1.725-1.668 12.685-13.76-12.685-13.76 1.725-1.668 13.429 14.561 0.845 0.818z"></path>
1586  </symbol>
1587  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19 32" id="arrow-left">
1588    <title>arrow-left</title>
1589    <path d="M0.813 16.657l-0.047-0.039 0.869-0.763 13.944-13.721 1.789 1.57-0.842 0.83-12.325 12.126 13.167 12.952-1.789 1.57-0.842-0.832-13.11-12.889-0.861-0.755z"></path>
1590  </symbol>
1591
1592  
1593  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" id="eye">
1594    <title>eye</title>
1595    <path d="M47.446 19.303c-4.699-7.973-13.462-13.303-23.446-13.303-9.988 0-18.75 5.333-23.446 13.303-0.348 0.581-0.554 1.282-0.554 2.031s0.206 1.45 0.564 2.049l-0.010-0.018c4.699 7.973 13.462 13.302 23.446 13.302 9.988 0 18.75-5.333 23.446-13.303 0.348-0.581 0.554-1.282 0.554-2.031s-0.206-1.45-0.564-2.049l0.010 0.018zM24 32.667c-8.546 0-16.008-4.558-20-11.333 3.68
1595-6.244 10.306-10.606 18.014-11.251 0.816 0.84 1.32 1.986 1.32 3.251 0 2.577-2.089 4.667-4.667 4.667s-4.667-2.089-4.667-4.667l0-0.004c-0.851 1.59-1.333 3.407-1.333 5.337 0 6.259 5.074 11.333 11.333 11.333s11.333-5.074 11.333-11.333c0-2.586-0.867-4.969-2.325-6.876 4.633 1.929 8.492 5.302 10.991 9.543-3.992 6.775-11.454 11.333-20 11.333z"></path>
1596  </symbol>
1597  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" id="eye-slash">
1598    <title>eye-slash</title>
1599    <path d="M9.911 23.839l1.393-2.518c-2.071-1.5-3.304-3.911-3.304-6.464 0-1.411 0.375-2.804 1.089-4.018-2.786 1.429-5.107 3.679-6.804 6.304 1.857 2.875 4.482 5.286 7.625 6.696zM16.857 10.286c0-0.464-0.393-0.857-0.857-0.857-2.982 0-5.429 2.446-5.429 5.429 0 0.464 0.393 0.857 0.857 0.857s0.857-0.393 0.857-0.857c0-2.054 1.679-3.714 3.714-3.714 0.464 0 0.857-0.393 0.857-0.857zM23.339 6.875c0 0.036 0 0.125-0.018 0.161-3.768 6.732-7.5 13.5-11.268 20.232l-0.875 1.589c-0.107 0.179-0.304 0.286-0.5 0.286-0.321 0-2.018-1.036-2.393-1.25-0.179-0.107-0.286-0.286-0.286-0.5 0-0.286 0.607-1.25 0.786-1.554-3.464-1.571-6.375-4.25-8.429-7.464-0.232-0.357-0.357-0.786-0.357-1.232 0-0.429 0.125-0.875 0.357-1.232 3.536-5.429 9.054-9.054 15.643-9.054 1.071 0 2.161 0.107 3.214 0.304l0.964-1.732c0.107-0.179 0.286-0.286 0.5-0.286 0.321 0 2 1.036 2.375 1.25 0.179 0.107 0.286 0.286 0.286 0.482zM24 14.857c0 3.321-2.054 6.286-5.143 7.464l5-8.964c0.089 0.5 0.143 1 0.143 1.5zM32 17.143c0 0.464-0.125 0.839-0.357 1.232-0.554 0.911-1.25 1.786-1.946 2.589-3.5 4.018-8.321 6.464-13.696 6.464l1.321-2.357c5.196-0.446 9.607-3.607 12.393-7.929-1.321-2.054-3.018-3.857-5.036-5.25l1.125-2c2.214 1.482 4.446 3.714 5.839 6.018 0.232 0.393 0.357 0.768 0.357 1.232z"></path>
1600  </symbol>
1601  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" id="newspaper">
1602    <title>newspaper</title>
1603    <path d="M28 8v-4h-28v22c0 1.105 0.895 2 2 2h27c1.657 0 3-1.343 3-3v-17h-4zM26 26h-24v-20h24v20zM4 10h20v2h-20zM16 14h8v2h-8zM16 18h8v2h-8zM16 22h6v2h-6zM4 14h10v10h-10z"></path>
1604  </symbol>
1605  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" id="display">
1606    <title>display</title>
1607    <path d="M0 2v20h32v-20h-32zM30 20h-28v-16h28v16zM21 24h-10l-1 4-2 2h16l-2-2z"></path>
1608  </symbol>
1609  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" id="ticket">
1610    <title>ticket</title>
1611    <path d="M18 10l4 4-8 8-4-4zM31.298 9.297l-2.297-2.297-1 1c-0.512 0.512-1.219 0.828-2 0.828-1.562 0-2.829-1.266-2.829-2.828 0-0.781 0.317-1.489 0.829-2.001l1-1-2.297-2.297c-0.936-0.936-2.469-0.936-3.405 0l-18.595 18.595c-0.936 0.936-0.936 2.469 0 3.405l2.297 2.297 0.999-0.999c0.512-0.513 1.22-0.83 2.001-0.83 1.562 0 2.828 1.266 2.828 2.828 0 0.781-0.317 1.489-0.829 2.001l-1 1 2.297 2.297c0.936 0.936 2.469 0.936 3.405 0l18.595-18.595c0.936-0.937 0.936-2.469 0-3.406zM14 26l-8-8 12-12 8 8-12 12z"></path>
1612  </symbol>
1613  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" id="video-camera">
1614    <title>video-camera</title>
1615    <path d="M12 9c0-2.761 2.239-5 5-5s5 2.239 5 5c0 2.761-2.239 5-5 5s-5-2.239-5-5zM0 9c0-2.761 2.239-5 5-5s5 2.239 5 5c0 2.761-2.239 5-5 5s-5-2.239-5-5zM24 19v-3c0-1.1-0.9-2-2-2h-20c-1.1 0-2 0.9-2 2v10c0 1.1 0.9 2 2 2h20c1.1 0 2-0.9 2-2v-3l8 5v-14l-8 5zM20 24h-16v-6h16v6z"></path>
1616  </symbol>
1617
1618
1619  
1620  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" id="search">
1621    <title>search</title>
1622    <path d="M23.845 26.707l-7.153-7.153c-0.027-0.027-0.054-0.054-0.081-0.081-3.314 2.166-7.739 1.799-10.61-1.072-0.010-0.010-0.020-0.020-0.030-0.030l0.002 0.002c-0.014-0.013-0.030-0.029-0.046-0.045-3.252-3.252-3.273-8.511-0.064-11.789l0.003-0.003c3.281-3.213 8.54-3.192 11.792 0.060 0.016 0.016 0.032 0.032 0.048 0.048l-0.002-0.002c0.010 0.010 0.021 0.021 0.033 0.033 2.802 2.802 3.219 7.084 1.253 10.328l-0.032 0.049q0.060 0.060 0.125 0.113l7.153 7.153c0.658 0.658 0.658 1.726 0 2.384s-1.726 0.658-2.384 0v0zM7.74 16.604c0.010 0.010 0.022 0.022 0.033 0.034 2.272 2.272 5.946 2.287 8.236 0.045l0.002-0.002c2.245-2.293 2.23-5.968-0.043-8.241-0.011-0.011-0.022-0.022-0.033-0.033l0.002 0.002c-0.010-0.010-0.021-0.021-0.032-0.033-2.272-2.272-5.947-2.287-8.237-0.044l-0.002 0.002c-2.245 2.292-2.23 5.966 0.041 8.237 0.011 0.011 0.023 0.023 0.034 0.034l-0.002-0.002z"></path>
1623  </symbol>
1624  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 32" id="user">
1625    <title>user</title>
1626    <path d="M15 17.34c-6.987 0.011-12.649 5.673-12.66 12.659v0.001h25.32c-0.011-6.987-5.673-12.649-12.659-12.66h-0.001zM4.4 19.4c1.56-1.576 3.466-2.807 5.596-3.567l0.104-0.033c-2.283-1.582-3.76-4.189-3.76-7.14 0-4.783 3.877-8.66 8.66-8.66s8.66 3.877 8.66 8.66c0 2.952-1.477 5.558-3.731 7.122l-0.029 0.019c5.926 2.073 10.1 7.616 10.1 14.134 0 0.023-0 0.046-0 0.069v-0.004 2h-30v-2c0-4 1.56-7.78 4.4-10.6zM21.32 8.68c0.006-0.106 0.010-0.231 0.010-0.356 0-3.502-2.838-6.34-6.34-6.34s-6.34 2.838-6.34 6.34c0 0.125 0.004 0.25 0.011 0.373l-0.001-0.017c0.194 3.345 2.954 5.984 6.33 5.984s6.136-2.639 6.329-5.967l0.001-0.017z"></path>
1627  </symbol>
1628  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 32" id="facebook">
1629    <title>facebook</title>
1630    <path d="M16.304 0h-4.053c-0.101-0.005-0.219-0.008-0.338-0.008-3.986 0-7.217 3.231-7.217 7.217 0 0.232 0.011 0.461 0.032 0.688l-0.002-0.029v3.638h-4.087c-0.354 0.004-0.639 0.292-0.639 0.646 0 0.003 0 0.005 0 0.008v-0 5.26c-0 0.002-0 0.005-0 0.007 0 0.354 0.285 0.642 0.639 0.646h4.087v13.276c-0 0.002-0 0.005-0 0.007 0 0.354 0.285 0.642 0.639 0.646h5.329c0.354-0.004 0.639-0.292 0.639-0.646 0-0.003 0-0.005-0-0.008v0-13.276h4.769c0.354-0.004 0.639-0.292 0.639-0.646 0-0.003 0-0.005-0-0.008v0-5.26c0-0.001 0-0.002 0-0.003 0-0.179-0.071-0.341-0.186-0.46l0 0c-0.115-0.118-0.275-0.191-0.452-0.191-0 0-0 0-0.001 0h-4.769v-3.078c0-1.478 0.346-2.229 2.232-2.229h2.737c0.354-0.004 0.639-0.292 0.639-0.646 0-0.003 0-0.005-0-0.008v0-4.888c0-0.004 0-0.008 0-0.012 0-0.354-0.284-0.641-0.636-0.646h-0z"></path>
1631  </symbol>
1632  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" id="instagram">
1633    <title>instagram</title>
1634    <path d="M25.812 32h-19.629c-3.414-0.005-6.181-2.773-6.183-6.188v-19.629c0.004-3.413 2.77-6.179 6.183-6.
1634183h19.629c3.414 0.004 6.18 2.77 6.186 6.183v19.629c-0.003 3.416-2.77 6.184-6.185 6.188h-0zM3.116 12.714v13.098c0.001 1.693 1.374 3.066 3.067 3.067h19.629c1.694 0 3.068-1.373 3.069-3.067v-13.099h-4.775c0.409 0.976 0.646 2.111 0.646 3.301 0 4.833-3.918 8.75-8.75 8.75s-8.75-3.918-8.75-8.75c0-1.19 0.238-2.325 0.668-3.359l-0.021 0.058zM15.999 10.367c-0.005-0-0.011-0-0.018-0-3.121 0-5.65 2.53-5.65 5.65s2.53 5.651 5.651 5.651c3.121 0 5.651-2.53 5.651-5.651 0-1.241-0.4-2.388-1.078-3.32l0.011 0.016c-1.035-1.424-2.693-2.341-4.566-2.347h-0.001zM28.295 3.684h-0.704l-4.719 0.012 0.019 5.423 5.397-0.016z"></path>
1635  </symbol>
1636  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 32" id="shape">
1637    <title>shape</title>
1638    <path d="M19.691 32c-9.501 0-17.224-5.522-17.224-12.309-0-0.013-0-0.029-0-0.044 0-0.217 0.011-0.432 0.032-0.644l-0.002 0.027c-1.5-0.848-2.497-2.433-2.497-4.25 0-0.004 0-0.008 0-0.012v0.001c0-2.725 2.209-4.934 4.934-4.934v0c0.012-0 0.026-0 0.040-0 1.070 0 2.058 0.35 2.857 0.942l-0.013-0.009c3.123-2.026 6.928-3.256 11.016-3.323l0.018-0 2.86-6.703c0.195-0.439 0.628-0.74 1.131-0.74 0.002 0 0.003 0 0.005 0h-0c0.1 0 0.197 0.012 0.29 0.034l-0.009-0.002 7.022 1.643c0.669-1.027 1.812-1.696 3.111-1.696 2.044 0 3.701 1.657 3.701 3.701s-1.657 3.701-3.701 3.701c-1.907 0-3.478-1.443-3.679-3.296l-0.001-0.016-6.015-1.401-2.065 4.843c3.808 0.223 7.292 1.436 10.251 3.382l-0.079-0.049c0.804-0.616 1.825-0.987 2.932-0.987 0.010 0 0.020 0 0.030 0h-0.002c2.725 0 4.934 2.209 4.934 4.934v0c-0.001 1.882-1.073 3.513-2.64 4.317l-0.027 0.013v0.032c0 0.165 0.017 0.345 0.017 0.54 0.002 6.785-7.725 12.307-17.226 12.307zM14.732 24.401c-0.674 0.010-1.216 0.558-1.216 1.233 0 0.402 0.193 0.76 0.491 0.985l0.003 0.002c1.574 1.152 3.548 1.843 5.683 1.843s4.11-0.691 5.711-1.862l-0.027 0.019c0.312-0.227 0.513-0.59 0.513-1.001 0-0.273-0.089-0.525-0.239-0.73l0.002 0.003c-0.227-0.312-0.59-0.513-1.001-0.513-0.273 0-0.525 0.089-0.73 0.239l0.003-0.002c-1.174 0.86-2.646 1.377-4.24 1.377s-3.066-0.516-4.26-1.391l0.020 0.014c-0.195-0.136-0.438-0.217-0.699-0.217-0.005 0-0.010 0-0.015 0h0.001zM25.834 16.012c-1.363 0-2.467 1.105-2.467 2.467s1.105 2.467 2.467 2.467c1.363 0 2.467-1.105 2.467-2.467v0c0-0.004 0-0.008 0-0.012 0-1.359-1.099-2.462-2.457-2.467h-0.001zM13.525 16.012c-1.363 0-2.467 1.105-2.467 2.467s1.105 2.467 2.467 2.467c1.363 0 2.467-1.105 2.467-2.467v0c0-0.004 0-0.008 0-0.012 0-1.359-1.099-2.462-2.457-2.467h-0.001zM33.229 2.467c-0.681 0-1.234 0.552-1.234 1.234s0.552 1.234 1.234 1.234c0.681 0 1.234-0.552 1.234-1.234v0c0-0.681-0.552-1.234-1.234-1.234v0z"></path>
1639  </symbol>
1640  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" id="twitch">
1641    <title>twitch</title>
1642    <path d="M16 7.75v7.75h-2.589v-7.75h2.589zM23.107 7.75v7.75h-2.589v-7.75h2.589zM23.107 21.321l4.518-4.536v-14.196h-21.321v18.732h5.821v3.875l3.875-3.875h7.107zM30.214 0v18.089l-7.75 7.75h-5.821l-3.875 3.875h-3.875v-3.875h-7.107v-20.679l1.946-5.161h26.482z"></path>
1643  </symbol>
1644  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 39 32" id="twitter">
1645    <title>twitter</title>
1646    <path d="M34.734 5.060c1.671-1.009 2.927-2.56 3.537-4.406l0.016-0.057c-1.477 0.889-3.196 1.567-5.026 1.935l-0.104 0.017c-1.478-1.564-3.567-2.537-5.883-2.537-4.468 0-8.089 3.622-8.089 8.089 0 0.645 0.075 1.272 0.218 1.873l-0.011-0.055c-6.731-0.346-12.651-3.544-16.
164662-8.4l-0.033-0.041c-0.686 1.163-1.091 2.563-1.091 4.057 0 2.795 1.417 5.259 3.572 6.712l0.029 0.018c-1.353-0.042-2.611-0.412-3.708-1.033l0.040 0.021c0 0.033 0 0.070 0 0.103 0.004 3.894 2.76 7.144 6.427 7.91l0.053 0.009c-0.638 0.18-1.37 0.284-2.126 0.284-0.538 0-1.065-0.052-1.574-0.153l0.051 0.008c1.064 3.235 4.028 5.541 7.54 5.609l0.008 0c-2.727 2.156-6.216 3.459-10.008 3.459-0.012 0-0.024 0-0.035-0h0.002c-0.677-0-1.343-0.042-1.998-0.122l0.079 0.008c3.491 2.274 7.764 3.626 12.352 3.626 0.011 0 0.021 0 0.032-0h-0.002c0.047 0 0.102 0.001 0.157 0.001 12.608 0 22.828-10.221 22.828-22.828 0-0.055-0-0.11-0.001-0.165l0 0.008c0-0.349 0-0.7-0.022-1.046 1.588-1.156 2.925-2.543 3.994-4.126l0.037-0.058c-1.351 0.619-2.919 1.069-4.563 1.272l-0.078 0.008z"></path>
1647  </symbol>
1648  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" id="youtube-play">
1649    <title>youtube-play</title>
1650    <path d="M12.696 20.143l8.643-4.464-8.643-4.518v8.982zM16 4.75c6.732 0 11.196 0.321 11.196 0.321 0.625 0.071 2 0.071 3.214 1.357 0 0 0.982 0.964 1.268 3.179 0.339 2.589 0.321 5.179 0.321 5.179v2.429s0.018 2.589-0.321 5.179c-0.286 2.196-1.268 3.179-1.268 3.179-1.214 1.268-2.589 1.268-3.214 1.339 0 0-4.464 0.339-11.196 0.339v0c-8.321-0.071-10.875-0.321-10.875-0.321-0.714-0.125-2.321-0.089-3.536-1.357 0 0-0.982-0.982-1.268-3.179-0.339-2.589-0.321-5.179-0.321-5.179v-2.429s-0.018-2.589 0.321-5.179c0.286-2.214 1.268-3.179 1.268-3.179 1.214-1.286 2.589-1.286 3.214-1.357 0 0 4.464-0.321 11.196-0.321v0z"></path>
1651  </symbol>
1652  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 33 37" id="tiktok">
1653    <title>tiktok</title>
1654    <path d="M27.999232,7.88479263 C27.7503987,7.75618396 27.50816,7.61519849 27.2734255,7.46236559 C26.5908269,7.01110225 25.9649808,6.47937809 25.4093702,5.87864823 C24.0192012,4.28801843 23.5,2.67434716 23.3087558,1.54454685 L23.3164363,1.54454685 C23.156682,0.606758833 23.2227343,0 23.2327189,0 L16.9009217,0 L16.9009217,24.483871 C16.9009217,24.812596 16.9009217,25.1374808 16.8870968,25.4585253 C16.8870968,25.4984639 16.8832565,25.5353303 16.8809524,25.578341 C16.8809524,25.5960061 16.8809524,25.6144393 16.8771121,25.6328725 C16.8771121,25.6374808 16.8771121,25.6420891 16.8771121,25.6466974 C16.7415796,27.4305994 15.7275647,29.0302208 14.172043,29.9139785 C13.3736896,30.3681684 12.4707344,30.6064151 11.5522273,30.6052227 C8.60215054,30.6052227 6.21121352,28.1996928 6.21121352,25.2288786 C6.21121352,22.2580645 8.60215054,19.8525346 11.5522273,19.8525346 C12.1106629,19.8520162 12.665661,19.9398931 13.1966206,20.1129032 L13.2043011,13.6658986 C9.94559153,13.2449629 6.65936679,14.2063229 4.14132104,16.3172043 C3.04997343,17.2654384 2.13247304,18.396849 1.43010753,19.6605223 C1.16282642,20.1213518 0.15437788,21.9731183 0.0322580645,24.9784946 C-0.044546851,26.6843318 0.467741935,28.4516129 0.711981567,29.1820276 L0.711981567,29.1973886 C0.865591398,29.6274962 1.46082949,31.0952381 2.43087558,32.3325653 C3.21308519,33.3250879 4.13724033,34.1969666 5.17357911,34.9201229 L5.17357911,34.9047619 L5.18894009,34.9201229 C8.25422427,37.0030722 11.6528418,36.8663594 11.6528418,36.8663594 C12.2411674,36.8425499 14.2119816,36.8663594 16.4500768,35.8056836 C18.9324117,34.6298003 20.3456221,32.8778802 20.3456221,32.8778802 C21.2484542,31.8310903 21.9663535,30.638141 22.46851,29.3502304 C23.0414747,27.844086 23.2327189,26.0376344 23.2327189,25.3156682 L23.2327189,12.3264209 C23.3095238,12.3725038 24.3325653,13.0491551 24.3325653,13.0491551 C24.3325653,13.0491551 25.8064516,13.9938556 28.1059908,14.609063 C29.7557604,15.046851 31.9784946,15.1390169 31.9784946,15.1390169 L31.9784946,8.85330261 C31.1996928,8.93778802 29.6182796,8.69201229 27.999232,7.88479263 Z" id="Path"></path>
1655  </symbol>
1656
1657
1658  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 58 58" id="more-squares">
1659    <path d="M16.0588235,41.9411765 L16.0588235,57 L1,57 L1,41.9411765 L16.0588235,41.9411765 Z M36.5294118,41.9411765 L36.5294118,57 L21.4705882,57 L21.4705882,41.9411765 L36.5294118,41.9411765 Z M16.0588235,21.4705882 L16.0588235,36.5294118 L1,36.5294118 L1,21.4705882 L16.0588235,21.4705882 Z M36.5294118,21.4705882 L36.5294118,36.5294118 L21.4705882,36.5294118 L21.4705882,21.4705882 L36.5294118,21.4705882 Z M57,21.4705882 L57,36.5294118 L41.9411765,36.5294118 L41.9411765,21.4705882 L57,21.4705882 Z M16.0588235,1 L16.0588235,16.0588235 L1,16.0588235 L1,1 L16.0588235,1 Z M36.5294118,1 L36.5294118,16.0588235 L21.4705882,16.0588235 L21.4705882,1 L36.5294118,1 Z M57,1 L57,16.0588235 L41.9411765,16.0588235 L41.9411765,1 L57,1 Z" id="Combined-Shape"></path>
1660  </symbol>
1661  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 41 30" id="filter">
1662    <path d="M9.71125815,19.9050195 C12.1269287,19.9050195 14.1810346,21.6525822 14.6634579,23.9375896 L39.5923436,23.9370462 C40.1456971,23.9370462 40.62,24.4113492 40.62,24.9647026 C40.62,25.518056 40.1456971,25.992359 39.5923436,25.992359 L14.6894803,25.9922513 C14.2580062,28.2766023 12.1954625,30.0234823 9.71125815,30.0234823 C7.29622847,30.0234823 5.24257166,28.2768468 4.75944271,25.9927308 L1.64765638,25.992359 C1.09430294,25.992359 0.62,25.518056 0.62,24.9647026 C0.62,24.3322987 1.09430294,23.8579957 1.64765638,23.8579957 L4.77133336,23.8572343 C5.27543883,21.5645634 7.31554021,19.9050195 9.71125815,19.9050195 Z M9.71125815,21.9
1662603322 C8.06727591,21.9603322 6.73340031,23.2782855 6.70771674,24.9161066 L6.70688778,24.8856521 C6.71659264,24.963291 6.71795739,25.038547 6.71171338,25.110835 L6.7073395,24.9642509 C6.7073395,26.6243112 8.05119784,27.9681695 9.71125815,27.9681695 C11.3713184,27.9681695 12.7151768,26.6243112 12.7151768,24.9642509 C12.7151768,23.3041906 11.3713184,21.9603322 9.71125815,21.9603322 Z M28.7619747,10.1027586 C31.1772952,10.1027586 33.2311558,11.8498149 33.7139646,14.1343354 L39.5923436,14.1347854 C40.1456971,14.1347854 40.62,14.6090883 40.62,15.1624418 C40.62,15.7157952 40.1456971,16.1900981 39.5923436,16.1900981 L33.7171012,16.1906379 C33.2481071,18.4746716 31.2459443,20.2212214 28.7619747,20.2212214 C26.3470042,20.2212214 24.2933889,18.4746716 23.8101948,16.1906379 L1.6481081,16.1900981 C1.09475466,16.1900981 0.620451717,15.7157952 0.620451717,15.1624418 C0.620451717,14.6090883 1.09475466,14.1347854 1.6481081,14.1347854 L23.8099848,14.1343354 C24.2927935,11.8498149 26.3466541,10.1027586 28.7619747,10.1027586 Z M28.7619747,12.1580714 C27.1019144,12.1580714 25.758056,13.5019297 25.758056,15.16199 C25.758056,16.8220503 27.1019144,18.1659087 28.7619747,18.1659087 C30.422035,18.1659087 31.7658933,16.8220503 31.7658933,15.16199 C31.7658933,13.5019297 30.422035,12.1580714 28.7619747,12.1580714 Z M9.71125815,0.38 C12.1265787,0.38 14.1804393,2.12705624 14.6632481,4.41157679 L39.5923436,4.41112331 C40.1456971,4.41112331 40.62,4.88542625 40.62,5.43877969 C40.62,5.99213312 40.1456971,6.46643607 39.5923436,6.46643607 L14.6666239,6.46671327 C14.1980719,8.7513185 12.1956505,10.4984628 9.71125815,10.4984628 C7.29587673,10.4984628 5.24197346,8.7513185 4.75923171,6.46671327 L1.64765638,6.46643607 C1.09430294,6.46643607 0.62,5.99213312 0.62,5.43877969 C0.62,4.88542625 1.09430294,4.41112331 1.64765638,4.41112331 L4.75926822,4.41157679 C5.24207699,2.12705624 7.29593761,0.38 9.71125815,0.38 Z M9.71125815,2.43531276 C8.05119784,2.43531276 6.7073395,3.7791711 6.7073395,5.4392314 C6.7073395,7.09929171 8.05119784,8.44315005 9.71125815,8.44315005 C11.3713184,8.44315005 12.7151768,7.09929171 12.7151768,5.4392314 C12.7151768,3.7791711 11.3713184,2.43531276 9.71125815,2.43531276 Z" id="Combined-Shape"></path>
1663  </symbol>
1664
1665
1666
1667  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" id="close">
1668    <title>close</title>
1669    <path d="M16 13.338l-11.314-11.314-2.262 2.262 11.314 11.314-11.314 11.314 2.262 2.262 11.314-11.314 11.314 11.314 2.262-2.262-11.314-11.314 11.314-11.314-2.262-2.262-11.314 11.314z"></path>
1670  </symbol>
1671  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" id="setting">
1672    <title>setting</title>
1673    <path d="M17.851 32h-3.304c-0.933 0-1.202-0.295-2.83-4.341l-0.815-0.323c-3.457 1.554-3.881 1.554-4.135 1.554h-0.529l-0.418-0.384-2.334-2.282c-0.673-0.674-0.662-1.067 1.101-5.068l-0.311-0.753c-4.124-1.482-4.46-1.77-4.46-2.724v-3.233c0-0.95 0.274-1.192 4.435-2.81l0.325-0.753c-1.775-3.748-1.908-4.317-1.184-5.024l2.716-2.643 0.559-0.017c1.572 0.285 2.977 0.797 4.256 1.506l-0.071-0.036 0.813-0.322c1.512-4.026 1.803-4.348 2.751-4.348h3.3c0.945 0 1.187 0.268 2.832 4.329l0.813 0.337c3.445-1.566 3.873-1.566 4.14-1.566h0.524l0.407 0.384 2.342 2.281c0.684 0.673 0.674 1.069-1.099 5.068l0.322 0.766c4.145 1.475 4.448 1.738 4.448 2.714v3.228c0 0.948-0.301 1.217-4.435 2.81l-0.325 0.766c1.861 3.927 1.886 4.322 1.197 5.011l-2.728 2.655-0.561 0.012c-1.572-0.288-2.976-0.804-4.254-1.517l0.070 0.036-0.815 0.337c-1.51 4.028-1.8 4.349-2.746 4.349zM10.843 24.516v0l2.862 1.158 0.214 0.515c0.458 1.118 1.027 2.494 1.377 3.214h1.807c0.308-0.697 0.833-2.021 1.276-3.199l0.194-0.527 2.862-1.179 0.492 0.214c1.238 0.53 2.605 1.081 3.325 1.347l1.254-1.234c-0.325-0.798-0.953-2.177-1.399-3.12l-0.251-0.525 1.194-2.835 0.515-0.202c1.052-0.409 2.479-0.987 3.287-1.347v-1.702c-0.788-0.345-2.244-0.889-3.263-1.248l-0.539-0.19-1.192-2.846 0.227-0.514c0.155-0.362 0.963-2.214 1.334-3.224l-1.256-1.219c-1.054 0.402-3.007 1.286-3.226 1.386l-0.514 0.226-2.862-1.147-0.216-0.515c-0.418-1.049-1.010-2.45-1.377-3.214h-1.797c-0.322 0.726-0.842 2.039-1.266 3.199l-0.205 0.537-2.862 1.158-0.505-0.214c-1.126-0.482-2.526-1.041-3.324-1.329l-1.259 1.234c0.3 0.737 0.919 2.096 1.399 3.12l0.251 0.514-1.185 2.849-0.514 0.202c-0.537 0.209-2.357 0.919-3.288 1.347v1.709c0.768 0.337 2.199 0.86 3.265 1.246l0.551 0.19 1.179 2.847-0.226 0.505c-0.451 1.032-1.039 2.428-1.339 3.218l1.254 1.233c0.727-0.29 2.071-0.862 3.229-1.401l0.515-0.226zM16.127 22.002c-3.263-0.068-5.881-2.729-5.881-6.001 0-3.315 2.687-6.003 6.003-6.003 3.314 0 6 2.685 6.003 5.998v0c-0.031 3.324-2.733 6.006-6.061 6.006-0.021 0-0.043-0-0.064-0l0.003 0zM16.127 12.573c-1.838 0.062-3.305 1.567-3.305 3.415 0 1.887 1.53 3.416 3.416 3.416 1.884 0 3.412-1.525 3.416-3.407v-0c-0.032-1.894-1.575-3.417-3.473-3.417-0.018 0-0.037 0-0.055 0l0.003-0z"></path>
1674  </symbol>
1675
1676  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" id="star-empty">
1677    <title>star-empty</title>
1678    <path d="M32 12.408l-11.056-1.607-4.944-10.018-4.944 10.018-11.056 1.607 8 7.798-1.889 11.011 9.889-5.199 9.889 5.199-1.889-11.011 8-7.798zM16 23.547l-6.983 3.671 1.334-7.776-5.65-5.507 7.808-1.134 3.492-7.075 3.492 7.075 7.807 1.134-5.65 5.507 1.334 7.776-6.983-3.671z"></path>
1679  </symbol>
1680  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" id="star-full">
1681    <title>star-full</title>
1682    <path d="M32 12.408l-11.056-1.607-4.944-10.018-4.944 10.018-11.056 1.607 8 7.798-1.889 11.011 9.889-5.199 9.889 5.199-1.889-11.011 8-7.798z"></path>
1683  </symbol>
1684  <symbol xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" id="star-half">
1685    <title>star-half</title>
1686    <path d="M32 12.408l-11.056-1.607-4.944-10.018-4.944 10.018-11.056 1.607 8 7.798-1.889 11.011 9.889-5.199 9.889 5.199-1.889-11.011 8-7.798zM16 23.547l-0.029 0.015 0.029-17.837 3.492 7.075 7.807 1.134-5.65 5.507 1.334 7.776-6.983-3.671z"></path>
1687  </symbol>
1688
1689
1690
1691  
1692
1693</svg>
1694
1695
1696      
1697
1698      
1699      
1700
1701
1702      
1702<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"331ebecdf6094794b6b40c0a5474cb56","r":1,"spa":2}' crossorigin="anonymous"></script>
1702
1703</body>
1704      </html>

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.