CINXE.COM

The Boston Globe

<!DOCTYPE html> <html lang="en-US" > <head> <meta charset="UTF-8"> <meta name="viewport" content="minimal-ui"> <script> function clearCookie(cookieName, cookieDomain) { try { document.cookie = cookieName + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;domain=" + cookieDomain + ";path=/"; } catch (ex) { console.warn("Unable to clear cookie"); } } </script> <script type="text/javascript">!(function (o, n) { function $() { ($.q = $.q || []).push(arguments) } $.v = 1, o[n] = o[n] || $ })(window, String.fromCharCode(97, 100, 109, 105, 114, 97, 108)); !(function (t, c, i) { i = t.createElement(c), t = t.getElementsByTagName(c)[0], i.async = 1, i.src = "https://lunchroomlock.com/v2lieYVhiGF8bx9-REoAj8zMyiJkKKKcr0nAKXBFvaZ9fQwIoC0LWiAo", t.parentNode.insertBefore(i, t) })(document, "script");; !(function (o, t, n, c) { function e(n) { (function () { try { return (localStorage.getItem("v4ac1eiZr0") || "").split(",")[4] > 0 } catch (o) { } return !1 })() && (n = o[t].pubads()) && n.setTargeting("admiral-engaged", "true") } (c = o[t] = o[t] || {}).cmd = c.cmd || [], typeof c.pubads === n ? e() : typeof c.cmd.unshift === n ? c.cmd.unshift(e) : c.cmd.push(e) })(window, "googletag", "function");</script> <script> loggedIn = "False"; var isEditionApp = 'false' == "true" ? true : false; if (isEditionApp) { EDITIONAPP = true; if (1 > 1) { NEWPWA = true; } } // Post message listeners window.addEventListener('message', function (event) { if (event.data == 'editionAppLoaded') { EDITIONAPP = true; } else if (event.data == "loggedIn") { loggedIn = "true"; } }); // fix for empty user agents if (!window.navigator.userAgent) { Object.defineProperty(navigator, 'userAgent', { get: function () { return 'Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3'; } }); } </script> <title>The Boston Globe</title> <script src="https://pdfjs.pagesuite.com/versions/2.8.335-PS/pdf.min.js" onload="typeof pdfjsLib != 'undefined' && !!pdfjsLib ? PDFJS = pdfjsLib : ''"></script> <script src="https://epaper.bostonglobe.com/html5/reader/builds/3/39/5/resources/js/functions.js?b=d179c157-d1bf-4432-b0bf-8272cdb143d1"></script> <script type="text/javascript" src="resources/js/jquery-1.11.2.min.js"></script> <script src="resources/js/jquery-ui.min.js"></script> <script src="resources/js/crypto-js/3.1.2/aes.js"></script> <link rel="stylesheet" href="resources/css/jquery-ui.min.css" /> <link rel="stylesheet" href="resources/css/jquery-ui.theme.min.css" /> <link rel="stylesheet" href="resources/css/jquery-ui.structure.min.css" /> <link rel="stylesheet" href="resources/css/css/font-awesome.min.css" /> <link rel="stylesheet" type="text/css" href="https://epaper.bostonglobe.com/html5/reader/builds/3/39/5/resources/css/reader.css?b=d179c157-d1bf-4432-b0bf-8272cdb143d1" /> <link rel="stylesheet" type="text/css" href="https://epaper.bostonglobe.com/html5/reader/builds/3/39/5/resources/css/media.css?b=d179c157-d1bf-4432-b0bf-8272cdb143d1" /> <link rel="stylesheet" type="text/css" href="https://epaper.bostonglobe.com/html5/reader/builds/3/39/5/resources/css/desktop.css?b=d179c157-d1bf-4432-b0bf-8272cdb143d1" /> <link rel="stylesheet" type="text/css" href="https://epaper.bostonglobe.com/html5/reader/builds/3/39/5/resources/css/article.css?b=d179c157-d1bf-4432-b0bf-8272cdb143d1" /> <script src="resources/js/clipboard.min.js"></script> <script src="resources/js/youtube_iframe_api.js"></script> <script src="resources/js/froogaloop2.min.js?cb=1"></script> <script src="resources/js/vimeoplayer.js"></script> <script src="//imasdk.googleapis.com/js/sdkloader/ima3.js"></script> <script src="resources/js/video.js"></script> <link rel="stylesheet" type="text/css" href="resources/css/video.css" /> <!-- Custom CSS --> <link rel="stylesheet" type="text/css" href="resources/css/article_boston.css" /><link rel="stylesheet" type="text/css" href="../scripts/BostonLogin.css" /> <!-- Sharing Data --> <meta property="og:type" content="website" /> <meta property="og:title" content="The Boston Globe" /> <meta property="og:description" content="The Boston Globe - 12/03/2024" /> <meta property="og:image" content="https://edition.pagesuite.com/get_image.aspx?w=280&eid=5e4c86fc-f091-414e-b8ed-df3e097f7287&pnum=1&c=50" /> <meta name="twitter:card" content="summary" /> <meta name="twitter:title" content="The Boston Globe" /> <meta name="twitter:description" content="The Boston Globe - 12/03/2024" /> <meta name="twitter:image" content="https://edition.pagesuite.com/get_image.aspx?w=280&eid=5e4c86fc-f091-414e-b8ed-df3e097f7287&pnum=1&c=50" /> <script> buildguid = "d179c157-d1bf-4432-b0bf-8272cdb143d1"; versionDirectory = "3/39/5/"; versionNumber = "3.39.5"; pdfDirectory = "https://pdfjs.pagesuite.com/versions/2.8.335-PS"; readerType = "desktop"; name = "The Boston Globe"; publicationguid = "2c60291d-c20c-4780-9829-b3d9a12687cf"; startingSection = "Front Page"; editionguid = "5e4c86fc-f091-414e-b8ed-df3e097f7287"; pageNumber = ""; artGuid = ""; startAtSection = ""; publicationName = "The Boston Globe"; editionName = "12/03/2024"; editionType = "current edition"; latestLM = 63868811485757; editionModified = "2024/12/03/08/31/23"; publishDate = "2024/12/03/12/00/00"; publishDateTime = "2024-12-03T00:00:00.0000000Z" editionDate = "12/03/2024"; customHelperName = ""; startpageNumber = 1; customCSS = "cmVzb3VyY2VzL2Nzcy9hcnRpY2xlX2Jvc3Rvbi5jc3M=|Li4vc2NyaXB0cy9Cb3N0b25Mb2dpbi5jc3M="; hasSplashScreenDuration = "False"; splashScreenDuration = "5"; verify = "false"; if (pageNumber != "") { startpageNumber = pageNumber; } loadMediaEveryPage = false; trackOmniture = "False"; stage = true; paywall = false; videoFull = false; version = "production"; isShared = "False".toLowerCase(); splashScreenDuration = parseInt("5") * 1000; var onLoadTime = Date.now(); //var splashInterval = setInterval(function () { clearSplash() }, splashScreenDuration); var editionDomain = "http://edition.pagesuite.com/"; var hostName = "epaper.bostonglobe.com"; var reports = "https://reports.pagesuite.com/"; var visitorguid = "7c794618-6876-4faa-a501-8bd7c1b10fd3"; /* ------------------ Article text size -------------------- */ if (localStorage.getItem("fontEm" + publicationguid) != null) { //fontEm = parseInt(localStorage.getItem("fontEm" + publicationguid)); } function clearSplash() { //clearInterval(splashInterval); if (hasSplashScreenDuration.toLowerCase() == "true") { clearSplashFromTimeout(splashScreenDuration, onLoadTime); } else { $(".splashScreenContainer").remove(); triggerSplashscreenClearEvent(); } } function clearSplashFromTimeout(duration, start) { var now = Date.now(); if (start + duration < now) { $(".splashScreenContainer").remove(); triggerSplashscreenClearEvent(); } else { var timeout = start + duration - now; setTimeout(function () { $(".splashScreenContainer").remove(); triggerSplashscreenClearEvent(); }, timeout); } } function triggerSplashscreenClearEvent() { try { var eventLabel = "com.pagesuite.replica.splashScreenRemoved"; // Check IE if (navigator.userAgent.indexOf("Trident") >= 0) { event = document.createEvent("CustomEvent"); event.initCustomEvent(eventLabel, false, false, { }) window.dispatchEvent(event); } else { event = new CustomEvent(eventLabel, {}); //console.log(event); window.dispatchEvent(event); } } catch (ex) { console.warn("triggerSplashscreenClearEvent", ex); } } </script> <!--Googletag Script--> <script>var googletag = googletag || {}; googletag.cmd = googletag.cmd || [];(function() { var gads = document.createElement("script"); gads.async = true; gads.type = "text/javascript"; var useSSL = "https:" == document.location.protocol;gads.src = (useSSL ? "https:" : "http:") + "//www.googletagservices.com/tag/js/gpt.js"; var node = document.getElementsByTagName("script")[0]; node.parentNode.insertBefore(gads, node); })(); </script> <script> function iOSVersion() { if (window.MSStream) { // There is some iOS in Windows Phone... // https://msdn.microsoft.com/en-us/library/hh869301(v=vs.85).aspx return false; } var match = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/), version; if (match !== undefined && match !== null) { version = [ parseInt(match[1], 10), parseInt(match[2], 10), parseInt(match[3] || 0, 10) ]; return parseFloat(version.join('.')); } return false; } </script> <!-- Custom JS Scripts --> <script src="../scripts/BostonLogin.js" ></script><script src="https://misc.pagesuite.com/Scripts/16ff6f65-34da-4f4e-b292-400c0890da83/2c60291d-c20c-4780-9829-b3d9a12687cf/startup/boston.js" ></script><script src="resources/js/AppMeasurement.js"></script><script>sectionString = "Front Page|1,Nation/World|2,Editorial & Opinion|10,Metro|13,Obituaries|28,Comfort Zone|18,Business|31,Sports|19,TV Listings|17,Comics|35";initialiseTracking();</script> <!-- Data layer setup --> <!-- GTM Source --> <!--Mather Setup --> <style type="text/css"> /** * Example of an initial loading indicator. * It is recommended to keep this as minimal as possible to provide instant feedback * while other resources are still being loaded for the first time */ html, body { margin:0; height: 100%; background-color: #ffffff; } .splashScreenContainer { position:absolute; width:100%; height:100%; background-color:#1E1E1E; z-index:10; } .splashScreen { z-index:1; position:relative; width:100%; height:100%; background-repeat:no-repeat; background-position:center; background-size:cover; } .backgroundSplash { width:60%; height:60%; max-width:600px; max-height:600px; margin:auto; background-repeat:no-repeat; background-position:center; background-size:contain; } .splashScreenSponsor{ height:50px; width:100%; display:none; } .splashScreenSponsorContainer { width:100%; height:100%; background-repeat:no-repeat; background-position:center; background-size: contain; } .splashScreenSponsorImage { width:100%; height:100%; z-index: 10; position: relative; } .splashscreenSponsorUrl { width:100%; height:100%; text-align:center; } .splashScreenSponsorDFP { width:100%; height:100%; } .splashScreenContainer.hasSponsor .splashScreen{ max-height:calc(100% - 70px); } .splashScreenContainer.hasSponsor .splashScreenSponsor{ display:block; } .splashScreenSponsor.image .splashScreenSponsorDFP { display:none; } .splashScreenSponsor.dfp .splashScreenSponsorImage { display:none; } .splashScreenSponsorContainer { display:none; } .splashScreenSponsorContainer.phone { display:block; } .splashScreenContainer.loadingWheel .splashScreenImage { display:none; } .splashScreenLoading { display:none; } .splashScreenContainer.loadingWheel .splashScreenLoading { display:block; } .tileDiv canvas { -webkit-transform-origin: 0px 0px !important; -moz-transform-origin: 0px 0px !important; -ms-transform-origin: 0px 0px !important; } .versionContainer { position:absolute; bottom:10px; right:10px; } .versionContainer.white { color:white; } .splashScreenSponsorDFP { width:100%; height:250px; /*position:absolute; bottom:0px; margin:20px auto; padding-top:25%;*/ z-index:9999; } .showDfp{ display:block !important; } #splashAdvert{ margin:auto; } .popoverTopBar .readermenushareitem { float:unset !important } @media (min-width:768px) { .splashScreenSponsor { height:100px; } .splashScreenContainer.hasSponsor .splashScreen{ max-height:calc(100% - 200px); } .splashScreenSponsorContainer { display:block; } .splashScreenSponsorContainer.phone { display:none; } } @media screen and (orientation: portrait) { .splashScreen { } } @media screen and (orientation: landscape) { .splashScreen { } } @page { size: auto; /* auto is the initial value */ /* this affects the margin in the printer settings */ margin: 0mm; } .splashScreenContainer ~ #ext-viewport { display: none !important; } #optanon { max-height: 100%; max-width: 100%; } #optanon-popup-wrapper { max-height: 100% !important; overflow: scroll !important; } </style> <script type="text/javascript">(function (k) {function t(b) {function c(a, b) { var f = a.length, j, d; for (j = 0; j < f; j++) { d = a[j]; var c = a, e = j, q = void 0; "string" == typeof d && (d = { path: d }); d.shared ? (d.version = d.shared, q = d.shared + d.path) : (G.href = d.path, q = G.href); d.uri = q; d.key = g + "-" + q; h[q] = d; c[e] = d; d.type = b; d.index = j; d.collection = a; d.ready = !1; d.evaluated = !1 } return a } var f; "string" == typeof b ? (f = b, b = H(f)) : f = JSON.stringify(b); var g = b.id, e = g + "-" + I + r, h = {}; this.key = e; this.css = c(b.css, "css"); this.js = c(b.js, "js"); l.microloaded = !0; var n = window.Ext.filterPlatform = function (a) {function b(a) { var d = /Mobile(\/|\s)/.test(a); return /(iPhone|iPod)/.test(a) || !/(Silk)/.test(a) && /(Android)/.test(a) && (/(Android 2)/.test(a) || d) || /(BlackBerry|BB)/.test(a) && d || /(Windows Phone)/.test(a) } function f(a) { return !b(a) && (/iPad/.test(a) || /Android|Silk/.test(a) || /(RIM Tablet OS)/.test(a) || /MSIE 10/.test(a) && /; Touch/.test(a)) } var j = !1, d = navigator.userAgent, c, h; a = [].concat(a); c = window.location.search.substr(1).split("\x26"); h = {}; var g; for (g = 0; g < c.length; g++) {var e = c[g].split("\x3d"); h[e[0]] = e[1]} if (c = h.platform) return -1 != a.indexOf(c); c = 0; for (h = a.length; c < h; c++) {switch (a[c]) {case "phone": j = b(d); break; case "tablet": j = f(d); break; case "desktop": j = !b(d) && !f(d); break; case "ios": j = /(iPad|iPhone|iPod)/.test(d); break; case "android": j = /(Android|Silk)/.test(d); break; case "blackberry": j = /(BlackBerry|BB)/.test(d); break; case "safari": j = /Safari/.test(d) && !/(BlackBerry|BB)/.test(d); break; case "chrome": j = /Chrome/.test(d); break; case "ie10": j = /MSIE 10/.test(d); break; case "windows": j = /MSIE 10/.test(d) || /Trident/.test(d); break; case "tizen": j = /Tizen/.test(d); break; case "firefox": j = /Firefox/.test(d)}if (j) return !0} return !1}; this.css = this.css.filter(function (a) { var b = a.platform, c = a.exclude; a.type = "css"; if (b) { if (n(b) && !n(c)) return l.theme || (l.theme = {}), l.theme.name || (l.theme.name = a.theme || "Default"), !0; a.filtered = !0; return !1 } return !0 }); this.js = this.js.filter(function (a) { var b = a.platform, c = a.exclude; a.type = "js"; return b && (!n(b) || n(c)) ? (a.filtered = !0, !1) : !0 }); this.assets = this.css.concat(this.js); this.getAsset = function (a) { return h[a] }; this.store = function () { A(e, f) } } function B(b, c) { var f = document.createElement("meta"); f.setAttribute("name", b); f.setAttribute("content", c); p.appendChild(f) } function s(b, c, f) { var g = new XMLHttpRequest; f = f || J; b = b + (-1 == b.indexOf("?") ? "?" : "\x26") + buildguid;/*Versioning*/if (b.startsWith("http://") || b.startsWith("https://")) { b = b.replace("/production/", "/builds/"); b = b.replace("/stage/", "/builds/"); b = b.replace("/dev/", "/builds/"); b = b.replace("/versioning/", "/builds/"); if (b.indexOf("/resources/") != -1) { var str = "/resources/"; var endIndex = b.indexOf(str) + str.length - 1; //b = b.splice("/resources/", "https://html5-reader-builds.s3-eu-west-1.amazonaws.com/" + versionDirectory + "resources/"); b = "https://epaper.bostonglobe.com/html5/reader/builds/" + versionDirectory + "resources" + b.substr(endIndex, b.length - 1) } else if (b.indexOf("/app.js?") != null) { //b = b.replace("/app.js?", "https://html5-reader-builds.s3-eu-west-1.amazonaws.com/" + versionDirectory + "app.js?"); b = "https://epaper.bostonglobe.com/html5/reader/builds/" + versionDirectory + "app.js?" + buildguid; } } else { b = "https://epaper.bostonglobe.com/html5/reader/builds/" + versionDirectory + b; } try { g.open("GET", b, !0), g.onreadystatechange = function () { if (4 == g.readyState) { var b = g.status, e = g.responseText; 200 <= b && 300 > b || 304 == b || 0 == b && 0 < e.length ? c(e) : f() } }, g.send(null) } catch (e) { f() } } function P(b, c) { var f = m.createElement("iframe"); v.push({ iframe: f, callback: c }); f.src = b + ".html"; f.style.cssText = "width:0;height:0;border:0;position:absolute;z-index:-999;visibility:hidden"; m.body.appendChild(f)} function K(b, c, f) {var g = !!b.shared; if (b.remote) if ("js" === b.type) {var g = b.uri, e = function () { c("") }, h = document.createElement("script"); h.src = g; h.type = "text/javascript"; h.charset = "UTF-8"; h.onerror = f; "addEventListener" in h ? h.onload = e : "readyState" in h ? h.onreadystatechange = function () { ("loaded" === this.readyState || "complete" === this.readyState) && e() } : h.onload = e; p.appendChild(h)} else f = b.uri, g = document.createElement("link"), g.rel = "stylesheet", g.href = f, p.appendChild(g), c(""); else {if (!g && b.version && b.version.length) {var n = c, a = b.version, z = a.length, u, j; c = function (d) {j = d.substring(0, 1); "/" == j ? d.substring(2, z + 2) !== a && (u = !0) : "f" == j ? d.substring(10, z + 10) !== a && (u = !0) : "." == j && d.substring(1, z + 1) !== a && (u = !0); n(d);} } (g ? P : s)(b.uri, c, f)}} function M(b) { var c = b.data; b = b.source.window; var f, e, l, h; f = 0; for (e = v.length; f < e; f++)if (l = v[f], h = l.iframe, h.contentWindow === b) { l.callback(c); m.body.removeChild(h); v.splice(f, 1); break } } function C(b) { "undefined" != typeof console && (console.error || console.log).call(console, b) } function A(b, c) {/*try{w.setItem(b,c)}catch(f){w&&(f.code==f.QUOTA_EXCEEDED_ERR&&D)&&C("LocalStorage Quota exceeded, cannot store "+b+" locally")}*/ } function x(b) { return null;/*try{return w.getItem(b)}catch(c){return null}*/ } function E(b) {function c(a, b) { var c = a.collection, j = a.index, d = c.length, e; a.ready = !0; a.content = b; for (e = j - 1; 0 <= e; e--)if (a = c[e], !a.filtered && (!a.ready || !a.evaluated)) return; for (e = j; e < d; e++)if (a = c[e], a.ready) a.evaluated || f(a); else break } function f(a) {a.evaluated = !0; if ("js" == a.type) try { a.content = a.content + "\n//# sourceURL\x3d" + a.uri + "\n", eval.call(window, a.content) } catch (b) { C("Error evaluating " + a.uri + " with message: " + b) } else {var c = m.createElement("style"), e; c.type = "text/css"; a.content = a.content + "\n/*# sourceURL\x3d" + a.uri + " */\n"; c.textContent = a.content; "id" in a && (c.id = a.id); "disabled" in a && (c.disabled = a.disabled); e = document.createElement("base"); e.href = a.path.replace(/\/[^\/]*$/, "/"); p.appendChild(e); p.appendChild(c); p.removeChild(e)} delete a.content; 0 == --h && g()} function g() {function a() { h && c() } function c() { var a = l.onUpdated || J; if ("onSetup" in l) l.onSetup(a); else a() } function f() { n.store(); g.forEach(function (a) { A(a.key, a.content) }); c() } function j(a, b) { a.content = b; 0 == --p && (e.status == e.IDLE ? f() : k = f) } function d() {N("online", d, !1); s(r, function (c) {D = n = new t(c); var d; n.assets.forEach(function (a) { d = b.getAsset(a.uri); (!d || a.version !== d.version) && g.push(a) }); p = g.length; 0 == p ? e.status == e.IDLE ? a() : k = a : g.forEach(function (a) {function c() { K(a, function (b) { j(a, b) }) } var d = b.getAsset(a.uri), e = a.path, f = a.update; !d || !f || null === x(a.key) || "delta" != f ? c() : s("deltas/" + e + "/" + d.version + ".json", function (b) {try {var c = a, d; var e = x(a.key), f = H(b); b = []; var g, h, k; if (0 === f.length) d = e; else {h = 0; for (k = f.length; h < k; h++)g = f[h], "number" === typeof g ? b.push(e.substring(g, g + f[++h])) : b.push(g); d = b.join("")} j(c, d)} catch (l) { C("Malformed delta content received for " + a.uri) }}, c)})})} var g = [], h = !1, k = function () { }, m = function () { e.swapCache(); h = !0; k() }, p; N("message", M, !1); if (e.status == e.UPDATEREADY) m(); else if (e.status == e.CHECKING || e.status == e.DOWNLOADING) e.onupdateready = m, e.onnoupdate = e.onobsolete = function () { k() }; !1 !== navigator.onLine ? d() : F("online", d, !1)} var k = b.assets, h = k.length, n; D = b; F("message", M, !1); 0 == h ? g() : k.forEach(function (a) {var b = x(a.key); null === b ? K(a, function (b) {a.remote || A(a.key, b); c(a, b)}, function () { c(a, "") }) : c(a, b)})} function O(b) {if (navigator.userAgent.match(/IEMobile\/10\.0/)) { var c = document.createElement("style"); c.appendChild(document.createTextNode("@media screen and (orientation: portrait) {@-ms-viewport {width: 320px !important;}}@media screen and (orientation: landscape) {@-ms-viewport {width: 560px !important;}}")); document.getElementsByTagName("head")[0].appendChild(c) } c = /MSIE 10/.test(navigator.userAgent) ? /interactive|complete|loading|loaded/ : /interactive|complete|loaded/; null !== m.readyState.match(c) ? E(b) : F("DOMContentLoaded", function () { navigator.standalone ? setTimeout(function () { setTimeout(function () { E(b) }, 1000) }, 1) : setTimeout(function () { E(b) }, 1000) }, !1)} var J = function () { }, v = [], m = k.document, p = m.head || m.getElementsByTagName("head")[0], F = k.addEventListener, N = k.removeEventListener, H = JSON.parse, G = m.createElement("a"), y = m.location, I = y.protocol + "//" + y.hostname + y.pathname + y.search, r = "app.json", L = !1, D, e, w; try { e = k.applicationCache, w = k.localStorage } catch (Q) { } if ("undefined" === typeof k.Ext) var l =k.Ext = {}; l.blink = function (b) { var c = x(b.id + "-" + I + r); B("viewport", "width\x3ddevice-width, initial-scale\x3d1.0, maximum-scale\x3d1.0, minimum-scale\x3d1.0, user-scalable\x3dno"); B("apple-mobile-web-app-capable", "yes"); B("apple-touch-fullscreen", "yes"); c ? (b = new t(c), O(b)) : s(r, function (c) { b = new t(c); b.store(); O(b) }) }})(this); Ext.blink({ id: buildguid });</script> </head> <body class=""> <div class="splashScreenContainer loadingWheel"> <div class="splashScreen splashScreenImage"> <div class='backgroundSplash' style="background-image:url('https://media.pagesuite.com/psapps/images/2c60291d-c20c-4780-9829-b3d9a12687cf/squarelogo.png');position:absolute;left:50%;top:50%;transform:translate3d(-50%, -50%, 0px);-webkit-transform:translate3d(-50%, -50%, 0px);-moz-transform:translate3d(-50%, -50%, 0px);-ms-transform:translate3d(-50%, -50%, 0px);" ></div> </div> <div class="splashScreen splashScreenLoading" style="position:absolute; display:table; width:100%; height:100%;"> <div style="display:table-cell; vertical-align:middle; text-align:center"> <div> <img class="mainSplashLogo" src="https://media.pagesuite.com/psapps/dev/images/79/loading-logo-white.png" style="max-width:75%"> </div> <div class="mainSplashSpinner" style="background-image:url('https://media.pagesuite.com/psapps/dev/images/79/loading.gif'); display:inline-block; background-repeat:no-repeat; background-size:contain; margin:auto"><img class="mainSplashLoading" src="https://media.pagesuite.com/psapps/dev/images/79/loading-graphic_white.png" style="height:40px; margin:8px 10px 5px 5px"></div> <div class="extraContent"></div> </div> </div> <!--<div class="backgroundSponsor" style="background-image:url();"></div>--> <div class="splashScreenSponsor image"> <div id="sponsorImage" class="splashScreenSponsorImage"> <a href="" target="_blank"><div class="splashScreenSponsorContainer" style="background-image:url('');" > </div></a> <a href="" target="_blank"><div class="splashScreenSponsorContainer phone" style="background-image:url('');" > </div></a> </div> <div class="splashscreenSponsorUrl"> <div class="splashScreenSponsorContainer"><iframe width='728' height="90" style='border:none;' scrolling='no' src=""></iframe></div> <div class="splashScreenSponsorContainer phone"><iframe width="320" height="30" style='border:none;' scrolling='no' src=""></iframe></div> </div> <div class="splashScreenSponsorDFP " style="position:absolute;bottom:25px;"> <div id="splashAdvert" style="width: 300px; height: 250px"> </div> </div> </div> </div> <div class="printContainer"> </div> <div style="display: none"> </div> <script> function preventDefaultBehaviour(e) { e.preventDefault(); } $(".splashScreen").on("touchmove", preventDefaultBehaviour); </script> </body> </html>