RBX.extend(RBX.utils,{throttle:function(func,wait,options){var context,args,result,timeout=null,previous=0;if(!options)options={};var later=function(){previous=options.leading===false?0:new Date().getTime();timeout=null;result=func.apply(context,args);if(!timeout)context=args=null};return function(){var now=new Date().getTime();if(!previous&&options.leading===false)previous=now;var remaining=wait-(now-previous);context=this;args=arguments;if(remaining<=0||remaining>wait){if(timeout){clearTimeout(timeout);timeout=null};previous=now;result=func.apply(context,args);if(!timeout)context=args=null}else if(!timeout&&options.trailing!==false)timeout=setTimeout(later,remaining);return result}}});RBX.extend(RBX.utils,(function(){function isBlockInView(top,left,bottom,right){var viewportHeight=$window.height(),viewportWidth=$window.width(),viewportTop=$window.scrollTop(),viewportBottom=viewportTop+viewportHeight,viewportLeft=$(window).scrollLeft(),viewportRight=viewportLeft+viewportWidth,viewportThirdHeight=Math.ceil(viewportHeight*.33),elementHeight=bottom-top,elementWidth=right-left,isViewableVerticle=false,isViewableHorizontal=false;if(top>=viewportTop&&bottom<=viewportBottom){isViewableVerticle=true}else if(top<=viewportTop&&bottom>=viewportBottom){isViewableVerticle=true}else if(top>=viewportTop&&top<=(viewportBottom-elementHeight/2)){isViewableVerticle=true}else if(bottom<=viewportBottom&&bottom>=(viewportTop+elementHeight/2)){isViewableVerticle=true}else if(elementHeight>=viewportHeight)if(bottom>=viewportBottom&&top<=viewportBottom-viewportThirdHeight){isViewableVerticle=true}else if(top<=viewportTop&&bottom>=viewportTop+viewportThirdHeight)isViewableVerticle=true;if(isViewableVerticle)if(left>=viewportLeft&&right<=viewportRight){isViewableHorizontal=true}else if(left<=viewportLeft&&right>=viewportRight){isViewableHorizontal=true}else if(left>=viewportLeft&&left<=(viewportRight-Math.ceil(elementWidth/2))){isViewableVerticle=true}else if(right<=viewportRight&&right>=(viewportLeft+Math.ceil(elementWidth/2)))isViewableVerticle=true;return(isViewableVerticle&&isViewableHorizontal)} function isBlockInFullView(top,left,bottom,right){var viewportHeight=$window.height(),viewportWidth=$window.width(),viewportTop=$window.scrollTop(),viewportBottom=viewportTop+viewportHeight,viewportLeft=$(window).scrollLeft(),viewportRight=viewportLeft+viewportWidth,viewportThirdHeight=Math.ceil(viewportHeight*.33),elementWidth=right-left,isViewableVerticle=false,isViewableHorizontal=false;if(top>=viewportTop&&bottom<=viewportBottom&&left>=viewportLeft&&right<=viewportRight)return true} function isElementInView(elem){var $elem=$(elem),top=$elem.offset().top,left=$elem.offset().left,bottom=top+$elem.outerHeight(),right=left+$elem.outerWidth();return isBlockInView(top,left,bottom,right)} function isElementInFullView(elem){var $elem=$(elem),top=$elem.offset().top,left=$elem.offset().left,bottom=top+$elem.outerHeight(),right=left+$elem.outerWidth();return isBlockInFullView(top,left,bottom,right)};return{isElementInView:isElementInView,isElementInFullView:isElementInFullView,isBlockInView:isBlockInView,isBlockInFullView:isBlockInFullView}})());RBX.extend(RBX.utils,{lzstring:function(){function o(o,r){if(!t[o]){t[o]={};for(var n=0;ne;e++){var s=r.charCodeAt(e);n[2*e]=s>>>8,n[2*e+1]=s%256};return n},decompressFromUint8Array:function(o){if(null===o||void(0)===o)return i.decompress(o);for(var n=new Array(o.length/2),e=0,t=n.length;t>e;e++)n[e]=256*o[2*e]+o[2*e+1];var s=[];return n.forEach(function(o){s.push(r(o))}),i.decompress(s.join(""))},compressToEncodedURIComponent:function(o){return null==o?"":i._compress(o,6,function(o){return e.charAt(o)})},decompressFromEncodedURIComponent:function(r){return null==r?"":""==r?null:(r=r.replace(/ /g,"+"),i._decompress(r.length,32,function(n){return o(e,r.charAt(n))}))},compress:function(o){return i._compress(o,16,function(o){return r(o)})},_compress:function(o,r,n){if(null==o)return"";var e,t,i,s={},p={},u="",c="",a="",l=2,f=3,h=2,d=[],m=0,v=0;for(i=0;ie;e++)m<<=1,v==r-1?(v=0,d.push(n(m)),m=0):v++;for(t=a.charCodeAt(0),e=0;8>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}else{for(t=1,e=0;h>e;e++)m=m<<1|t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t=0;for(t=a.charCodeAt(0),e=0;16>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1};l--,0==l&&(l=Math.pow(2,h),h++),delete p[a]}else for(t=s[a],e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;l--,0==l&&(l=Math.pow(2,h),h++),s[c]=f++,a=String(u)};if(""!==a){if(Object.prototype.hasOwnProperty.call(p,a)){if(a.charCodeAt(0)<256){for(e=0;h>e;e++)m<<=1,v==r-1?(v=0,d.push(n(m)),m=0):v++;for(t=a.charCodeAt(0),e=0;8>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}else{for(t=1,e=0;h>e;e++)m=m<<1|t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t=0;for(t=a.charCodeAt(0),e=0;16>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1};l--,0==l&&(l=Math.pow(2,h),h++),delete p[a]}else for(t=s[a],e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;l--,0==l&&(l=Math.pow(2,h),h++)};for(t=2,e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;for(;;){if(m<<=1,v==r-1){d.push(n(m));break};v++};return d.join("")},decompress:function(o){return null==o?"":""==o?null:i._decompress(o.length,32768,function(r){return o.charCodeAt(r)})},_decompress:function(o,n,e){var t,i,s,p,u,c,a,l,f=[],h=4,d=4,m=3,v="",w=[],A={val:e(0),position:n,index:1};for(i=0;3>i;i+=1)f[i]=i;for(p=0,c=Math.pow(2,2),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;switch(t=p){case 0:for(p=0,c=Math.pow(2,8),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;l=r(p);break;case 1:for(p=0,c=Math.pow(2,16),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;l=r(p);break;case 2:return""};for(f[3]=l,s=l,w.push(l);;){if(A.index>o)return"";for(p=0,c=Math.pow(2,m),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;switch(l=p){case 0:for(p=0,c=Math.pow(2,8),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;f[d++]=r(p),l=d-1,h--;break;case 1:for(p=0,c=Math.pow(2,16),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;f[d++]=r(p),l=d-1,h--;break;case 2:return w.join("")};if(0==h&&(h=Math.pow(2,m),m++),f[l]){v=f[l]}else{if(l!==d)return null;v=s+s.charAt(0)};w.push(v),f[d++]=s+v.charAt(0),h--,s=v,0==h&&(h=Math.pow(2,m),m++)}}};return i}()});if(typeof Object.assign!='function')Object.assign=function(target,varArgs){'use strict';if(target==null)throw new TypeError('Cannot convert undefined or null to object');var to=Object(target);for(var index=1;index=0;f=this.events[e][--fi])if(f===handler)this.events[e].splice(fi,1);if(this.events[e].length===0)delete this.events[e]};return this};googletag.trigger=function(event,parameters){if(!this.events[event]||this.events[event].length===0)return this;var parameters=parameters||[],fi=0,f=this.events[event][fi];for(fi,f;fi=100||scrollOffset<=-100){if(currentScrollTopevent.slot.custom.getModule().offset().top){event.slot.custom.renderedLate=true}else if(!scrollingDown&&event.slot.custom.getModule().offset().top>$window.scrollTop()+$window.height()-(event.slot.custom.getModule().height()/2)){event.slot.custom.renderedLate=true}else event.slot.custom.renderedLate=false;event.slot.custom.getModule().addClass("ad--rendered");event.slot.custom.getModule().find(" > [id]:first").height("");var isNofill=false,nofillLineItems=[4359300433];if(event.slot.getResponseInformation()&&event.slot.getResponseInformation().advertiserId===38883126&&nofillLineItems.indexOf(event.slot.getResponseInformation().lineItemId)!==-1)isNofill=true;if(!event.slot.getResponseInformation()||isNofill){event.slot.custom.nofill=true;event.slot.custom.getModule().addClass("ad--nofill");if(event.slot.custom.getModule().offset().top>=$window.scrollTop()+($window.height()*.8))event.slot.custom.getModule().addClass("ad--nofill-collapse")};RBX.modules.ad.Manager.logStats('rendered',event.slot);if(event.slot.custom.refreshed)RBX.modules.ad.Manager.logStats('refreshed')});googletag.pubads().addEventListener("impressionViewable",function(event){updateScrollStatus();RBX.debug("ad.dfp: gpt-impressionViewable:",event.slot.getSlotElementId(),(performance.now()-timers.rendered[event.slot.getSlotElementId()])/1e3);if(!event.slot.custom)return;event.slot.custom.viewed=performance.now();event.slot.custom.getModule().addClass("ad--viewed");event.slot.custom.viewedDirection=scrollingDown?1:-1;RBX.modules.ad.Manager.logStats('viewed',event.slot)})})})();var AppContentData=AppContentData||(function(){var moduleName='js_app_contentdata-0',ContentDataController=function(){var pageData=__page_data__||{},data=pageData[moduleName],actionHandlers=function(){return{'contentData::getCategories':this.getCategories,'contentData::getTitle':this.getTitle}}.bind(this),bindActionHandlers=function(){actionHandlers=actionHandlers();var keys=Object.keys(actionHandlers);for(var i=0;itopPos-dockDistance)if(!$ad.is('.ad--viewed')||($adTarget.attr('style')||'').match(/transform/)){$ad.addClass('js--docked');if(config.dock_short_ads==='yes-fixed'){$ad.height($ad.height());$adTarget.stop(true).css({transition:'none',background:'white',transform:'translate(0,0)',position:'fixed',top:($header.outerHeight()-5),left:0,right:0})}else if(config.dock_short_ads==='yes-translate')$adTarget.stop(true).css({transition:'none',background:'white',transform:'translate3d(0, '+(topPos-$ad.offset().top-5)+'px, 0)'});return};if($ad.is('.js--docked')){if(config.dock_short_ads==='yes-fixed'){$adTarget.stop(true).animate({top:-$adTarget.height()},1e3,function(){$adTarget.stop(true).css({transform:'',position:'',top:'',left:'',right:''})})}else $adTarget.stop(true).css({transition:'all 2s',transform:'',position:'',top:'',left:'',right:''});$ad.removeClass('js--docked')}})},100,{leading:true,trailing:true}))}})();RBX.modules.ad_unit_injector=(function(){window._gaq=window._gaq||[];var defaults={adunit:"",sizes:[]},baseTemplate='
' function AdUnitInjector(instance_config){var config=$.extend({},defaults,instance_config||{}),template=baseTemplate;try{if(config.config_override_js_var){var config_override=window[config.config_override_js_var];config.overrides={};for(var k in config_override){config.overrides[k]={original:config[k],override:config_override[k]};config[k]=config_override[k]}}}catch(e){};var screenHeight=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;if(typeof config.ad_distance!=="number")if(parseInt(config.ad_distance)){if(config.ad_distance.search&&config.ad_distance.search("vh")!==-1){config.ad_distance=screenHeight*(parseInt(config.ad_distance)/100)}else config.ad_distance=parseInt(config.ad_distance)}else config.ad_distance=screenHeight*0.75;config.ad_distance=Math.floor(config.ad_distance);if(config.ad_distance_mutator&&config.ad_distance_mutator.multiplier){config.ad_distance_mutator.enabled=true;config.ad_distance_mutator.ad_distance=config.ad_distance;config.ad_distance=config.ad_distance*config.ad_distance_mutator.multiplier;config.ad_distance_mutator.increment=Math.floor((config.ad_distance_mutator.ad_distance-config.ad_distance)/config.ad_distance_mutator.ad_count)}else config.ad_distance_mutator.enabled=false;RBX.debug("ad.unit.injector: config",config);if(!config.adunit||!config.sizes.length){RBX.error("ad_unit_injector missing adunit or sizes",config);return false};var $parents=$(config.parent_selector).not(".js--ad-injector-root");$parents.addClass('js--ad-injector-root js--injecting');if(!$parents.length){if(!config.queued){RBX.warn("ad.unit.injector: parent not found, queueing init for DOMContentLoaded.","("+config.parent_selector+")");setTimeout(function(){$(function(){config.queued=true;new AdUnitInjector(config)})},10)}else RBX.warn("ad.unit.injector: parent not found.","("+config.parent_selector+")");return};$parents.each(function(){var $parent=$(this),adMetrics=$parent.attr('data-rbx-am'),$sections=$parent.find(config.section_selector);addClasses($parent,$sections);splitLongText($parent,$sections);$sections=$parent.find(".js--section");if(!config.use_viewability_metrics||!adMetrics){injectAds($parent,$sections)}else{adMetrics=JSON.parse(adMetrics);var adCount=0,$sectionsWithMetrics=$sections.filter('[data-rbx-am]');if($sectionsWithMetrics.length){var sectionMetrics=[],metricsTotal=0;$sectionsWithMetrics.each(function(){var metrics=$(this).attr('data-rbx-am');if(metrics){metrics=JSON.parse(metrics);if(metrics.v){var v=parseInt(metrics.v);metricsTotal+=v;v=v-(v%5);sectionMetrics.push(v)}}});var eventData={has_metrics:parseInt($sectionsWithMetrics.length/$sections.length*100)/100,avg_metric:parseInt(metricsTotal/$sectionsWithMetrics.length)/100};_gaq.push(['_trackEvent','Ad Tech Experiments','used_viewability_metrics',JSON.stringify(eventData)]);RBX.debug('ad.unit.injector: Ad Tech Experiments, used_viewability_metrics',eventData);var viewabilityPercent=95;while(viewabilityPercent>=50&&RBX.modules.ad.Manager.getAllIds().length0&§ionCount>=config.sections_before_ads){isValidSection=true}else if((adCount>0||config.sections_before_ads===0)&&distance>=config.ad_distance){isValidSection=true}else isValidSection=false;if(isValidSection)if(($prevAd.length||$nextAd.length)&&distanceFromAd='+viewabilityPercent+'%',$ad[0]);if(config.ad_distance_mutator.enabled){RBX.debug('ad.unit.injector: ad_distance mutated',config.ad_distance,config.ad_distance_mutator);if(adCountscreenHeight*0.33){var children=$section.children();if($section.children().length===1&&$section.find(" > p").length){var $p=$section.find(" > p");if($p.text()===$p.html()){var text=$.trim($p.text());text=text.replace(/(\b[a-z]{2,}[\.\?\!]+)\s+/g,"$1");var sentences=text.split(//g),blocks=[];if(sentences.length>=2){var html="";blocks.push(sentences.slice(0,Math.floor(sentences.length/2)));blocks.push(sentences.slice(Math.floor(sentences.length/2)));for(var i in blocks){if(blocks[i].join(" ").length<100)return;var $newSection=$section.clone();$newSection.addClass("js--text-split");var $newP=$("

").text(blocks[i].join(" "));$newSection.html($newP);html+=$newSection[0].outerHTML};$section.replaceWith(html)}}}}})}};return{init:function(config){new AdUnitInjector(config)}}})()