var firstSpcFetch={"status":"OK","geo":"US","deviceDetected":1,"fiViewerId":"ba815bc7a3ec86bd086b2362b3e082d0","pageViewUniqueId":1427398968421757,"datasource":"LIVE","options":{"cmp_enableintegration":true,"amp":{"initialMinSpacing":0.9,"initialMinSpacingUnits":"vp"},"hb_analytics":true,"has_blocked_urls":true,"has_blocked_urls_slashend":"onlySlashEnd","has_blocked_urls_withparams":"onlyNoParams","notHotDog":{"enabled":false,"selectors":[]},"siteLang":"en","esc":true,"campaignLimitations":{},"eventTracking":{"trackingDomains":[{"host":"cdn.firstimpression.io","type":"full"}],"trackScroll":1,"trackTimeOnPage":1,"probability":12,"cookiename":"fitracking"},"prependScript":"if( (new Date() - new Date(FI.options.builtOn)) \/ (1000*60*60) > 24 ) {\n if(!window.fi_reloaded) { window.fi_reloaded=true;\n \tfetch(\"https:\/\/\" + FI.options.ecdnDomain + \"\/fi_client.js\", {cache: \"reload\"}).then(()=>{ \t\t\n \t clearTimeout(FI.g_clientManager.appendLoopTimeout);\n \t\tvar body = document.getElementsByTagName(\"head\")[0];\n newdiv = document.createElement(\"script\");\n \t\t newdiv.setAttribute(\"type\", \"text\/javascript\");\n \t\t newdiv.setAttribute(\"src\", \"https:\/\/\" + FI.options.ecdnDomain + \"\/fi_client.js\"); \n \t delete FI; delete fipb; delete fiQuery;\n \t body.appendChild(newdiv);\n \t\tthrow (\"Cache problem!\");\n \t});\n \treturn;\n }\n}\n\/*{trackingcode|cookiename:fitracking}*\/\n\nfiQuery(window).on('SPCReturned', function() {\n FI.state.utils = fiUtils = {\n getPlacementsPerCond: function(...cond) {\n var count = 0;\n return fiQuery.map(FI.g_clientManager.placementQueue, function($placement) {\n count = 0;\n for (let i = 0; i < cond.length; i++) {\n if (fiUtils[cond[i].placement]($placement, cond[i].is)) count++;\n }\n if (count == cond.length) return [$placement];\n }); \n },\n enabledExtraOption : function($placement, option) {\n return (typeof $placement.options.extra != 'undefined' && typeof $placement.options.extra[option] != 'undefined' && (typeof $placement.options.extra[option].enabled != 'undefined' && $placement.options.extra[option].enabled || typeof $placement.options.extra[option].enabled == 'undefined')) \n || (typeof $placement.options[option] != 'undefined' && (typeof $placement.options[option].enabled != 'undefined' && $placement.options[option].enabled || typeof $placement.options[option].enabled == 'undefined'));\n },\n enabledExtraValue : function($placement, optionPathAndValueArr) {\n let optionVal = optionPathAndValueArr.length - 1,\n \tplacementOption = typeof $placement.options.extra != 'undefined' ? $placement.options.extra : $placement.options,\n \toptionNotFound = false;\n for (var i = 0; i <= optionPathAndValueArr.length - 2; i++) {\n \tif (typeof placementOption[optionPathAndValueArr[i]] != \"undefined\") \n \t\tplacementOption = placementOption[optionPathAndValueArr[i]];\n \telse {\n \t\toptionNotFound = true;\n \t\tbreak;\n \t} \n }\n return ! optionNotFound && placementOption == optionVal;\n },\n enabledOptionValue : function($placement, optionPathAndValueArr) {\n let optionVal = optionPathAndValueArr.length - 1,\n \tplacementOption = $placement.options;\n \toptionNotFound = false;\n for (var i = 0; i <= optionPathAndValueArr.length - 2; i++) {\n \tif (typeof placementOption[optionPathAndValueArr[i]] != \"undefined\") \n \t\tplacementOption = placementOption[optionPathAndValueArr[i]];\n \telse {\n \t\toptionNotFound = true;\n \t\tbreak;\n \t} \n }\n return ! optionNotFound && placementOption == optionVal;\n },\n multiInstance: function($placement) {\n return $placement.options.totalRenderedInstancesLimitation > 1;\n },\n type : function($placement, type) {\n return $placement.type == type;\n },\n pageErrors: [],\n showAllErrors: function(_module) {\n for (var i = 0; i < this.pageErrors.length; i++) {\n if (typeof _module == \"undefined\" || this.pageErrors[i].module == _module)\n this.console(this.pageErrors[i].message, \"Error\", this.pageErrors[i].module);\n }\n },\n console: function(message, type, _module, placementId, bannerId) {\n FI.console.log(typeof message != \"undefined\" ? message : \"No message here.. This seems odd\", \n typeof placementId != \"undefined\" ? placementId : '',\n typeof bannerId != \"undefined\" ? bannerId : '',\n typeof type != \"undefined\" ? type : 'Misc',\n typeof _module != \"undefined\" ? _module : '')\n },\n pageError: function(message, _module, placement) {\n this.pageErrors.push({\"message\": message, \"module\": _module, \"placement\": placement});\n this.console(message, \"Error\", _module);\n },\n getExtra: function($placement) {\n if (typeof $placement == \"object\" && typeof $placement.options != \"undefined\")\n return typeof $placement.options.extra != \"undefined\" ? $placement.options.extra : $placement.options; \n else if (typeof $placement == \"number\")\n return typeof FI.g_clientManager.getPlacement($placement).options.extra != \"undefined\" ? $placement.options.extra : $placement.options; \n else {\n fiUtils.pageError(\"Invoking getExtra but providing ${$placement} which is not a number or an object\");\n return { \"options\" : { \"extra\": {} } }\n }\n },\n getWebsiteMacro: function(macro) {\n return macro.indexOf(\"{\") == -1 ? macro : null;\n },\n isLastInstance : function($instance) {\n return $instance.instanceId.split('_')[2] == $instance.placement.instances.length - 1;\n },\n isPlacementOptionEnabled: function($instance, option) {\n return typeof $instance.placement.options[option] != \"undefined\" && $instance.placement.options[option][\"enabled\"];\n },\n appenndRecorderDiv: function(recorderClass) {\n if (fiQuery(\"recorder\").length == 0) {\n fiQuery('body').append(`
<\/div>`);\n } else {\n fiQuery(\"recorder\").addClass(`${recorderClass}`);\n }\n },\n detectDeviceOrientation: function () {\n return window.matchMedia(\"(orientation: portrait)\") ? \"portrait\" : \"landscape\";\n },\n\t\t\tgetManupiliationStateByHighestValuePerPlacementType: function(arr, placementType) { \n\t\t\t\tarr = arr.map((state, index, array) => {\n\t\t\t\t\tif (typeof state != \"undefined\") return typeof fiUtils.fixed.manupiliateElementsPerPlacementType[placementType][state.name] != \"undefined\" ? state : '';\n\t\t\t\t}).filter(elem => elem != \"\");\n\n\t\t\t\treturn arr.reduce(function(prev, current) { \n\t\t\t\t\tif (typeof current != \"undefined\") return Math.abs(prev.value) > Math.abs(current.value) ? prev : current;\n\t\t\t\t\treturn Math.abs(prev.value);\n\t\t\t\t});\n\t\t\t},\n setRecorder: function(update) {\n if (fiQuery(\"div#fi_recorder\").length == 0) fiQuery('body').append('
<\/div>');\n if (typeof update != 'undefined' ) fiQuery(\"div#fi_recorder\").addClass(update);\n },\n\t\t\tfixed: {\n\t\t\t\tManipulationState : function(name, CSSKeyValuePair, selector) { \n\t\t\t\t\tthis.name = name;\n\t\t\t\t\t\/\/ Selector not found, let's wait for it\n\t\t\t\t\tif (fiQuery(selector).length == 0) { \n\t\t\t\t\t\tthis.value = fiUtils.fixed.waitForSelector(selector, this, CSSKeyValuePair);\n\t\t\t\t\t\tthis.selector = null;\n\t\t\t\t\t\/\/ We need to pull the value dynamically from the DOM\n\t\t\t\t\t} else if (CSSKeyValuePair.property != null) {\n\t\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\t\tthis.value = fiQuery(CSSKeyValuePair.value)[CSSKeyValuePair.property]();\n\t\t\t\t\t\/\/ Seems selector is found and value is static so let's just move on \n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\t\tthis.value = CSSKeyValuePair.value;\n\t\t\t\t\t}\n\t\t\t\t\tthis.viewable = false;\n\t\t\t\t},\n\t\t\t\tplacementsToManupiliate : [],\n\t\t\t\tmanupiliateElementsPerPlacementType : {\n\t\t\t\t\theaderKick: {\n\t\t\t\t\t\thide: function(value) {\n\t\t\t\t\t\t\tfiQuery('div#FIHeaderKickInner').css({transform: `translateY(${value}px)`});\n\t\t\t\t\t\t\tfiQuery('div#FIHeaderKickAnchor').css({transform: `translateY(${value}px)`});\n\t\t\t\t\t\t\tfiQuery(fiUtils.getWebsiteMacro('{{m:nav_on_scroll}}')).css({transform: `translateY(0px)`});\n\t\t\t\t\t\t}, \n\t\t\t\t\t\tshow: function(value) {\n\t\t\t\t\t\t\tfiQuery('div#FIHeaderKickInner').css({transform: `translateY(0px)`});\n\t\t\t\t\t\t\tfiQuery('div#FIHeaderKickAnchor').css({transform: `translateY(0px)`});\n\t\t\t\t\t\t\tfiQuery(fiUtils.getWebsiteMacro('{{m:nav_on_scroll}}')).css({transform: `translateY(${fiQuery('div#FIHeaderKickAnchor').height()}px)`});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tclose : function(value) {\n\t\t\t\t\t\t FI.console.log(`Resetting all manupiliations on other elements since placement was either closed or reached its end of the waterfall`, ``, ``, `fiUtils.fixed`);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnavBarPush : function(valie) {\n\t\t\t\t\t\t\tfiQuery('div#FIHeaderKickInner').css({transform: `translateY(0px)`});\n\t\t\t\t\t\t\tfiQuery('div#FIHeaderKickAnchor').css({transform: `translateY(0px)`});\n\t\t\t\t\t\t\tfiQuery(fiUtils.getWebsiteMacro('{{m:nav_on_scroll}}')).css({transform: `translateY(${fiQuery('div#FIHeaderKickAnchor').height()}px)`});\n\t\t\t\t\t\t}\n\t\t\t\t\t}, \n\t\t\t\t\tbottomsticky: { \n\t\t\t\t\t\thide: function(value) {\n\t\t\t\t\t\t\tfiQuery('div#FIBottomStickyInner').css({transform: `translateY(${-value}px)`});\n\t\t\t\t\t\t}, \n\t\t\t\t\t\tshow: function(value) {\n\t\t\t\t\t\t\tfiQuery('div#FIBottomStickyInner').css({transform: `translateY(0px)`});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcookieNoticePush: function(value) {\n\t\t\t\t\t\t\tfiQuery('div#FIBottomStickyInner').css({transform: `translateY(${-value}px)`});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbottomBarPush: function(value) {\n\t\t\t\t\t\t\tfiQuery('div#FIBottomStickyInner').css({transform: `translateY(${-value}px)`});\n\t\t\t\t\t\t}\n\t\t\t\t\t}, \n\t\t\t\t\touterdocked: {\n\t\t\t\t\t\thide: function(value) {\n\t\t\t\t\t\t\tfiQuery('div.fi-docked').css({zIndex:`${value}`});\n\t\t\t\t\t\t\tfiQuery('div.FIOnDemandWrapper.fi-docked[style*=\"position: fixed;\"]:not([style*=\"overflow: hidden;\"]').css({transform: `translateY(0px)`});\n\t\t\t\t\t\t}, \n\t\t\t\t\t\tshow: function(value) {\n\t\t\t\t\t\t\tfiQuery('div.fi-docked').css({zIndex: 99998});\n\t\t\t\t\t\t\tfiQuery('div.FIOnDemandWrapper.fi-docked[style*=\"position: fixed;\"]:not([style*=\"overflow: hidden;\"]').css({transform: `translateY(${value}px)`});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnavBarPush: function(value) { \n\t\t\t\t\t\t\tfiQuery('div.FIOnDemandWrapper.fi-docked[style*=\"position: fixed;\"]:not([style*=\"overflow: hidden;\"]').css({zIndex: 99998});\n\t\t\t\t\t\t\tfiQuery('div.FIOnDemandWrapper.fi-docked[style*=\"position: fixed;\"]:not([style*=\"overflow: hidden;\"]').css({transform: `translateY(${value}px)`});\n\t\t\t\t\t\t}\t\t\n\t\t\t\t\t}, \n\t\t\t\t\tdocked: {\n\t\t\t\t\t\thide: function(value) {\n\t\t\t\t\t\t\tfiQuery('div.fi-docked').css({zIndex:`${value}`});\n\t\t\t\t\t\t\tfiQuery('div.FIOnDemandWrapper.fi-docked[style*=\"position: fixed;\"]:not([style*=\"overflow: hidden;\"]').css({transform: `translateY(0px)`});\n\t\t\t\t\t\t}, \n\t\t\t\t\t\tshow: function(value) {\n\t\t\t\t\t\t\tfiQuery('div.fi-docked').css({zIndex: 99998});\n\t\t\t\t\t\t\tfiQuery('div.FIOnDemandWrapper.fi-docked[style*=\"position: fixed;\"]:not([style*=\"overflow: hidden;\"]').css({transform: `translateY(${value}px)`});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tnavBarPush: function(value) {\n\t\t\t\t\t\t\tfiQuery('div.fi-docked').css({zIndex: 99998});\n\t\t\t\t\t\t\tfiQuery('div.FIOnDemandWrapper.fi-docked[style*=\"position: fixed;\"]:not([style*=\"overflow: hidden;\"]').css({transform: `translateY(${value}px)`});\n\t\t\t\t\t\t}\t\n\t\t\t\t\t}, \n\t\t\t\t\thybridDocked: {\n\t\t\t\t\t\tinitStaticStateFailSafeStyle: function () {\n\t\t\t\t\t\t\tfiQuery('body').append('