1var commonUtils={hasClass:function(node,className){if(node.nodeType!==Node.ELEMENT_NODE){return!1} 2if(node.classList){return node.classList.contains(className)} 3var classNames=(node.getAttribute('class')||'').split(/\s/);return classNames.indexOf(className)>=0},addClassTo:function(node,className){if(node.nodeType!==Node.ELEMENT_NODE){return} 4if(!commonUtils.hasClass(node,className)){if(node.classList){node.classList.add(className)}else{node.className=(node.className||'')+' '+className}}},removeClassFrom:function(node,className){if(node.nodeType!==Node.ELEMENT_NODE){return} 5if(commonUtils.hasClass(node,className)){if(node.classList){node.classList.remove(className)}else{var classNames=(node.getAttribute('class')||'').split(' ');var index=classNames.indexOf(className);if(index>=0){classNames.splice(index,1)} 6node.setAttribute('class',classNames.join(' '))}}},getImageWidth:function(img,onServer){if(img.jquery){img=img[0]} 7var result=null;if(onServer){var pfDataWidth=img.getAttribute('pf-data-width')||img.getAttribute('data-pf_rect_width');if(pfDataWidth){result=parseInt(pfDataWidth,10)}}else if(img.getAttribute('data-pf_rect_width')){result=parseInt(img.getAttribute('data-pf_rect_width'),10)} 8if(result===null||result===0||typeof result!='number'||isNaN(result)){result=img.getBoundingClientRect().width} 9return result},getImageHeight:function(img,onServer){if(img.jquery){img=img[0]} 10var result=null;if(onServer){var pfDataHeight=img.getAttribute('pf-data-height')||img.getAttribute('data-pf_rect_height');if(pfDataHeight){result=parseInt(pfDataHeight,10)}}else if(img.getAttribute('data-pf_rect_height')){result=parseInt(img.getAttribute('data-pf_rect_height'),10)} 11if(result===null||result===0||typeof result!='number'||isNaN(result)){result=img.getBoundingClientRect().height} 12return result},MAX_SVG_SIZE:1000,MAX_SVG_ICON_SIZE:21,ICON_REGEXP:/icon/i,svgMaxValue:function(svg){return this.ICON_REGEXP.test(svg.getAttribute('class')||'')?this.MAX_SVG_ICON_SIZE:this.MAX_SVG_SIZE},svgViewBox:function(svg){var viewBox=svg.getAttribute('viewBox');if(viewBox){var viewBoxValues=viewBox.split(' ');if(viewBoxValues.length===4){return{width:parseInt(viewBoxValues[2],10),height:parseInt(viewBoxValues[3],10)}}} 13return{}},INFINITY:1000000,getSvgImageWidth:function(svg,onServer){var result=this.getImageWidth(svg,onServer)||this.INFINITY;var maxValue=this.svgMaxValue(svg);var viewBoxValue=this.svgViewBox(svg).width||this.INFINITY;return Math.min(result,maxValue,viewBoxValue)},getSvgImageHeight:function(svg,onServer){var result=this.getImageHeight(svg,onServer);var maxValue=this.svgMaxValue(svg);var viewBoxValue=this.svgViewBox(svg).height||this.INFINITY;return Math.min(result,maxValue,viewBoxValue)},getTopWrapper:function(node){var parent=node.parentNode;if(parent.childNodes.length>1){return node} 14return this.getTopWrapper(parent)},selectorsNotToBeRemoved:['.copyright','#copyright','.delete-no','.delete-off','.pf-author','.print-content','#print-content','.pf-date','#pf-date','.pf-title','.pf-footer','.print-header','.print-footer','.print-yes','.pf-content','#pf-content',],isDeletableElement:(function(){var CLICK_TO_DEL_ELEMENTS='small, footer, header, aside, details, dialog, figure, nav, summary, twitter-widget, p, img, blockquote, h1, h2, h3, h4, h5, h6, ol, ul, li, a, table, td, pre, span, code, dl, dt, dd, hr, div.pf-caption, video, figcaption, data';var MANY_ELEMENTS_THRESHOLD=15;return function isDeletableElement(node){return(!commonUtils.hasClass(node,'non-delete')&&!$(node).find(commonUtils.selectorsNotToBeRemoved.join(', ')).length&&(node.matches(CLICK_TO_DEL_ELEMENTS)||$(node).find('*:visible').length<=MANY_ELEMENTS_THRESHOLD))}})(),resizeImageCssClass:function(value){return'pf-size-'+value.replace('-size','').replace('-images','')},addCSS:function(css,doc,useBody){var tagName=useBody?'body':'head';var element=doc.getElementsByTagName(tagName)[0];var style=doc.createElement('style');style.type='text/css';style.setAttribute('name','pf-style');if(style.styleSheet){style.styleSheet.cssText=css}else{style.appendChild(doc.createTextNode(css))} 15element.appendChild(style)},createIframe:function(doc){var iframe=doc.createElement('iframe');iframe.frameBorder='0';iframe.allowTransparency='true';return iframe},loadHtmlInIframe:function(doc,iframe,html){var dom,idoc;try{idoc=iframe.contentWindow.document}catch(e){dom=doc.domain;
15iframe.src="javascript:var d=document.open();d.domain='"+dom+"';void(0);";idoc=iframe.contentWindow.document} 16idoc.write(html);idoc.close()}};function UUID(){var d=new Date().getTime();var d2=((typeof performance!=='undefined')&&performance.now&&(performance.now()*1000))||0;return'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g,function(c){var r=Math.random()*16;if(d>0){r=(d+r)%16|0;d=Math.floor(d/16)}else{r=(d2+r)%16|0;d2=Math.floor(d2/16)} 17return(c==='x'?r:(r&0x3|0x8)).toString(16)})};function toCdnUrl(url){if(url.indexOf('//')===0){url=pfData.config.protocol+url} 18var cdnPrefix=pfData.config.hosts.cdn;if(url.indexOf(cdnPrefix)===0){return url} 19return cdnPrefix+url};var persistComputedStylesAndRect=(function(){var STYLES_TO_SAVE=['display','visibility'];var RECT_TO_SAVE=['width','height'];var PREFIX='pf';function persistObject(node,object,propsToSave,objPrefix){for(var i=0,length=propsToSave.length;i<length;i++){var prop=propsToSave[i];var key=[PREFIX,objPrefix,prop].join('_');node.dataset[key]=object[prop]}} 20function parentIsNotVisible(node){var parent=node.parentElement;if(!parent){return!1} 21return parent.getAttribute('data-pf_style_display')==='none'||parent.getAttribute('data-pf_style_visibility')==='hidden'} 22return function persistComputedStylesAndRect(node){if(parentIsNotVisible(node)){node.dataset.pf_style_display='none';node.dataset.pf_style_visibility='hidden';return} 23var style=node.currentStyle||window.getComputedStyle(node);if(style){persistObject(node,style,STYLES_TO_SAVE,'style')} 24var rect=node.getBoundingClientRect&&node.getBoundingClientRect();var nodeName=node.nodeName.toUpperCase();if(nodeName==='IMG'||nodeName==='SVG'||nodeName==='IFRAME'){if(rect){persistObject(node,rect,RECT_TO_SAVE,'rect')}}}})();var toAbsoluteUrl=(function(){var absoluteUrlRegexp=/^https?:\/\//i;return function(src,pfConfigLocation){if(!src){return src} 25var js=['javascript',':'].join('');if(src.startsWith(js)){return src}else if(src.startsWith('#')){return src}else if(absoluteUrlRegexp.test(src)){return src}else if(src.startsWith('//')){return pfConfigLocation.protocol+src}else{var imageDomain=pfConfigLocation.protocol+'//'+pfConfigLocation.host;if(!src.startsWith('/')){src='/'+src} 26return imageDomain+src}}})();var messageBus=(function(){var windowMappings={algo:null,core:null,root:null};var setupDone=!1;var connectionName;function findFrameWindow(name,rootWindow){for(var i=0;i<rootWindow.frames.length;i++){var frame=rootWindow.frames[i];try{if(frame.name===name){return frame}}catch(e){}} 27var iframe=rootWindow.document.querySelector("iframe[name='"+name+"']");if(iframe){return iframe.contentWindow}} 28function findDestinationWindow(name){var windowGetter=windowMappings[name];if(windowGetter){return windowGetter()} 29switch(connectionName){case "algo":windowMappings.root=function(){return window.parent.parent};windowMappings.core=function(){return window.parent};windowMappings.algo=function(){return window};break;case "pf-core":windowMappings.root=function(){return window.parent};windowMappings.core=function(){return window};windowMappings.algo=function(){return findFrameWindow('algo',window)};break;case "pdf_iframe":windowMappings.core=function(){return window.parent};break;default:var coreWindow=function(){return findFrameWindow('pf-core',window)};windowMappings.root=function(){return window};windowMappings.core=coreWindow;windowMappings.algo=function(){return findFrameWindow('algo',coreWindow())};break} 30return windowMappings[name]()} 31return{postMessage:function(destination,type,payload,onError){var destinationWindow=findDestinationWindow(destination);if(!destinationWindow){if(onError){onError()} 32return} 33destinationWindow.postMessage({type:type,payload:payload},'*')},listen:function(name,handlers,onError){if(setupDone){return} 34connectionName=name;window.addEventListener('message',function(event){try{var data=event.data;if(!data){return} 35var type=data.type;if(!type){return} 36var handler=handlers[type];if(!handler){return} 37var payload=data.payload;handler(payload)}catch(e){if(onError){onError(e)}else{throw e}}});setupDone=!0},}})();var logger=(function(){var METHODS=['log','error','time','timeEnd'];var NOOP=function(){};function logEnabled(pfData){return(pfData.config.environment==="development"||pfData.config.environment==='test'||pfData.config.pfEnableLog||pfData.config.urls.page.indexOf("pfdebug=1")>=0)} 38var result={init:function(pfData){for(var i=0;i<METHODS.length;i++){var functionName=METHODS[i];if(logEnabled(pfData)){result[functionName]=Function.prototype.bind.call(console[functionName],console)}else{result[functionName]=NOOP}}},};for(var i=0;i<METHODS.length;i++){var functionName=METHODS[i];result[functionName]=Function.prototype.bind.call(console[functionName],console)} 39return result})();var pfRedirect=(function(){return function(pfHost,userSettings,url){var components=['source=cs','url='+encodeURIComponent(url)];
39for(var config in userSettings){var setting=userSettings[config];if(typeof setting==='object'&&setting.value){components.push(config+'='+encodeURIComponent(setting.value))}else if(typeof setting!=='undefined'){components.push(config+'='+encodeURIComponent(setting))}} 40return pfHost+'/print/?'+components.join('&')}})();var printfriendlyOptionsParser=(function(){var META_REGEXP=/meta\[(\w+)=['"]([^'"]+)['"]\]/i;var __printfriendlyOptionsElement;var printfriendlyOptions=function(){__printfriendlyOptionsElement=__printfriendlyOptionsElement||document.querySelector('printfriendly-options');return __printfriendlyOptionsElement};var parseAttribute=function(attrValue){var result={};if(!attrValue){return result} 41var attrValuePieces=attrValue.trim().split(';');for(var i=0;i<attrValuePieces.length;i++){var element=attrValuePieces[i].trim();if(element){var splitPoint=element.indexOf('=');var key=element.slice(0,splitPoint).trim();var value=element.slice(splitPoint+1).trim();if(key&&value){if(value.startsWith('meta')){var match=value.match(META_REGEXP);if(match){result[key]={type:'meta',attributeName:match[1],attributeValue:match[2],value:value}}}else{result[key]={type:'selector',value:value}}}}} 42return result};return{selectors:function(){var result={};var options=printfriendlyOptions();if(!options){return result} 43var printfriendlyOptionsValue=options.getAttribute('data-selectors')||options.getAttribute('data-content');var parsedAttributeResult=parseAttribute(printfriendlyOptionsValue);if(parsedAttributeResult.contentSelectors){result.contentSelectors=parsedAttributeResult.contentSelectors} 44if(parsedAttributeResult.titleSelector){result.titleSelector=parsedAttributeResult.titleSelector} 45if(parsedAttributeResult.primaryImageSelector){result.primaryImageSelector=parsedAttributeResult.primaryImageSelector} 46if(parsedAttributeResult.authorSelector){result.authorSelector=parsedAttributeResult.authorSelector} 47if(parsedAttributeResult.dateSelector){result.dateSelector=parsedAttributeResult.dateSelector} 48if(parsedAttributeResult.removeSelectors){result.removeSelectors=parsedAttributeResult.removeSelectors} 49return result},contentFeatures:function(){var result={primaryImage:'all',fetchOriginalPage:'default'};var options=printfriendlyOptions();if(!options){return result} 50var contentFeaturesValue=options.getAttribute('data-content-features');var parsedAttributeResult=parseAttribute(contentFeaturesValue);if(parsedAttributeResult.showHiddenContent){result.showHiddenContent=parsedAttributeResult.showHiddenContent.value} 51if(parsedAttributeResult.customCSSURL){result.customCSSURL=parsedAttributeResult.customCSSURL.value} 52if(parsedAttributeResult.disablePDF){result.disablePDF=parsedAttributeResult.disablePDF.value} 53if(parsedAttributeResult.disablePrint){result.disablePrint=parsedAttributeResult.disablePrint.value} 54if(parsedAttributeResult.disableEmail){result.disableEmail=parsedAttributeResult.disableEmail.value} 55if(parsedAttributeResult.disableClickToDel){result.disableClickToDel=parsedAttributeResult.disableClickToDel.value} 56if(parsedAttributeResult.imageDisplayStyle){result.imageDisplayStyle=parsedAttributeResult.imageDisplayStyle.value} 57if(parsedAttributeResult.hideImages&&parsedAttributeResult.hideImages.value==='1'){result.imagesSize='remove-images'} 58if(parsedAttributeResult.headerImageUrl){result.headerImageUrl=parsedAttributeResult.headerImageUrl.value} 59if(parsedAttributeResult.headerTagline){result.headerTagline=parsedAttributeResult.headerTagline.value} 60if(parsedAttributeResult.encodeImages){result.encodeImages=parsedAttributeResult.encodeImages.value==='1'} 61if(parsedAttributeResult.primaryImage){result.primaryImage=parsedAttributeResult.primaryImage} 62if(parsedAttributeResult.fetchOriginalPage){result.fetchOriginalPage=parsedAttributeResult.fetchOriginalPage.value} 63if(parsedAttributeResult.keepStyle){result.keepStyle=parsedAttributeResult.keepStyle.value} 64if(parsedAttributeResult.bgImageUrlSupport){result.bgImageUrlSupport=parsedAttributeResult.bgImageUrlSupport.value} 65return result},fallbackStrategy:function(){var result='algo';var options=printfriendlyOptions();if(!options){return result} 66var fallbackStrategyValue=options.getAttribute('data-fallback-strategy');if(!fallbackStrategyValue){return result} 67result=fallbackStrategyValue.trim();return result}}})();var OriginalPageFetch=(function(){var __fetchOriginalPageCallbacksQueue=[];var __fetchOriginalPageResult=null;function triggerCallbacks(){for(var i=0;i<__fetchOriginalPageCallbacksQueue.length;i++){var callback=__fetchOriginalPageCallbacksQueue[i];callback(__fetchOriginalPageResult)}} 68return function(pfData,callback){if(__fetchOriginalPageResult){if(callback){callback(__fetchOriginalPageResult)} 69return} 70if(__fetchOriginalPageCallbacksQueue>0){if(callback){__fetchOriginalPageCallbacksQueue.push(callback)} 71return} 72if(callback){__fetchOriginalPageCallbacksQueue.push(callback)} 73var isEnabled=!1;if(pfData.userSettings.fetchOriginalPage==='default'){isEnabled=pfData.config.isExtension||pfData.config.isBookmarklet}else{isEnabled=pfData.userSettings.fetchOriginalPage==='yes'} 74if(!isEnabled){__fetchOriginalPageResult={status:'disabled'};triggerCallbacks();return} 75var xhr=new XMLHttpRequest();xhr.open('GET',pfData.page.location.href);xhr.timeout=5000;xhr.onload=function(){if(__fetchOriginalPageResult){return} 76__fetchOriginalPageResult={status:'success',responseText:xhr.responseText,headers:{CSP:xhr.getResponseHeader('Content-Security-Policy')}};triggerCallbacks()};xhr.timeout=function(){if(__fetchOriginalPageResult){return} 77__fetchOriginalPageResult={status:'timeout'};triggerCallbacks()};xhr.send()}})();var PF_VERSION='client';(function(){var dataElement=document.getElementById("printfriendly-data");if(dataElement){var jsonData=JSON.parse(dataElement.getAttribute('data'));window.pfstyle=jsonData.pfstyle;window.pfOptions=jsonData.pfOptions;window.pfShowHiddenContent=jsonData.pfShowHiddenContent} 78if(window.wrappedJSObject&&window.wrappedJSObject.extensionPath){var originalWindow=window.wrappedJSObject;window.extensionId=originalWindow.extensionId;
78window.extensionRootTabId=originalWindow.extensionRootTabId;window.extensionPath=originalWindow.extensionPath;window.extensionPageSize=originalWindow.extensionPageSize;window.extensionFingerprint=originalWindow.extensionFingerprint;window.pfstyle=originalWindow.pfstyle;window.pfOptions=originalWindow.pfOptions;window.pfShowHiddenContent=originalWindow.pfShowHiddenContent}})();var pfMod=window.pfMod||(function(window,undef){var doc=window.document;var protocol='https:';messageBus.listen('',{PfCoreLoaded:function(){messageBus.postMessage('core','PfStartCore',{pfData:pf.pfData,dsData:pf.dsData})},PfExtensionCoreLoaded:function(){messageBus.postMessage('core','PfLoadCore',{pfData:pf.pfData})},PfClosePreview:function(){pf.closePreview()},PfAddCSS:function(payload){commonUtils.addCSS(payload.css,doc,payload.useBody)},PfRestoreStyles:function(){docHelper.restoreStyles()},PfAddViewPortTag:function(){docHelper.addViewPortTag()},PfScrollTop:function(){window.scrollTo(0,0)},PfFinished:function(payload){pf.hasContent=payload.hasContent;pf.finished=!0},PfOriginalPageFetch:function(){OriginalPageFetch(pfMod.pfData,function(data){messageBus.postMessage('core','PfOriginalPageFetchResult',data)})},PfImageToBase64:function(payload){var xhr=new XMLHttpRequest();xhr.onload=function(){var reader=new FileReader();reader.onloadend=function(){messageBus.postMessage('core','PfImageToBase64Hook',{id:payload.id,state:'success',data:reader.result})};reader.readAsDataURL(xhr.response)};xhr.onerror=function(){messageBus.postMessage('core','PfImageToBase64Hook',{id:payload.id,state:'error',data:payload.url})};xhr.open('GET',payload.url);xhr.responseType='blob';xhr.send()},PfRedirectIfNecessary:function(payload){pf.dsData=payload.dsData;var redirectCheck=pf.runRedirectChecks();switch(redirectCheck.action){case 'redirect':pf.redirect();break;case 'proceed':messageBus.postMessage('core','PfLaunchCore');break}}},function(e){logger.error(e);pf.finished=!0});var defaultConfig={environment:'production',disableUI:!1,protocol:protocol,dir:'ltr',usingBM:!1,maxImageWidth:750,filePath:'/assets/',platform:'unknown',enablePrintOnly:!1,hosts:{cdn:protocol+'//cdn.printfriendly.com',pf:'https://www.printfriendly.com',ds:'https://www.printfriendly.com',translations:'https://www.printfriendly.com',ds_cdn:'https://www.printfriendly.com',pdf:'https://pdf.printfriendly.com',email:'https://www.printfriendly.com',page:window.location.host.split(':')[0]},domains:{page:window.location.host.split(':')[0].split('www.').pop()}};var utils={isBookmarklet:function(){return(window.pfstyle&&window.pfstyle!=='wp')},removeEmailsFromUrl:function(url){url=url.split('?')[0];var parts=url.split('/');for(var i=parts.length;i-->0;){var foundIndex=parts[i].indexOf('@');if(foundIndex>0){parts.splice(i,1)}} 79return parts.join('/')},ogImageUrl:function(){var url='';var ogImageElement=document.querySelector&&document.querySelector('meta[property="og:image"]');if(ogImageElement&&ogImageElement.content){url=ogImageElement.content} 80return url},isWix:function(){return utils.ogImageUrl().indexOf('wixstatic.com')!==-1},isOverBlog:function(){return utils.ogImageUrl().indexOf('over-blog-kiwi.com')!==-1},isLocalHost:function(){var host=window.location.host;var hostName=window.location.hostname;return host.indexOf(':')!==-1||!!hostName.match(/\d+\.\d+\.\d+\.\d+/)||hostName==='localhost'||!!hostName.split('.').pop().match(/invalid|test|example|localhost|dev/)}};var docHelper={addViewPortTag:function(){var head=doc.getElementsByTagName('head')[0];var meta=doc.querySelector("meta[name=viewport]");if(!meta){meta=doc.createElement('meta');meta.name='viewport'} 81meta.content='width=device-width, initial-scale=1';head.appendChild(meta)},restoreStyles:function(){var elements=document.getElementsByName("pf-style");for(var index=elements.length-1;index>=0;index--){elements[index].parentNode.removeChild(elements[index])}}};var dom={isReady:!1,readyBound:!1,ready:function(){if(!dom.isReady){if(!document.body){return setTimeout(dom.ready,13)} 82dom.isReady=!0;dom.readyFunc.call()}},doScrollCheck:function(){if(dom.isReady){return} 83try{document.documentElement.doScroll("left")}catch(e){return setTimeout(dom.doScrollCheck,50)} 84dom.detach();dom.ready()},detach:function(){if(document.addEventListener){document.removeEventListener("DOMContentLoaded",dom.completed,!1);window.removeEventListener("load",dom.completed,!1)}else if(document.attachEvent){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",dom.completed);window.detachEvent("onload",dom.completed)}} 85if(this.raceTimeoutId){clearTimeout(this.raceTimeoutId)}},completed:function(event){if(document.addEventListener||event.type==="load"||document.readyState==="complete"){dom.detach();dom.ready()}},bindReady:function(){if(dom.readyBound) 86return;dom.readyBound=!0;if(document.readyState==="complete"){return dom.ready()} 87if(!pf.onServer){this.raceTimeoutId=setTimeout(function(){dom.detach();dom.ready()},1500)} 88if(document.addEventListener){document.addEventListener("DOMContentLoaded",dom.completed,!1);window.addEventListener("load",dom.completed,!1)}else if(document.attachEvent){document.attachEvent("onreadystatechange",dom.completed);window.attachEvent("onload",dom.completed);var toplevel=!1;try{toplevel=window.frameElement==null&&document.documentElement}catch(e){} 89if(toplevel&&toplevel.doScroll){dom.doScrollCheck()}}},domReady:function(fn){this.readyFunc=fn;this.bindReady()}
89,canonicalize:function(url){if(url){var div=document.createElement('div');div.innerHTML="<a></a>";div.firstChild.href=url;div.innerHTML=div.innerHTML;url=div.firstChild.href;if(url.indexOf("//")!==-1){url=window.location.protocol+'//'+div.firstChild.href.split("//")[1]}} 90return url}};var userSettings={headerImageUrl:dom.canonicalize(window.pfHeaderImgUrl),headerTagline:window.pfHeaderTagline,imageDisplayStyle:window.pfImageDisplayStyle,customCSSURL:!window.extensionPath&&dom.canonicalize(window.pfCustomCSS),disableClickToDel:window.pfdisableClickToDel,disablePDF:window.pfDisablePDF,disableImages:window.pfDisableImages,encodeImages:window.pfEncodeImages===undefined?window.location.protocol==='http:':(parseInt(window.pfEncodeImages)===1),showHiddenContent:(parseInt(window.pfShowHiddenContent)===1),disablePrint:window.pfDisablePrint,disableEmail:window.pfDisableEmail};if('|full-size|remove-images|large|medium|small|'.indexOf('|'+window.pfImagesSize+'|')!==-1){userSettings.imagesSize=window.pfImagesSize}else{userSettings.imagesSize=window.pfHideImages==1?'remove-images':'full-size'} 91var pf={version:PF_VERSION,initialized:!1,finished:!1,onServer:!1,hasContent:!1,messages:[],errors:[],waitDsCounter:0,autoStart:!1,stats:{},init:function(options){try{this.initialized=!0;this.configure(options);this.onServerSetup();this.getDSSettingsFromPFServer() 92this.setVariables();this.detectBrowser();this.setStats();this.startIfNecessary();window.print=function(){pf.start()}}catch(e){logger.error(e);pf.finished=!0}},configure:function(options){this.config=defaultConfig;if(options){this.config.environment=options.environment||'development';for(var val in options.hosts){this.config.hosts[val]=options.hosts[val]} 93if(options.filePath){this.config.filePath=options.filePath} 94if(options.ssLocation){this.config.ssLocation=options.ssLocation} 95if(options.ssStyleSheetHrefs){this.config.ssStyleSheetHrefs=options.ssStyleSheetHrefs} 96if(options.ssFaviconUrl){this.config.ssFaviconUrl=options.ssFaviconUrl} 97if(options.enablePrintOnly){this.config.enablePrintOnly=options.enablePrintOnly}} 98this.config.enableLog=this.config.environment==='development'||this.config.environment==='test'||window.pfEnableLog;this.config.isExtension=!!window.extensionPath;this.config.isBookmarklet=utils.isBookmarklet();this.config.extensionFingerprint=window.extensionFingerprint},getVal:function(obj,path){var keys=path.split('.');while((typeof obj!=='undefined')&&keys.length){obj=obj[keys.shift()]} 99return obj},startIfNecessary:function(){if(window.pfstyle||this.autoStart){this.start()}},urlHasAutoStartParams:function(){return this.config.urls.page.indexOf('pfstyle=wp')!==-1},setUserSettings:function(){function mergeToUserSettings(object){for(var key in object){pf.userSettings[key]=object[key]}} 100mergeToUserSettings(printfriendlyOptionsParser.selectors());pf.userSettings.fallbackStrategy=printfriendlyOptionsParser.fallbackStrategy();mergeToUserSettings(printfriendlyOptionsParser.contentFeatures());var printfriendlyCss=document.querySelector('printfriendly-css');if(printfriendlyCss){pf.userSettings.customCssStyle=printfriendlyCss.textContent}},start:function(){pf.config.extensionPageSize=window.extensionPageSize;this.setUserSettings();if(pf.onServer){pf.launch()}else if(pf.config.isExtension){pf.launch()}else{pf.waitDsCounter+=1;if(pf.waitDsCounter<20&&!pf.dsData){return setTimeout(function(){pf.start()},100)} 101var redirectCheck=pf.runRedirectChecks();switch(redirectCheck.action){case 'show_message':alert('Current domain is not supported for printfriendly.com');break;case 'redirect':pf.redirect();break;case 'proceed':if(pf.supportedSiteType()){pf.launch()} 102break}}},launch:function(){dom.domReady(function(){try{pf.startTime=new Date().getTime();htmlPreProcessor.run();pf.pfData=pfDataHelper.get();logger.init(pf.pfData);if(!pf.config.disableUI){pf.sanitizeLocation();pf.createMask()} 103pf.loadCore()}catch(e){logger.error(e);pf.finished=!0}})},sanitizeLocation:function(){url=document.location.href.split('?')[0];url=utils.removeEmailsFromUrl(url);if(url!==document.location.href){if(history&&typeof history.pushState==='function'){history.pushState({pf:'sanitized'},document.title,url)}}},unsanitizeLocation:function(){if(history&&history.state&&history.state.pf=='sanitized'){history.back()}},onServerSetup:function(){if(window.onServer){this.onServer=!0;this.config.disableUI=!0}},setVariables:function(){var _t=this;var url;var cdnVersion=_t.config.hosts.cdn+_t.config.filePath+_t.version;var pfAppCSS=this.config.disableUI?'':"//cdn.printfriendly.com/assets/pf-app/main-3969ccdff6487292316596861305ab2cb3f3e979ca610a44fc3cb33ec9414aad.css";var contentCSS=this.config.disableUI?'':"//cdn.printfriendly.com/assets/content/main-3cfe82c205ab841b23bdee21da68b74f56d6d802a559448e5723798431f88cd9.css";var js={jquery:"//cdn.printfriendly.com/assets/unversioned/jquery/3.6.0.min-62efb0f451c1202e83668dd0942d2b0839e18b4a76c73809174dec2cad131a10.js",core:"//cdn.printfriendly.com/assets/client/core-130f51c6e2ee2faf2c639859e017f62223079f3998a3c58da0cd6133f7984aa2.js",algo:"//cdn.printfriendly.com/assets/client/algo-6a828bbc1ba6d90953b7e58df646c8a75b71401bd2e36690814733a4ef226980.js"};this.config.urls={version:cdnVersion,js:js,css:{pfApp:pfAppCSS,content:contentCSS},pdfMake:_t.config.hosts.pdf+'/pdfs/make',email:_t.config.hosts.email+'/email/new'};try{url=top.location.href}catch(e){url=window.location.href} 104this.config.urls.page=url;this.userSettings=userSettings;this.config.pfstyle=window.pfstyle;if(window.pfstyle&&(window.pfstyle==="bk"||window.pfstyle==="nbk"||window.pfstyle==="cbk")){this.config.usingBM=!0} 105this.autoStart=this.urlHasAutoStartParams()},detectBrowser:function(){this.browser={};if(navigator.userAgentData){this.browser.isIE=!1}else if(navigator.appVersion){var versionString=navigator.appVersion;if(versionString&&versionString.indexOf('MSIE')!==-1){this.browser.version=parseFloat(versionString.split('MSIE')[1]);this.browser.isIE=!0}else{this.browser.isIE=!1}}},redirect:function(){var href=typeof pfData!=='undefined'?pfData.page.location.href:top.window.location.href;var url=pfRedirect(this.config.hosts.pf,userSettings,href) 106if(this.autoStart){top.location.replace(url)}else{top.location.href=url}},supportedSiteType:function(){if(pf.config.urls.page==='about:blank'||(pf.config.protocol!=='http:'&&pf.config.protocol!=='https:')){return!1}else{return!0}},setStats:function(){pf.stats.page={bm:utils.isBookmarklet(),local:utils.isLocalHost(),unSupported:utils.isWix()||utils.isOverBlog()}},domainsListInclude:function(domain,domainsList){if(!domainsList.length){return!1} 107var domainsListRegexp=new RegExp(domainsList.join('|').replace(/\./g,"\\."));return domain.match(domainsListRegexp)},skipRedirectReasons:[{name:'noApiResponse',check:function(){return!pf.dsData}},{name:'adFree',check:function(){return pf.dsData.domain_settings.ad_free}},{name:'isLocalHost',check:function(){return utils.isLocalHost()},},{name:'unSupportedBySS',check:function(){return utils.isWix()||utils.isOverBlog()},},{name:'BMExt',check:function(){return utils.isBookmarklet()}}],forceRedirectReasons:[{name:'unSupportedBrowser',check:function(){try{var edge=!navigator.userAgentData&&navigator.userAgent.match(/Edge\/(\d+.\d+)/);var isLegacyEdge=edge&&edge[1]&&parseFloat(edge[1])<79;var supportedLegacyDomainsRegexp=/^((.+\.)?jhana-dev\.com|(.+\.)?jhana-stage\.com|(.+\.)?jhana\.com|guide\.matrix\.ip\.com|guide\.ip\.com|componentagro\.test\.huss\.nl|componentagro\.nl|hansa-online\.de|binnenschifffahrt-online\.de|mikrooek-apotheke\.de)$/;
107if(isLegacyEdge&&!supportedLegacyDomainsRegexp.test(pf.config.domains.page)){return!0} 108if(!utils.isBookmarklet()&&(!(history&&typeof history.pushState==='function')||(!navigator.userAgentData&&navigator.userAgent.match(/(ipod|opera.mini|blackberry|playbook|bb10)/i))||pf.browser.isIE)){return!0}else{return!1}}catch(e){logger.error(e);return!1}}}],unsupportedReasons:[{name:'blacklist',check:function(){return pf.domainsListInclude(pf.config.domains.page,[])}}],runChecksFor:function(checks){for(var i=0,length=checks.length;i<length;i++){var reason=checks[i];if(reason.check()){return reason}}},__redirectChecksResult:null,runRedirectChecks:function(){if(this.__redirectChecksResult){return this.__redirectChecksResult} 109var result,forceRedirectReason,skipRedirectReason,unsupportedReason;if(!(skipRedirectReason=this.runChecksFor(this.skipRedirectReasons))){result={action:'redirect'}}else if(unsupportedReason=this.runChecksFor(this.unsupportedReasons)){result={reason:unsupportedReason.name,action:'show_message'}}else if(forceRedirectReason=this.runChecksFor(this.forceRedirectReasons)){result={reason:forceRedirectReason.name,action:'redirect'}}else{result={reason:skipRedirectReason.name,action:'proceed'}} 110this.__redirectChecksResult=result;return this.__redirectChecksResult},createMask:function(){var div=document.createElement('div');div.innerHTML='<div id="pf-mask" style="z-index: 2147483627!important; position: fixed !important; top: 0pt !important; left: 0pt !important; background-color: rgb(0, 0, 0) !important; opacity: 0.8 !important;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=80); height: 100% !important; width: 100% !important;"></div>';document.body.appendChild(div.firstChild)},closePreview:function(){dom.readyBound=!1;dom.isReady=!1;pf.unsanitizeLocation();var pfCoreElement=document.getElementById('pf-core');if(pfCoreElement&&pfCoreElement.parentElement){pfCoreElement.parentElement.removeChild(pfCoreElement)} 111var maskElement=document.getElementById('pf-mask');if(maskElement&&maskElement.parentElement){maskElement.parentElement.removeChild(maskElement)} 112var gaiframe=document.getElementById('gaiframe');if(gaiframe&&gaiframe.parentElement){gaiframe.parentElement.removeChild(gaiframe)}},removeDoubleSemiColon:function(str){return str.replace(/;{2}/g,';')},loadCore:function(){window.coreIframe=commonUtils.createIframe(document);coreIframe.id='pf-core';coreIframe.name='pf-core';document.body.appendChild(coreIframe);var style=coreIframe.style.cssText+';'+'width: 100% !important;max-width:100vw !important;height: 100% !important; max-height:100vh !important; display: block !important; overflow: hidden !important; position: absolute !important; top: 0px !important; left: 0px !important; background-color: transparent !important; z-index: 2147483647!important';coreIframe.style.cssText=this.removeDoubleSemiColon(style);if(this.config.isExtension){coreIframe.src=extensionPath+'/pages/core.html';coreIframe.onload=function(){messageBus.postMessage('core','PfInitCoreExtension',{extensionRootTabId:window.extensionRootTabId})}}else{coreIframe.src="//cdn.printfriendly.com/assets/client/core-0a818227f18b1ede53dd48edc9f61296a829938e3e2d3c4c9b75e2e5f7937d08.html"}},getDSSettingsFromPFServer:function(){if(pf.onServer||this.config.isExtension){return} 113var script=document.createElement('script');script.src=pf.config.hosts.ds_cdn+'/api/v3/domain_settings/a'+'?callback=pfMod.saveDSSettings'+'&hostname='+pf.config.hosts.page+'&client_version='+pf.version;document.getElementsByTagName('head')[0].appendChild(script)},saveDSSettings:function(data){pf.dsData=data;if(window.coreIframe&&coreIframe.contentWindow){messageBus.postMessage('core','PfConfigureDSSettings',{dsData:data})}}};var pfDataHelper={emailText:function(){var elements=document.getElementsByClassName('pf-email');return elements.length?elements[0].textContent:''},csStyleSheetHrefs:function(){var hrefs=[];for(var i=0;i<doc.styleSheets.length;i++){hrefs.push(doc.styleSheets[i].href)} 114return hrefs},metas:function(){var metaTags=doc.getElementsByTagName('meta');var metas=[];for(var i=0;i<metaTags.length;i++){metas.push({name:metaTags[i].getAttribute('name'),content:metaTags[i].getAttribute('content'),property:metaTags[i].getAttribute('property'),itemprop:metaTags[i].getAttribute('itemprop')})} 115return metas},screen:function(){var w=window.top;try{w.document}catch(e){w=window} 116return{x:typeof w.screenX!='undefined'?w.screenX:w.screenLeft,y:typeof w.screenY!='undefined'?w.screenY:w.screenTop,width:typeof w.outerWidth!='undefined'?w.outerWidth:w.document.documentElement.clientWidth,height:typeof w.outerHeight!='undefined'?w.outerHeight:(w.document.documentElement.clientHeight-22)}},language:function(){var lang=document.getElementsByTagName('html')[0].getAttribute('lang');if(!lang){var metaLang=document.querySelector('meta[http-equiv=Content-Language]');if(metaLang){lang=metaLang.getAttribute('content')}} 117return lang},canvasDataUrls:function(){var dataUrls=[];
117var canvases=doc.getElementsByTagName('canvas');for(var i=0;i<canvases.length;i++){try{var canvas=canvases[i];var dataUrl=canvas.toDataURL('image/png');canvas.setAttribute('pf-dataurl-index',dataUrls.length);dataUrls.push(dataUrl)}catch(e){}} 118return dataUrls},favicon:function(){if(pf.config.ssFaviconUrl){return pf.config.ssFaviconUrl} 119var faviconRels=['shortcut icon','icon','apple-touch-icon','apple-touch-icon-precomposed'];var faviconElement=null;for(var i=0;i<faviconRels.length;i++){var rel=faviconRels[i];var result=document.querySelector('link[rel="'+rel+'"]');if(result){faviconElement=result;break}} 120if(!faviconElement||!faviconElement.href){return"https://cdn.printfriendly.com/icons/globe.svg"} 121return faviconElement.href},enablePrintOnly:function(doc){return!!doc.querySelector('.at-svc-printfriendly, a[href*="printfriendly\.com"], script[src*="\/\/cdn\.printfriendly\.com"], script[src*="\/\/pf-cdn\.printfriendly\.com"], img[src*="\/\/cdn\.printfriendly\.com"]')||pf.config.enablePrintOnly},getApplicationLd:function(doc){var applicationLdNode=doc.querySelector('script[type="application/ld+json"]') 122if(applicationLdNode){var applicationLdJSON=applicationLdNode.textContent.replace(/^\s*\/*\s<!\[CDATA\[|\]\]>\s*$/g,"").replace(/[/\s]*$/,'');try{return JSON.parse(applicationLdJSON)}catch(e){logger.error(e)}}},replaceShadowRootElements:function(body){var duplicate=body.cloneNode(!0);duplicate.innerHTML=body.innerHTML;body.querySelectorAll('.pf-shadow-root').forEach(function(shadowRoot){var shadowRootContent=shadowRoot.shadowRoot.innerHTML;if(!shadowRootContent)return;var replace=duplicate.querySelector('[data-pf-shadow-root="'+shadowRoot.dataset.pfShadowRoot+'"]') 123if(!replace){return} 124var shadowRootContentElement=document.createElement('div');shadowRootContentElement.innerHTML=shadowRootContent;replace.parentNode.replaceChild(shadowRootContentElement,replace)});return duplicate},get:function(){pf.config.extensionId=window.extensionId;pf.config.extensionRootTabId=window.extensionRootTabId;pf.config.extensionPath=window.extensionPath;var canvasDataUrls=this.canvasDataUrls();var location=document.location;page={dir:doc.body.getAttribute('dir')||doc.querySelector('html').getAttribute('dir')||getComputedStyle(doc.body).getPropertyValue('direction')||'ltr',bodyClassList:[].slice.call(doc.body.classList||doc.body.className.split(' ')),emailText:this.emailText(),screen:this.screen(),metas:this.metas(),csStyleSheetHrefs:this.csStyleSheetHrefs(),location:{href:location.href,host:location.host,pathname:location.pathname,protocol:location.protocol},enablePrintOnly:this.enablePrintOnly(doc),hasPrintOnly:!!doc.querySelector('#print-only, .print-only'),title:document.title,body:this.replaceShadowRootElements(document.body).innerHTML.replace(/<\s*?embed[^>]*?>(.*?<\s*?\/\s*?embed\s*?>)?/g,''),language:this.language(),canvasDataUrls:canvasDataUrls,favicon:this.favicon(),applicationLd:this.getApplicationLd(doc)};return{startTime:pf.startTime,config:pf.config,userSettings:pf.userSettings,version:pf.version,onServer:pf.onServer,browser:pf.browser,dsData:pf.dsData,stats:pf.stats,page:page}}};var htmlPreProcessor={LARGE_IMAGE_WIDTH:300,LARGE_IMAGE_HEIGHT:200,run:function(){this.processChildren(document.body)},processChildren:function(sourceElement){var nodeName;var queue=[];if(sourceElement.children&&sourceElement.children.length){for(var i=0,length=sourceElement.children.length;i<length;i++){queue.push(sourceElement.children[i])}} 125var sourceChild=null;while(sourceChild=queue.shift()){if(!commonUtils.hasClass(sourceChild,'comment-list')){if(sourceChild.nodeType===Node.ELEMENT_NODE){try{nodeName=sourceChild.nodeName.toLowerCase();persistComputedStylesAndRect(sourceChild);if(sourceChild.shadowRoot){commonUtils.addClassTo(sourceChild,'pf-shadow-root');sourceChild.dataset.pfShadowRoot=UUID()} 126if(!userSettings.showHiddenContent&&(sourceChild.getAttribute('data-pf_style_display')==='none'||sourceChild.getAttribute('data-pf_style_visibility')==='hidden')){commonUtils.addClassTo(sourceChild,"hidden-originally")}else if(commonUtils.hasClass(sourceChild,'hidden-originally')){commonUtils.removeClassFrom(sourceChild,'hidden-originally')} 127if(nodeName==='a'){var href=sourceChild.getAttribute('href');if(href&&!href.startsWith('#')&&!href.startsWith('http')&&!href.startsWith('javascript')&&!href.startsWith('mailto')){sourceChild.setAttribute('href',toAbsoluteUrl(href,window.location))}}else if((nodeName==='input'||nodeName==='textarea')&&!pfMod.onServer){if(sourceChild.type==='radio'||sourceChild.type==='checkbox'){if(sourceChild.checked){sourceChild.setAttribute("checked","checked")}}else{sourceChild.setAttribute('value',sourceChild.value)}}else if(!pfMod.onServer&&nodeName==='select'&&sourceChild.options.length&&sourceChild.selectedIndex>=0){sourceChild.options[sourceChild.selectedIndex].setAttribute("selected","selected")}
127else if(nodeName==='img'||nodeName==='svg'){if(sourceChild.getAttribute('src')){sourceChild.src=sourceChild.src} 128var srcset=sourceChild.getAttribute('srcset')||sourceChild.getAttribute('data-srcset');if(srcset){var srcs=srcset.split(/,\s/);var newSrcs=[];for(var j=0;j<srcs.length;j++){var src=srcs[j];newSrcs.push(toAbsoluteUrl(src,window.location))} 129sourceChild.setAttribute('pf-data-srcset',newSrcs.join(', '))} 130if(nodeName==='img'&&!commonUtils.hasClass(sourceChild,'hidden-originally')){var imgHeight=commonUtils.getImageHeight(sourceChild,pfMod.onServer);var imgWidth=commonUtils.getImageWidth(sourceChild,pfMod.onServer);if((imgWidth*imgHeight)>(this.LARGE_IMAGE_WIDTH*this.LARGE_IMAGE_HEIGHT)){commonUtils.addClassTo(sourceChild,'pf-large-image')}}}else if(pf.userSettings.bgImageUrlSupport==='on'){var bgSrc=window.getComputedStyle(sourceChild).backgroundImage 131if(bgSrc!=='none'){bgSrc=bgSrc.replace(/^url\("(.+)"\)/,'$1') 132sourceChild.setAttribute('data-pf-style-background-image',bgSrc);if(!commonUtils.hasClass(sourceChild,'hidden-originally')){var imgHeight=commonUtils.getImageHeight(sourceChild,pfMod.onServer);var imgWidth=commonUtils.getImageWidth(sourceChild,pfMod.onServer);if((imgWidth*imgHeight)>(this.LARGE_IMAGE_WIDTH*this.LARGE_IMAGE_HEIGHT)){commonUtils.addClassTo(sourceChild,'pf-large-image')}}}}}catch(e){}} 133if(sourceChild.children&&sourceChild.children.length){for(var i=0,length=sourceChild.children.length;i<length;i++){queue.push(sourceChild.children[i])}}}}}};return pf})(window);window.pfMod=pfMod;var priFri=pfMod;if(pfMod.initialized&&(document.getElementById('printfriendly-data')||window.extensionPath)){pfMod.start()}else if(window.name!=='algo'&&window.name!=='pf-core'&&!pfMod.initialized){pfMod.init(window.pfOptions)}
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.