- Scan-ID:
- 589b0f10-c147-4a7f-b734-0aa6543aa487Beendet
- Eingereichte URL:
- https://www.mrexcel.com/board/
- Bericht beendet:
Links · 2 gefunden
Die von der Seite ausgehenden identifizierten Links
Link | Text |
---|---|
https://xenforo.com | Community platform by XenForo®© 2010-2024 XenForo Ltd. |
https://eur-lex.europa.eu/legal-content/EN/TXT/?qid=1528874672298&uri=CELEX%3A32016R0679 | EU law |
JavaScript-Variablen · 80 gefunden
Globale JavaScript-Variablen, die in das Window Object einer Seite geladen werden, sind Variablen, die außerhalb von Funktionen deklariert werden und von jeder Stelle des Codes innerhalb des aktuellen Bereichs zugänglich sind
Name | Typ |
---|---|
0 | object |
1 | object |
2 | object |
3 | object |
4 | object |
5 | object |
onbeforetoggle | object |
documentPictureInPicture | object |
onscrollend | object |
XF | object |
Konsolenprotokoll-Meldungen · 4 gefunden
In der Web-Konsole protokollierte Meldungen
Typ | Kategorie | Protokoll |
---|---|---|
log | other |
|
log | other |
|
log | other |
|
log | other |
|
HTML
Der HTML-Rohtext der Seite
<!DOCTYPE html><html id="XF" lang="en-US" dir="LTR" data-xf="2.3" data-app="public" data-template="forum_list" data-container-key="" data-content-key="" data-logged-in="false" data-cookie-prefix="xf_" data-csrf="1732848729,6a0c8f919ab7cfefad6e8666243254f2" class="has-js template-forum_list has-no-touchevents has-passiveeventlisteners has-no-hiddenscroll has-overflowanchor has-no-displaymodestandalone has-flexgap has-os-windows has-browser-chrome"><head>
<meta charset="utf-8">
<title>MrExcel Message Board</title>
<link rel="manifest" href="/board/webmanifest.php">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<meta name="theme-color" content="#507455">
<meta name="apple-mobile-web-app-title" content="MrExcel">
<link rel="apple-touch-icon" href="/board/styles/mrexcel/mrexcel-logo-192x192.png">
<meta name="description" content="Your One Stop for Excel Tips & Solutions">
<meta property="og:description" content="Your One Stop for Excel Tips & Solutions">
<meta property="twitter:description" content="Your One Stop for Excel Tips & Solutions">
<link rel="canonical" href="https://www.mrexcel.com/board/">
<link rel="alternate" type="application/rss+xml" title="RSS feed for MrExcel Message Board" href="/board/forums/-/index.rss">
<meta property="og:site_name" content="MrExcel Message Board">
<meta property="og:type" content="website">
<meta property="og:title" content="MrExcel Message Board">
<meta property="twitter:title" content="MrExcel Message Board">
<meta property="og:url" content="https://www.mrexcel.com/board/">
<meta property="og:image" content="https://www.mrexcel.com/board/styles/mrexcel/mrexcel-logo-og.png">
<meta property="twitter:image" content="https://www.mrexcel.com/board/styles/mrexcel/mrexcel-logo-og.png">
<meta property="twitter:card" content="summary">
<link rel="stylesheet" href="/board/css.php?css=public%3Anormalize.css%2Cpublic%3Afa.css%2Cpublic%3Acore.less%2Cpublic%3Aapp.less&s=2&l=1&d=1731584717&k=89d41709e0f2c0d739bf9e66e410eb13eb83b68e">
<link rel="stylesheet" href="/board/css.php?css=public%3Abc_powerads.less%2Cpublic%3Anode_list.less%2Cpublic%3Anotices.less%2Cpublic%3Ashare_controls.less%2Cpublic%3Axl2bb.less%2Cpublic%3Aextra.less&s=2&l=1&d=1731584717&k=ab3887895a7effbf1aba30a5a5c3863d01833193">
<script async="" src="https://www.googletagmanager.com/gtm.js?id=GTM-WWT9Q4L"></script><script src="/board/js/xf/preamble.min.js?_v=e9ba18d7"></script>
<script src="/board/js/vendor/vendor-compiled.js?_v=e9ba18d7" defer=""></script>
<script src="/board/js/xf/core-compiled.js?_v=e9ba18d7" defer=""></script>
<script>
window.addEventListener('DOMContentLoaded', function() {
XF.extendObject(true, XF.config, {
//
userId: 0,
enablePush: true,
pushAppServerKey: 'BJLg0ifB35LtnMdKRWFmiPUKyGK8tnMPylqYWglH3rtLkc4NCyibe0cvdL1MTHvR3-2eJExMoDJKc2PP66qxhdA',
url: {
fullBase: 'https://www.mrexcel.com/board/',
basePath: '/board/',
css: '/board/css.php?css=__SENTINEL__&s=2&l=1&d=1731584717',
js: '/board/js/__SENTINEL__?_v=e9ba18d7',
icon: '/board/data/local/icons/__VARIANT__.svg?v=1729808417#__NAME__',
iconInline: '/board/styles/fa/__VARIANT__/__NAME__.svg?v=5.15.3',
keepAlive: '/board/login/keep-alive'
},
cookie: {
path: '/',
domain: '',
prefix: 'xf_',
secure: true,
consentMode: 'disabled',
consented: ["optional","_third_party"]
},
cacheKey: 'f3ed7234243583f554e27d349fe769c5',
csrf: '1732848729,6a0c8f919ab7cfefad6e8666243254f2',
js: {"\/board\/js\/batcoder\/responders\/responders.min.js?_v=e9ba18d7":true,"\/board\/js\/batcoder\/xl2bb\/xl2bb.min.js?_v=e9ba18d7":true,"\/img\/sgw\/adLoader.min.js?_v=e9ba18d7":true},
fullJs: false,
css: {"public:bc_powerads.less":true,"public:node_list.less":true,"public:notices.less":true,"public:share_controls.less":true,"public:xl2bb.less":true,"public:extra.less":true},
time: {
now: 1732848729,
today: 1732770000,
todayDow: 4,
tomorrow: 1732856400,
yesterday: 1732683600,
week: 1732251600,
month: 1730433600,
year: 1704085200
},
style: {
light: '',
dark: '',
defaultColorScheme: 'light'
},
borderSizeFeature: '3px',
fontAwesomeWeight: 'r',
enableRtnProtect: true,
enableFormSubmitSticky: true,
imageOptimization: '0',
imageOptimizationQuality: 0.85,
uploadMaxFilesize: 20971520,
uploadMaxWidth: 0,
uploadMaxHeight: 0,
allowedVideoExtensions: ["m4v","mov","mp4","mp4v","mpeg","mpg","ogv","webm"],
allowedAudioExtensions: ["mp3","opus","ogg","wav"],
shortcodeToEmoji: true,
visitorCounts: {
conversations_unread: '0',
alerts_unviewed: '0',
total_unread: '0',
title_count: false,
icon_indicator: true
},
jsMt: {"xf\/action.js":"ee00cf40","xf\/embed.js":"d441fb20","xf\/form.js":"ee00cf40","xf\/structure.js":"ee00cf40","xf\/tooltip.js":"ee00cf40"},
jsState: {},
publicMetadataLogoUrl: 'https://www.mrexcel.com/board/styles/mrexcel/mrexcel-logo-og.png',
publicPushBadgeUrl: 'https://www.mrexcel.com/board/styles/default/xenforo/bell.png'
});
XF.extendObject(XF.phrases, {
//
date_x_at_time_y: "{date} at {time}",
day_x_at_time_y: "{day} at {time}",
yesterday_at_x: "Yesterday at {time}",
x_minutes_ago: "{minutes} minutes ago",
one_minute_ago: "1 minute ago",
a_moment_ago: "A moment ago",
today_at_x: "Today at {time}",
in_a_moment: "In a moment",
in_a_minute: "In a minute",
in_x_minutes: "In {minutes} minutes",
later_today_at_x: "Later today at {time}",
tomorrow_at_x: "Tomorrow at {time}",
short_date_x_minutes: "{minutes}m",
short_date_x_hours: "{hours}h",
short_date_x_days: "{days}d",
day0: "Sunday",
day1: "Monday",
day2: "Tuesday",
day3: "Wednesday",
day4: "Thursday",
day5: "Friday",
day6: "Saturday",
dayShort0: "Sun",
dayShort1: "Mon",
dayShort2: "Tue",
dayShort3: "Wed",
dayShort4: "Thu",
dayShort5: "Fri",
dayShort6: "Sat",
month0: "January",
month1: "February",
month2: "March",
month3: "April",
month4: "May",
month5: "June",
month6: "July",
month7: "August",
month8: "September",
month9: "October",
month10: "November",
month11: "December",
active_user_changed_reload_page: "The active user has changed. Reload the page for the latest version.",
server_did_not_respond_in_time_try_again: "The server did not respond in time. Please try again.",
oops_we_ran_into_some_problems: "Oops! We ran into some problems.",
oops_we_ran_into_some_problems_more_details_console: "Oops! We ran into some problems. Please try again later. More error details may be in the browser console.",
file_too_large_to_upload: "The file is too large to be uploaded.",
uploaded_file_is_too_large_for_server_to_process: "The uploaded file is too large for the server to process.",
files_being_uploaded_are_you_sure: "Files are still being uploaded. Are you sure you want to submit this form?",
attach: "Upload Image",
rich_text_box: "Rich text box",
close: "Close",
link_copied_to_clipboard: "Link copied to clipboard.",
text_copied_to_clipboard: "Text copied to clipboard.",
loading: "Loading…",
you_have_exceeded_maximum_number_of_selectable_items: "You have exceeded the maximum number of selectable items.",
processing: "Processing",
'processing...': "Processing…",
showing_x_of_y_items: "Showing {count} of {total} items",
showing_all_items: "Showing all items",
no_items_to_display: "No items to display",
number_button_up: "Increase",
number_button_down: "Decrease",
push_enable_notification_title: "Push notifications enabled successfully at MrExcel Message Board",
push_enable_notification_body: "Thank you for enabling push notifications!",
pull_down_to_refresh: "Pull down to refresh",
release_to_refresh: "Release to refresh",
refreshing: "Refreshing…"
});
});
</script>
<script src="/board/js/batcoder/responders/responders.min.js?_v=e9ba18d7" defer=""></script>
<script src="/board/js/batcoder/xl2bb/xl2bb.min.js?_v=e9ba18d7" defer=""></script>
<script src="/img/sgw/adLoader.min.js?_v=e9ba18d7" defer=""></script>
<script>
window.addEventListener('DOMContentLoaded', () =>
{
bcUnits.push("top_LB_HB");
})
</script>
<script>
window.addEventListener('DOMContentLoaded', () =>
{
bcUnits.push("sidebar1");
})
</script>
<script>
window.addEventListener('DOMContentLoaded', () =>
{
bcUnits.push("sidebar2");
})
</script>
<script>
window.addEventListener('DOMContentLoaded', () =>
{
const sidebar = document.querySelector('.p-body-sidebar');
const adunit = document.getElementById('adngin-sidebar2-0');
sidebar.style.top = (40 - adunit.offsetTop) + 'px';
})
</script>
<script>
window.addEventListener('DOMContentLoaded', () =>
{
!function(){function e(){document.body.style.overflow="hidden",document.getElementById("pledge-overlay").classList.add("active")}function t(){if(document.cookie.includes("snped")&&!document.cookie.includes("snpua")){var t=new Date,n=new Date(t.getFullYear(),t.getMonth(),t.getDate()+1,t.getHours(),t.getMinutes(),t.getSeconds());document.cookie="snpua=1; expires="+n+"; path=/;",e()}else if(!document.cookie.includes("snped")){t=new Date;var o=new Date(t.getFullYear()+1,t.getMonth(),t.getDate());n=new Date(t.getFullYear(),t.getMonth(),t.getDate()+1,t.getHours(),t.getMinutes(),t.getSeconds());document.cookie="snped=1; expires="+o+"; path=/;",document.cookie="snpua=1; expires="+n+"; path=/;",e()}}void 0===window.adblockDetector?t():window.adblockDetector.init({debug:!0,found:function(){t()},notFound:function(){}}),document.getElementById("pledge-skip").onclick=function(){document.body.style.overflow="auto",document.getElementById("pledge-overlay").classList.remove("active")},document.getElementById("pledge-refresh").onclick=function(){location.reload()},document.getElementById("pledge-disable-btn").onclick=function(){document.getElementById("pledge-front").classList.remove("active"),document.getElementById("pledge-disable-btn").classList.remove("active"),document.getElementById("pledge-blockers").classList.add("active"),document.getElementById("pledge-skip").style.display="none",document.getElementById("pledge-refresh").classList.add("active")};for(var n=document.getElementsByClassName("pledge-blockers-logo"),o=0;o<n.length;o++)n[o].onclick=function(){document.getElementById("pledge-instructions-"+this.id.replace("-logo","")).classList.add("active"),document.getElementById("pledge-blockers").classList.remove("active")};var c=document.getElementsByClassName("go-back");for(o=0;o<c.length;o++)c[o].onclick=function(){document.getElementById("pledge-instructions-ab").classList.remove("active"),document.getElementById("pledge-instructions-abp").classList.remove("active"),document.getElementById("pledge-instructions-ubo").classList.remove("active"),document.getElementById("pledge-instructions-ub").classList.remove("active"),document.getElementById("pledge-blockers").classList.add("active")}}();
})
</script>
<script>
window.addEventListener('DOMContentLoaded', () =>
{
if (window.adngin) {
adngin.queue.push(function() {
adngin.cmd.startAuction(bcUnits);
});
} else {
window.addEventListener('adnginLoaderReady', function() {
adngin.queue.push(function() {
adngin.cmd.startAuction(bcUnits);
});
});
}
})
</script>
<link rel="icon" type="image/png" href="https://www.mrexcel.com/board/favicon.ico" sizes="32x32">
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-WWT9Q4L');</script>
<!-- End Google Tag Manager -->
<script data-cfasync="false" type="text/javascript">
var bcUnits = [];
bcUnits.push("bottom_adhesive");
window.snigelPubConf = {
"adengine": {
"activeAdUnits": bcUnits
}
}
</script>
<script src="https://btloader.com/tag?o=5658536637890560&upapi=true" async=""></script>
<script async="" data-cfasync="false" src="https://cdn.snigelweb.com/adengine/mrexcel.com/loader.js" type="text/javascript"></script>
<script type="text/javascript" async="" src="//cdn.snigelweb.com/prebid/8.52.0/prebid.js?v=12844-1732626500225"></script><script type="text/javascript" async="" src="//c.amazon-adsystem.com/aax2/apstag.js"></script><script type="text/javascript" async="" src="//securepubads.g.doubleclick.net/tag/js/gpt.js?network-code=22152718"></script><script type="text/javascript" async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><script type="text/javascript" async="" src="//adengine.snigelweb.com/mrexcel.com/12844-1732626500225/adngin.js"></script><script type="text/javascript" async="" src="//cdn.snigelweb.com/argus/argus.js"></script><script type="text/javascript" async="" src="//boot.pbstck.com/v1/tag/62759f86-1092-42f9-a8af-2e9858fa1056"></script><argprec0></argprec0><argprec1></argprec1><meta http-equiv="origin-trial" content="AlK2UR5SkAlj8jjdEc9p3F3xuFYlF6LYjAML3EOqw1g26eCwWPjdmecULvBH5MVPoqKYrOfPhYVL71xAXI1IBQoAAAB8eyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiV2ViVmlld1hSZXF1ZXN0ZWRXaXRoRGVwcmVjYXRpb24iLCJleHBpcnkiOjE3NTgwNjcxOTksImlzU3ViZG9tYWluIjp0cnVlfQ=="><meta http-equiv="origin-trial" content="Amm8/NmvvQfhwCib6I7ZsmUxiSCfOxWxHayJwyU1r3gRIItzr7bNQid6O8ZYaE1GSQTa69WwhPC9flq/oYkRBwsAAACCeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiV2ViVmlld1hSZXF1ZXN0ZWRXaXRoRGVwcmVjYXRpb24iLCJleHBpcnkiOjE3NTgwNjcxOTksImlzU3ViZG9tYWluIjp0cnVlfQ=="><meta http-equiv="origin-trial" content="A9wSqI5i0iwGdf6L1CERNdmsTPgVu44ewj8QxTBYgsv1LCPUVF7YmWOvTappqB1139jAymxUW/RO8zmMqo4zlAAAAACNeyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiRmxlZGdlQmlkZGluZ0FuZEF1Y3Rpb25TZXJ2ZXIiLCJleHBpcnkiOjE3MzY4MTI4MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><meta http-equiv="origin-trial" content="A+d7vJfYtay4OUbdtRPZA3y7bKQLsxaMEPmxgfhBGqKXNrdkCQeJlUwqa6EBbSfjwFtJWTrWIioXeMW+y8bWAgQAAACTeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiRmxlZGdlQmlkZGluZ0FuZEF1Y3Rpb25TZXJ2ZXIiLCJleHBpcnkiOjE3MzY4MTI4MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><script src="https://securepubads.g.doubleclick.net/pagead/managed/js/gpt/m202411180101/pubads_impl.js" async=""></script><meta http-equiv="origin-trial" content="AlK2UR5SkAlj8jjdEc9p3F3xuFYlF6LYjAML3EOqw1g26eCwWPjdmecULvBH5MVPoqKYrOfPhYVL71xAXI1IBQoAAAB8eyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiV2ViVmlld1hSZXF1ZXN0ZWRXaXRoRGVwcmVjYXRpb24iLCJleHBpcnkiOjE3NTgwNjcxOTksImlzU3ViZG9tYWluIjp0cnVlfQ=="><meta http-equiv="origin-trial" content="Amm8/NmvvQfhwCib6I7ZsmUxiSCfOxWxHayJwyU1r3gRIItzr7bNQid6O8ZYaE1GSQTa69WwhPC9flq/oYkRBwsAAACCeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiV2ViVmlld1hSZXF1ZXN0ZWRXaXRoRGVwcmVjYXRpb24iLCJleHBpcnkiOjE3NTgwNjcxOTksImlzU3ViZG9tYWluIjp0cnVlfQ=="><meta http-equiv="origin-trial" content="A9wSqI5i0iwGdf6L1CERNdmsTPgVu44ewj8QxTBYgsv1LCPUVF7YmWOvTappqB1139jAymxUW/RO8zmMqo4zlAAAAACNeyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiRmxlZGdlQmlkZGluZ0FuZEF1Y3Rpb25TZXJ2ZXIiLCJleHBpcnkiOjE3MzY4MTI4MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><meta http-equiv="origin-trial" content="A+d7vJfYtay4OUbdtRPZA3y7bKQLsxaMEPmxgfhBGqKXNrdkCQeJlUwqa6EBbSfjwFtJWTrWIioXeMW+y8bWAgQAAACTeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiRmxlZGdlQmlkZGluZ0FuZEF1Y3Rpb25TZXJ2ZXIiLCJleHBpcnkiOjE3MzY4MTI4MDAsImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><style type="text/css">.detachVideo > iframe{height:100%!important}.detachVideo{position:fixed;z-index:60000;bottom:150px;right:10px;min-height:180px;max-height:180px}</style><style type="text/css">.snigel-cmp-framework .sn-inner {background-color:#fffefe!important;}.snigel-cmp-framework .sn-b-def {border-color:#466e98!important;color:#466e98!important;}.snigel-cmp-framework .sn-b-def.sn-blue {color:#ffffff!important;background-color:#466e98!important;border-color:#466e98!important;}.snigel-cmp-framework .sn-selector ul li {color:#466e98!important;}.snigel-cmp-framework .sn-selector ul li:after {background-color:#466e98!important;}.snigel-cmp-framework .sn-footer-tab .sn-privacy a {color:#466e98!important;}.snigel-cmp-framework .sn-arrow:after,.snigel-cmp-framework .sn-arrow:before {background-color:#466e98!important;}.snigel-cmp-framework .sn-switch input:checked + span::before {background-color:#466e98!important;}#adconsent-usp-link {border: 1px solid #466e98!important;color:#466e98!important;}#adconsent-usp-banner-optout input:checked + .adconsent-usp-slider {background-color:#466e98!important;}#adconsent-usp-banner-btn {color:#ffffff;border: solid 1px #466e98!important;background-color:#466e98!important; }</style><script type="text/javascript" async="" charset="utf-8" src="https://cdn.snigelweb.com/adconsent/86/adconsent__tcfapi.js"></script><style type="text/css">.sn_ad_label{height:unset !important}</style><script src="https://config.aps.amazon-adsystem.com/configs/3927" type="text/javascript" async="async"></script><style type="text/css">.snigel-adhesive{box-sizing:content-box;position:fixed;left:0;right:0;z-index:99999;text-align:center;padding-top:5px;padding-bottom:5px;background-color:#f2f6f7;transition:all 1500ms ease-out}.snigel-adhesive{text-align: -webkit-center;}.snigel-adhesive{text-align: -moz-center;}.snigel-adhesive.bottom{bottom:0}.snigel-adhesive.top{top:0}.snigel-adhesive-center{position:absolute;top:0;bottom:0;right:0;left:0}.snigel-adhesive-centered{position:absolute;margin:0;transform:translateY(-50%);right:0;left:0}.close-adhesive{box-sizing:content-box;width:16px;height:16px;position:absolute;right:0;padding:5px;background-color:#f2f6f7;text-align:center;cursor:pointer}.close-adhesive.bottom{top:0}.close-adhesive.top{bottom:0}.close-adhesive.bottom.extern{top:-21px;padding-bottom:0}.close-adhesive.top.extern{bottom:-21px;padding-top:0}.close-adhesive>svg{display:block}.close-adhesive-icon{fill:gray;stroke-width:3;stroke:#73d9c6}.logo-adhesive{cursor:pointer;opacity:0.65;position:absolute;left:5px;top:5px;width:24px;height:24px;background:url("https://cdn.snigelweb.com/resources/img/logo/snigel-icon-48.png") no-repeat 50% 50%/contain}.logo-adhesive:hover{opacity:1}.logo-adhesive.adhesive-hidden{left:-500px}</style><script type="text/javascript">(function() { var load = function() {!function(e){"use strict";const t=/pbstck:debug/.test(window.location.href),i=!!window.localStorage.getItem("pbstck"),n=(e,n,...o)=>{(t||i)&&console[e](`[pbstckUserSessions-b6ed2f5] [${performance.now().toFixed(2)}] ${n}`,...o.length?o:"")},o=(e,...t)=>{n("warn",e,...t)},r=(e,...t)=>{n("log",e,...t)},a=(e,...t)=>{n("error",e,...t)},s=["pbstck:","pbstck_context:"],c=()=>{const e=document.getElementsByTagName("meta"),t=Array.from(e).filter((e=>d(s,e.name))),i=new Map;t.forEach((e=>{const t=u(e.name);i.has(t)&&o(`Custom dim ${t} is present many times`),i.size<20?i.set(t,e.content):o(`Skipping custom dim ${t} with ${e.content}: limit of 20 keys exceeded`)}));const n=Object.assign({},...Array.from(i.entries()).map((([e,t])=>({[e]:t}))));return i.size>0&&r("Custom dim found :",n),n},u=e=>e.replace(/^\w+:/,""),d=(e,t)=>e.some((e=>t.startsWith(e)));var l,p;!function(e){e.HISTORY_MUTATION="_pbstck_historyMutation",e.NEW_PAGE="_pbstck_pageView",e.SESSION_TRACKING_AUTHORIZED="_pbstck_sessionTrackingAuthorized",e.SESSION_TRACKING_DECLINED="_pbstck_sessionTrackingDeclined"}(l||(l={})),function(e){e.REPLACE_STATE="replaceState",e.PUSH_STATE="pushState"}(p||(p={}));const w=e=>{window.history[e]=new Proxy(window.history[e],{apply(t,i,n){const o=window.location.href,r=t.apply(i,n),a=new CustomEvent(l.HISTORY_MUTATION,{detail:{referrer:o,stateObj:n[0],title:n[1],url:n[2],type:e}});return dispatchEvent(a),r}})};for(var m,f=[],b=0;b<256;++b)f.push((b+256).toString(16).slice(1));var h=new Uint8Array(16);function g(){if(!m&&!(m="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return m(h)}var v={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function y(e,t,i){if(v.randomUUID&&!t&&!e)return v.randomUUID();var n=(e=e||{}).random||(e.rng||g)();return n[6]=15&n[6]|64,n[8]=63&n[8]|128,function(e,t=0){return(f[e[t+0]]+f[e[t+1]]+f[e[t+2]]+f[e[t+3]]+"-"+f[e[t+4]]+f[e[t+5]]+"-"+f[e[t+6]]+f[e[t+7]]+"-"+f[e[t+8]]+f[e[t+9]]+"-"+f[e[t+10]]+f[e[t+11]]+f[e[t+12]]+f[e[t+13]]+f[e[t+14]]+f[e[t+15]]).toLowerCase()}(n)}const k=e=>{window.__pbstck_consent=e},S=e=>{window.__pbstck_session_tracking=e},T=()=>window.__pbstck_consent,E=()=>window.__pbstck_session_tracking,_=e=>{if("string"==typeof e){const t=e.split(/:\/\/(www.)?/g);return t.length<=1?null:t[t.length-1].split("/")[0]}const t=e.hostname;return t.startsWith("www.")?t.substring(4):t};var x;!function(e){e.DEV="dev",e.BETA="beta",e.PROD="prod"}(x||(x={}));class I extends Error{message="unknown session error"}class C extends I{message="session init error"}class A extends I{message="session parse error"}class N extends I{message="session not found error"}class O extends I{message="session obsolete error"}const D=Array(),P=(e,t)=>{const i=e.env===x.PROD?"":`_${e.env}`;return`_pbstck_session_${t.tagId.substring(0,8)}${i}`},L=e=>Date.now()-e>18e5,R=(e,t)=>{try{const n=localStorage.getItem(P(e,t));if(n){const e=JSON.parse(atob(n));if(i=e,D.every((e=>e in i)))return e;throw new A}throw new N}catch(e){if(e instanceof I)throw e;throw new A}var i},U=(e,t)=>{try{const i=R(e,t);return i.pageCount++,localStorage.setItem(P(e,t),btoa(JSON.stringify(i))),i.pageCount}catch(e){if(e instanceof I)throw e;throw new I}},M=(e,t)=>{const i=new URL(window.location.href),n={id:y(),lastUpdateTimeMs:Date.now(),pageCount:0,lastUrlVisited:window.location.href,utmSource:i.searchParams.get("utm_source")||null,utmCampaign:i.searchParams.get("utm_campaign")||null,utmContent:i.searchParams.get("utm_content")||null,utmTerm:i.searchParams.get("utm_term")||null,utmMedium:i.searchParams.get("utm_medium")||null};try{localStorage.setItem(P(e,t),btoa(JSON.stringify(n)))}catch(e){throw new C}},$=[],q=(e,t)=>{const i=$.map((i=>F(i,e,t)));if(i.length){const n=JSON.stringify(i),o=`${e.gateway}/page?${(()=>{const e=document.querySelector('meta[name="pbstck:kleanads-version"]')?.getAttribute("content")??"none",i=document.querySelector('meta[name="pbstck:config-version"]')?.getAttribute("content")??"none";return`tId=${t.tagId}&v=${e}&s=${i}&c=1`})()}`;navigator.sendBeacon&&navigator.sendBeacon(o,n)||fetch(o,{body:n,method:"POST",keepalive:!0}),r("[page] event queue dispatched",JSON.stringify(i)),$.length=0}},B=(e,t,i)=>{try{const o=V(t,i);try{const i=R(e,t);L(i.lastUpdateTimeMs)&&q(e,t)}catch(e){r("[page] session was not found or invalid, adding the new page to the queue anyway")}(n=o,$.push(n),r("[page] event queued",n),$.length)>=20&&q(e,t)}catch(e){e instanceof I?a(`[page] new page : ${e.message}`):a("[page] unknown error",e)}var n},H=(e,t)=>{B(e,t),window.addEventListener(l.SESSION_TRACKING_AUTHORIZED,(i=>{r(`[page] ${l.SESSION_TRACKING_AUTHORIZED}`,i);try{((e,t)=>{try{const i=R(e,t);if(L(i.lastUpdateTimeMs))throw new O;i.lastUpdateTimeMs=Date.now(),i.lastUrlVisited=window.location.href,localStorage.setItem(P(e,t),btoa(JSON.stringify(i)))}catch(i){if(i instanceof N||i instanceof A)return void M(e,t);if(i instanceof I)throw i;throw new I}})(e,t),q(e,t)}catch(i){i instanceof O&&(M(e,t),q(e,t))}})),window.addEventListener(l.SESSION_TRACKING_DECLINED,(i=>{r(`[page] ${l.SESSION_TRACKING_DECLINED}`,i),((e,t)=>{try{localStorage.removeItem(P(e,t))}catch(e){}})(e,t),q(e,t)})),window.addEventListener(l.HISTORY_MUTATION,(i=>{r(`[page] ${l.HISTORY_MUTATION}`,i),i.detail?.referrer.href!==window.location.href&&B(e,t,i.detail?.referrer)})),window.addEventListener("popstate",(i=>{B(e,t)})),window.document.addEventListener("visibilitychange",(()=>{r(`[page] visibility changed to ${document.visibilityState}`),"visible"!==document.visibilityState&&q(e,t)})),window.addEventListener("pagehide",(()=>{q(e,t)})),window.addEventListener("beforeunload",(()=>{q(e,t)}))},V=(e,t)=>{const i=new URL(window.location.href);return{...e,pageId:z(),pageCount:1,domain:_(window.location)??"",href:(n=window.location,n&&n.protocol&&n.host&&n.pathname?`${n.protocol}//${n.host}${n.pathname}`:"unknown"),referrer:_(t??document.referrer),consent:T(),userSessionId:null,sessionTracking:E(),utmSource:i.searchParams.get("utm_source"),utmCampaign:i.searchParams.get("utm_campaign"),utmContent:i.searchParams.get("utm_content"),utmTerm:i.searchParams.get("utm_term"),utmMedium:i.searchParams.get("utm_medium")};var n},F=(e,t,i)=>{try{const n=E();return{...e,pageCount:n?U(t,i):e.pageCount,userSessionId:n?R(t,i).id:null,consent:T(),sessionTracking:n,utmSource:n?R(t,i).utmSource:e.utmSource,utmCampaign:n?R(t,i).utmCampaign:e.utmCampaign,utmContent:n?R(t,i).utmContent:e.utmContent,utmTerm:n?R(t,i).utmTerm:e.utmTerm,utmMedium:n?R(t,i).utmMedium:e.utmMedium}}catch(t){if(t instanceof N)return e;t instanceof I?a(`[session] ${t.message}`):a("[session] unknown error",t)}return e},z=()=>{const e=y();return window.__pbstck_page_id=e,e};var G;!function(e){e[e.DENIED=0]="DENIED",e[e.GRANTED=1]="GRANTED",e[e.UNAVAILABLE=2]="UNAVAILABLE"}(G||(G={}));const j=async(e,t)=>{k(G.UNAVAILABLE),S(!1);let i=0;try{(await W(e))("addEventListener",2,(n=>{if(n){if("tcloaded"===n.eventStatus||"useractioncomplete"===n.eventStatus){k(X(n));const e=J(n)&&!t.sessionTrackingDisabled;S(e),e?dispatchEvent(new CustomEvent(l.SESSION_TRACKING_AUTHORIZED)):dispatchEvent(new CustomEvent(l.SESSION_TRACKING_DECLINED))}}else r(`[consent] wrong tcdata ${n}, waiting 200ms`),setTimeout((()=>{i++,100===i&&o("[consent] unable to retrieve cmp after 100 tries"),j(e,t)}),200)}))}catch(e){a("[consent] Error while loading tcf api")}},K=(e,t,i)=>{if(e.__tcfapi){const n=e.__tcfapi;(e=>"function"==typeof e)(e.__tcfapi)?t(n):i("__tcfapi is not a function")}else setTimeout((()=>K(e,t,i)),100)},W=e=>new Promise(((t,i)=>K(e,t,i))),X=e=>e.purpose.consents&&e.purpose.consents[1]&&e.purpose.consents[2]&&e.purpose.consents[3]&&e.purpose.consents[4]&&e.purpose.consents[7]?G.GRANTED:G.DENIED,J=e=>e.purpose.consents[1]&&e.purpose.consents[7]&&e.purpose.consents[8]?(r("[consent] SessionTracking obtained"),!0):(r("[consent] SessionTracking declined"),!1);var Y,Z,Q,ee,te,ie=-1,ne=function(e){addEventListener("pageshow",(function(t){t.persisted&&(ie=t.timeStamp,e(t))}),!0)},oe=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},re=function(){var e=oe();return e&&e.activationStart||0},ae=function(e,t){var i=oe(),n="navigate";return ie>=0?n="back-forward-cache":i&&(document.prerendering||re()>0?n="prerender":document.wasDiscarded?n="restore":i.type&&(n=i.type.replace(/_/g,"-"))),{name:e,value:void 0===t?-1:t,rating:"good",delta:0,entries:[],id:"v4-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:n}},se=function(e,t,i){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var n=new PerformanceObserver((function(e){Promise.resolve().then((function(){t(e.getEntries())}))}));return n.observe(Object.assign({type:e,buffered:!0},i||{})),n}}catch(e){}},ce=function(e,t,i,n){var o,r;return function(a){t.value>=0&&(a||n)&&((r=t.value-(o||0))||void 0===o)&&(o=t.value,t.delta=r,t.rating=function(e,t){return e>t[1]?"poor":e>t[0]?"needs-improvement":"good"}(t.value,i),e(t))}},ue=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},de=function(e){document.addEventListener("visibilitychange",(function(){"hidden"===document.visibilityState&&e()}))},le=function(e){var t=!1;return function(){t||(e(),t=!0)}},pe=-1,we=function(){return"hidden"!==document.visibilityState||document.prerendering?1/0:0},me=function(e){"hidden"===document.visibilityState&&pe>-1&&(pe="visibilitychange"===e.type?e.timeStamp:0,be())},fe=function(){addEventListener("visibilitychange",me,!0),addEventListener("prerenderingchange",me,!0)},be=function(){removeEventListener("visibilitychange",me,!0),removeEventListener("prerenderingchange",me,!0)},he=function(){return pe<0&&(pe=we(),fe(),ne((function(){setTimeout((function(){pe=we(),fe()}),0)}))),{get firstHiddenTime(){return pe}}},ge=function(e){document.prerendering?addEventListener("prerenderingchange",(function(){return e()}),!0):e()},ve=[1800,3e3],ye=function(e,t){t=t||{},ge((function(){var i,n=he(),o=ae("FCP"),r=se("paint",(function(e){e.forEach((function(e){"first-contentful-paint"===e.name&&(r.disconnect(),e.startTime<n.firstHiddenTime&&(o.value=Math.max(e.startTime-re(),0),o.entries.push(e),i(!0)))}))}));r&&(i=ce(e,o,ve,t.reportAllChanges),ne((function(n){o=ae("FCP"),i=ce(e,o,ve,t.reportAllChanges),ue((function(){o.value=performance.now()-n.timeStamp,i(!0)}))})))}))},ke=[.1,.25],Se=0,Te=1/0,Ee=0,_e=function(e){e.forEach((function(e){e.interactionId&&(Te=Math.min(Te,e.interactionId),Ee=Math.max(Ee,e.interactionId),Se=Ee?(Ee-Te)/7+1:0)}))},xe=function(){return Y?Se:performance.interactionCount||0},Ie=function(){"interactionCount"in performance||Y||(Y=se("event",_e,{type:"event",buffered:!0,durationThreshold:0}))},Ce=[],Ae=new Map,Ne=0,Oe=[],De=function(e){if(Oe.forEach((function(t){return t(e)})),e.interactionId||"first-input"===e.entryType){var t=Ce[Ce.length-1],i=Ae.get(e.interactionId);if(i||Ce.length<10||e.duration>t.latency){if(i)e.duration>i.latency?(i.entries=[e],i.latency=e.duration):e.duration===i.latency&&e.startTime===i.entries[0].startTime&&i.entries.push(e);else{var n={id:e.interactionId,latency:e.duration,entries:[e]};Ae.set(n.id,n),Ce.push(n)}Ce.sort((function(e,t){return t.latency-e.latency})),Ce.length>10&&Ce.splice(10).forEach((function(e){return Ae.delete(e.id)}))}}},Pe=function(e){var t=self.requestIdleCallback||self.setTimeout,i=-1;return e=le(e),"hidden"===document.visibilityState?e():(i=t(e),de(e)),i},Le=[200,500],Re=function(e,t){"PerformanceEventTiming"in self&&"interactionId"in PerformanceEventTiming.prototype&&(t=t||{},ge((function(){var i;Ie();var n,o=ae("INP"),r=function(e){Pe((function(){e.forEach(De);var t=function(){var e=Math.min(Ce.length-1,Math.floor((xe()-Ne)/50));return Ce[e]}();t&&t.latency!==o.value&&(o.value=t.latency,o.entries=t.entries,n())}))},a=se("event",r,{durationThreshold:null!==(i=t.durationThreshold)&&void 0!==i?i:40});n=ce(e,o,Le,t.reportAllChanges),a&&(a.observe({type:"first-input",buffered:!0}),de((function(){r(a.takeRecords()),n(!0)})),ne((function(){Ne=xe(),Ce.length=0,Ae.clear(),o=ae("INP"),n=ce(e,o,Le,t.reportAllChanges)})))})))},Ue=[2500,4e3],Me={},$e=[800,1800],qe=function e(t){document.prerendering?ge((function(){return e(t)})):"complete"!==document.readyState?addEventListener("load",(function(){return e(t)}),!0):setTimeout(t,0)},Be=function(e,t){t=t||{};var i=ae("TTFB"),n=ce(e,i,$e,t.reportAllChanges);qe((function(){var o=oe();o&&(i.value=Math.max(o.responseStart-re(),0),i.entries=[o],n(!0),ne((function(){i=ae("TTFB",0),(n=ce(e,i,$e,t.reportAllChanges))(!0)})))}))},He={passive:!0,capture:!0},Ve=new Date,Fe=function(e,t){Z||(Z=t,Q=e,ee=new Date,je(removeEventListener),ze())},ze=function(){if(Q>=0&&Q<ee-Ve){var e={entryType:"first-input",name:Z.type,target:Z.target,cancelable:Z.cancelable,startTime:Z.timeStamp,processingStart:Z.timeStamp+Q};te.forEach((function(t){t(e)})),te=[]}},Ge=function(e){if(e.cancelable){var t=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?function(e,t){var i=function(){Fe(e,t),o()},n=function(){o()},o=function(){removeEventListener("pointerup",i,He),removeEventListener("pointercancel",n,He)};addEventListener("pointerup",i,He),addEventListener("pointercancel",n,He)}(t,e):Fe(t,e)}},je=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach((function(t){return e(t,Ge,He)}))},Ke=[100,300];function We(e,t,i,n){const o=()=>{const n=document.querySelector('meta[name="pbstck:kleanads-version"]')?.getAttribute("content")??"none",o=document.querySelector('meta[name="pbstck:config-version"]')?.getAttribute("content")??"none";return`${e.toLocaleLowerCase()}=${t.toFixed(3)}&tId=${i.tagId}&v=${n}&s=${o}&c=1`},r=E(),a=JSON.stringify([{...i,href:window.location.href,name:e,value:t,customFields:{...i.customFields,pageId:window.__pbstck_page_id,pageCount:String(r?R(n,i).pageCount:1),userSessionId:r?R(n,i).id:null,sessionTracking:String(r)}}]);navigator.sendBeacon&&navigator.sendBeacon(`${n.gateway}/web-vitals?${o()}`,a)||fetch(`${n.gateway}/web-vitals?${o()}`,{body:a,method:"POST",keepalive:!0})}const Xe=(e,t)=>{!function(e,t){t=t||{},ye(le((function(){var i,n=ae("CLS",0),o=0,r=[],a=function(e){e.forEach((function(e){if(!e.hadRecentInput){var t=r[0],i=r[r.length-1];o&&e.startTime-i.startTime<1e3&&e.startTime-t.startTime<5e3?(o+=e.value,r.push(e)):(o=e.value,r=[e])}})),o>n.value&&(n.value=o,n.entries=r,i())},s=se("layout-shift",a);s&&(i=ce(e,n,ke,t.reportAllChanges),de((function(){a(s.takeRecords()),i(!0)})),ne((function(){o=0,n=ae("CLS",0),i=ce(e,n,ke,t.reportAllChanges),ue((function(){return i()}))})),setTimeout(i,0))})))}((i=>We("CLS",i.value,t,e))),ye((i=>We("FCP",i.value,t,e))),function(e,t){t=t||{},ge((function(){var i,n=he(),o=ae("LCP"),r=function(e){t.reportAllChanges||(e=e.slice(-1)),e.forEach((function(e){e.startTime<n.firstHiddenTime&&(o.value=Math.max(e.startTime-re(),0),o.entries=[e],i())}))},a=se("largest-contentful-paint",r);if(a){i=ce(e,o,Ue,t.reportAllChanges);var s=le((function(){Me[o.id]||(r(a.takeRecords()),a.disconnect(),Me[o.id]=!0,i(!0))}));["keydown","click"].forEach((function(e){addEventListener(e,(function(){return Pe(s)}),!0)})),de(s),ne((function(n){o=ae("LCP"),i=ce(e,o,Ue,t.reportAllChanges),ue((function(){o.value=performance.now()-n.timeStamp,Me[o.id]=!0,i(!0)}))}))}}))}((i=>We("LCP",i.value,t,e))),function(e,t){t=t||{},ge((function(){var i,n=he(),o=ae("FID"),r=function(e){e.startTime<n.firstHiddenTime&&(o.value=e.processingStart-e.startTime,o.entries.push(e),i(!0))},a=function(e){e.forEach(r)},s=se("first-input",a);i=ce(e,o,Ke,t.reportAllChanges),s&&(de(le((function(){a(s.takeRecords()),s.disconnect()}))),ne((function(){var n;o=ae("FID"),i=ce(e,o,Ke,t.reportAllChanges),te=[],Q=-1,Z=null,je(addEventListener),n=r,te.push(n),ze()})))}))}((i=>We("FID",i.value,t,e))),Re((i=>We("INP",i.value,t,e))),Be((i=>We("TTFB",i.value,t,e)))};var Je,Ye="",Ze="function",Qe="undefined",et="object",tt="string",it="major",nt="model",ot="name",rt="type",at="vendor",st="version",ct="architecture",ut="console",dt="mobile",lt="tablet",pt="smarttv",wt="wearable",mt="embedded",ft="user-agent",bt=500,ht="brands",gt="formFactors",vt="fullVersionList",yt="platform",kt="platformVersion",St="bitness",Tt="sec-ch-ua",Et=Tt+"-full-version-list",_t=Tt+"-arch",xt=Tt+"-"+St,It=Tt+"-form-factors",Ct=Tt+"-"+dt,At=Tt+"-"+nt,Nt=Tt+"-"+yt,Ot=Nt+"-version",Dt=[ht,vt,dt,nt,yt,kt,ct,gt,St],Pt="browser",Lt="cpu",Rt="device",Ut="engine",Mt="os",$t="result",qt="Amazon",Bt="Apple",Ht="ASUS",Vt="BlackBerry",Ft="Google",zt="Huawei",Gt="Lenovo",jt="LG",Kt="Microsoft",Wt="Motorola",Xt="Samsung",Jt="Sharp",Yt="Sony",Zt="Xiaomi",Qt="Zebra",ei="Mobile ",ti=" Browser",ii="Chrome",ni="Firefox",oi="Opera",ri="Facebook",ai="Sogou",si="Windows",ci=typeof window!==Qe&&window.navigator?window.navigator:void 0,ui=ci&&ci.userAgentData?ci.userAgentData:void 0,di=function(e,t){var i={},n=t;if(!wi(t))for(var o in n={},t)for(var r in t[o])n[r]=t[o][r].concat(n[r]?n[r]:[]);for(var a in e)i[a]=n[a]&&n[a].length%2==0?n[a].concat(e[a]):e[a];return i},li=function(e){for(var t={},i=0;i<e.length;i++)t[e[i].toUpperCase()]=e[i];return t},pi=function(e,t){if(typeof e===et&&e.length>0){for(var i in e)if(bi(e[i])==bi(t))return!0;return!1}return!!mi(e)&&-1!==bi(t).indexOf(bi(e))},wi=function(e,t){for(var i in e)return/^(browser|cpu|device|engine|os)$/.test(i)||!!t&&wi(e[i])},mi=function(e){return typeof e===tt},fi=function(e){if(e){for(var t=[],i=vi(/\\?\"/g,e).split(","),n=0;n<i.length;n++)if(i[n].indexOf(";")>-1){var o=ki(i[n]).split(";v=");t[n]={brand:o[0],version:o[1]}}else t[n]=ki(i[n]);return t}},bi=function(e){return mi(e)?e.toLowerCase():e},hi=function(e){return mi(e)?vi(/[^\d\.]/g,e).split(".")[0]:void 0},gi=function(e){for(var t in e){var i=e[t];typeof i==et&&2==i.length?this[i[0]]=i[1]:this[i]=void 0}return this},vi=function(e,t){return mi(t)?t.replace(e,Ye):t},yi=function(e){return vi(/\\?\"/g,e)},ki=function(e,t){if(mi(e))return e=vi(/^\s\s*/,e),typeof t===Qe?e:e.substring(0,bt)},Si=function(e,t){if(e&&t)for(var i,n,o,r,a,s,c=0;c<t.length&&!a;){var u=t[c],d=t[c+1];for(i=n=0;i<u.length&&!a&&u[i];)if(a=u[i++].exec(e))for(o=0;o<d.length;o++)s=a[++n],typeof(r=d[o])===et&&r.length>0?2===r.length?typeof r[1]==Ze?this[r[0]]=r[1].call(this,s):this[r[0]]=r[1]:3===r.length?typeof r[1]!==Ze||r[1].exec&&r[1].test?this[r[0]]=s?s.replace(r[1],r[2]):void 0:this[r[0]]=s?r[1].call(this,s,r[2]):void 0:4===r.length&&(this[r[0]]=s?r[3].call(this,s.replace(r[1],r[2])):void 0):this[r]=s||void 0;c+=2}},Ti=function(e,t){for(var i in t)if(typeof t[i]===et&&t[i].length>0){for(var n=0;n<t[i].length;n++)if(pi(t[i][n],e))return"?"===i?void 0:i}else if(pi(t[i],e))return"?"===i?void 0:i;return t.hasOwnProperty("*")?t["*"]:e},Ei={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},_i={embedded:"Automotive",mobile:"Mobile",tablet:["Tablet","EInk"],smarttv:"TV",wearable:"Watch",xr:["VR","XR"],"?":["Desktop","Unknown"],"*":void 0},xi={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[st,[ot,ei+"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[st,[ot,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[ot,st],[/opios[\/ ]+([\w\.]+)/i],[st,[ot,oi+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[st,[ot,oi+" GX"]],[/\bopr\/([\w\.]+)/i],[st,[ot,oi]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[st,[ot,"Baidu"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim)\s?(?:browser)?[\/ ]?([\w\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar)\/([-\w\.]+)/i,/(heytap|ovi)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[ot,st],[/\bddg\/([\w\.]+)/i],[st,[ot,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[st,[ot,"UCBrowser"]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[st,[ot,"WeChat"]],[/konqueror\/([\w\.]+)/i],[st,[ot,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[st,[ot,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[st,[ot,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[st,[ot,"Smart "+Gt+ti]],[/(avast|avg)\/([\w\.]+)/i],[[ot,/(.+)/,"$1 Secure"+ti],st],[/\bfocus\/([\w\.]+)/i],[st,[ot,ni+" Focus"]],[/\bopt\/([\w\.]+)/i],[st,[ot,oi+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[st,[ot,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[st,[ot,"Dolphin"]],[/coast\/([\w\.]+)/i],[st,[ot,oi+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[st,[ot,"MIUI"+ti]],[/fxios\/([\w\.-]+)/i],[st,[ot,ei+ni]],[/\bqihu|(qi?ho?o?|360)browser/i],[[ot,"360"+ti]],[/\b(qq)\/([\w\.]+)/i],[[ot,/(.+)/,"$1Browser"],st],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[ot,/(.+)/,"$1"+ti],st],[/samsungbrowser\/([\w\.]+)/i],[st,[ot,Xt+" Internet"]],[/(comodo_dragon)\/([\w\.]+)/i],[[ot,/_/g," "],st],[/metasr[\/ ]?([\d\.]+)/i],[st,[ot,ai+" Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[ot,ai+" Mobile"],st],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345Explorer)[\/ ]?([\w\.]+)/i],[ot,st],[/(lbbrowser|rekonq)/i,/\[(linkedin)app\]/i],[ot],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[ot,ri],st],[/(Klarna)\/([\w\.]+)/i,/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i],[ot,st],[/\bgsa\/([\w\.]+) .*safari\//i],[st,[ot,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[st,[ot,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[st,[ot,ii+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[ot,ii+" WebView"],st],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[st,[ot,"Android"+ti]],[/chrome\/([\w\.]+) mobile/i],[st,[ot,ei+"Chrome"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[ot,st],[/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i],[st,[ot,ei+"Safari"]],[/iphone .*mobile(?:\/\w+ | ?)safari/i],[[ot,ei+"Safari"]],[/version\/([\w\.\,]+) .*(safari)/i],[st,ot],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[ot,[st,"1"]],[/(webkit|khtml)\/([\w\.]+)/i],[ot,st],[/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i],[[ot,ei+ni],st],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[ot,"Netscape"],st],[/(wolvic)\/([\w\.]+)/i],[ot,st],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[st,[ot,ni+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[ot,[st,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[ot,[st,/[^\d\.]+./,Ye]]],cpu:[[/\b(?:(amd|x|x86[-_]?|wow|win)64)\b/i],[[ct,"amd64"]],[/(ia32(?=;))/i,/((?:i[346]|x)86)[;\)]/i],[[ct,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[ct,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[ct,"armhf"]],[/windows (ce|mobile); ppc;/i],[[ct,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[ct,/ower/,Ye,bi]],[/(sun4\w)[;\)]/i],[[ct,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[ct,bi]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[nt,[at,Xt],[rt,lt]],[/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[nt,[at,Xt],[rt,dt]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[nt,[at,Bt],[rt,dt]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[nt,[at,Bt],[rt,lt]],[/(macintosh);/i],[nt,[at,Bt]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[nt,[at,Jt],[rt,dt]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[nt,[at,zt],[rt,lt]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[nt,[at,zt],[rt,dt]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[nt,/_/g," "],[at,Zt],[rt,dt]],[/oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i,/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[nt,/_/g," "],[at,Zt],[rt,lt]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[nt,[at,"OPPO"],[rt,dt]],[/\b(opd2\d{3}a?) bui/i],[nt,[at,"OPPO"],[rt,lt]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[nt,[at,"Vivo"],[rt,dt]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[nt,[at,"Realme"],[rt,dt]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[nt,[at,Wt],[rt,dt]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[nt,[at,Wt],[rt,lt]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[nt,[at,jt],[rt,lt]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[nt,[at,jt],[rt,dt]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[nt,[at,Gt],[rt,lt]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[nt,/_/g," "],[at,"Nokia"],[rt,dt]],[/(pixel c)\b/i],[nt,[at,Ft],[rt,lt]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[nt,[at,Ft],[rt,dt]],[/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[nt,[at,Yt],[rt,dt]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[nt,"Xperia Tablet"],[at,Yt],[rt,lt]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[nt,[at,"OnePlus"],[rt,dt]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[nt,[at,qt],[rt,lt]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[nt,/(.+)/g,"Fire Phone $1"],[at,qt],[rt,dt]],[/(playbook);[-\w\),; ]+(rim)/i],[nt,at,[rt,lt]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[nt,[at,Vt],[rt,dt]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[nt,[at,Ht],[rt,lt]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[nt,[at,Ht],[rt,dt]],[/(nexus 9)/i],[nt,[at,"HTC"],[rt,lt]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[at,[nt,/_/g," "],[rt,dt]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[nt,[at,"Acer"],[rt,lt]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[nt,[at,"Meizu"],[rt,dt]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[nt,[at,"Ulefone"],[rt,dt]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[at,nt,[rt,dt]],[/(kobo)\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i],[at,nt,[rt,lt]],[/(surface duo)/i],[nt,[at,Kt],[rt,lt]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[nt,[at,"Fairphone"],[rt,dt]],[/(shield[\w ]+) b/i],[nt,[at,"Nvidia"],[rt,lt]],[/(sprint) (\w+)/i],[at,nt,[rt,dt]],[/(kin\.[onetw]{3})/i],[[nt,/\./g," "],[at,Kt],[rt,dt]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[nt,[at,Qt],[rt,lt]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[nt,[at,Qt],[rt,dt]],[/smart-tv.+(samsung)/i],[at,[rt,pt]],[/hbbtv.+maple;(\d+)/i],[[nt,/^/,"SmartTV"],[at,Xt],[rt,pt]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[at,jt],[rt,pt]],[/(apple) ?tv/i],[at,[nt,Bt+" TV"],[rt,pt]],[/crkey/i],[[nt,ii+"cast"],[at,Ft],[rt,pt]],[/droid.+aft(\w+)( bui|\))/i],[nt,[at,qt],[rt,pt]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[nt,[at,Jt],[rt,pt]],[/(bravia[\w ]+)( bui|\))/i],[nt,[at,Yt],[rt,pt]],[/(mitv-\w{5}) bui/i],[nt,[at,Zt],[rt,pt]],[/Hbbtv.*(technisat) (.*);/i],[at,nt,[rt,pt]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[at,ki],[nt,ki],[rt,pt]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[rt,pt]],[/(ouya)/i,/(nintendo) (\w+)/i],[at,nt,[rt,ut]],[/droid.+; (shield) bui/i],[nt,[at,"Nvidia"],[rt,ut]],[/(playstation \w+)/i],[nt,[at,Yt],[rt,ut]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[nt,[at,Kt],[rt,ut]],[/((pebble))app/i],[at,nt,[rt,wt]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[nt,[at,Bt],[rt,wt]],[/droid.+; (wt63?0{2,3})\)/i],[nt,[at,Qt],[rt,wt]],[/droid.+; (glass) \d/i],[nt,[at,Ft],[rt,"xr"]],[/(quest( \d| pro)?)/i],[nt,[at,ri],[rt,"xr"]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[at,[rt,mt]],[/(aeobc)\b/i],[nt,[at,qt],[rt,mt]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i],[nt,[rt,dt]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[nt,[rt,lt]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[rt,lt]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[rt,dt]],[/(android[-\w\. ]{0,9});.+buil/i],[nt,[at,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[st,[ot,"EdgeHTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[st,[ot,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[ot,st],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[st,ot]],os:[[/microsoft (windows) (vista|xp)/i],[ot,st],[/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i],[ot,[st,Ti,Ei]],[/windows nt 6\.2; (arm)/i,/windows[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[st,Ti,Ei],[ot,si]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[st,/_/g,"."],[ot,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[ot,"macOS"],[st,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[st,ot],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[ot,st],[/\(bb(10);/i],[st,[ot,Vt]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[st,[ot,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[st,[ot,ni+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[st,[ot,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[st,[ot,"watchOS"]],[/crkey\/([\d\.]+)/i],[st,[ot,ii+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[ot,"Chrome OS"],st],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) (\w+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[ot,st],[/(sunos) ?([\w\.\d]*)/i],[[ot,"Solaris"],st],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[ot,st]]},Ii=(Je={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}},gi.call(Je.init,[[Pt,[ot,st,it,rt]],[Lt,[ct]],[Rt,[rt,nt,at]],[Ut,[ot,st]],[Mt,[ot,st]]]),gi.call(Je.isIgnore,[[Pt,[st,it]],[Ut,[st]],[Mt,[st]]]),gi.call(Je.isIgnoreRgx,[[Pt,/ ?browser$/i],[Mt,/ ?os$/i]]),gi.call(Je.toString,[[Pt,[ot,st]],[Lt,[ct]],[Rt,[at,nt]],[Ut,[ot,st]],[Mt,[ot,st]]]),Je),Ci=function(e,t){var i=Ii.init[t],n=Ii.isIgnore[t]||0,o=Ii.isIgnoreRgx[t]||0,r=Ii.toString[t]||0;function a(){gi.call(this,i)}return a.prototype.getItem=function(){return e},a.prototype.withClientHints=function(){return ui?ui.getHighEntropyValues(Dt).then((function(t){return e.setCH(new Ai(t,!1)).parseCH().get()})):e.parseCH().get()},a.prototype.withFeatureCheck=function(){return e.detectFeature().get()},t!=$t&&(a.prototype.is=function(e){var t=!1;for(var i in this)if(this.hasOwnProperty(i)&&!pi(n,i)&&bi(o?vi(o,this[i]):this[i])==bi(o?vi(o,e):e)){if(t=!0,e!=Qe)break}else if(e==Qe&&t){t=!t;break}return t},a.prototype.toString=function(){var e=Ye;for(var t in r)typeof this[r[t]]!==Qe&&(e+=(e?" ":Ye)+this[r[t]]);return e||Qe}),ui||(a.prototype.then=function(e){var t=this,i=function(){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e])};i.prototype={is:a.prototype.is,toString:a.prototype.toString};var n=new i;return e(n),n}),new a};function Ai(e,t){if(e=e||{},gi.call(this,Dt),t)gi.call(this,[[ht,fi(e[Tt])],[vt,fi(e[Et])],[dt,/\?1/.test(e[Ct])],[nt,yi(e[At])],[yt,yi(e[Nt])],[kt,yi(e[Ot])],[ct,yi(e[_t])],[gt,fi(e[It])],[St,yi(e[xt])]]);else for(var i in e)this.hasOwnProperty(i)&&typeof e[i]!==Qe&&(this[i]=e[i])}function Ni(e,t,i,n){return this.get=function(e){return e?this.data.hasOwnProperty(e)?this.data[e]:void 0:this.data},this.set=function(e,t){return this.data[e]=t,this},this.setCH=function(e){return this.uaCH=e,this},this.detectFeature=function(){if(ci&&ci.userAgent==this.ua)switch(this.itemType){case Pt:ci.brave&&typeof ci.brave.isBrave==Ze&&this.set(ot,"Brave");break;case Rt:!this.get(rt)&&ui&&ui[dt]&&this.set(rt,dt),"Macintosh"==this.get(nt)&&ci&&typeof ci.standalone!==Qe&&ci.maxTouchPoints&&ci.maxTouchPoints>2&&this.set(nt,"iPad").set(rt,lt);break;case Mt:!this.get(ot)&&ui&&ui[yt]&&this.set(ot,ui[yt]);break;case $t:var e=this.data,t=function(t){return e[t].getItem().detectFeature().get()};this.set(Pt,t(Pt)).set(Lt,t(Lt)).set(Rt,t(Rt)).set(Ut,t(Ut)).set(Mt,t(Mt))}return this},this.parseUA=function(){return this.itemType!=$t&&Si.call(this.data,this.ua,this.rgxMap),this.itemType==Pt&&this.set(it,hi(this.get(st))),this},this.parseCH=function(){var e=this.uaCH,t=this.rgxMap;switch(this.itemType){case Pt:var i,n=e[vt]||e[ht];if(n)for(var o in n){var r=vi(/(Google|Microsoft) /,n[o].brand||n[o]),a=n[o].version;/not.a.brand/i.test(r)||i&&(!/chrom/i.test(i)||/chromi/i.test(r))||(this.set(ot,r).set(st,a).set(it,hi(a)),i=r)}break;case Lt:var s=e[ct];s&&(s&&"64"==e[St]&&(s+="64"),Si.call(this.data,s+";",t));break;case Rt:if(e[dt]&&this.set(rt,dt),e[nt]&&this.set(nt,e[nt]),"Xbox"==e[nt]&&this.set(rt,ut).set(at,Kt),e[gt]){var c;if("string"!=typeof e[gt])for(var u=0;!c&&u<e[gt].length;)c=Ti(e[gt][u++],_i);else c=Ti(e[gt],_i);this.set(rt,c)}break;case Mt:var d=e[yt];if(d){var l=e[kt];d==si&&(l=parseInt(hi(l),10)>=13?"11":"10"),this.set(ot,d).set(st,l)}this.get(ot)==si&&"Xbox"==e[nt]&&this.set(ot,"Xbox").set(st,void 0);break;case $t:var p=this.data,w=function(t){return p[t].getItem().setCH(e).parseCH().get()};this.set(Pt,w(Pt)).set(Lt,w(Lt)).set(Rt,w(Rt)).set(Ut,w(Ut)).set(Mt,w(Mt))}return this},gi.call(this,[["itemType",e],["ua",t],["uaCH",n],["rgxMap",i],["data",Ci(this,e)]]),this}function Oi(e,t,i){if(typeof e===et?(wi(e,!0)?(typeof t===et&&(i=t),t=e):(i=e,t=void 0),e=void 0):typeof e!==tt||wi(t,!0)||(i=t,t=void 0),!(this instanceof Oi))return new Oi(e,t,i).getResult();var n=typeof e===tt?e:ci&&ci.userAgent?ci.userAgent:i&&i[ft]?i[ft]:Ye,o=new Ai(i,!0),r=t?di(xi,t):xi,a=function(e){return e==$t?function(){return new Ni(e,n,r,o).set("ua",n).set(Pt,this.getBrowser()).set(Lt,this.getCPU()).set(Rt,this.getDevice()).set(Ut,this.getEngine()).set(Mt,this.getOS()).get()}:function(){return new Ni(e,n,r[e],o).parseUA().get()}};return gi.call(this,[["getBrowser",a(Pt)],["getCPU",a(Lt)],["getDevice",a(Rt)],["getEngine",a(Ut)],["getOS",a(Mt)],["getResult",a($t)],["getUA",function(){return n}],["setUA",function(e){return mi(e)&&(n=e.length>bt?ki(e,bt):e),this}]]).setUA(n),this}Oi.VERSION="2.0.0-beta.3",Oi.BROWSER=li([ot,st,it,rt]),Oi.CPU=li([ct]),Oi.DEVICE=li([nt,at,rt,ut,dt,pt,lt,wt,mt]),Oi.ENGINE=Oi.OS=li([ot,st]);const Di=()=>{const e=navigator.userAgent;return/(tablet|ipad|playbook|silk)|(android(?!.*mobi))/i.test(e)?"tablet":/Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)/.test(e)?"mobile":"desktop"};e.pubstackAutoconfig=async function(e){if(void 0===e.endpoint.gateway)return void a("[pbstckAutoconfig] no gateway url found in config");const t={gateway:e.endpoint.gateway,env:(i=e.endpoint.gateway,i.includes(x.DEV)?x.DEV:i.includes(x.BETA)?x.BETA:x.PROD),sessionTrackingDisabled:e.sessionTrackingDisabled??!1};var i;try{const i=window.top||window;i.pbstck=i.pbstck||{lock:{}},i.pbstck.lock=i.pbstck.lock||{};const n=`${e.tagId}@${t.env}@user-sessions`;if(i.pbstck.lock[n])return;i.pbstck.lock[n]=!0}catch(e){a("[pbstckAutoconfig] error while locking the integration",e)}const n=new Oi(navigator.userAgent),o=n.getOS(),s=n.getBrowser(),u={tagId:e.tagId,scopeId:e.scopeId,country:e.country,device:Di(),browserName:s.name||"unknown",browserVersion:s.major||"unknown",osName:o.name||"unknown",osVersion:o.version||"unknown",pbstckVersion:"b6ed2f5",customFields:c()},d=new Promise((e=>{setTimeout((()=>{e()}),300)})),l=(async()=>{try{return await(navigator?.cookieDeprecationLabel?.getValue())}catch(e){r("Error while getting cookie depreciation label",e)}})();await Promise.all([l,d]).then((e=>{const t=e[0]??"";t&&(u.customFields.cdep=t)})),u.tagId&&u.scopeId?(w(p.REPLACE_STATE),w(p.PUSH_STATE),(e=>{j(window,e)})(t),Xe(t,u),H(t,u)):a("[pbstckAutoconfig] no tagId or scopeId found in context")}}(this.userSessions=this.userSessions||{});
;
return this;}.bind({}); var _ = load();_.userSessions.pubstackAutoconfig({"endpoint":{"gateway":"https://intake.pbstck.com/v1/intake"},"scopeId":"62e13ed6-cbd3-4eec-bbe8-5a42a44cd1b3","tagId":"62759f86-1092-42f9-a8af-2e9858fa1056","sessionTrackingDisabled":true}); })()</script><script type="text/javascript">(function() { var load = function() {!function(e){"use strict";function t(e,t,i,s){return new(i||(i=Promise))((function(n,o){function r(e){try{d(s.next(e))}catch(e){o(e)}}function a(e){try{d(s.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?n(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}d((s=s.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const i=e=>void 0!==e,s=[0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,59],n=e=>{if(!e)throw new Error("IllegalArgumentException");const t={_value:[108,98,39,46,7,187,1,66,98,184,33,117,98,149,197,141],_scratch:new Array(16)};function i(){let e,i;for(i=0;i<16;i++)t._scratch[i]=0;for(i=0;i<16;i++)for(let n=0;n<16-i;n++)e=t._value[15-i]*s[15-n]+(t._scratch[15-(i+n)]||0),e>255&&(i+n+1<16&&(t._scratch[15-(i+n+1)]+=e>>>8),e-=e>>>8<<8),t._scratch[15-(i+n)]=e;const n=t._scratch;t._scratch=t._value,t._value=n}return function(e){let s;if("string"==typeof e){const t=e.replace(/\r\n/g,"\n"),i=[];let n=0;for(s=0;s<t.length;s++){const e=t.charCodeAt(s);e<128?i[n++]=e:e<2048?(i[n++]=e>>6|192,i[n++]=63&e|128):(i[n++]=e>>12|224,i[n++]=e>>6&63|128,i[n++]=63&e|128)}e=i}for(s=0;s<e.length;s++)t._value[15]^=e[s],i()}(e),t._value.reduce(((e,t)=>e+("00"+t.toString(16)).slice(-2)),"")},o=(e,...t)=>{if(0===t.length||""===t.join(""))throw new Error("Failed to create hash");return n(t.join("")).substr(0,e)},r=(...e)=>{try{return o(14,...e)}catch(e){throw new Error("Failed to create an auction Id")}},a=(...e)=>{try{return o(8,...e)}catch(e){throw new Error("Failed to create a bid Id")}},d=()=>n(`${Math.random().toString(36)}${(new Date).getTime()}`);class c{constructor(e){this.subscriptions=[],this.children=[],this.processingChain=e?[...e]:[]}subscribe(e,t){this.subscriptions.push({onEvent:e,onError:t})}unsubscribe(e,t){this.subscriptions=this.subscriptions.filter((i=>!(i.onEvent===e&&i.onError===t)))}pipe(...e){const t=new c([...this.processingChain,...e]);return this.children.push(t),t}next(e){this.subscriptions.forEach((t=>{try{const i=this.processingChain.reduce(((e,t)=>{if(void 0!==e)return t(e)}),e);void 0!==i&&t.onEvent(i)}catch(e){t.onError&&t.onError(e)}})),this.children.forEach((t=>t.next(e)))}}const u=e=>{return[(t=([t])=>e.test(t),e=>{if(t(e))return e}),([,[e,...t]])=>[e,t]];var t};class l extends Error{constructor(e){super(e)}}function b(e,t){if(!Array.isArray(e))throw new l(null!=t?t:"Expected value to be an array, but received "+typeof e)}function p(e){return"number"==typeof e&&!isNaN(e)}function h(e){return"string"==typeof e}function m(e,t){if(!p(e))throw new l(null!=t?t:"Expected value to be a number, but received "+typeof e)}function v(e,t){if(null!=e&&"string"!=typeof e)throw new l("Expected value to be a string, undefined or null, but received "+typeof e)}function f(e,t){if(null!=e&&!function(e){return"boolean"==typeof e}(e))throw new l("Expected value to be a boolean, but received "+typeof e)}function g(e,t){if("string"!=typeof e)throw new l(null!=t?t:"Expected value to be a string, but received "+typeof e)}function w(e,t){if(null==e)throw new l(null!=t?t:`Expected value to be defined, but received ${e}`)}function y(e,t){if(!Array.isArray(e)||0===e.filter((e=>void 0!==e)).length)throw new l(null!=t?t:"Expected array to be not empty")}const I=e=>"object"==typeof e&&null!==e&&!Array.isArray(e);function k(e,t){if(!I(e))throw new l(null!=t?t:`Expected value to be record, but received '${typeof e}'`)}const C=(e,t)=>I(e)&&t in e;const A=[],R=new c;function S(e,t){let i=0;A.push((s=>{i>=t||(i+=1,e(s))}))}function T(e){A.forEach((t=>t({error:e})))}function E(e){var t;T({context:null!==(t=e.context)&&void 0!==t?t:{},message:e.message})}var j,x;const U=/pbstck:debug/.test(window.location.href),N=!!(null===(j=window.localStorage)||void 0===j?void 0:j.getItem)&&null!==window.localStorage.getItem("pbstck"),O=`[pbstck-${null!==(x="01e89e8")?x:"unknown"}]`;function B(){return U||N}function V(...e){B()&&console.log(O,...e)}function q(...e){B()&&console.warn(O,...e)}function $(...e){B()&&console.error(O,...e)}const D=["39216077","6943","8456","1021524","1026508","1030155","2165149","2444258","4708965","5624990","7321515","7687385","17085479","22181265","27416722","46481815","49313688","91083230","127208727","22247219933","22815767462","22702991301","22665197336","22022010600","21866864457","21823883819","21794835430","21734370771","21722279357"],z=e=>{var t,i,s;if(!(null===(t=e.pubstack)||void 0===t?void 0:t.adUnitName)&&e.ortb2Imp)for(const t of D){if(e.ortb2Imp.ext.data.pbadslot.startsWith(`/${t}/`)){const t=e.ortb2Imp.ext.data.pbadslot.replace(/\/$/,"").split("/").pop();return t||e.code}if(e.ortb2Imp.ext.gpid){const t=e.ortb2Imp.ext.gpid.replace(/\/$/,"").split("/").pop();return t||e.code}}return null!==(s=null===(i=e.pubstack)||void 0===i?void 0:i.adUnitName)&&void 0!==s?s:e.code},F=e=>{var t;if(null===(t=e.pubstack)||void 0===t?void 0:t.adUnitPath)return L(e.pubstack.adUnitPath);if(e.ortb2Imp){if(e.ortb2Imp.ext.data.pbadslot)return L(e.ortb2Imp.ext.data.pbadslot);if(e.ortb2Imp.ext.gpid)return L(e.ortb2Imp.ext.gpid)}},_=e=>{const t=[];return e.forEach((e=>{X(e).bids.forEach((e=>{t.some((t=>t.bidder===e.bidder))||t.push(e)}))})),t},M=e=>{const t={};return e.forEach((e=>{const i=X(e);void 0!==i.mediaTypes.native&&(t.native=i.mediaTypes.native),void 0!==i.mediaTypes.video&&i.mediaTypes.video.playerSize&&(t.video?t.video.playerSize=[...t.video.playerSize,...i.mediaTypes.video.playerSize]:t.video=i.mediaTypes.video),void 0!==i.mediaTypes.banner&&(t.banner?(t.banner.sizes=[...t.banner.sizes,...i.mediaTypes.banner.sizes],i.mediaTypes.banner.sizeConfig&&(t.banner.sizeConfig=i.mediaTypes.banner.sizeConfig)):t.banner=i.mediaTypes.banner)})),t},P=e=>{var t,i,s;const n=e=>"string"==typeof e?e:Array.isArray(e)&&2===e.length?`${e[0]}x${e[1]}`:"unknown",o=new Set;return(e=>{var t,i;return(void 0===(null===(t=e.mediaTypes.banner)||void 0===t?void 0:t.sizes)||0===(null===(i=e.mediaTypes.banner)||void 0===i?void 0:i.sizes.length))&&void 0===e.mediaTypes.native&&void 0===e.mediaTypes.video})(e)?[]:((null===(t=e.mediaTypes.banner)||void 0===t?void 0:t.sizes)&&(Array.isArray(e.mediaTypes.banner.sizes[0])?e.mediaTypes.banner.sizes.forEach((e=>o.add(n(e)))):o.add(n(e.mediaTypes.banner.sizes))),(null===(i=e.mediaTypes.video)||void 0===i?void 0:i.playerSize)&&(null===(s=e.mediaTypes.video)||void 0===s||s.playerSize.forEach((e=>o.add((e=>{const t=n(e);return"unknown"===t?"video":`video-${t}`})(e))))),e.mediaTypes.native&&o.add("native"),Array.from(o))},L=e=>e.startsWith("/")?e:`/${e}`,W=e=>{var t,i;const s=/^(adUnitPath)/;return(null!==(i=null===(t=e.pubstack)||void 0===t?void 0:t.tags)&&void 0!==i?i:[]).filter((e=>"string"==typeof e)).filter((e=>e.length>0&&e.length<256||s.test(e)))},G=e=>{const t=(e=>e.placementId||e.zoneId||e.siteId||void 0)(e);if(t)return`slot:${t}`},H=e=>{const t={hasUserId:"notAvailable",userIdProviderList:[]};if(0===e.length)return t;let i=!0;const s=e[0].bids[0];return e.forEach((e=>{e.bids.forEach((e=>{const n=Object.entries(e.userId||{}).flatMap((([e,t])=>{if(Array.isArray(t)){const i=t.filter((e=>Object.prototype.hasOwnProperty.call(e,"source"))).map((t=>`${e}:${t.source}`));return i.length?i:e}return e}));if(t.userIdProviderList=t.userIdProviderList.concat(n),t.userIdProviderList=t.userIdProviderList.concat(Object.keys(e.crumbs||{})),i=i&&typeof s.crumbs==typeof e.crumbs,s.crumbs&&e.crumbs){const t=Object.keys(s.crumbs),n=Object.keys(e.crumbs);i=i&&t.length===n.length&&t.every((e=>n.includes(e)))}if(i=i&&typeof s.userId==typeof e.userId,s.userId&&e.userId){const t=Object.keys(s.userId),n=Object.keys(e.userId);i=i&&t.length===n.length&&t.every((e=>n.includes(e)))}}))})),t.userIdProviderList.length>0&&i?t.hasUserId="available":t.userIdProviderList.length>0&&!i&&(t.hasUserId="notConsistent"),t.userIdProviderList=Array.from(new Set(t.userIdProviderList)),t},J=e=>{let t=e.map((e=>e.gdprConsent)).filter((e=>void 0!==e));return e.length!==t.length&&(t=[]),t},Q=e=>{const t={userConsentState:"notAvailable",userConsentVersion:"notAvailable"};try{if(0===e.length)return t;const i=e.every(((e,t,i)=>e.apiVersion===i[0].apiVersion)),s=e.every(((e,t,i)=>e.consentString===i[0].consentString));if(!i||!s)throw new Error("API version and Consent string must be unique within a bid request array");return(e=>{const t={userConsentState:"notAvailable",userConsentVersion:"notAvailable"};if(void 0===e)return t;let i=!1,s=!1;if(e.apiVersion&&1!==e.apiVersion){if(2!==e.apiVersion)throw e.apiVersion>2?new Error(`API version is not yet supported: ${e.apiVersion}`):new Error(`An issue occured while identifying TCF version: ${e.apiVersion}`);if(t.userConsentVersion="tcf-v2","boolean"==typeof e.gdprApplies&&!e.gdprApplies)return Object.assign(Object.assign({},t),{userConsentState:"notApplicable"});if((e=>{const t=e;return!!(t&&t.purpose&&t.purpose.consents&&t.vendor&&t.vendor.consents)})(e.vendorData)){const n=Object.values(e.vendorData.purpose.consents),o=Object.values(e.vendorData.vendor.consents);if(i=n.filter((e=>e)).length>0,s=o.filter((e=>e)).length>0,0===n.length||0===o.length)return Object.assign(Object.assign({},t),{userConsentState:"notAvailable"})}}else{if(t.userConsentVersion="tcf-v1","boolean"==typeof e.gdprApplies&&!e.gdprApplies)return Object.assign(Object.assign({},t),{userConsentState:"notApplicable"});if((e=>{const t=e;return!(!t||!t.purposeConsents||!t.vendorConsents)})(e.vendorData)){const n=Object.values(e.vendorData.purposeConsents),o=Object.values(e.vendorData.vendorConsents);if(i=n.filter((e=>e)).length>0,s=o.filter((e=>e)).length>0,0===n.length||0===o.length)return Object.assign(Object.assign({},t),{userConsentState:"notAvailable"})}}return t.userConsentState=i&&s?"accepted":"refused",t})(e[0])}catch(e){return e.context=e.context||{},e.context.pbjs={source:"pbjs:helpers"},E(e),t}},X=e=>JSON.parse(JSON.stringify(e));var K,Y;!function(e){e[e.LOADED=0]="LOADED",e[e.FAILED=1]="FAILED",e[e.NOT_READY=2]="NOT_READY"}(K||(K={})),function(e){e.RUNNING="running",e.NO_BID="noBid",e.BID="bidResponse",e.TIMEOUT="bidTimeout"}(Y||(Y={}));const Z=e=>e.state===Y.BID,ee=e=>Z(e)?e.bidResponseId:e.bidId;var te,ie;!function(e){e[e.ON_DONE=0]="ON_DONE",e[e.ON_SMART_MERGED=1]="ON_SMART_MERGED",e[e.NEVER=2]="NEVER"}(te||(te={})),function(e){e[e.PBJS=0]="PBJS",e[e.SMART_RTB=1]="SMART_RTB",e[e.AMAZON=2]="AMAZON",e[e.GAM=3]="GAM"}(ie||(ie={}));const se=400,ne="unknown",oe=new Map;class re{constructor(e,t=!1){this.onBidResponseStream=new c,this.onAuctionEndStream=new c,this.onBidWonStream=new c,this.onBidWonFromSdkStream=new c,e&&(this.pbjsConfig=e),this.admOnboarding=t}getAdServerCurrency(){var e;return null===(e=this.pbjsConfig)||void 0===e?void 0:e.adServerCurrency}onBidResponse(e){const t=r(e.adUnitCode,e.auctionId),i=a(e.requestId),s=a(i,e.adId);oe.set(e.adId,i),this.onBidResponseStream.next({adId:e.adId,auctionId:t,dealId:e.dealId||void 0,bidId:i,bidResponseId:s,cpm:e.cpm,currency:e.currency,size:e.size,mediaType:e.mediaType,tags:[],bidderCode:e.bidderCode,customFields:{},timeToRespond:e.timeToRespond,adapterCode:e.adapterCode,advertiserDomains:e.advertiserDomains})}onAuctionEnd(e,t="prebid"){var s,n;const o=(null===(n=window[(null===(s=this.pbjsConfig)||void 0===s?void 0:s.pbjsVariableName)||"pbjs"])||void 0===n?void 0:n.aliasRegistry)||{};!function(e,t){const i=[];if(e.forEach((e=>{try{t(e)}catch(e){i.push(e)}})),0!==i.length){const e=`forEach: Unexpected (${i.length}) errors\n${i.reduce(((e,t)=>`${e}\t- ${t.message}\n`),"")}`;throw new Error(e)}}(e.adUnits.filter((t=>void 0===e.adUnitCodes||e.adUnitCodes.includes(t.code))).reduce(((e,t)=>(e.find((e=>t.code===e.code))||e.push(t),e)),[]),(s=>{var n,c,u,l;const p=function(e,t){const i=e.adUnits.filter((e=>e.code===t)),s={code:t,bids:_(i),mediaTypes:M(i)},n=(e=>{let t;return e.forEach((e=>{const i=X(e);i.pubstack&&0!=Object.keys(i.pubstack).length?t=i.pubstack:JSON.stringify(i.pubstack)!==JSON.stringify(t)&&q(`Two different pubstack declaration found for a adUnitCode ${i.code}`,i.pubstack,t)})),t})(i);n&&(s.pubstack=n);const o=(e=>{let t;return e.forEach((e=>{const i=X(e);i.ortb2Imp?t=i.ortb2Imp:JSON.stringify(i.ortb2Imp)!==JSON.stringify(t)&&q(`Two different ortb2imp declaration found for a adUnitCode ${i.code}`,i.ortb2Imp,t)})),t})(i);o&&(s.ortb2Imp=o);return s}(e,s.code),h=(e=>({code:e.code,name:z(e),path:F(e)}))(p),m=r(p.code,e.auctionId),v=e.labels||[],f=(b(g=e.bidderRequests),g.length>0&&g.every((e=>w(e.bidderRequestId))),g);var g;const y=e.bidderRequests.flatMap((t=>{var n;const c=r(s.code,e.auctionId),u=t.gdprConsent,l=t.bidderCode,b=null===(n=e.seatNonBids)||void 0===n?void 0:n.find((e=>e.seat===t.bidderCode)),p=null==b?void 0:b.nonbid.find((e=>e.impid===s.code)),h=t.bids.filter((e=>e.adUnitCode===s.code)).map((t=>{const s=a(t.bidId),n=e.bidsReceived.find((e=>e.requestId===t.bidId)),r=e.noBids.find((e=>e.bidId===t.bidId)),d=e.bidsRejected.find((e=>e.requestId===t.bidId));let b={state:Y.TIMEOUT};if(n){const e=a(s,n.adId);b={adId:n.adId,bidResponseId:e,cpm:n.cpm,currency:n.currency,size:n.size,mediaType:n.mediaType,bidNetRevenue:n.netRevenue,state:Y.BID,timeToRespond:n.timeToRespond,dealId:n.dealId||void 0,advertiserDomains:n.advertiserDomains}}else r?b={state:Y.NO_BID}:d&&(b={state:Y.NO_BID,rejectionReason:d.rejectionReason});const p={};return this.admOnboarding&&(p.bidderParams=JSON.stringify(t.params)),Object.assign({auctionId:c,bidId:s,gdprConsent:u,bidderCode:l,adapterCode:o[l],source:t.src,tags:[G(t.params)].filter(i),customFields:p},b)}));return p&&h.push({bidId:a(d()),auctionId:c,gdprConsent:u,bidderCode:l,adapterCode:o[l],source:"s2s",tags:[],customFields:{source:"s2s"},state:101===p.statuscode?Y.TIMEOUT:Y.NO_BID}),h})),I={source:t};if(this.admOnboarding){const e=window[this.pbjsConfig.pbjsVariableName],t=e.installedModules,{userSync:i,fledgeForGpt:n,floors:o,paapi:r,schain:a,realTimeData:d}=e.getConfig();I.config_installedModules=JSON.stringify(t),I.config_userSync=JSON.stringify(i),I.config_fledgeForGpt=JSON.stringify(n),I.config_floors=JSON.stringify(o),I.config_paapi=JSON.stringify(r),I.config_schain=JSON.stringify(a),I.config_realTimeData=JSON.stringify(d),I.adunitcode=s.code}const k={auctionId:m,adUnit:h,refreshIndex:0,sizes:P(p),userId:H(f),pbjsVersion:null!==(c=null===(n=this.pbjsConfig)||void 0===n?void 0:n.version)&&void 0!==c?c:ne,tags:[...W(p)],labels:v,gracePeriod:null!==(l=null===(u=this.pbjsConfig)||void 0===u?void 0:u.gracePeriod)&&void 0!==l?l:se,duration:e.auctionEnd-e.timestamp,bidRequests:y,timeout:e.timeout,customFields:I};this.onAuctionEndStream.next(k)}))}onBidWon(e){var t;const i=(null===(t=window[this.pbjsConfig.pbjsVariableName])||void 0===t?void 0:t.aliasRegistry)||{},s=Object.assign(Object.assign({},e),{pbstckAdapterCode:i[e.bidderCode],bidNetRevenue:e.netRevenue,dealId:e.dealId||void 0,auctionId:r(e.adUnitCode,e.auctionId),tags:[],customFields:{source:"prebid"}});this.onBidWonStream.next(s)}onBidWonFromSdk(e){const t=Object.assign(Object.assign({},e),{customFields:{source:"sdk"}});this.onBidWonFromSdkStream.next(t)}}const ae=(e,t,i)=>{const s=e;s[i]=s[i]||[];const n=s[i];e.pbstck=e.pbstck||{},e.pbstck.sdk=e.pbstck.sdk||{},e.pbstck.sdk[t]=e.pbstck.sdk[t]||{p:[],q:n},e.pbstck.sdk[t].p=e.pbstck.sdk[t].p||[],e.pbstck.sdk[t].q=e.pbstck.sdk[t].q||n,e.pbstck.sdk[t].q!==n&&(e.pbstck.sdk[t].q=e.pbstck.sdk[t].q.concat(n));const o={cmd:(...i)=>{const s=["cmd",i];(e.pbstck.sdk[t].q||[]).push(s),(e.pbstck.sdk[t].p||[]).forEach((e=>e(s)))}};return e.Pubstack=o,o},de=e=>{const t=[];return JSON.parse(JSON.stringify(e,((e,i)=>{if("object"==typeof i&&null!==i){if(t.includes(i))return;t.push(i)}return i})))},ce={AUCTION_INIT:"auctionInit",AUCTION_END:"auctionEnd",BID_TIMEOUT:"bidTimeout",BID_REQUESTED:"bidRequested",BID_RESPONSE:"bidResponse",BID_WON:"bidWon",NO_BID:"noBid"},ue=new c;function le(e,t,i="prebid"){return{on(s,n){V(`[pbjsIntegration] pbjs.dispatcher (${i}) ${s}`,n),"sdk"===i&&function(e){const t=window.pbstck.scopeId,i=window.pbstck.tagId,s=Object.assign(Object.assign({},e),{source:"collector",type:"log",tagId:i,scopeId:t});ue.next(s)}({id:"sdk-usage",level:"info",message:"sdk usage",eventName:s}),s===ce.AUCTION_END&&t.onAuctionEnd(e.toAuctionEnd(n),i),s===ce.BID_RESPONSE&&t.onBidResponse(e.toBidResponse(n)),s===ce.BID_WON&&"prebid"===i&&t.onBidWon(e.toBidWon(n)),s===ce.BID_WON&&"sdk"===i&&t.onBidWonFromSdk(e.toBidWonFromSdk(n))}}}function be(e){let t;if(void 0!==e)if(p(e))t=e;else if(h(e)){const i=Number(e);isNaN(i)||(t=i)}return void 0!==t?Math.trunc(t):t}function pe(e){try{return b(t=e,i),t.every((e=>g(e))),e}catch(e){return}var t,i}function he(e){try{return k(e),e}catch(e){return{}}}function me(e){try{return v(e),e}catch(e){return void V("Error on validator but not throwing since not mandatory",e.message)}}function ve(){const e=e=>{var t,i;k(e,"Auction event's adUnits should all be objects"),g(e.code,'Auction event\'s adUnits should all have a key "code" as a string'),b(e.bids,'Auction event\'s adUnits should all have a key "bids" as an array');const s=e.bids.map((t=>{try{return(e=>{var t;k(e,"Auction event's adUnits bidders should all be objects"),g(e.bidder,'Auction event\'s adUnits bidders should all have a key "bidder" as a string');const i=null!==(t=e.params)&&void 0!==t?t:{};return k(i,'Auction event\'s adUnits bidders should all have a key "params" as an object'),{bidder:e.bidder,params:i}})(t)}catch(t){return void q(`[pbjsIntegration] Discarding bidder from ${e.code}`,t)}})).filter((e=>void 0!==e)),n={};if(e.mediaTypes){if(k(e.mediaTypes,'Auction event\'s adUnits should all have a key "mediaTypes" as an object'),e.mediaTypes.banner){k(e.mediaTypes.banner,'Auction event\'s adUnits mediaTypes can all have a key "banner" that should be an object');const i=null!==(t=e.mediaTypes.banner.sizes)&&void 0!==t?t:[];b(i,'Auction event\'s adUnits mediaTypes banner should all have a key "sizes" that should be an array');const s=i.filter((e=>Array.isArray(e)&&2===e.length)).map((e=>{try{return b(e),[parseInt(e[0]),parseInt(e[1])]}catch(e){return[0,0]}}));n.banner={sizes:s,sizeConfig:e.mediaTypes.banner.sizeConfig}}if(e.mediaTypes.native&&(n.native={sizes:"native"}),e.mediaTypes.video&&(k(e.mediaTypes.video,'Auction event\'s adUnits mediaTypes can all have a key "video" that should be an object'),e.mediaTypes.video.playerSize)){b(e.mediaTypes.video.playerSize,'Auction event\'s adUnits mediaTypes video should all have a key "playerSize" that should be an array');const t=(null!==(i=e.mediaTypes.video.playerSize)&&void 0!==i?i:[]).filter((e=>Array.isArray(e)&&2===e.length));n.video={playerSize:t}}}const o={bids:s,code:e.code,mediaTypes:n},r=e.pubstack;void 0!==r&&(k(r),o.pubstack=r);const a=(e=>{if(!C(e,"ortb2Imp"))return;const t=e.ortb2Imp;if(!C(t,"ext"))return;const i=t.ext;if(!C(i,"data"))return;const s=i.data;return C(s,"pbadslot")&&h(s.pbadslot)?{ext:{data:{pbadslot:s.pbadslot}}}:void 0})(e);return a&&(o.ortb2Imp=a),o},t=e=>{k(e,"Auction event's bidderRequests should all be objects"),g(e.bidderRequestId,'Auction event\'s bidderRequests should all have a key "bidderRequestId" as a string'),g(e.bidderCode,'Auction event\'s bidderRequests should all have a key "bidderCode" as a string'),b(e.bids,'Auction event\'s bidderRequests should all have a key "bids" as an array');const t=e.bids.map((t=>{try{return i(t,"Auction event's bidderRequests")}catch(t){return void q(`[pbjsIntegration] Discarding bid request from ${e.bidderRequestId}`,t)}})).filter((e=>void 0!==e)),s={bidderRequestId:e.bidderRequestId,bids:t,bidderCode:e.bidderCode};return e.gdprConsent&&(s.gdprConsent=e.gdprConsent),s},i=(e,t)=>{var i,s,n;k(e,t+"'s bids should all be objects"),g(e.adUnitCode,t+' bids should all have a key "adUnitCode" as a string'),g(e.bidId,t+' bids should all have a key "bidId" as a string'),g(e.bidder,t+' bids should all have a key "bidder" as a string');const o=null!==(i=e.params)&&void 0!==i?i:{};k(o,t+' bids can all have a key "params" that should be an object');const r=null!==(s=e.userId)&&void 0!==s?s:{};k(r,t+' bids can all have a key "userId" that should be an object');const a=null!==(n=e.crumbs)&&void 0!==n?n:{};return k(a,t+' bids can all have a key "crumbs" that should be an object'),v(e.src),{adUnitCode:e.adUnitCode,bidId:e.bidId,bidder:e.bidder,params:o,userId:r,crumbs:a,src:e.src}};return{toBidRejected:e=>(k(e,"BidRejected event should be an object"),g(e.requestId,'BidRequested event should have a "requestId" key as a string'),g(e.rejectionReason,'BidRejected event should have a "rejectionReason" key as a string'),{requestId:e.requestId,rejectionReason:e.rejectionReason}),toSeatNonBid:function(e){return k(e,"SeatNonBid event should be an object"),g(e.seat,'SeatNonBid event should have a "seat" key as a string'),b(e.nonbid,'SeatNonBid event should have a "seat" key as a string'),e.nonbid.map((t=>{try{return k(t,"Nonbid should be an object"),g(t.impid,'Nonbid should have a "impid" key as a string'),m(t.statuscode,'Nonbid should have a "statuscode" key as a number'),{impid:t.impid,statuscode:t.statuscode}}catch(t){return void q(`[pbjsIntegration] Discarding Nonbid from auction event ${e.auctionId}`,t)}})).filter((e=>void 0!==e)),{seat:e.seat,nonbid:e.nonbid}},toAuctionEnd:function(i){let s,n,o=[];k(i,"Auction event should be an object"),g(i.auctionId,'Auction event should have a "auctionId" key as a string'),b(i.adUnits,'Auction event should have a "adUnits" key as a non-empty array'),y(i.adUnits,'Auction event should have a "adUnits" key as a non-empty array'),void 0!==i.labels&&(b(i.labels,'Auction event can have a "labels" key that should be an array'),n=i.labels),b(i.bidderRequests,'Auction event should have a "bidderRequests" key as a non-empty array'),y(i.bidderRequests,'Auction event should have a "bidderRequests" key as a non-empty array');const r=be(i.timeout);i.timeout&&!r&&q(`[pbjsIntegration] unable to read timeout from auction event ${i.auctionId}`);const a=i.adUnits.map((t=>{try{return e(t)}catch(e){return void q(`[pbjsIntegration] Discarding adUnit from auction event ${i.auctionId}`,e)}})).filter((e=>void 0!==e)),d=i.bidderRequests.map((e=>{try{return t(e)}catch(e){return void q(`[pbjsIntegration] Discarding bidderRequest from auction event ${i.auctionId}`,e)}})).filter((e=>void 0!==e));b(i.bidsReceived,'Auction event should have a "bidsReceived" key as a non-empty array');const c=i.bidsReceived.map((e=>{try{return this.toBidResponse(e)}catch(e){return void q(`[pbjsIntegration] Discarding bidReceived from auction event ${i.auctionId}`,e)}})).filter((e=>void 0!==e));b(i.adUnitCodes,'Auction event should have a "adUnitCodes" key as a non-empty array'),y(i.adUnitCodes,'Auction event should have a "adUnitCodes" key as a non-empty array');try{b(i.bidsRejected,'Auction event should have a "bidsRejected" key as an array'),o=i.bidsRejected.map((e=>{try{return this.toBidRejected(e)}catch(e){return void q(`[pbjsIntegration] Discarding bidRejected from auction event ${i.auctionId}`,e)}})).filter((e=>void 0!==e))}catch(e){V("Error on validator but not throwing since not mandatory",e.message)}b(i.noBids,'Auction event should have a "noBids" key as an array');const u=i.noBids.map((e=>{try{return this.toNoBid(e)}catch(e){return void q(`[pbjsIntegration] Discarding noBid from auction event ${i.auctionId}`,e)}})).filter((e=>void 0!==e));try{b(i.seatNonBids,'Auction event should have a "noBids" key as an array'),s=i.seatNonBids.map((e=>{try{return this.toSeatNonBid(e)}catch(e){return void q(`[pbjsIntegration] Discarding SeatNonBids from auction event ${i.auctionId}`,e)}})).filter((e=>void 0!==e))}catch(e){V("Error on validator but not throwing since not mandatory",e.message)}return function(e,t,i){if(!t.includes(e))throw new l(`Expected values to be one of '${t}', but received ${e}`)}(i.auctionStatus,["completed","inProgress","started"]),m(i.auctionEnd),m(i.timestamp),{auctionId:i.auctionId,bidderRequests:d,adUnits:a,labels:n,timeout:r,auctionEnd:i.auctionEnd,auctionStatus:i.auctionStatus,noBids:u,adUnitCodes:i.adUnitCodes,bidsRejected:o,bidsReceived:c,timestamp:i.timestamp,winningBids:[],seatNonBids:s}},toAuction:function(i){let s;k(i,"Auction event should be an object"),g(i.auctionId,'Auction event should have a "auctionId" key as a string'),b(i.adUnits,'Auction event should have a "adUnits" key as a non-empty array'),y(i.adUnits,'Auction event should have a "adUnits" key as a non-empty array'),void 0!==i.labels&&(b(i.labels,'Auction event can have a "labels" key that should be an array'),s=i.labels),b(i.bidderRequests,'Auction event should have a "bidderRequests" key as a non-empty array'),y(i.bidderRequests,'Auction event should have a "bidderRequests" key as a non-empty array');const n=be(i.timeout);i.timeout&&!n&&q(`[pbjsIntegration] unable to read timeout from auction event ${i.auctionId}`);const o=i.adUnits.map((t=>{try{return e(t)}catch(e){return void q(`[pbjsIntegration] Discarding adUnit from auction event ${i.auctionId}`,e)}})).filter((e=>void 0!==e)),r=i.bidderRequests.map((e=>{try{return t(e)}catch(e){return void q(`[pbjsIntegration] Discarding bidderRequest from auction event ${i.auctionId}`,e)}})).filter((e=>void 0!==e));return{auctionId:i.auctionId,bidderRequests:r,adUnits:o,labels:s,timeout:n}},toBidRequested(e){k(e,"BidRequested event should be an object"),g(e.auctionId,'BidRequested event should have a "auctionId" key as a string'),b(e.bids,'BidRequested event should have a "bids" key as an array');const t=e.bids.map((t=>{try{return i(t,"BidRequested event")}catch(t){return void q(`[pbjsIntegration] Discarding bid request from bid requested event ${e.auctionId}`,t)}})).filter((e=>void 0!==e)),s={auctionId:e.auctionId,bids:t};return e.gdprConsent&&(s.gdprConsent=e.gdprConsent),s},toBidResponse(e){var t;k(e,"BidResponse event should be an object"),g(e.auctionId,'BidRequested event should have a "auctionId" key as a string'),g(e.adUnitCode,'BidRequested event should have a "adUnitCode" key as a string'),g(e.adId,'BidRequested event should have a "adId" key as a string'),g(e.requestId,'BidRequested event should have a "requestId" key as a string');const i=h(e.cpm)?Number.parseFloat(e.cpm):e.cpm;let s;const n=me(e.dealId);m(i,'BidRequested event should have a "cpm" key as a number');let o,r=e.size;"string"!=typeof r&&(r=e.width&&e.height?`${e.width}x${e.height}`:"unknown"),g(e.mediaType,'BidRequested event should have a "mediaType" key as a string'),g(r,'BidRequested event should have a "size" key as a string'),h(e.currency)&&(o=e.currency),g(e.bidderCode,'BidResponse event should have a "bidderCode" key as a string'),function(e,t){if(null!=e&&!p(e))throw new l("Expected value to be a number, but received "+typeof e)}(e.timeToRespond),f(e.netRevenue);const a=pe(he(e.meta).advertiserDomains);try{g(e.adapterCode,'BidWon event should have a "bidderCode" key as a string'),s=e.adapterCode}catch(e){V("Error on validator but not throwing since not mandatory",e.message)}return{adId:e.adId,adUnitCode:e.adUnitCode,auctionId:e.auctionId,cpm:i,currency:o,requestId:e.requestId,size:r,bidderCode:e.bidderCode,mediaType:null!==(t=e.mediaType)&&void 0!==t?t:"banner",timeToRespond:e.timeToRespond,adapterCode:s,netRevenue:e.netRevenue,dealId:n,advertiserDomains:a}},toBidTimeout(e){b(e,"BidTimeout event should be an array");const t=[];return e.forEach((e=>{try{k(e,"BidTimeout events should all be objects"),g(e.adUnitCode,'BidTimeout events should all have a key "adUnitCode" as a string'),g(e.auctionId,'BidTimeout events should all have a key "auctionId" as a string'),g(e.bidId,'BidTimeout events should all have a key "bidId" as a string'),t.push({adUnitCode:e.adUnitCode,auctionId:e.auctionId,bidId:e.bidId})}catch(t){V("Discarding bid timeout event because ",t.message,e)}})),t},toNoBid:e=>(k(e,"NoBid event should be an object"),g(e.auctionId,'NoBid event should have a "auctionId" key as a string'),g(e.bidId,'NoBid event should have a "bidId" key as a string'),g(e.adUnitCode,'NoBid event should have a "adUnitCode" key as a string'),{bidId:e.bidId,adUnitCode:e.adUnitCode,auctionId:e.auctionId}),toBidWon(e){var t;let i,s,n,o,r,a;k(e,"BidWon event should be an object"),g(e.adId,'BidWon event should have a "adId" key as a string'),g(e.requestId,'BidWon event should have a "requestId" key as a string');const d=me(e.dealId);h(e.currency)&&(a=e.currency);const c=h(e.cpm)?Number.parseFloat(e.cpm):e.cpm;m(c,'BidRequested event should have a "cpm" key as a number'),g(e.mediaType,'BidRequested event should have a "mediaType" key as a string'),g(e.size,'BidWon event should have a "size" key as a string'),r=e.size,g(e.auctionId,'BidWon event should have a "auctionId" key as a string'),i=e.auctionId,g(e.adUnitCode,'BidWon event should have a "adUnitCode" key as a string'),s=e.adUnitCode;try{g(e.bidderCode,'BidWon event should have a "bidderCode" key as a string'),n=e.bidderCode}catch(e){V("Error on validator but not throwing since not mandatory for monitoring (only for refresh)",e.message)}try{g(e.adapterCode,'BidWon event should have a "bidderCode" key as a string'),o=e.adapterCode}catch(e){V("Error on validator but not throwing since not mandatory",e.message)}f(e.netRevenue),v(e.source);const u=pe(he(e.meta).advertiserDomains);return{adId:e.adId,adUnitCode:s,auctionId:i,bidderCode:n,adapterCode:o,size:r,requestId:e.requestId,currency:a,cpm:c,mediaType:null!==(t=e.mediaType)&&void 0!==t?t:"banner",dealId:d,netRevenue:e.netRevenue,source:e.source,advertiserDomains:u}},toBidWonFromSdk:e=>(k(e,"BidWon event should be an object"),g(e.adId,'BidWon event should have a "adId" key as a string'),{adId:e.adId})}}const fe=(e,t)=>{const i=ve(),s=new re(void 0),n=le(i,s,"sdk");t.bindIntegration(s),e.subscribe((([e,[t]])=>{try{n.on(e,t)}catch(e){e.context=e.context||{},e.context.pbjs={source:"sdk:pbjs"},E(e)}}))};function ge(e,t,i){const s=new c,n=[];ae(e,i.tagId,i.globalQueue);const o=e[i.globalQueue],r=t=>{!function(e,t){if(void 0!==e)throw new l(null!=t?t:`Expected value to be undefined, but received ${e}`)}(Object.values(e.pbstck.sdk).find((t=>t!==e.pbstck.sdk[i.tagId]&&t.q===o)),`Concurrency on '${i.globalQueue}' globalQueue (more than 1 destination configured)`),s.next([t[0],de(Object.values(t[1]))])};return s.subscribe(((...e)=>n.push(e))),fe(s.pipe(...u(/cmd/)).pipe(...u(/pbjs|prebid/)),t),{debug:()=>({events:n}),dispatchEvents:()=>{e.pbstck.sdk[i.tagId].q.forEach(r),e.pbstck.sdk[i.tagId].p.push(r)}}}const we=(e,t)=>{if(!e||!t)throw new Error("IllegalArgumentException");return`${e}_${t}`};var ye,Ie="",ke="function",Ce="undefined",Ae="object",Re="string",Se="major",Te="model",Ee="name",je="type",xe="vendor",Ue="version",Ne="architecture",Oe="console",Be="mobile",Ve="tablet",qe="smarttv",$e="wearable",De="xr",ze="embedded",Fe="user-agent",_e=500,Me="brands",Pe="formFactors",Le="fullVersionList",We="platform",Ge="platformVersion",He="bitness",Je="sec-ch-ua",Qe=Je+"-full-version-list",Xe=Je+"-arch",Ke=Je+"-"+He,Ye=Je+"-form-factors",Ze=Je+"-"+Be,et=Je+"-"+Te,tt=Je+"-"+We,it=tt+"-version",st=[Me,Le,Be,Te,We,Ge,Ne,Pe,He],nt="browser",ot="cpu",rt="device",at="engine",dt="os",ct="result",ut="Amazon",lt="Apple",bt="ASUS",pt="BlackBerry",ht="Google",mt="Huawei",vt="Lenovo",ft="LG",gt="Microsoft",wt="Motorola",yt="Samsung",It="Sharp",kt="Sony",Ct="Xiaomi",At="Zebra",Rt="Mobile ",St=" Browser",Tt="Chrome",Et="Chromecast",jt="Firefox",xt="Opera",Ut="Facebook",Nt="Sogou",Ot="Windows",Bt=typeof window!==Ce&&window.navigator?window.navigator:void 0,Vt=Bt&&Bt.userAgentData?Bt.userAgentData:void 0,qt=function(e,t){var i={},s=t;if(!zt(t))for(var n in s={},t)for(var o in t[n])s[o]=t[n][o].concat(s[o]?s[o]:[]);for(var r in e)i[r]=s[r]&&s[r].length%2==0?s[r].concat(e[r]):e[r];return i},$t=function(e){for(var t={},i=0;i<e.length;i++)t[e[i].toUpperCase()]=e[i];return t},Dt=function(e,t){if(typeof e===Ae&&e.length>0){for(var i in e)if(Mt(e[i])==Mt(t))return!0;return!1}return!!Ft(e)&&-1!==Mt(t).indexOf(Mt(e))},zt=function(e,t){for(var i in e)return/^(browser|cpu|device|engine|os)$/.test(i)||!!t&&zt(e[i])},Ft=function(e){return typeof e===Re},_t=function(e){if(e){for(var t=[],i=Wt(/\\?\"/g,e).split(","),s=0;s<i.length;s++)if(i[s].indexOf(";")>-1){var n=Ht(i[s]).split(";v=");t[s]={brand:n[0],version:n[1]}}else t[s]=Ht(i[s]);return t}},Mt=function(e){return Ft(e)?e.toLowerCase():e},Pt=function(e){return Ft(e)?Wt(/[^\d\.]/g,e).split(".")[0]:void 0},Lt=function(e){for(var t in e){var i=e[t];typeof i==Ae&&2==i.length?this[i[0]]=i[1]:this[i]=void 0}return this},Wt=function(e,t){return Ft(t)?t.replace(e,Ie):t},Gt=function(e){return Wt(/\\?\"/g,e)},Ht=function(e,t){if(Ft(e))return e=Wt(/^\s\s*/,e),typeof t===Ce?e:e.substring(0,_e)},Jt=function(e,t){if(e&&t)for(var i,s,n,o,r,a,d=0;d<t.length&&!r;){var c=t[d],u=t[d+1];for(i=s=0;i<c.length&&!r&&c[i];)if(r=c[i++].exec(e))for(n=0;n<u.length;n++)a=r[++s],typeof(o=u[n])===Ae&&o.length>0?2===o.length?typeof o[1]==ke?this[o[0]]=o[1].call(this,a):this[o[0]]=o[1]:3===o.length?typeof o[1]!==ke||o[1].exec&&o[1].test?this[o[0]]=a?a.replace(o[1],o[2]):void 0:this[o[0]]=a?o[1].call(this,a,o[2]):void 0:4===o.length&&(this[o[0]]=a?o[3].call(this,a.replace(o[1],o[2])):void 0):this[o]=a||void 0;d+=2}},Qt=function(e,t){for(var i in t)if(typeof t[i]===Ae&&t[i].length>0){for(var s=0;s<t[i].length;s++)if(Dt(t[i][s],e))return"?"===i?void 0:i}else if(Dt(t[i],e))return"?"===i?void 0:i;return t.hasOwnProperty("*")?t["*"]:e},Xt={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},Kt={embedded:"Automotive",mobile:"Mobile",tablet:["Tablet","EInk"],smarttv:"TV",wearable:"Watch",xr:["VR","XR"],"?":["Desktop","Unknown"],"*":void 0},Yt={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[Ue,[Ee,Rt+"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[Ue,[Ee,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[Ee,Ue],[/opios[\/ ]+([\w\.]+)/i],[Ue,[Ee,xt+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[Ue,[Ee,xt+" GX"]],[/\bopr\/([\w\.]+)/i],[Ue,[Ee,xt]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[Ue,[Ee,"Baidu"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim)\s?(?:browser)?[\/ ]?([\w\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio)\/([-\w\.]+)/i,/(heytap|ovi)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[Ee,Ue],[/quark(?:pc)?\/([-\w\.]+)/i],[Ue,[Ee,"Quark"]],[/\bddg\/([\w\.]+)/i],[Ue,[Ee,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[Ue,[Ee,"UCBrowser"]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[Ue,[Ee,"WeChat"]],[/konqueror\/([\w\.]+)/i],[Ue,[Ee,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[Ue,[Ee,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[Ue,[Ee,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[Ue,[Ee,"Smart "+vt+St]],[/(avast|avg)\/([\w\.]+)/i],[[Ee,/(.+)/,"$1 Secure"+St],Ue],[/\bfocus\/([\w\.]+)/i],[Ue,[Ee,jt+" Focus"]],[/\bopt\/([\w\.]+)/i],[Ue,[Ee,xt+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[Ue,[Ee,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[Ue,[Ee,"Dolphin"]],[/coast\/([\w\.]+)/i],[Ue,[Ee,xt+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[Ue,[Ee,"MIUI"+St]],[/fxios\/([\w\.-]+)/i],[Ue,[Ee,Rt+jt]],[/\bqihu|(qi?ho?o?|360)browser/i],[[Ee,"360"+St]],[/\b(qq)\/([\w\.]+)/i],[[Ee,/(.+)/,"$1Browser"],Ue],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[Ee,/(.+)/,"$1"+St],Ue],[/samsungbrowser\/([\w\.]+)/i],[Ue,[Ee,yt+" Internet"]],[/(comodo_dragon)\/([\w\.]+)/i],[[Ee,/_/g," "],Ue],[/metasr[\/ ]?([\d\.]+)/i],[Ue,[Ee,Nt+" Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[Ee,Nt+" Mobile"],Ue],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345Explorer)[\/ ]?([\w\.]+)/i],[Ee,Ue],[/(lbbrowser|rekonq)/i,/\[(linkedin)app\]/i],[Ee],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[Ee,Ut],Ue],[/(Klarna)\/([\w\.]+)/i,/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i],[Ee,Ue],[/\bgsa\/([\w\.]+) .*safari\//i],[Ue,[Ee,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[Ue,[Ee,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[Ue,[Ee,Tt+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[Ee,Tt+" WebView"],Ue],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[Ue,[Ee,"Android"+St]],[/chrome\/([\w\.]+) mobile/i],[Ue,[Ee,Rt+"Chrome"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[Ee,Ue],[/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i],[Ue,[Ee,Rt+"Safari"]],[/iphone .*mobile(?:\/\w+ | ?)safari/i],[[Ee,Rt+"Safari"]],[/version\/([\w\.\,]+) .*(safari)/i],[Ue,Ee],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[Ee,[Ue,"1"]],[/(webkit|khtml)\/([\w\.]+)/i],[Ee,Ue],[/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i],[[Ee,Rt+jt],Ue],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[Ee,"Netscape"],Ue],[/(wolvic)\/([\w\.]+)/i],[Ee,Ue],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[Ue,[Ee,jt+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[Ee,[Ue,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[Ee,[Ue,/[^\d\.]+./,Ie]]],cpu:[[/\b(?:(amd|x|x86[-_]?|wow|win)64)\b/i],[[Ne,"amd64"]],[/(ia32(?=;))/i,/((?:i[346]|x)86)[;\)]/i],[[Ne,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[Ne,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[Ne,"armhf"]],[/windows (ce|mobile); ppc;/i],[[Ne,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[Ne,/ower/,Ie,Mt]],[/(sun4\w)[;\)]/i],[[Ne,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[Ne,Mt]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[Te,[xe,yt],[je,Ve]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr])[-\w]+)/i,/sec-(sgh\w+)/i],[Te,[xe,yt],[je,Be]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[Te,[xe,lt],[je,Be]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[Te,[xe,lt],[je,Ve]],[/(macintosh);/i],[Te,[xe,lt]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[Te,[xe,It],[je,Be]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[Te,[xe,mt],[je,Ve]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[Te,[xe,mt],[je,Be]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i],[[Te,/_/g," "],[xe,Ct],[je,Be]],[/oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i,/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[Te,/_/g," "],[xe,Ct],[je,Ve]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[Te,[xe,"OPPO"],[je,Be]],[/\b(opd2\d{3}a?) bui/i],[Te,[xe,"OPPO"],[je,Ve]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[Te,[xe,"Vivo"],[je,Be]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[Te,[xe,"Realme"],[je,Be]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[Te,[xe,wt],[je,Be]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[Te,[xe,wt],[je,Ve]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[Te,[xe,ft],[je,Ve]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[Te,[xe,ft],[je,Be]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[Te,[xe,vt],[je,Ve]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[Te,/_/g," "],[xe,"Nokia"],[je,Be]],[/(pixel c)\b/i],[Te,[xe,ht],[je,Ve]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[Te,[xe,ht],[je,Be]],[/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[Te,[xe,kt],[je,Be]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[Te,"Xperia Tablet"],[xe,kt],[je,Ve]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[Te,[xe,"OnePlus"],[je,Be]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[Te,[xe,ut],[je,Ve]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[Te,/(.+)/g,"Fire Phone $1"],[xe,ut],[je,Be]],[/(playbook);[-\w\),; ]+(rim)/i],[Te,xe,[je,Ve]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[Te,[xe,pt],[je,Be]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[Te,[xe,bt],[je,Ve]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[Te,[xe,bt],[je,Be]],[/(nexus 9)/i],[Te,[xe,"HTC"],[je,Ve]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[xe,[Te,/_/g," "],[je,Be]],[/tcl (xess p17aa)/i,/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\w(\w|\w\w))?(\)| bui)/i],[Te,[xe,"TCL"],[je,Ve]],[/droid [\w\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\w(\w|\w\w))?(\)| bui)/i],[Te,[xe,"TCL"],[je,Be]],[/(itel) ((\w+))/i],[[xe,Mt],Te,[je,Qt,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[Te,[xe,"Acer"],[je,Ve]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[Te,[xe,"Meizu"],[je,Be]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[Te,[xe,"Ulefone"],[je,Be]],[/droid.+; (a(?:015|06[35]|142p?))/i],[Te,[xe,"Nothing"],[je,Be]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[xe,Te,[je,Be]],[/(kobo)\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i],[xe,Te,[je,Ve]],[/(surface duo)/i],[Te,[xe,gt],[je,Ve]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[Te,[xe,"Fairphone"],[je,Be]],[/(shield[\w ]+) b/i],[Te,[xe,"Nvidia"],[je,Ve]],[/(sprint) (\w+)/i],[xe,Te,[je,Be]],[/(kin\.[onetw]{3})/i],[[Te,/\./g," "],[xe,gt],[je,Be]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[Te,[xe,At],[je,Ve]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[Te,[xe,At],[je,Be]],[/smart-tv.+(samsung)/i],[xe,[je,qe]],[/hbbtv.+maple;(\d+)/i],[[Te,/^/,"SmartTV"],[xe,yt],[je,qe]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[xe,ft],[je,qe]],[/(apple) ?tv/i],[xe,[Te,lt+" TV"],[je,qe]],[/crkey.*devicetype\/chromecast/i],[[Te,Et+" Third Generation"],[xe,ht],[je,qe]],[/crkey.*devicetype\/([^/]*)/i],[[Te,/^/,"Chromecast "],[xe,ht],[je,qe]],[/fuchsia.*crkey/i],[[Te,Et+" Nest Hub"],[xe,ht],[je,qe]],[/crkey/i],[[Te,Et],[xe,ht],[je,qe]],[/droid.+aft(\w+)( bui|\))/i],[Te,[xe,ut],[je,qe]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[Te,[xe,It],[je,qe]],[/(bravia[\w ]+)( bui|\))/i],[Te,[xe,kt],[je,qe]],[/(mitv-\w{5}) bui/i],[Te,[xe,Ct],[je,qe]],[/Hbbtv.*(technisat) (.*);/i],[xe,Te,[je,qe]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[xe,Ht],[Te,Ht],[je,qe]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[je,qe]],[/(ouya)/i,/(nintendo) (\w+)/i],[xe,Te,[je,Oe]],[/droid.+; (shield) bui/i],[Te,[xe,"Nvidia"],[je,Oe]],[/(playstation \w+)/i],[Te,[xe,kt],[je,Oe]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[Te,[xe,gt],[je,Oe]],[/\b(sm-[lr]\d\d[05][fnuw]?s?)\b/i],[Te,[xe,yt],[je,$e]],[/((pebble))app/i],[xe,Te,[je,$e]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[Te,[xe,lt],[je,$e]],[/droid.+; (wt63?0{2,3})\)/i],[Te,[xe,At],[je,$e]],[/droid.+; (glass) \d/i],[Te,[xe,ht],[je,De]],[/(pico) (4|neo3(?: link|pro)?)/i],[xe,Te,[je,De]],[/; (quest( \d| pro)?)/i],[Te,[xe,Ut],[je,De]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[xe,[je,ze]],[/(aeobc)\b/i],[Te,[xe,ut],[je,ze]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i],[Te,[je,Be]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[Te,[je,Ve]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[je,Ve]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[je,Be]],[/(android[-\w\. ]{0,9});.+buil/i],[Te,[xe,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[Ue,[Ee,"EdgeHTML"]],[/(arkweb)\/([\w\.]+)/i],[Ee,Ue],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[Ue,[Ee,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[Ee,Ue],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[Ue,Ee]],os:[[/microsoft (windows) (vista|xp)/i],[Ee,Ue],[/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i],[Ee,[Ue,Qt,Xt]],[/windows nt 6\.2; (arm)/i,/windows[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[Ue,Qt,Xt],[Ee,Ot]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[Ue,/_/g,"."],[Ee,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[Ee,"macOS"],[Ue,/_/g,"."]],[/android ([\d\.]+).*crkey/i],[Ue,[Ee,Et+" Android"]],[/fuchsia.*crkey\/([\d\.]+)/i],[Ue,[Ee,Et+" Fuchsia"]],[/crkey\/([\d\.]+).*devicetype\/smartspeaker/i],[Ue,[Ee,Et+" SmartSpeaker"]],[/linux.*crkey\/([\d\.]+)/i],[Ue,[Ee,Et+" Linux"]],[/crkey\/([\d\.]+)/i],[Ue,[Ee,Et]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[Ue,Ee],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish|openharmony)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[Ee,Ue],[/\(bb(10);/i],[Ue,[Ee,pt]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[Ue,[Ee,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[Ue,[Ee,jt+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[Ue,[Ee,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[Ue,[Ee,"watchOS"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[Ee,"Chrome OS"],Ue],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) (\w+)/i,/(xbox); +xbox ([^\);]+)/i,/(pico) .+os([\w\.]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[Ee,Ue],[/(sunos) ?([\w\.\d]*)/i],[[Ee,"Solaris"],Ue],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[Ee,Ue]]},Zt=(ye={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}},Lt.call(ye.init,[[nt,[Ee,Ue,Se,je]],[ot,[Ne]],[rt,[je,Te,xe]],[at,[Ee,Ue]],[dt,[Ee,Ue]]]),Lt.call(ye.isIgnore,[[nt,[Ue,Se]],[at,[Ue]],[dt,[Ue]]]),Lt.call(ye.isIgnoreRgx,[[nt,/ ?browser$/i],[dt,/ ?os$/i]]),Lt.call(ye.toString,[[nt,[Ee,Ue]],[ot,[Ne]],[rt,[xe,Te]],[at,[Ee,Ue]],[dt,[Ee,Ue]]]),ye),ei=function(e,t){var i=Zt.init[t],s=Zt.isIgnore[t]||0,n=Zt.isIgnoreRgx[t]||0,o=Zt.toString[t]||0;function r(){Lt.call(this,i)}return r.prototype.getItem=function(){return e},r.prototype.withClientHints=function(){return Vt?Vt.getHighEntropyValues(st).then((function(t){return e.setCH(new ti(t,!1)).parseCH().get()})):e.parseCH().get()},r.prototype.withFeatureCheck=function(){return e.detectFeature().get()},t!=ct&&(r.prototype.is=function(e){var t=!1;for(var i in this)if(this.hasOwnProperty(i)&&!Dt(s,i)&&Mt(n?Wt(n,this[i]):this[i])==Mt(n?Wt(n,e):e)){if(t=!0,e!=Ce)break}else if(e==Ce&&t){t=!t;break}return t},r.prototype.toString=function(){var e=Ie;for(var t in o)typeof this[o[t]]!==Ce&&(e+=(e?" ":Ie)+this[o[t]]);return e||Ce}),Vt||(r.prototype.then=function(e){var t=this,i=function(){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e])};i.prototype={is:r.prototype.is,toString:r.prototype.toString};var s=new i;return e(s),s}),new r};function ti(e,t){if(e=e||{},Lt.call(this,st),t)Lt.call(this,[[Me,_t(e[Je])],[Le,_t(e[Qe])],[Be,/\?1/.test(e[Ze])],[Te,Gt(e[et])],[We,Gt(e[tt])],[Ge,Gt(e[it])],[Ne,Gt(e[Xe])],[Pe,_t(e[Ye])],[He,Gt(e[Ke])]]);else for(var i in e)this.hasOwnProperty(i)&&typeof e[i]!==Ce&&(this[i]=e[i])}function ii(e,t,i,s){return this.get=function(e){return e?this.data.hasOwnProperty(e)?this.data[e]:void 0:this.data},this.set=function(e,t){return this.data[e]=t,this},this.setCH=function(e){return this.uaCH=e,this},this.detectFeature=function(){if(Bt&&Bt.userAgent==this.ua)switch(this.itemType){case nt:Bt.brave&&typeof Bt.brave.isBrave==ke&&this.set(Ee,"Brave");break;case rt:!this.get(je)&&Vt&&Vt[Be]&&this.set(je,Be),"Macintosh"==this.get(Te)&&Bt&&typeof Bt.standalone!==Ce&&Bt.maxTouchPoints&&Bt.maxTouchPoints>2&&this.set(Te,"iPad").set(je,Ve);break;case dt:!this.get(Ee)&&Vt&&Vt[We]&&this.set(Ee,Vt[We]);break;case ct:var e=this.data,t=function(t){return e[t].getItem().detectFeature().get()};this.set(nt,t(nt)).set(ot,t(ot)).set(rt,t(rt)).set(at,t(at)).set(dt,t(dt))}return this},this.parseUA=function(){return this.itemType!=ct&&Jt.call(this.data,this.ua,this.rgxMap),this.itemType==nt&&this.set(Se,Pt(this.get(Ue))),this},this.parseCH=function(){var e=this.uaCH,t=this.rgxMap;switch(this.itemType){case nt:var i,s=e[Le]||e[Me];if(s)for(var n in s){var o=Wt(/(Google|Microsoft) /,s[n].brand||s[n]),r=s[n].version;/not.a.brand/i.test(o)||i&&(!/chrom/i.test(i)||/chromi/i.test(o))||(this.set(Ee,o).set(Ue,r).set(Se,Pt(r)),i=o)}break;case ot:var a=e[Ne];a&&(a&&"64"==e[He]&&(a+="64"),Jt.call(this.data,a+";",t));break;case rt:if(e[Be]&&this.set(je,Be),e[Te]&&this.set(Te,e[Te]),"Xbox"==e[Te]&&this.set(je,Oe).set(xe,gt),e[Pe]){var d;if("string"!=typeof e[Pe])for(var c=0;!d&&c<e[Pe].length;)d=Qt(e[Pe][c++],Kt);else d=Qt(e[Pe],Kt);this.set(je,d)}break;case dt:var u=e[We];if(u){var l=e[Ge];u==Ot&&(l=parseInt(Pt(l),10)>=13?"11":"10"),this.set(Ee,u).set(Ue,l)}this.get(Ee)==Ot&&"Xbox"==e[Te]&&this.set(Ee,"Xbox").set(Ue,void 0);break;case ct:var b=this.data,p=function(t){return b[t].getItem().setCH(e).parseCH().get()};this.set(nt,p(nt)).set(ot,p(ot)).set(rt,p(rt)).set(at,p(at)).set(dt,p(dt))}return this},Lt.call(this,[["itemType",e],["ua",t],["uaCH",s],["rgxMap",i],["data",ei(this,e)]]),this}function si(e,t,i){if(typeof e===Ae?(zt(e,!0)?(typeof t===Ae&&(i=t),t=e):(i=e,t=void 0),e=void 0):typeof e!==Re||zt(t,!0)||(i=t,t=void 0),!(this instanceof si))return new si(e,t,i).getResult();var s=typeof e===Re?e:Bt&&Bt.userAgent?Bt.userAgent:i&&i[Fe]?i[Fe]:Ie,n=new ti(i,!0),o=t?qt(Yt,t):Yt,r=function(e){return e==ct?function(){return new ii(e,s,o,n).set("ua",s).set(nt,this.getBrowser()).set(ot,this.getCPU()).set(rt,this.getDevice()).set(at,this.getEngine()).set(dt,this.getOS()).get()}:function(){return new ii(e,s,o[e],n).parseUA().get()}};return Lt.call(this,[["getBrowser",r(nt)],["getCPU",r(ot)],["getDevice",r(rt)],["getEngine",r(at)],["getOS",r(dt)],["getResult",r(ct)],["getUA",function(){return s}],["setUA",function(e){return Ft(e)&&(s=e.length>_e?Ht(e,_e):e),this}]]).setUA(s),this}si.VERSION="2.0.0-rc.1",si.BROWSER=$t([Ee,Ue,Se,je]),si.CPU=$t([Ne]),si.DEVICE=$t([Te,xe,je,Oe,Be,qe,Ve,$e,ze]),si.ENGINE=si.OS=$t([Ee,Ue]);class ni{constructor(){this.onAdStream=new c}onAd(e){const t=`/${e.formatId}`,i=e.formatId,s={bidderCode:"smart-rtb+",cpm:e.cpm,size:e.size,adUnitName:i,adUnitPathSuffix:t,formatId:e.formatId,customFields:{}};this.onAdStream.next(s)}}function oi(e){if(e.includes("pubstackRefresh")){const t=e.find((e=>e.startsWith("pubstackRefreshRank")));if(void 0!==t&&t.includes(":")){const e=parseInt(t.split(":")[1])||0;return e>0?e:0}}return 0}function ri(e,t){const i=function(e){const t=e.split("?")[1];if(void 0!==t){const e=t.split("=");return{key:e[0],value:e[1]}}return}(e),s=e.split("?")[0].startsWith("/")?e.split("?")[0]:`/${e.split("?")[0]}`,n=function(e){return e.getAdUnitPath().replace("//","/")}(t);return s===(n.startsWith("/")?n:`/${n}`)&&(void 0===i||t.getTargeting(i.key)[0]===i.value)}const ai=(e,t)=>{const i=e.path;if(void 0===t||void 0===i)return;const s=t.pubads().getSlots();if(void 0===s)return;const n=s.filter((e=>ri(i,e)));switch(n.length){case 0:return;case 1:return n[0];default:if(-1!==i.indexOf("?"))return V("[pubstackGoogleTag] retrieve first slot matching the dimension",i),n[0];{const s=t.pubads();try{!function(e){if("object"!=typeof e||null===e||!("getSlotIdMap"in e)||"function"!=typeof e.getSlotIdMap)throw new Error("Missing property getSlotIdMap on googletag")}(s);const t=s.getSlotIdMap();V("[pubstackGoogleTag] get all slot map",t);return t[Object.keys(t).filter((e=>e.startsWith(i)))[function(e){const t=Array.from(document.querySelectorAll(`div[id*='${e.name}']`)).map((e=>e.id));return t.findIndex((t=>t===e.code))}(e)]]}catch(e){return void V(`[pubstackGoogleTag] ${e}`)}}}};const di=e=>{const t=e;if(void 0!==t&&t.apiReady&&void 0!==t.cmd&&void 0!==t.pubads&&"function"==typeof t.pubads){if("function"==typeof t.pubads().refresh)return t}};const ci=e=>{const t=(e=>di(e.googletag))(window);V("[pubstackFindElementById] adUnit ",e);const i=ai(e,t);return V("[pubstackFindElementById] slot ",i),i?document.getElementById(i.getSlotElementId()):ui(e.code)},ui=e=>{const t=document.getElementById(e);return null===t?document.querySelector(`iframe[id*='${e}']`):t};function li(e){const t=document.getElementsByTagName("meta");return Array.from(t).filter((t=>t.name.includes(`${e}:`)))}function bi(e,t){return e.replace(`${t}:`,"")}const pi=(e,t)=>{const i=new Set;return e.tags.forEach((e=>i.add(e))),t.tags.forEach((e=>i.add(e))),i};class hi{constructor(e){this.coreAuctionStream=new c,this.coreImpressionStream=new c,this.state=e}subscribe(e){this.coreAuctionStream.subscribe(e.onAuction),this.coreImpressionStream.subscribe(e.onImpression)}pushNewImpression(e){var t,i,s,n,o;const r=this.state.getAuction(e.auctionId),a=null!==(t=this.state.findLastAuctionId(r.adUnit))&&void 0!==t?t:"",d=this.state.findBidsByAuctionId(r.auctionId).filter((e=>e.state===Y.BID)).map((e=>e)).sort(((e,t)=>t.cpm-e.cpm)),c=(null!==(s=null===(i=d[0])||void 0===i?void 0:i.cpm)&&void 0!==s?s:0)-(null!==(o=null===(n=d[1])||void 0===n?void 0:n.cpm)&&void 0!==o?o:0);return this.state.storeCoreBidResponses.set(e.bidId,e),this.impressionFormatAndForward(r,e,c,a)}pushNewAuction(e){var t,i;e.bidRequests=(t=e.bidRequests,i="adThink",t.filter((e=>e.bidderCode!==i))),0!==e.bidRequests.length&&this.coreAuctionStream.next(e)}checkMeasurability(e){return"IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype&&"isIntersecting"in window.IntersectionObserverEntry.prototype&&!!ci(e)}impressionSasFormatAndForward(e,t){const i={bidId:"smart-"+d(),auctionId:"smart-"+d(),lastAuctionId:"smart-"+d(),adUnit:t,bidderCode:e.bidderCode,cpm:e.cpm,currency:e.currency,refresh:!1,size:e.size,userConsentState:"notAvailable",userConsentVersion:"notAvailable",hasUserId:"notAvailable",userIdProviderList:[],pbjsVersion:"smart-ad-server",tags:new Set,viewabilityMeasurable:!1,cpmUplift:0,pubstackRefresh:!1,pubstackRefreshRank:0,customFields:e.customFields};this.coreImpressionStream.next(i)}impressionFormatAndForward(e,t,i,s){const n=this.state.findBidsByAuctionId(e.auctionId),o=this.state.getAuction(s),r=J(n),a=this.checkMeasurability(e.adUnit),{userConsentState:d,userConsentVersion:c}=Q(r),u={bidId:t.bidResponseId,auctionId:e.auctionId,lastAuctionId:s,adUnit:e.adUnit,bidderCode:t.bidderCode,cpm:t.cpm,currency:t.currency,refresh:!1,size:t.size,userConsentState:d,userConsentVersion:c,hasUserId:e.hasUserId,userIdProviderList:e.userIdProviderList,pbjsVersion:e.pbjsVersion,tags:pi(e,t),viewabilityMeasurable:a,cpmUplift:i,dealId:t.dealId,advertiserDomains:t.advertiserDomains,pubstackRefresh:o.pubstackRefresh,pubstackRefreshRank:o.pubstackRefreshRank,customFields:t.customFields,bidNetRevenue:t.bidNetRevenue,source:t.source,adapterCode:t.adapterCode};this.coreImpressionStream.next(u)}}class mi{constructor(){this.storeAuctions=new Map,this.storeCoreBidResponses=new Map,this.mappingAdUnitNameAuctions=new Map,this.mappingAdUnitCodeLastAuctions=new Map}setAuction(e){var t;this.storeAuctions.set(e.auctionId,e);const i=null!==(t=this.mappingAdUnitNameAuctions.get(e.adUnit.name))&&void 0!==t?t:[];i.find((t=>t===e.auctionId))||(i.push(e.auctionId),this.mappingAdUnitNameAuctions.set(e.adUnit.name,i)),this.mappingAdUnitCodeLastAuctions.set(e.adUnit.code,e.auctionId)}getAuction(e){const t=this.storeAuctions.get(e);return w(t,`auction not found, @auctionId=${e}`),t}findBidsByAuctionId(e){var t;return(null===(t=this.storeAuctions.get(e))||void 0===t?void 0:t.bidRequests)||[]}findLastAuctionId(e){return this.mappingAdUnitCodeLastAuctions.get(e.code)}findAuctionByAdUnitPath(e){return Array.from(this.storeAuctions.values()).find((t=>{var i;return null===(i=t.adUnit.path)||void 0===i?void 0:i.endsWith(e)}))}}class vi{constructor(){this.state=new mi,this.forwarder=new hi(this.state),this.fallbackCurrency=void 0}bindIntegration(e){e instanceof re&&(e.onBidResponseStream.subscribe((e=>this.bidResponse(e)),E),e.onAuctionEndStream.subscribe((e=>this.auctionDone(e)),E),e.onBidWonStream.subscribe((e=>this.impression(e)),E),e.onBidWonFromSdkStream.subscribe((e=>this.impressionFromSdk(e)),E),this.fallbackCurrency=e.getAdServerCurrency()),e instanceof ni&&e.onAdStream.subscribe((e=>this.impressionSas(e)),E)}helperToBidResponse(e,t){var i;const s=Object.assign({},e);s.state=Y.BID,t.tags.forEach((e=>s.tags.add(e)));let n=t.size;return"native"===t.mediaType&&(n="native"),"video"===t.mediaType&&(n=`video-${n}`),s.size=n,s.cpm=t.cpm,s.currency=null!==(i=t.currency)&&void 0!==i?i:this.fallbackCurrency,s.bidResponseId=t.bidResponseId,s.bidderCode=t.bidderCode,s}bidResponse(e){V("[pubstackCoreController] onBidResponse",e),e.bidderCode="nexx360"===e.adapterCode?"nexx360":e.bidderCode;const t={auctionId:e.auctionId,state:Y.BID,tags:new Set(e.tags),customFields:e.customFields};try{const i=this.state.getAuction(e.auctionId);if(i){const s=i.bidRequests.find((t=>t.bidId===e.bidId));s&&(i.bidRequests=i.bidRequests.filter((t=>t.bidId!==e.bidId)),i.bidRequests.push(Object.assign(Object.assign(Object.assign({},s),this.helperToBidResponse(t,e)),{tags:s.tags})))}}catch(e){}}helperAuctionBidToBidResponse(e){var t;const i=Object.assign(Object.assign({},e),{tags:new Set});if(e.state===Y.BID){let s=e.size;"native"===e.mediaType&&(s="native"),"video"===e.mediaType&&(s=`video-${s}`),i.size=s,i.cpm=e.cpm,i.currency=null!==(t=e.currency)&&void 0!==t?t:this.fallbackCurrency,i.bidResponseId=e.bidResponseId,i.timeToRespond=e.timeToRespond,i.dealId=e.dealId,i.advertiserDomains=e.advertiserDomains,i.bidNetRevenue=e.bidNetRevenue}return e.tags.forEach((e=>i.tags.add(e))),i}bidWonToCoreBidResponse(e){var t,i;const s=a(e.requestId);let n=e.size;return"native"===e.mediaType&&(n="native"),"video"===e.mediaType&&(n=`video-${n}`),{adId:e.adId,bidId:s,bidResponseId:a(s,e.adId),bidderCode:"nexx360"===e.adapterCode?"nexx360":null!==(t=e.bidderCode)&&void 0!==t?t:"",adapterCode:e.pbstckAdapterCode,cpm:e.cpm,size:n,state:Y.BID,auctionId:e.auctionId,tags:new Set(e.tags),currency:null!==(i=e.currency)&&void 0!==i?i:this.fallbackCurrency,customFields:e.customFields,dealId:e.dealId,advertiserDomains:e.advertiserDomains,bidNetRevenue:e.bidNetRevenue,source:e.source}}auctionDone(e){V("[pubstackCoreController] onAuctionDone",e.auctionId);try{const t=(e.bidRequests||[]).map(this.helperAuctionBidToBidResponse),i=J(t),{userConsentState:s,userConsentVersion:n}=Q(i),o={auctionId:e.auctionId,adUnit:e.adUnit,tags:new Set(e.tags),sizes:new Set(e.sizes),hasUserId:e.userId.hasUserId,userIdProviderList:e.userId.userIdProviderList,refreshIndex:e.refreshIndex,pbjsVersion:e.pbjsVersion,refresh:!1,pubstackRefresh:e.labels.includes("pubstackRefresh"),pubstackRefreshRank:oi(e.labels),userConsentState:s,userConsentVersion:n,bidRequests:t,customFields:e.customFields,duration:e.duration,timeout:e.timeout,state:"RUNNING"};this.state.setAuction(o);const r=()=>{const t=this.state.getAuction(e.auctionId);"FINISHED"!==t.state?(this.forwarder.pushNewAuction(t),t.state="FINISHED",this.state.setAuction(t)):V("[pubstackCoreController] auction is already finished",t)};void 0===e.gracePeriod?r():setTimeout((()=>r()),e.gracePeriod)}catch(e){V("[pubstackCoreController] error: cannot set auction as done because auction is not running")}}findBidResponseDuplicate(e){const t=this.state.storeCoreBidResponses.get(e.bidId),i=!!t&&t.bidResponseId===e.bidResponseId&&t.bidderCode===e.bidderCode;return i&&V("[pubstackCoreController] duplicate bid response found",e),i}_impression(e){if("FINISHED"===this.state.getAuction(e.auctionId).state)this.findBidResponseDuplicate(e)||this.forwarder.pushNewImpression(e);else{const t=i=>{i.auctionId===e.auctionId&&(this.findBidResponseDuplicate(e)||this.forwarder.pushNewImpression(e),this.forwarder.coreAuctionStream.unsubscribe(t))};this.forwarder.coreAuctionStream.subscribe(t)}}impression(e){V("[pubstackCoreController] onImpression",e);try{const t=this.bidWonToCoreBidResponse(e);this._impression(t)}catch(e){V("[pubstackCoreController] error: cannot create impression",e)}}impressionFromSdk(e){V("[pubstackCoreController] onImpression",e);try{const t=Array.from(this.state.storeAuctions.values()).find((t=>t.bidRequests.filter((e=>e.state===Y.BID)).find((t=>t.adId===e.adId))));if(t){const i=t.bidRequests.filter((e=>e.state===Y.BID)).find((t=>t.adId===e.adId));i.customFields=Object.assign(Object.assign({},i.customFields),e.customFields),this._impression(i)}}catch(e){V("[pubstackCoreController] error: cannot create impression",e)}}impressionSas(e){V("[pubstackCoreController] onImpressionSas",e);try{const t=this.state.findAuctionByAdUnitPath(e.adUnitPathSuffix);w(t,`onSasNewBidResponse: cannot retrieve related auction, @adUnitName=${e.adUnitName}, @adUnitPath=${e.adUnitPathSuffix}`),e.currency=this.fallbackCurrency,this.forwarder.impressionSasFormatAndForward(e,t.adUnit)}catch(e){V("[pubstackCoreController] error: cannot create impression",e)}}subscribe(e){this.forwarder.subscribe(e)}debug(){const e=[];return this.forwarder.subscribe({onAuction:t=>e.push(t),onImpression:t=>e.push(t)}),{auctions:this.state,auctionsDone:void 0,adUnits:void 0,events:e}}}const fi=(e,t)=>Object.entries(t).every((([t,i])=>typeof i==typeof{}&&typeof e[t]==typeof{}?fi(e[t],i):typeof e[t]==typeof i)),gi=(e,t)=>{if(t)for(let i=0;i<1e3;i+=1)try{const s=e([],{},[i]);try{if(fi(s,t))return s}catch(e){}}catch(e){}},wi=400;const yi={CALL:"call",AD_CALLBACK:"pbstck:ad"};const Ii=()=>({toAd(e,t){k(e),w(t,"toAd: id is undefined"),w(e.formatId,"toAd: formatId is undefined"),g(t),function(e,t,i){if(!C(e,t))throw new l(`Expected object to have key '${t}', but not found`)}(e,"formatId");const i="string"==typeof e.size?e.size:"unknown";return{cpm:p(e.cpm)?e.cpm:0,size:i,formatId:p(e.formatId)?e.formatId.toString():e.formatId}}});const ki=new WeakSet;function Ci(e,t,i){const s=e[i.globalName];if(void 0===s||!s.__smartLoaded)return{status:K.NOT_READY};const n=Ii(),o=new ni,r=function(e,t){return{on(i,s,n){V("sas.dispatcher",i,s),i===yi.AD_CALLBACK&&t.onAd(e.toAd(s,n))}}}(n,o);t.bindIntegration(o);const a=[];if(ki.has(s))return{status:K.LOADED};ki.add(s);const d=Object.values(yi);return d.forEach((e=>{s.events.on(e,((t,i)=>{const s=de(t);a.push({eventName:e,data:s,id:i});try{r.on(e,s,i)}catch(e){e.context=e.context||{},e.context.adapter={source:"sas:on"},E(e)}}))})),s.events.history().filter((({eventName:e})=>d.includes(e))).map(de).forEach((({eventName:e,data:t,id:i})=>{const s=de(t);a.push({eventName:e,data:s,id:i});try{r.on(e,t,i)}catch(e){e.context=e.context||{},e.context.adapter={source:"sas:replayed"},E(e)}})),{status:K.LOADED,instance:{debug:()=>({events:a})}}}function Ai(e,t){return"object"==typeof t&&t instanceof Set?Array.from(t):t}function Ri(e,t){return"tags"!==e&&"sizes"!==e||!Array.isArray(t)?t:new Set(t)}class Si{constructor(e){this.coreEvents=[],this.errors=[],e.forwarder.coreAuctionStream.subscribe((e=>this.addEvent(e))),e.forwarder.coreImpressionStream.subscribe((e=>this.addEvent(e)))}addEvent(e){this.coreEvents.push(e)}addError(e){this.errors.push(e)}getEvents(){return this.coreEvents.map((e=>JSON.parse(JSON.stringify(e,Ai),Ri)))}getErrors(){return this.errors}}const Ti=e=>{var t;const i=null!==(t=null==e?void 0:e.host)&&void 0!==t?t:"unknown";return i.startsWith("www.")?i.substring(4):i},Ei=e=>{let t;return t=e&&e.protocol&&e.host&&e.pathname?`${e.protocol}//${e.host}${e.pathname}`:"unknown",t};class ji{constructor(e,t,i){this.url=e,this.context=i,this.sender=t}buildUrl(e){return`${this.url}?sId=${this.context.scopeId.substring(0,8)}&tId=${this.context.tagId}&c=${e}&ctr=${this.context.country}`}send(e){const t=e.map((e=>xi(e,this.context)));this.sender(this.buildUrl(t.length),t)}}const xi=(e,t)=>Object.assign(Object.assign(Object.assign({},e),t),{domain:Ti(window.location),href:Ei(window.location)});function Ui(e){var t;const i="pbstck",s="pbstck_context",n=[...li(i),...li(s)],o=n.find((e=>"pbstck_ab_test"===bi(e.name,i)));if(o)return o.content;{let i=null===(t=n.find((e=>"pbstck_ab_test"===bi(e.name,s))))||void 0===t?void 0:t.content;return i&&!e.includes(i)&&(i=void 0),i}}const Ni=20;function Oi(){const e="pbstck",t=new Map;li(e).forEach((i=>{const s=bi(i.name,e);t.has(s)&&q(`Custom dim ${s} is present many times`),t.size<Ni?t.set(s,i.content):q(`Skipping custom dim ${s} with ${i.content}: limit of ${Ni} keys exceeded`)}));const i=Object.assign({},...Array.from(t.entries()).map((([e,t])=>({[e]:t}))));return t.size>0&&V("Custom dim found :",i),i}class Bi{constructor(e,t,i,s,n){var o;this.items=[],this.url=e,this.buffer=null!==(o=null==n?void 0:n.buffer)&&void 0!==o?o:Bi.defaults.buffer,this.sender=t,this.context=i,this.abTestValues=s}buildUrl(){const e=this.context.customFields["kleanads-version"],t=document.querySelector('meta[name="pbstck:config-version"]'),i=null==t?void 0:t.content,s=this.items.reduce(((e,t)=>e+(t.pubstackRefresh?1:0)),0),n=e?`&v=${e}&s=${i}`:"",o=s>0?`&rc=${s}`:"";return`${this.url}?tId=${this.context.tagId}&c=${this.items.length}${n}${o}`}batchThenSend(e,t=!0){const i=t?Vi(e,this.context,this.abTestValues):e;if(this.items.push(i),0===this.buffer)return this.flush();1===this.items.length&&setTimeout((()=>this.flush()),this.buffer)}flush(){0!==this.items.length&&(this.sender(this.buildUrl(),[...this.items]),this.reset())}reset(){this.items=[]}}Bi.defaults={buffer:150};const Vi=(e,t,i)=>{var s;const{customFields:n}=e,{customFields:o}=t,r=Oi(),a=null===(s=navigator.connection)||void 0===s?void 0:s.effectiveType,d=Object.assign(Object.assign(Object.assign(Object.assign({},n),o),r),{windowWidth:window.innerWidth.toString(),windowHeight:window.innerHeight.toString()});return Object.assign(Object.assign(Object.assign({},e),t),{customFields:d,abTestPopulation:Ui(null!=i?i:[]),domain:Ti(window.location),href:Ei(window.location),networkConnectionEffectiveType:a,pageId:window.__pbstck_page_id||"unknown",kleanAdsStackVersion:d["config-version"],kleanAdsStackId:d["kleanads-stack-id"]})},qi=d();class $i{constructor(e,t,i,s,n){const o=e.slice(0,-7);this.viewabilityGateway=new Bi(`${e}/viewability`,Di,t,n),this.auctionGateway=new Bi(`${e}/auction`,Di,t,n),this.impressionGateway=new Bi(`${e}/impression`,Di,t,n),this.errorGateway=new Bi(`${e}/error`,Di,t,n),this.traceGateway=new Bi(`${o}/trace`,Di,t,void 0,{buffer:5e3}),this.measuredImpressionGateway=new Bi(`${e}/measured`,Di,t,n),this.measuredImpressionBeaconGateway=new ji(`${e}/measured`,zi,t),this.pageGateway=new Bi(`${e}/page`,Di,t,n),this.bindController(i,s)}bindController(e,t){e.forwarder.coreAuctionStream.subscribe((e=>this.formatAndForwardAuction(e))),e.forwarder.coreImpressionStream.subscribe((e=>{this.formatAndForwardImpression(e)})),void 0!==t&&(t.viewabilityStream.subscribe((e=>{this.formatAndForwardViewability(e)})),t.viewedStream.subscribe((e=>{this.formatAndForwardMeasuredImpression(e)})),t.onUnload((e=>this.formatAndForwardMeasuredImpressionForBeacon(e))))}formatAndForwardAuction(e){const t=[];e.bidRequests.forEach((e=>{t.push({bidId:ee(e),bidderCode:e.bidderCode,state:e.state,source:e.source,tags:0===e.tags.size?void 0:Array.from(e.tags),cpm:Z(e)?e.cpm:void 0,currency:Z(e)?e.currency:void 0,size:Z(e)?e.size:void 0,customFields:e.customFields,timeToRespond:e.timeToRespond,rejectionReason:e.rejectionReason,dealId:Z(e)?e.dealId:void 0,advertiserDomains:Z(e)?e.advertiserDomains:void 0,bidNetRevenue:Z(e)?e.bidNetRevenue:void 0,adapterCode:e.adapterCode})}));const i=void 0===e.userConsentState?"notAvailable":e.userConsentState,s=void 0===e.userConsentVersion?"notAvailable":e.userConsentVersion,n={auctionId:e.auctionId,adUnit:e.adUnit.name,adUnitPath:e.adUnit.path,sizes:Array.from(e.sizes),tags:0===e.tags.size?void 0:Array.from(e.tags),refresh:e.refresh,userConsentState:i,userConsentVersion:s,hasUserId:e.hasUserId,userIdProviderList:e.userIdProviderList,pbjsVersion:e.pbjsVersion,bidRequests:t,pubstackManaged:!1,pubstackRefresh:e.pubstackRefresh,pubstackRefreshRank:e.pubstackRefreshRank,customFields:e.customFields,duration:e.duration,timeout:e.timeout};this.auctionGateway.batchThenSend(n)}formatAndForwardImpression(e){const t={bidId:e.bidId,auctionId:e.auctionId,lastAuctionId:e.lastAuctionId,adUnit:e.adUnit.name,adUnitPath:e.adUnit.path,bidderCode:e.bidderCode,cpm:e.cpm,currency:e.currency,refresh:e.refresh,size:e.size,userConsentState:e.userConsentState,userConsentVersion:e.userConsentVersion,hasUserId:e.hasUserId,userIdProviderList:e.userIdProviderList,pbjsVersion:e.pbjsVersion,cpmUplift:e.cpmUplift,dealId:e.dealId,advertiserDomains:e.advertiserDomains,tags:Array.from(e.tags),viewabilityMeasurable:e.viewabilityMeasurable,pubstackManaged:!1,pubstackRefresh:e.pubstackRefresh,pubstackRefreshRank:e.pubstackRefreshRank,customFields:e.customFields,bidNetRevenue:e.bidNetRevenue,source:e.source,adapterCode:e.adapterCode};this.impressionGateway.batchThenSend(t)}formatAndForwardViewability(e){const t={bidId:e.bidId,auctionId:e.auctionId,lastAuctionId:e.lastAuctionId,adUnit:e.adUnit.name,adUnitPath:e.adUnit.path,bidderCode:e.bidderCode,pbjsVersion:e.pbjsVersion,cpm:e.cpm,currency:e.currency,size:e.size,refresh:e.refresh,htmlElementId:e.htmlElementId,mrcViewable:!0,pubstackManaged:!1,pubstackRefresh:e.pubstackRefresh,pubstackRefreshRank:e.pubstackRefreshRank};this.viewabilityGateway.batchThenSend(t)}formatAndForwardMeasuredImpression(e){const t={bidId:e.bidId,auctionId:e.auctionId,lastAuctionId:e.lastAuctionId,adUnit:e.adUnit.name,adUnitPath:e.adUnit.path,bidderCode:e.bidderCode,cpm:e.cpm,currency:e.currency,refresh:e.refresh,size:e.size,pbjsVersion:e.pbjsVersion,viewedTime:e.viewedTime,pubstackManaged:!1,pubstackRefresh:e.pubstackRefresh,pubstackRefreshRank:e.pubstackRefreshRank};this.measuredImpressionGateway.batchThenSend(t)}formatAndForwardMeasuredImpressionForBeacon(e){const t=e.map((e=>({bidId:e.bidId,auctionId:e.auctionId,lastAuctionId:e.lastAuctionId,adUnit:e.adUnit.name,adUnitPath:e.adUnit.path,bidderCode:e.bidderCode,cpm:e.cpm,currency:e.currency,refresh:e.refresh,size:e.size,pbjsVersion:e.pbjsVersion,viewedTime:e.viewedTime,pubstackManaged:!1,pubstackRefresh:e.pubstackRefresh,pubstackRefreshRank:e.pubstackRefreshRank})));this.measuredImpressionBeaconGateway.send(t)}sendError(e){this.errorGateway.batchThenSend(e)}sendLog(e){this.traceGateway.batchThenSend(e,!1)}sendToDatadog(e){var t;if(void 0===e.error||""===e.error)return;const i=e.error,s=null!==(t=e.context)&&void 0!==t?t:{};k(s),g(i);const n=Object.assign(Object.assign({pageId:qi,status:"error",domain:Ti(window.location),href:Ei(window.location)},s),{message:i}),o=new XMLHttpRequest;o.open("POST","https://browser-http-intake.logs.datadoghq.com/v1/input/pub551f730416e5317842afc2792691e95c?ddsource=browser&ddtags=version:1.3.2",!0),o.setRequestHeader("Content-Type","text/plain"),o.send(JSON.stringify(n))}}const Di=(e,t)=>{const i=new XMLHttpRequest;i.open("POST",e,!0),i.setRequestHeader("Content-Type","text/plain"),i.send(JSON.stringify(t)),V("post",e,t)},zi=(e,t)=>{const i=JSON.stringify(t);navigator.sendBeacon(e,i),V("beacon",e,t)};class Fi{constructor(e){this.adUnit=e}visibilityRatioFromIntersection(e){const t=_i(this.adUnit,this.adUnit);if(this.adUnit===t)return e.intersectionRatio;const i=t.getBoundingClientRect();return e.intersectionRect.height/i.height}}const _i=(e,t)=>(Mi(e)<Mi(t)&&(e=t),Array.from(t.children).filter((e=>e instanceof HTMLElement)).forEach((t=>{e=_i(e,t)})),e),Mi=e=>e.getBoundingClientRect?e.getBoundingClientRect().height:0;class Pi{constructor(){this.state="new",this.elapsedTime=0,this.timeTargets=[]}start(){return"stopped"===this.state&&(this.elapsedTime=0),"started"===this.state?this.elapsed():(this.state="started",this.timeoutId=setTimeout((()=>this.update()),Pi.pacing),this.elapsedTime)}pause(){if("paused"===this.state||"stopped"===this.state)return this.elapsedTime;const e=this.update();return this.state="paused",e}stop(){if("stopped"===this.state)return this.elapsedTime;const e=this.update();return this.state="stopped",e}elapsed(){return"started"===this.state&&this.update(),this.elapsedTime}timeTargetReached(e){return new Promise((t=>{this.timeTargets.push([e,t])}))}update(){let e=Pi.pacing;if("started"===this.state){this.elapsedTime+=e;for(let t=this.timeTargets.length;t--;){const[i,s]=this.timeTargets[t];this.elapsedTime>=i?(s(i),this.timeTargets.splice(t,1)):e=Math.min(e,i-this.elapsedTime)}}return"stopped"!==this.state&&(this.timeoutId&&clearTimeout(this.timeoutId),this.timeoutId=setTimeout((()=>this.update()),e)),this.elapsedTime}}Pi.pacing=100;class Li{constructor(e,t,i,s,n){this.creative=s,this.timer=new Pi,this.inViewPercentage=e,this.cumulative=i,this.timer.timeTargetReached(t).then((()=>{n()}))}pauseTimer(){this.timer.pause()}startTimer(){this.timer.start()}stopTimer(){this.timer.stop()}getElapsed(){return this.timer.elapsed()}isViewable(){return this.inView}intersectionChange(e){this.creative.visibilityRatioFromIntersection(e)>=this.inViewPercentage?this.inView||(this.timer.start(),this.inView=!0):this.inView&&(this.cumulative?this.timer.pause():this.timer.stop(),this.inView=!1)}getTimerState(){return this.timer.state}}const Wi={root:null,rootMargin:"0px",threshold:[0,.3,.5,1]};class Gi{constructor(e,t,i){this.windowActive=!0,this.pbstckWindow=i,this.visibilityState=i.document.visibilityState,this.trackedOnFocusChange=this.onFocusChange.bind(this),i.addEventListener("focus",this.trackedOnFocusChange),i.addEventListener("blur",this.trackedOnFocusChange),this.trackedOnVisibilityChange=this.onVisibilityChange.bind(this),i.addEventListener("visibilitychange",this.trackedOnVisibilityChange);const s=this.getObserverThresholds(t);this.observer=new IntersectionObserver((e=>this.intersectionObserverCallback(e)),s),this.observer.observe(e);const n=new Fi(e);this.computer=new Li(t.minPercentageInView,t.minTimeInView,t.cumulativeTimer,n,(()=>t.completionCallback(e.id))),"hidden"!==this.visibilityState&&this.windowActive||this.stop()}getObserverThresholds(e){return.3===e.minPercentageInView?Object.assign(Object.assign({},Wi),{threshold:[.3,.5,.75,1]}):Object.assign(Object.assign({},Wi),{threshold:[.5,.75,1]})}onVisibilityChange(){this.visibilityState="visible"===this.visibilityState?"hidden":"visible",this.checkWindowActive()}onFocusChange(e){this.windowActive="focusin"===e.type||"focus"===e.type,this.checkWindowActive()}checkWindowActive(){"visible"===this.visibilityState&&this.windowActive?this.start():this.pause()}destroy(){var e;this.stop(),null===(e=this.observer)||void 0===e||e.disconnect(),this.pbstckWindow.removeEventListener("visibilitychange",this.trackedOnVisibilityChange),this.pbstckWindow.removeEventListener("focus",this.trackedOnFocusChange),this.pbstckWindow.removeEventListener("blur",this.trackedOnFocusChange),this.computer=null,this.observer=null}getElapsed(){return null===this.computer?0:this.computer.getElapsed()}pause(){var e;null===(e=this.computer)||void 0===e||e.pauseTimer()}start(){var e;null===(e=this.computer)||void 0===e||e.startTimer()}stop(){var e;null===(e=this.computer)||void 0===e||e.stopTimer()}intersectionObserverCallback(e){e.forEach((e=>{var t;null===(t=this.computer)||void 0===t||t.intersectionChange(e)}))}getTimerState(){var e;return null===(e=this.computer)||void 0===e?void 0:e.getTimerState()}}const Hi={viewableTime:1e3,largeAdunitSize:242e3,largeAdunitTreshold:.3,standardAdunitTreshold:.5};class Ji{constructor(e,t){this.viewabilityState=new Map,this.viewedTimeState=new Map,this.elementIdToCode=new Map,this.viewabilityStream=new c,this.viewedStream=new c,V("[pubstackViewability] Create ViewabilityController with config",Hi),this.pbstckWindow=t,this.pbstckWindow.addEventListener("unload",(()=>this.unloadMeasuredImpressions())),e.forwarder.coreImpressionStream.subscribe((e=>{V("[pubstackViewability] Receive impression",e.bidderCode,e.adUnit.code),this.track(e)})),e.forwarder.coreAuctionStream.subscribe((e=>{V("[pubstackViewability] Receive auctionend",e.adUnit.code),this.endMeasure(e.adUnit.code)}))}onUnload(e){this.unloadCallback=e}endMeasure(e){V("[pubstackViewability] receive event to stop measure");const t=this.viewedTimeState.get(e);void 0!==t?(t.viewabilitytracker.stop(),this.onMeasurable(e)):V("[pubstackViewability] event received but no tracker to stop, skipping")}track(e){if(!e.viewabilityMeasurable)return void V("[pubstackViewability] Cannot track impression for adUnit ",e.adUnit);const t=ci(e.adUnit);null!==t?(this.trackViewability(e,t),this.trackMeasure(e,t)):E(new Error(`[pubstackViewability] Unexpected null HTML Element on viewable impression for adUnit ${e.adUnit.name}`))}trackMeasure(e,i){return t(this,void 0,void 0,(function*(){var t;let s=null===(t=this.viewedTimeState.get(e.adUnit.code))||void 0===t?void 0:t.viewabilitytracker;this.elementIdToCode.set(i.id,e.adUnit.code),void 0!==s&&(V(`[pubstackViewability] replacing existing measurability tracker on ${i.id}`),s.stop(),this.onMeasurable(e.adUnit.code)),V(`[pubstackViewability] tracking code ${e.adUnit.code} with rule MRC for measurability`);const n={minPercentageInView:this.minPercentageInView(i,Hi),minTimeInView:18e4,cumulativeTimer:!0,completionCallback:e=>{const t=this.elementIdToCode.get(e);void 0!==t?this.onMeasurable(t):V(`[pubstackViewability] unable to find matching adunitcode for element ${e}`)}};s=new Gi(i,n,this.pbstckWindow),this.viewedTimeState.set(e.adUnit.code,{impression:e,viewabilitytracker:s})}))}trackViewability(e,i){return t(this,void 0,void 0,(function*(){var t;let s=null===(t=this.viewabilityState.get(i.id))||void 0===t?void 0:t.viewabilitytracker;void 0!==s&&(V(`[pubstackViewability] replacing existing tracker on ${i.id}`),s.destroy(),this.viewabilityState.delete(i.id)),V(`[pubstackViewability] tracking element ${i.id} with rule MRC for monitoring`);const n={minPercentageInView:this.minPercentageInView(i,Hi),minTimeInView:Hi.viewableTime,cumulativeTimer:!1,completionCallback:e=>this.onViewable(e)};s=new Gi(i,n,this.pbstckWindow),this.viewabilityState.set(i.id,{impression:e,viewabilitytracker:s})}))}minPercentageInView(e,t){const i=window.getComputedStyle(e);return Number(i.getPropertyValue("width").replace(/px/,""))*Number(i.getPropertyValue("height").replace(/px/,""))>t.largeAdunitSize?t.largeAdunitTreshold:t.standardAdunitTreshold}unloadMeasuredImpressions(){if(V("[pubstackViewability] page unloaded, forwarding impressions measured"),void 0!==this.unloadCallback){const e=[];Array.from(this.viewedTimeState.values()).forEach((t=>{if(void 0!==t.viewabilitytracker){t.viewabilitytracker.stop();const i=Math.floor(t.viewabilitytracker.getElapsed()/1e3);i>0&&e.push({bidId:t.impression.bidId,auctionId:t.impression.auctionId,lastAuctionId:t.impression.lastAuctionId,adUnit:t.impression.adUnit,bidderCode:t.impression.bidderCode,pbjsVersion:t.impression.pbjsVersion,cpm:t.impression.cpm,currency:t.impression.currency,refresh:t.impression.refresh,size:t.impression.size,viewedTime:i,pubstackRefresh:t.impression.pubstackRefresh,pubstackRefreshRank:t.impression.pubstackRefreshRank})}})),e.length>0&&this.unloadCallback(e)}}onMeasurable(e){V(`[pubstackViewability] Measurability Event on AdUnit code ${e}`);const t=this.viewedTimeState.get(e);if(void 0===t)return void E(new Error(`[pubstackViewability] Impression not found for AdUnit code ${e}`));this.viewedTimeState.delete(e);if(Math.floor(t.viewabilitytracker.getElapsed()/1e3)>0){const e=t.impression,i={bidId:e.bidId,auctionId:e.auctionId,lastAuctionId:e.lastAuctionId,adUnit:e.adUnit,bidderCode:e.bidderCode,pbjsVersion:e.pbjsVersion,cpm:e.cpm,currency:e.currency,refresh:e.refresh,size:e.size,viewedTime:Math.floor(t.viewabilitytracker.getElapsed()/1e3),pubstackRefresh:e.pubstackRefresh,pubstackRefreshRank:e.pubstackRefreshRank};V(`[pubstackViewability] Forwarding measured impression on code ${e.adUnit.code}`),this.viewedStream.next(i)}t.viewabilitytracker.destroy()}onViewable(e){V(`[pubstackViewability] Viewability Event on element ${e}`);const t=this.viewabilityState.get(e);if(void 0===t)return void E(new Error(`[pubstackViewability] Impression not found for ElementId ${e}`));this.viewabilityState.set(e,t);const i=t.impression,s={bidId:i.bidId,auctionId:i.auctionId,lastAuctionId:i.lastAuctionId,adUnit:i.adUnit,bidderCode:i.bidderCode,pbjsVersion:i.pbjsVersion,cpm:i.cpm,currency:i.currency,refresh:i.refresh,size:i.size,htmlElementId:e,pubstackRefresh:i.pubstackRefresh,pubstackRefreshRank:i.pubstackRefreshRank};V(`[pubstackViewability] Forwarding viewable impression ${s.htmlElementId}`),this.viewabilityStream.next(s)}}const Qi=()=>{const e=navigator.userAgent;return/(tablet|ipad|playbook|silk)|(android(?!.*mobi))/i.test(e)?"tablet":/Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)/.test(e)?"mobile":"desktop"};function Xi(e,i,s){var n;e.pbstck=e.pbstck||{lock:{}},e.pbstck.lock=e.pbstck.lock||{},e.pbstck.scopeId=s.scopeId,e.pbstck.tagId=s.tagId;const o={},r=`${s.tagId}@${i.gateway}@collector`;if(function(e,t){return e[t]}(e.pbstck.lock,r))return;!function(e,t){e[t]=!0}(e.pbstck.lock,r);const a=new vi;let d;o.core=a,i.viewabilityEnabled&&(d=new Ji(a,e),o.viewability=d);const c=new $i(i.gateway,s,a,d,i.abTestValues);var u;o.intake=c,S((e=>c.sendError(e)),1),u=e=>{i.logsEnabled.includes(e.id)&&c.sendLog(e)},ue.subscribe(u),function(e){R.subscribe(e)}((e=>c.sendToDatadog(e)));const l=new Promise(((s,n)=>{if(i.pbjsVariableName){V("Prebid dropin mode",i.pbjsVariableName);const r={debug:B(),globalName:i.pbjsVariableName},d=function(e,t){return e[t.globalName]||(e[t.globalName]={}),e[t.globalName].que||(e[t.globalName].que=[]),e[t.globalName].que}(e,r);d.push((()=>t(this,void 0,void 0,(function*(){var t,d;const c=e[r.globalName],u=null!==(t=Number(c.getConfig("timeoutBuffer")))&&void 0!==t?t:wi,l=null===(d=c.getConfig("currency"))||void 0===d?void 0:d.adServerCurrency;let b;h(l)&&(b=l);const p=new re({version:c.version,gracePeriod:u,adServerCurrency:b,pbjsVariableName:r.globalName},i.admOnboarding);o.prebid=p;try{o.prebid=function(e,t,i,s){const n=e[s.globalName];i.bindIntegration(t);const o=le(ve(),t);let r;if(null!=n.getEvents)V("[pbjsIntegration] retrieve pbjs events using getEvents on public API"),r=n.getEvents;else{V("[pbjsIntegration] retrieve pbjs events using chunk");const t=e[`${s.globalName}Chunk`];if(void 0===t)throw new Error("[pbjsIntegration] unable to find pbjs chunk");const i=gi(t,{on:Function,getEvents:Function});if(void 0===i)throw new Error("[pbjsIntegration] unable to use event handler on adapter");r=i.getEvents}return Object.values(ce).forEach((e=>{n.onEvent(e,(t=>{var i;try{o.on(e,t)}catch(s){$("[pbjsIntegration] Error on event "+e+": "+s.message,t),T({context:Object.assign(Object.assign({},null!==(i=s.context)&&void 0!==i?i:{}),{adapter:{version:n.version,source:"pbjs:on"}}),message:s.message})}}))})),r().forEach((({eventType:e,args:t})=>{var i;try{o.on(e,t)}catch(s){$("[pbjsIntegration] Error on event "+e+": "+s.message,t),T({context:Object.assign(Object.assign({},null!==(i=s.context)&&void 0!==i?i:{}),{adapter:{version:n.version,source:"pbjs:replayed"}}),message:s.message})}})),t}(e,p,a,r),s()}catch(e){return $("Unable to load pbjs integration due to",e),void n()}}))))}}));let b,p=[];if(i.smartEnabled||i.debug){const t={debug:B(),globalName:"sas"};p=function(e,t){return e[t.globalName]||(e[t.globalName]={}),e[t.globalName].cmd||(e[t.globalName].cmd=[]),e[t.globalName].cmd}(e,t),p.push((()=>{b=Ci(e,a,t).instance}))}const m={tagId:s.tagId,globalQueue:i.sdk.globalQueue},v=ge(e,a,m);if(v.dispatchEvents(),i.debug||B()){a.subscribe({onAuction:e=>V("controller.onAuction",e),onImpression:e=>V("controller.onImpression",e)});const t=new Si(a);o.debug=t,S((e=>t.addError(e)),1e3),e.pbstck.debug=e.pbstck.debug||{},e.pbstck.debug[r]={getEvents:()=>t.getEvents(),getErrors:()=>t.getErrors(),sdk:null!==(n=null==v?void 0:v.debug())&&void 0!==n?n:void 0},(i.smartEnabled||i.debug)&&p.push((()=>{b&&(e.pbstck.debug[r].sas=b.debug())}))}return Promise.resolve().finally(),e.pbstck.controllers=e.pbstck.controllers||{},e.pbstck.controllers[`${i.gateway}@collector`]=o,l.then((()=>{e.dispatchEvent(new Event(we(`${i.gateway}@collector`,"pubstackMonitoringReady")))})),a}e.bootPubstack=Xi,e.pubstackAutoconfig=function(e){var i,s,n,o;const r={gateway:null===(i=e.endpoint)||void 0===i?void 0:i.gateway,sdk:{globalQueue:"pbstckQ"},debug:!0===e.debug,viewabilityEnabled:e.viewabilityEnabled,smartEnabled:null!==(s=e.smartEnabled)&&void 0!==s&&s,refreshConfigurationUrl:null!==(n=e.refreshConfigurationUrl)&&void 0!==n?n:"",pbjsVariableName:e.pbjsVariableName||"pbjs",abTestValues:e.abTestValues,logsEnabled:e.logsEnabled||[],admOnboarding:e.admOnboarding};if(void 0===r.gateway)return;const a=new si(navigator.userAgent),d=a.getOS(),c=a.getBrowser(),u={tagId:e.tagId,scopeId:e.scopeId,country:e.country,device:Qi(),browserName:c.name,browserVersion:c.major,osName:d.name,osVersion:d.version,pbstckVersion:null!==(o="01e89e8")?o:"unknown",customFields:Oi()};u.customFields.kleanadsDefaultDevice=window.innerWidth<768?"mobile":"desktop",t(void 0,void 0,void 0,(function*(){try{return navigator&&navigator.cookieDeprecationLabel&&navigator.cookieDeprecationLabel.getValue&&(yield navigator.cookieDeprecationLabel.getValue())||void 0}catch(e){V("Error while getting cookie depreciation label",e)}})).then((e=>{e&&(u.customFields.cdep=e)})),u.tagId&&u.scopeId&&Xi(window,r,u)}}(this.collector=this.collector||{});
;
return this;}.bind({}); var _ = load();_.collector.pubstackAutoconfig({"endpoint":{"gateway":"https://intake.pbstck.com/v1/intake"},"scopeId":"62e13ed6-cbd3-4eec-bbe8-5a42a44cd1b3","tagId":"62759f86-1092-42f9-a8af-2e9858fa1056","viewabilityEnabled":true,"refreshEnabled":false,"smartEnabled":false,"pbjsVariableName":"pbjs"}); })()</script><script async="" src="https://fundingchoicesmessages.google.com/i/22152718?ers=3"></script><script src="//secure.cdn.fastclick.net/js/pubcid/latest/pubcid.min.js"></script><script src="//cdn.id5-sync.com/api/1.0/id5-api.js"></script><script type="text/javascript" async="" charset="utf-8" src="https://cdn.snigelweb.com/adconsent/86/views/gdpr/adconsent__tcfapi_en.js"></script></head>
<body data-template="forum_list">
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WWT9Q4L"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<div class="p-pageWrapper" id="top">
<header class="p-header" id="header">
<div class="p-header-inner">
<div class="p-header-content">
<div class="p-header-logo p-header-logo--image">
<a href="/board/">
<picture data-variations="{"default":{"1":"\/board\/styles\/mrexcel\/mrexcel-logo.png","2":"\/board\/styles\/mrexcel\/mrexcel-logo2x.png"}}">
<img src="/board/styles/mrexcel/mrexcel-logo.png" srcset="/board/styles/mrexcel/mrexcel-logo2x.png 2x" width="320" height="72" alt="MrExcel Message Board">
</picture>
</a>
</div>
</div>
</div>
</header>
<div class="p-navSticky p-navSticky--primary" data-xf-init="sticky-header">
<nav class="p-nav">
<div class="p-nav-inner">
<button type="button" class="button button--plain p-nav-menuTrigger" data-xf-click="off-canvas" data-menu=".js-headerOffCanvasMenu" tabindex="0" aria-label="Menu"><span class="button-text">
<i aria-hidden="true"></i>
</span></button>
<div class="p-nav-smallLogo">
<a href="/board/">
<picture data-variations="{"default":{"1":"\/board\/styles\/mrexcel\/mrexcel-logo.png","2":null}}">
<img src="/board/styles/mrexcel/mrexcel-logo.png" width="320" height="72" alt="MrExcel Message Board">
</picture>
</a>
</div>
<div class="p-nav-scroller hScroller" data-xf-init="h-scroller" data-auto-scroll=".p-navEl.is-selected">
<div class="hScroller-scroll is-calculated" style="margin-bottom: -40px;">
<ul class="p-nav-list js-offCanvasNavSource">
<li>
<div class="p-navEl is-selected" data-has-children="true">
<a href="/board/" class="p-navEl-link p-navEl-link--splitMenu " data-nav-id="forums">Forums</a>
<a data-xf-key="1" data-xf-click="menu" data-menu-pos-ref="< .p-navEl" class="p-navEl-splitTrigger" role="button" tabindex="0" aria-label="Toggle expanded" aria-expanded="false" aria-haspopup="true"></a>
<div class="menu menu--structural" data-menu="menu" aria-hidden="true">
<div class="menu-content">
<a href="/board/whats-new/posts/" class="menu-linkRow u-indentDepth0 js-offCanvasCopy " data-nav-id="newPosts">New posts</a>
<a href="/board/search/?type=post" class="menu-linkRow u-indentDepth0 js-offCanvasCopy " data-nav-id="searchForums">Search forums</a>
<a href="/board/help/message-board-rules/" class="menu-linkRow u-indentDepth0 js-offCanvasCopy " data-nav-id="helpRules">Board Rules</a>
</div>
</div>
</div>
</li>
<li>
<div class="p-navEl " data-has-children="true">
<a href="/board/whats-new/" class="p-navEl-link p-navEl-link--splitMenu " data-nav-id="whatsNew">What's new</a>
<a data-xf-key="2" data-xf-click="menu" data-menu-pos-ref="< .p-navEl" class="p-navEl-splitTrigger" role="button" tabindex="0" aria-label="Toggle expanded" aria-expanded="false" aria-haspopup="true"></a>
<div class="menu menu--structural" data-menu="menu" aria-hidden="true">
<div class="menu-content">
<a href="/board/featured/" class="menu-linkRow u-indentDepth0 js-offCanvasCopy " data-nav-id="featured">Featured content</a>
<a href="/board/whats-new/posts/" class="menu-linkRow u-indentDepth0 js-offCanvasCopy " rel="nofollow" data-nav-id="whatsNewPosts">New posts</a>
<a href="/board/whats-new/resources/" class="menu-linkRow u-indentDepth0 js-offCanvasCopy " rel="nofollow" data-nav-id="xfrmNewResources">New Excel articles</a>
<a href="/board/whats-new/latest-activity" class="menu-linkRow u-indentDepth0 js-offCanvasCopy " rel="nofollow" data-nav-id="latestActivity">Latest activity</a>
</div>
</div>
</div>
</li>
<li>
<div class="p-navEl ">
<a href="/board/whats-new/posts/" class="p-navEl-link " data-xf-key="3" data-nav-id="bc_whatsNewPosts">New posts</a>
</div>
</li>
<li>
<div class="p-navEl " data-has-children="true">
<a href="/board/excel-articles/" class="p-navEl-link p-navEl-link--splitMenu " data-nav-id="xfrm">Excel Articles</a>
<a data-xf-key="4" data-xf-click="menu" data-menu-pos-ref="< .p-navEl" class="p-navEl-splitTrigger" role="button" tabindex="0" aria-label="Toggle expanded" aria-expanded="false" aria-haspopup="true"></a>
<div class="menu menu--structural" data-menu="menu" aria-hidden="true">
<div class="menu-content">
<a href="/board/excel-articles/latest-reviews" class="menu-linkRow u-indentDepth0 js-offCanvasCopy " data-nav-id="xfrmLatestReviews">Latest reviews</a>
<a href="/board/search/?type=resource" class="menu-linkRow u-indentDepth0 js-offCanvasCopy " data-nav-id="xfrmSearchResources">Search Excel articles</a>
</div>
</div>
</div>
</li>
<li>
<div class="p-navEl " data-has-children="true">
<a data-xf-key="5" data-xf-click="menu" data-menu-pos-ref="< .p-navEl" class="p-navEl-linkHolder" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">
<span class="p-navEl-link p-navEl-link--menuTrigger " data-nav-id="mrexcelpublishing">MrExcel Publishing</span>
</a>
<div class="menu menu--structural" data-menu="menu" aria-hidden="true">
<div class="menu-content">
<a href="https://www.mrexcel.com" class="menu-linkRow u-indentDepth0 js-offCanvasCopy " data-nav-id="mrexcelsite"><i class="fa--xf fas fa-home "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/solid.svg?v=1729808417#home"></use></svg></i>MrExcel Homepage</a>
<a href="https://www.mrexcel.com/products/" class="menu-linkRow u-indentDepth0 js-offCanvasCopy " data-nav-id="mrexcelbookstore"><i class="fa--xf fas fa-shopping-cart "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/solid.svg?v=1729808417#shopping-cart"></use></svg></i>MrExcel Bookstore</a>
<a href="https://www.mrexcel.com/speaking/" class="menu-linkRow u-indentDepth0 js-offCanvasCopy " data-nav-id="mrexcelseminars"><i class="fa--xf fas fa-microphone "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/solid.svg?v=1729808417#microphone"></use></svg></i>MrExcel Seminars</a>
<a href="https://www.mrexcel.com/consulting-services/" class="menu-linkRow u-indentDepth0 js-offCanvasCopy " data-nav-id="mrexcelconsulting"><i class="fa--xf fas fa-handshake "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/solid.svg?v=1729808417#handshake"></use></svg></i>Excel Consulting Services</a>
</div>
</div>
</div>
</li>
</ul>
</div><i class="hScroller-action hScroller-action--end is-active" aria-hidden="true"></i><i class="hScroller-action hScroller-action--start" aria-hidden="true"></i>
</div>
<div class="p-nav-opposite">
<div class="p-navgroup p-account p-navgroup--guest">
<a href="/board/login/" class="p-navgroup-link p-navgroup-link--textual p-navgroup-link--logIn" data-xf-click="overlay" data-follow-redirects="on">
<span class="p-navgroup-linkText">Log in</span>
</a>
<a href="/board/register/" class="p-navgroup-link p-navgroup-link--textual p-navgroup-link--register" data-xf-click="overlay" data-follow-redirects="on">
<span class="p-navgroup-linkText">Register</span>
</a>
</div>
<div class="p-navgroup p-discovery">
<a href="/board/whats-new/" class="p-navgroup-link p-navgroup-link--iconic p-navgroup-link--whatsnew" aria-label="What's new" title="What's new">
<i aria-hidden="true"></i>
<span class="p-navgroup-linkText">What's new</span>
</a>
<a href="/board/search/" class="p-navgroup-link p-navgroup-link--iconic p-navgroup-link--search" data-xf-click="menu" data-xf-key="/" aria-label="Search" aria-expanded="false" aria-haspopup="true" title="Search">
<i aria-hidden="true"></i>
<span class="p-navgroup-linkText">Search</span>
</a>
<div class="menu menu--structural menu--wide" data-menu="menu" aria-hidden="true">
<form action="/board/search/search" method="post" class="menu-content" data-xf-init="quick-search">
<h3 class="menu-header">Search</h3>
<div class="menu-row">
<input type="text" class="input" name="keywords" data-acurl="/board/search/auto-complete" placeholder="Search…" aria-label="Search" data-menu-autofocus="true">
</div>
<div class="menu-row">
<label class="iconic"><input type="checkbox" name="c[title_only]" value="1"><i aria-hidden="true"></i><span class="iconic-label">Search titles only
<span tabindex="0" role="button" data-xf-init="tooltip" data-trigger="hover focus click" data-original-title="Tags will also be searched in content where tags are supported" id="js-XFUniqueId1">
<i class="fa--xf far fa-question-circle u-muted u-smaller"><svg xmlns="http://www.w3.org/2000/svg" role="img"><title>Note</title><use href="/board/data/local/icons/regular.svg?v=1729808417#question-circle"></use></svg></i>
</span></span></label>
</div>
<div class="menu-row">
<div class="inputGroup">
<span class="inputGroup-text" id="ctrl_search_menu_by_member">By:</span>
<input type="text" class="input" name="c[users]" data-xf-init="auto-complete" placeholder="Member" aria-labelledby="ctrl_search_menu_by_member" autocomplete="off">
</div>
</div>
<div class="menu-footer">
<span class="menu-footer-controls">
<button type="submit" class="button button--icon button--icon--search button--primary"><i class="fa--xf far fa-search "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#search"></use></svg></i><span class="button-text">Search</span></button>
<button type="submit" class="button " name="from_search_menu"><span class="button-text">Advanced search…</span></button>
</span>
</div>
<input type="hidden" name="_xfToken" value="1732848729,6a0c8f919ab7cfefad6e8666243254f2">
</form>
</div>
</div>
</div>
</div>
</nav>
</div>
<div class="p-sectionLinks">
<div class="p-sectionLinks-inner hScroller" data-xf-init="h-scroller">
<div class="hScroller-scroll is-calculated" style="margin-bottom: -40px;">
<ul class="p-sectionLinks-list">
<li>
<div class="p-navEl ">
<a href="/board/whats-new/posts/" class="p-navEl-link " data-xf-key="alt+1" data-nav-id="newPosts">New posts</a>
</div>
</li>
<li>
<div class="p-navEl ">
<a href="/board/search/?type=post" class="p-navEl-link " data-xf-key="alt+2" data-nav-id="searchForums">Search forums</a>
</div>
</li>
<li>
<div class="p-navEl ">
<a href="/board/help/message-board-rules/" class="p-navEl-link " data-xf-key="alt+3" data-nav-id="helpRules">Board Rules</a>
</div>
</li>
</ul>
</div><i class="hScroller-action hScroller-action--end" aria-hidden="true"></i><i class="hScroller-action hScroller-action--start" aria-hidden="true"></i>
</div>
</div>
<div class="offCanvasMenu offCanvasMenu--nav js-headerOffCanvasMenu" data-menu="menu" aria-hidden="true" data-ocm-builder="navigation">
<div class="offCanvasMenu-backdrop" data-menu-close="true"></div>
<div class="offCanvasMenu-content">
<div class="offCanvasMenu-header">
Menu
<a class="offCanvasMenu-closer" data-menu-close="true" role="button" tabindex="0" aria-label="Close"></a>
</div>
<div class="p-offCanvasRegisterLink">
<div class="offCanvasMenu-linkHolder">
<a href="/board/login/" class="offCanvasMenu-link" data-xf-click="overlay" data-menu-close="true">
Log in
</a>
</div>
<hr class="offCanvasMenu-separator">
<div class="offCanvasMenu-linkHolder">
<a href="/board/register/" class="offCanvasMenu-link" data-xf-click="overlay" data-menu-close="true">
Register
</a>
</div>
<hr class="offCanvasMenu-separator">
</div>
<div class="js-offCanvasNavTarget"></div>
<div class="offCanvasMenu-installBanner js-installPromptContainer" style="display: none;" data-xf-init="install-prompt">
<div class="offCanvasMenu-installBanner-header">Install the app</div>
<button type="button" class="button js-installPromptButton"><span class="button-text">Install</span></button>
<template class="js-installTemplateIOS">
<div class="js-installTemplateContent">
<div class="overlay-title">How to install the app on iOS</div>
<div class="block-body">
<div class="block-row">
<p>
Follow along with the video below to see how to install our site as a web app on your home screen.
</p>
<p style="text-align: center">
<video src="/board/styles/default/xenforo/add_to_home.mp4" width="280" height="480" autoplay="" loop="" muted="" playsinline=""></video>
</p>
<p>
<small><strong>Note:</strong> This feature may not be available in some browsers.</small>
</p>
</div>
</div>
</div>
</template>
</div>
</div>
</div>
<div class="p-body">
<div class="p-body-inner">
<!--XF:EXTRA_OUTPUT-->
<ul class="notices notices--block js-notices" data-xf-init="notices" data-type="block" data-scroll-interval="6">
<li class="notice js-notice notice--accent notice--hidenarrow is-vis-processed" data-notice-id="23" data-delay-duration="0" data-display-duration="0" data-auto-dismiss="" data-visibility="narrow">
<div class="notice-content">
<a href="/board/account/dismiss-notice?notice_id=23" class="notice-dismiss js-noticeDismiss" data-xf-init="tooltip" data-original-title="Dismiss notice" aria-label="Dismiss notice" id="js-XFUniqueId2"></a>
If you would like to post, please check out the <strong><a href="/board/help/mrexcel-message-board-faq/">MrExcel Message Board FAQ</a></strong> and <strong><a href="/board/register/" data-xf-click="overlay">register here</a></strong>. If you forgot your password, you can <strong><a href="/board/lost-password/">reset your password</a></strong>.
</div>
</li>
</ul>
<div id="bc-adngin-top-wrapper">
<div id="adngin-top_LB_HB-0"></div>
</div>
<div class="p-body-header">
<div class="p-title ">
<h1 class="p-title-value">MrExcel Message Board</h1>
<div class="p-title-pageAction">
<a href="/board/whats-new/posts/" class="button button--icon button--icon--bolt "><i class="fa--xf far fa-bolt "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#bolt"></use></svg></i><span class="button-text">
New posts
</span></a>
</div>
</div>
</div>
<div class="p-body-main p-body-main--withSidebar ">
<div class="p-body-contentCol"></div>
<div class="p-body-sidebarCol"></div>
<div class="p-body-content">
<div class="p-body-pageContent">
<div class="block block--category block--category8">
<span class="u-anchorTarget" id="announcements.8"></span>
<div class="block-container">
<h2 class="block-header">
<a href="/board/categories/announcements.8/">Announcements</a>
</h2>
<div class="block-body">
<div class="node node--id20 node--depth2 node--forum node--read">
<div class="node-body">
<span class="node-icon" aria-hidden="true">
<i class="fa--xf far fa-comments "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#comments"></use></svg></i>
</span>
<div class="node-main js-nodeMain">
<h3 class="node-title">
<a href="/board/forums/board-announcements.20/" data-xf-init="" data-shortcut="node-description">Board Announcements</a>
</h3>
<div class="node-description "><strong>Please read before posting</strong></div>
<div class="node-meta">
<div class="node-statsMeta">
<dl class="pairs pairs--inline">
<dt>Threads</dt>
<dd>8</dd>
</dl>
<dl class="pairs pairs--inline">
<dt>Messages</dt>
<dd>9</dd>
</dl>
</div>
</div>
</div>
<div class="node-stats">
<dl class="pairs pairs--rows">
<dt>Threads</dt>
<dd>8</dd>
</dl>
<dl class="pairs pairs--rows">
<dt>Messages</dt>
<dd>9</dd>
</dl>
</div>
<div class="node-extra">
<div class="node-extra-icon">
<a href="/board/members/mrexcel.2/" class="avatar avatar--xs" data-user-id="2" data-xf-init="member-tooltip" id="js-XFUniqueId3">
<img src="/board/data/avatars/s/0/2.jpg?1573883169" alt="MrExcel" class="avatar-u2-s" width="48" height="48" loading="lazy">
</a>
</div>
<div class="node-extra-row">
<a href="/board/threads/thanks-to-everyone-for-25-years.1249115/post-6128166" class="node-extra-title" title="Thanks to Everyone for 25 Years!">Thanks to Everyone for 25 Years!</a>
</div>
<div class="node-extra-row">
<ul class="listInline listInline--bullet">
<li><time class="node-extra-date u-dt" dir="auto" datetime="2023-11-21T18:00:23-0500" data-timestamp="1700607623" data-date="Nov 21, 2023" data-time="6:00 PM" data-short="Nov '23" title="Nov 21, 2023 at 6:00 PM">Nov 21, 2023</time></li>
<li class="node-extra-user"><a href="/board/members/mrexcel.2/" class="username " dir="auto" data-user-id="2" data-xf-init="member-tooltip" id="js-XFUniqueId4"><span class="username--moderator username--admin">MrExcel</span></a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="node node--id35 node--depth2 node--link">
<div class="node-body">
<span class="node-icon" aria-hidden="true">
<i class="fa--xf far fa-link "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#link"></use></svg></i>
</span>
<div class="node-main js-nodeMain">
<h3 class="node-title">
<a href="/board/link-forums/mrexcel-message-board-faq-help.35/" data-xf-init="" data-shortcut="node-description">MrExcel Message Board FAQ & Help</a>
</h3>
<div class="node-description ">FAQ, Rules & Guidelines, General Board Help</div>
<div class="node-meta">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="block block--category block--category3">
<span class="u-anchorTarget" id="question-forums.3"></span>
<div class="block-container">
<h2 class="block-header">
<a href="/board/categories/question-forums.3/">Question Forums</a>
</h2>
<div class="block-body">
<div class="node node--id10 node--depth2 node--forum node--unread">
<div class="node-body">
<span class="node-icon" aria-hidden="true">
<i class="fa--xf far fa-question-circle "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#question-circle"></use></svg></i>
</span>
<div class="node-main js-nodeMain">
<h3 class="node-title">
<a href="/board/forums/excel-questions.10/" data-xf-init="" data-shortcut="node-description">Excel Questions</a>
</h3>
<div class="node-description "><strong>All Excel/VBA questions</strong> - formulas, macros, pivot tables, general help, etc.
Please post to this forum in English only.
<br>
<strong>Do not post questions about other spreadsheet programs (e.g. Google Sheets) in this forum.</strong></div>
<div class="node-meta">
<div class="node-statsMeta">
<dl class="pairs pairs--inline">
<dt>Threads</dt>
<dd>1.1M</dd>
</dl>
<dl class="pairs pairs--inline">
<dt>Messages</dt>
<dd>5.8M</dd>
</dl>
</div>
</div>
</div>
<div class="node-stats">
<dl class="pairs pairs--rows">
<dt>Threads</dt>
<dd>1131022</dd>
</dl>
<dl class="pairs pairs--rows">
<dt>Messages</dt>
<dd>5.8M</dd>
</dl>
</div>
<div class="node-extra">
<div class="node-extra-icon">
<a href="/board/members/skyybot.503464/" class="avatar avatar--xs" data-user-id="503464" data-xf-init="member-tooltip" id="js-XFUniqueId5">
<img src="/board/data/avatars/s/503/503464.jpg?1679233781" srcset="/board/data/avatars/m/503/503464.jpg?1679233781 2x" alt="Skyybot" class="avatar-u503464-s" width="48" height="48" loading="lazy">
</a>
</div>
<div class="node-extra-row">
<a href="/board/threads/helper-column-for-percentage-and-numbers.1267290/post-6233048" class="node-extra-title" title="Helper column for percentage and numbers">Helper column for percentage and numbers</a>
</div>
<div class="node-extra-row">
<ul class="listInline listInline--bullet">
<li><time class="node-extra-date u-dt" dir="auto" datetime="2024-11-28T21:31:34-0500" data-timestamp="1732847494" data-date="Nov 28, 2024" data-time="9:31 PM" data-short="20m" title="Nov 28, 2024 at 9:31 PM">20 minutes ago</time></li>
<li class="node-extra-user"><a href="/board/members/skyybot.503464/" class="username " dir="auto" data-user-id="503464" data-xf-init="member-tooltip" id="js-XFUniqueId6">Skyybot</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="node node--id12 node--depth2 node--forum node--unread">
<div class="node-body">
<span class="node-icon" aria-hidden="true">
<i class="fa--xf far fa-question-circle "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#question-circle"></use></svg></i>
</span>
<div class="node-main js-nodeMain">
<h3 class="node-title">
<a href="/board/forums/questions-in-other-languages.12/" data-xf-init="" data-shortcut="node-description">Questions in Other Languages</a>
</h3>
<div class="node-description ">Ask any Excel questions in your native language (questions in languages <strong>other</strong> than English only, please).</div>
<div class="node-meta">
<div class="node-statsMeta">
<dl class="pairs pairs--inline">
<dt>Threads</dt>
<dd>1.9K</dd>
</dl>
<dl class="pairs pairs--inline">
<dt>Messages</dt>
<dd>8K</dd>
</dl>
</div>
</div>
</div>
<div class="node-stats">
<dl class="pairs pairs--rows">
<dt>Threads</dt>
<dd>1916</dd>
</dl>
<dl class="pairs pairs--rows">
<dt>Messages</dt>
<dd>8K</dd>
</dl>
</div>
<div class="node-extra">
<div class="node-extra-icon">
<a href="/board/members/quazlat.520458/" class="avatar avatar--xs avatar--default avatar--default--dynamic" data-user-id="520458" data-xf-init="member-tooltip" style="background-color: #33cc33; color: #0f3d0f" id="js-XFUniqueId7">
<span class="avatar-u520458-s" role="img" aria-label="Quazlat">Q</span>
</a>
</div>
<div class="node-extra-row">
<a href="/board/threads/get-data-from-web-page.1267295/post-6232868" class="node-extra-title" title="get data from web page">get data from web page</a>
</div>
<div class="node-extra-row">
<ul class="listInline listInline--bullet">
<li><time class="node-extra-date u-dt" dir="auto" datetime="2024-11-28T05:20:13-0500" data-timestamp="1732789213" data-date="Nov 28, 2024" data-time="5:20 AM" data-short="16h" title="Nov 28, 2024 at 5:20 AM">Today at 5:20 AM</time></li>
<li class="node-extra-user"><a href="/board/members/quazlat.520458/" class="username " dir="auto" data-user-id="520458" data-xf-init="member-tooltip" id="js-XFUniqueId8">Quazlat</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="node node--id29 node--depth2 node--forum node--unread">
<div class="node-body">
<span class="node-icon" aria-hidden="true">
<i class="fa--xf far fa-question-circle "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#question-circle"></use></svg></i>
</span>
<div class="node-main js-nodeMain">
<h3 class="node-title">
<a href="/board/forums/power-tools.29/" data-xf-init="" data-shortcut="node-description">Power Tools</a>
</h3>
<div class="node-description ">Power BI, Power Pivot, Power Query (Get and Transform), Power View, and Power Map</div>
<div class="node-meta">
<div class="node-statsMeta">
<dl class="pairs pairs--inline">
<dt>Threads</dt>
<dd>10K</dd>
</dl>
<dl class="pairs pairs--inline">
<dt>Messages</dt>
<dd>40K</dd>
</dl>
</div>
</div>
</div>
<div class="node-stats">
<dl class="pairs pairs--rows">
<dt>Threads</dt>
<dd>10044</dd>
</dl>
<dl class="pairs pairs--rows">
<dt>Messages</dt>
<dd>40K</dd>
</dl>
</div>
<div class="node-extra">
<div class="node-extra-icon">
<a href="/board/members/how_do_i.130284/" class="avatar avatar--xs" data-user-id="130284" data-xf-init="member-tooltip" id="js-XFUniqueId9">
<img src="/board/data/avatars/s/130/130284.jpg?1573883203" alt="How_Do_I" class="avatar-u130284-s" width="48" height="48" loading="lazy">
</a>
</div>
<div class="node-extra-row">
<a href="/board/threads/get-data-page-formatting.1267253/post-6233038" class="node-extra-title" title="Get Data - Page Formatting">Get Data - Page Formatting</a>
</div>
<div class="node-extra-row">
<ul class="listInline listInline--bullet">
<li><time class="node-extra-date u-dt" dir="auto" datetime="2024-11-28T18:25:24-0500" data-timestamp="1732836324" data-date="Nov 28, 2024" data-time="6:25 PM" data-short="3h" title="Nov 28, 2024 at 6:25 PM">Today at 6:25 PM</time></li>
<li class="node-extra-user"><a href="/board/members/how_do_i.130284/" class="username " dir="auto" data-user-id="130284" data-xf-init="member-tooltip" id="js-XFUniqueId10">How_Do_I</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="node node--id18 node--depth2 node--forum node--unread">
<div class="node-body">
<span class="node-icon" aria-hidden="true">
<i class="fa--xf far fa-question-circle "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#question-circle"></use></svg></i>
</span>
<div class="node-main js-nodeMain">
<h3 class="node-title">
<a href="/board/forums/microsoft-access.18/" data-xf-init="" data-shortcut="node-description">Microsoft Access</a>
</h3>
<div class="node-description ">Questions about Access.</div>
<div class="node-meta">
<div class="node-statsMeta">
<dl class="pairs pairs--inline">
<dt>Threads</dt>
<dd>33.4K</dd>
</dl>
<dl class="pairs pairs--inline">
<dt>Messages</dt>
<dd>153K</dd>
</dl>
</div>
</div>
</div>
<div class="node-stats">
<dl class="pairs pairs--rows">
<dt>Threads</dt>
<dd>33432</dd>
</dl>
<dl class="pairs pairs--rows">
<dt>Messages</dt>
<dd>153K</dd>
</dl>
</div>
<div class="node-extra">
<div class="node-extra-icon">
<a href="/board/members/cpgdeveloper.103863/" class="avatar avatar--xs" data-user-id="103863" data-xf-init="member-tooltip" id="js-XFUniqueId11">
<img src="/board/data/avatars/s/103/103863.jpg?1614789710" srcset="/board/data/avatars/m/103/103863.jpg?1614789710 2x" alt="CPGDeveloper" class="avatar-u103863-s" width="48" height="48" loading="lazy">
</a>
</div>
<div class="node-extra-row">
<a href="/board/threads/microsoft-outage-affecting-ms-access.1267230/post-6232552" class="node-extra-title" title="Microsoft Outage affecting MS Access?">Microsoft Outage affecting MS Access?</a>
</div>
<div class="node-extra-row">
<ul class="listInline listInline--bullet">
<li><time class="node-extra-date u-dt" dir="auto" datetime="2024-11-26T15:50:27-0500" data-timestamp="1732654227" data-date="Nov 26, 2024" data-time="3:50 PM" data-short="2d" title="Nov 26, 2024 at 3:50 PM">Tuesday at 3:50 PM</time></li>
<li class="node-extra-user"><a href="/board/members/cpgdeveloper.103863/" class="username " dir="auto" data-user-id="103863" data-xf-init="member-tooltip" id="js-XFUniqueId12">CPGDeveloper</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="node node--id22 node--depth2 node--forum node--unread">
<div class="node-body">
<span class="node-icon" aria-hidden="true">
<i class="fa--xf far fa-question-circle "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#question-circle"></use></svg></i>
</span>
<div class="node-main js-nodeMain">
<h3 class="node-title">
<a href="/board/forums/general-discussion-other-applications.22/" data-xf-init="" data-shortcut="node-description">General Discussion & Other Applications</a>
</h3>
<div class="node-description ">This forum is for <strong>discussion</strong> about any application & for <strong>questions</strong> about applications other than Excel or Access.
<br>
This is also the place to ask about <strong>other spreadsheet programs (e.g. <span style="color:#f2930d">Google Sheets</span>), book suggestions, or other websites.</strong></div>
<div class="node-meta">
<div class="node-statsMeta">
<dl class="pairs pairs--inline">
<dt>Threads</dt>
<dd>8.9K</dd>
</dl>
<dl class="pairs pairs--inline">
<dt>Messages</dt>
<dd>35.8K</dd>
</dl>
</div>
</div>
</div>
<div class="node-stats">
<dl class="pairs pairs--rows">
<dt>Threads</dt>
<dd>8870</dd>
</dl>
<dl class="pairs pairs--rows">
<dt>Messages</dt>
<dd>35.8K</dd>
</dl>
</div>
<div class="node-extra">
<div class="node-extra-icon">
<a href="/board/members/nyxs_inquisitor.520456/" class="avatar avatar--xs avatar--default avatar--default--dynamic" data-user-id="520456" data-xf-init="member-tooltip" style="background-color: #70cc33; color: #223d0f" id="js-XFUniqueId13">
<span class="avatar-u520456-s" role="img" aria-label="Nyxs_Inquisitor">N</span>
</a>
</div>
<div class="node-extra-row">
<a href="/board/threads/use-sql-to-data-map-in-oracle-arcs-for-new-account-with-different-amount-source.1267285/post-6232819" class="node-extra-title" title="Use SQL to Data Map in Oracle ARCS for New Account with Different Amount source">Use SQL to Data Map in Oracle ARCS for New Account with Different Amount source</a>
</div>
<div class="node-extra-row">
<ul class="listInline listInline--bullet">
<li><time class="node-extra-date u-dt" dir="auto" datetime="2024-11-27T21:01:25-0500" data-timestamp="1732759285" data-date="Nov 27, 2024" data-time="9:01 PM" data-short="1d" title="Nov 27, 2024 at 9:01 PM">Yesterday at 9:01 PM</time></li>
<li class="node-extra-user"><a href="/board/members/nyxs_inquisitor.520456/" class="username " dir="auto" data-user-id="520456" data-xf-init="member-tooltip" id="js-XFUniqueId14">Nyxs_Inquisitor</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="block block--category block--category4">
<span class="u-anchorTarget" id="mrexcel-products.4"></span>
<div class="block-container">
<h2 class="block-header">
<a href="/board/categories/mrexcel-products.4/">MrExcel Products</a>
</h2>
<div class="block-body">
<div class="node node--id19 node--depth2 node--forum node--unread">
<div class="node-body">
<span class="node-icon" aria-hidden="true">
<i class="fa--xf far fa-comments "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#comments"></use></svg></i>
</span>
<div class="node-main js-nodeMain">
<h3 class="node-title">
<a href="/board/forums/mrexcels-products-books-cds-podcasts.19/" data-xf-init="" data-shortcut="node-description">MrExcel's Products: Books, CDs, Podcasts</a>
</h3>
<div class="node-description ">Discuss topics related to Holy Macro! Products: <em><strong>Learn Excel from MrExcel</strong></em>, <em><strong>VBA and Macros for Microsoft Excel</strong></em>,<em><strong>Holy Macro! It's 2500 VBA Examples</strong></em> CD, <em><strong>Guerilla Data Analysis Using Microsoft Excel</strong></em> and <em><strong>Excel Knowledge Base CD</strong></em> and the <strong>MrExcel Podcasts</strong>.</div>
<div class="node-meta">
<div class="node-statsMeta">
<dl class="pairs pairs--inline">
<dt>Threads</dt>
<dd>608</dd>
</dl>
<dl class="pairs pairs--inline">
<dt>Messages</dt>
<dd>2.1K</dd>
</dl>
</div>
</div>
</div>
<div class="node-stats">
<dl class="pairs pairs--rows">
<dt>Threads</dt>
<dd>608</dd>
</dl>
<dl class="pairs pairs--rows">
<dt>Messages</dt>
<dd>2.1K</dd>
</dl>
</div>
<div class="node-extra">
<div class="node-extra-icon">
<a href="/board/members/smozgur.613/" class="avatar avatar--xs" data-user-id="613" data-xf-init="member-tooltip" id="js-XFUniqueId15">
<img src="/board/data/avatars/s/0/613.jpg?1710422615" srcset="/board/data/avatars/m/0/613.jpg?1710422615 2x" alt="smozgur" class="avatar-u613-s" width="48" height="48" loading="lazy">
</a>
</div>
<div class="node-extra-row">
<a href="/board/threads/need-to-download-files-from-one-of-your-books.1267268/post-6232968" class="node-extra-title" title="Need to download files from one of your books.">Need to download files from one of your books.</a>
</div>
<div class="node-extra-row">
<ul class="listInline listInline--bullet">
<li><time class="node-extra-date u-dt" dir="auto" datetime="2024-11-28T10:28:06-0500" data-timestamp="1732807686" data-date="Nov 28, 2024" data-time="10:28 AM" data-short="11h" title="Nov 28, 2024 at 10:28 AM">Today at 10:28 AM</time></li>
<li class="node-extra-user"><a href="/board/members/smozgur.613/" class="username " dir="auto" data-user-id="613" data-xf-init="member-tooltip" id="js-XFUniqueId16"><span class="username--moderator username--admin">smozgur</span></a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="block block--category block--category7">
<span class="u-anchorTarget" id="the-lounge.7"></span>
<div class="block-container">
<h2 class="block-header">
<a href="/board/categories/the-lounge.7/">The Lounge</a>
</h2>
<div class="block-body">
<div class="node node--id23 node--depth2 node--forum node--unread">
<div class="node-body">
<span class="node-icon" aria-hidden="true">
<i class="fa--xf far fa-comments "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#comments"></use></svg></i>
</span>
<div class="node-main js-nodeMain">
<h3 class="node-title">
<a href="/board/forums/lounge-v-2-0.23/" data-xf-init="" data-shortcut="node-description">Lounge v.2.0</a>
</h3>
<div class="node-description ">A place to chat.</div>
<div class="node-meta">
<div class="node-statsMeta">
<dl class="pairs pairs--inline">
<dt>Threads</dt>
<dd>2.1K</dd>
</dl>
<dl class="pairs pairs--inline">
<dt>Messages</dt>
<dd>27.1K</dd>
</dl>
</div>
</div>
</div>
<div class="node-stats">
<dl class="pairs pairs--rows">
<dt>Threads</dt>
<dd>2093</dd>
</dl>
<dl class="pairs pairs--rows">
<dt>Messages</dt>
<dd>27.1K</dd>
</dl>
</div>
<div class="node-extra">
<div class="node-extra-icon">
<a href="/board/members/footoo.384523/" class="avatar avatar--xs avatar--default avatar--default--dynamic" data-user-id="384523" data-xf-init="member-tooltip" style="background-color: #33cc99; color: #0f3d2e" id="js-XFUniqueId17">
<span class="avatar-u384523-s" role="img" aria-label="footoo">F</span>
</a>
</div>
<div class="node-extra-row">
<a href="/board/threads/how-useful-is-ai-for-excel.1267150/post-6232142" class="node-extra-title" title="How useful is AI for Excel?">How useful is AI for Excel?</a>
</div>
<div class="node-extra-row">
<ul class="listInline listInline--bullet">
<li><time class="node-extra-date u-dt" dir="auto" datetime="2024-11-24T20:39:23-0500" data-timestamp="1732498763" data-date="Nov 24, 2024" data-time="8:39 PM" data-short="4d" title="Nov 24, 2024 at 8:39 PM">Monday at 8:39 PM</time></li>
<li class="node-extra-user"><a href="/board/members/footoo.384523/" class="username " dir="auto" data-user-id="384523" data-xf-init="member-tooltip" id="js-XFUniqueId18">footoo</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="block block--category block--category6">
<span class="u-anchorTarget" id="other-forums.6"></span>
<div class="block-container">
<h2 class="block-header">
<a href="/board/categories/other-forums.6/">Other Forums</a>
</h2>
<div class="block-body">
<div class="node node--id13 node--depth2 node--forum node--unread">
<div class="node-body">
<span class="node-icon" aria-hidden="true">
<i class="fa--xf far fa-comments "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#comments"></use></svg></i>
</span>
<div class="node-main js-nodeMain">
<h3 class="node-title">
<a href="/board/forums/about-this-board.13/" data-xf-init="" data-shortcut="node-description">About This Board</a>
</h3>
<div class="node-description ">Discussion of policies, bug reports, how to use it, XL2BB questions, etc.</div>
<div class="node-meta">
<div class="node-statsMeta">
<dl class="pairs pairs--inline">
<dt>Threads</dt>
<dd>2.7K</dd>
</dl>
<dl class="pairs pairs--inline">
<dt>Messages</dt>
<dd>15.2K</dd>
</dl>
</div>
</div>
</div>
<div class="node-stats">
<dl class="pairs pairs--rows">
<dt>Threads</dt>
<dd>2723</dd>
</dl>
<dl class="pairs pairs--rows">
<dt>Messages</dt>
<dd>15.2K</dd>
</dl>
</div>
<div class="node-extra">
<div class="node-extra-icon">
<a href="/board/members/mark858.164399/" class="avatar avatar--xs" data-user-id="164399" data-xf-init="member-tooltip" id="js-XFUniqueId19">
<img src="/board/data/avatars/s/164/164399.jpg?1574043659" srcset="/board/data/avatars/m/164/164399.jpg?1574043659 2x" alt="MARK858" class="avatar-u164399-s" width="48" height="48" loading="lazy">
</a>
</div>
<div class="node-extra-row">
<a href="/board/threads/xl2bb-xlam.1267225/post-6232546" class="node-extra-title" title="XL2BB.xlam">XL2BB.xlam</a>
</div>
<div class="node-extra-row">
<ul class="listInline listInline--bullet">
<li><time class="node-extra-date u-dt" dir="auto" datetime="2024-11-26T14:56:05-0500" data-timestamp="1732650965" data-date="Nov 26, 2024" data-time="2:56 PM" data-short="2d" title="Nov 26, 2024 at 2:56 PM">Tuesday at 2:56 PM</time></li>
<li class="node-extra-user"><a href="/board/members/mark858.164399/" class="username " dir="auto" data-user-id="164399" data-xf-init="member-tooltip" id="js-XFUniqueId20">MARK858</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="node node--id37 node--depth2 node--forum node--unread">
<div class="node-body">
<span class="node-icon" aria-hidden="true">
<i class="fa--xf far fa-comments "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#comments"></use></svg></i>
</span>
<div class="node-main js-nodeMain">
<h3 class="node-title">
<a href="/board/forums/excel-articles.37/" data-xf-init="" data-shortcut="node-description">Excel Articles</a>
</h3>
<div class="node-description ">Discussions about existing Excel Articles published in the forum. You can not start a new thread here. To contribute an article, click <strong>Excel Articles</strong> in the Top Nav Bar and then use the orange button on the right: <strong>Add Excel Article...</strong>.</div>
<div class="node-meta">
<div class="node-statsMeta">
<dl class="pairs pairs--inline">
<dt>Threads</dt>
<dd>72</dd>
</dl>
<dl class="pairs pairs--inline">
<dt>Messages</dt>
<dd>560</dd>
</dl>
</div>
</div>
</div>
<div class="node-stats">
<dl class="pairs pairs--rows">
<dt>Threads</dt>
<dd>72</dd>
</dl>
<dl class="pairs pairs--rows">
<dt>Messages</dt>
<dd>560</dd>
</dl>
</div>
<div class="node-extra">
<div class="node-extra-icon">
<a href="/board/members/akuini.359705/" class="avatar avatar--xs" data-user-id="359705" data-xf-init="member-tooltip" id="js-XFUniqueId21">
<img src="/board/data/avatars/s/359/359705.jpg?1575082204" srcset="/board/data/avatars/m/359/359705.jpg?1575082204 2x" alt="Akuini" class="avatar-u359705-s" width="48" height="48" loading="lazy">
</a>
</div>
<div class="node-extra-row">
<a href="/board/threads/excel-vba-easy-way-to-paste-to-visible-cells.1239792/post-6233034" class="node-extra-title" title="Excel VBA: easy way to paste to visible cells">Excel VBA: easy way to paste to visible cells</a>
</div>
<div class="node-extra-row">
<ul class="listInline listInline--bullet">
<li><time class="node-extra-date u-dt" dir="auto" datetime="2024-11-28T17:22:32-0500" data-timestamp="1732832552" data-date="Nov 28, 2024" data-time="5:22 PM" data-short="4h" title="Nov 28, 2024 at 5:22 PM">Today at 5:22 PM</time></li>
<li class="node-extra-user"><a href="/board/members/akuini.359705/" class="username " dir="auto" data-user-id="359705" data-xf-init="member-tooltip" id="js-XFUniqueId22">Akuini</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="node node--id40 node--depth2 node--forum node--unread">
<div class="node-body">
<span class="node-icon" aria-hidden="true">
<i class="fa--xf far fa-lightbulb-on "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#lightbulb-on"></use></svg></i>
</span>
<div class="node-main js-nodeMain">
<h3 class="node-title">
<a href="/board/forums/excel-lambda-functions.40/" data-xf-init="" data-shortcut="node-description">Excel LAMBDA Functions</a>
</h3>
<div class="node-description ">Have you written a useful LAMBDA function that might be useful to others? Post it in the forum. The community can vote for their favorites and we'll suggest to the Excel developers ideas that could be added to the core Excel functions.<br>
* Required to be an active member who has more than 50 posts to submit functions.</div>
<div class="node-meta">
<div class="node-statsMeta">
<dl class="pairs pairs--inline">
<dt>Threads</dt>
<dd>252</dd>
</dl>
<dl class="pairs pairs--inline">
<dt>Messages</dt>
<dd>1.5K</dd>
</dl>
</div>
</div>
</div>
<div class="node-stats">
<dl class="pairs pairs--rows">
<dt>Threads</dt>
<dd>252</dd>
</dl>
<dl class="pairs pairs--rows">
<dt>Messages</dt>
<dd>1.5K</dd>
</dl>
</div>
<div class="node-extra">
<div class="node-extra-icon">
<a href="/board/members/xlambda.474954/" class="avatar avatar--xs" data-user-id="474954" data-xf-init="member-tooltip" id="js-XFUniqueId23">
<img src="/board/data/avatars/s/474/474954.jpg?1646053730" srcset="/board/data/avatars/m/474/474954.jpg?1646053730 2x" alt="Xlambda" class="avatar-u474954-s" width="48" height="48" loading="lazy">
</a>
</div>
<div class="node-extra-row">
<a href="/board/threads/apivot.1167774/post-6226290" class="node-extra-title" title="APIVOT">APIVOT</a>
</div>
<div class="node-extra-row">
<ul class="listInline listInline--bullet">
<li><time class="node-extra-date u-dt" dir="auto" datetime="2024-10-30T17:35:10-0400" data-timestamp="1730324110" data-date="Oct 30, 2024" data-time="5:35 PM" data-short="29d" title="Oct 30, 2024 at 5:35 PM">Oct 30, 2024</time></li>
<li class="node-extra-user"><a href="/board/members/xlambda.474954/" class="username " dir="auto" data-user-id="474954" data-xf-init="member-tooltip" id="js-XFUniqueId24">Xlambda</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="node node--id39 node--depth2 node--forum node--unread">
<div class="node-body">
<span class="node-icon" aria-hidden="true">
<i class="fa--xf far fa-file-alt "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#file-alt"></use></svg></i>
</span>
<div class="node-main js-nodeMain">
<h3 class="node-title">
<a href="/board/forums/mrexcel-excel-videos.39/" data-xf-init="" data-shortcut="node-description">MrExcel Excel Videos</a>
</h3>
<div class="node-description "><strong>Learn Excel from MrExcel</strong> - Excel tips and tricks from Bill Jelen.</div>
<div class="node-meta">
<div class="node-statsMeta">
<dl class="pairs pairs--inline">
<dt>Threads</dt>
<dd>2.5K</dd>
</dl>
<dl class="pairs pairs--inline">
<dt>Messages</dt>
<dd>2.6K</dd>
</dl>
</div>
</div>
</div>
<div class="node-stats">
<dl class="pairs pairs--rows">
<dt>Threads</dt>
<dd>2465</dd>
</dl>
<dl class="pairs pairs--rows">
<dt>Messages</dt>
<dd>2.6K</dd>
</dl>
</div>
<div class="node-extra">
<div class="node-extra-icon">
<a href="/board/members/mrexcel.2/" class="avatar avatar--xs" data-user-id="2" data-xf-init="member-tooltip" id="js-XFUniqueId25">
<img src="/board/data/avatars/s/0/2.jpg?1573883169" alt="MrExcel" class="avatar-u2-s" width="48" height="48" loading="lazy">
</a>
</div>
<div class="node-extra-row">
<a href="/board/threads/excel-assign-thanksgiving-dinner-sides-using-excel-episode-2662.1267212/post-6232494" class="node-extra-title" title="Excel Assign Thanksgiving Dinner Sides Using Excel - Episode 2662">Excel Assign Thanksgiving Dinner Sides Using Excel - Episode 2662</a>
</div>
<div class="node-extra-row">
<ul class="listInline listInline--bullet">
<li><time class="node-extra-date u-dt" dir="auto" datetime="2024-11-26T08:33:33-0500" data-timestamp="1732628013" data-date="Nov 26, 2024" data-time="8:33 AM" data-short="2d" title="Nov 26, 2024 at 8:33 AM">Tuesday at 8:33 AM</time></li>
<li class="node-extra-user"><a href="/board/members/mrexcel.2/" class="username " dir="auto" data-user-id="2" data-xf-init="member-tooltip" id="js-XFUniqueId26"><span class="username--moderator username--admin">MrExcel</span></a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="node node--id17 node--depth2 node--forum node--read">
<div class="node-body">
<span class="node-icon" aria-hidden="true">
<i class="fa--xf far fa-comments "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#comments"></use></svg></i>
</span>
<div class="node-main js-nodeMain">
<h3 class="node-title">
<a href="/board/forums/hall-of-fame-winners.17/" data-xf-init="" data-shortcut="node-description">Hall of Fame Winners</a>
</h3>
<div class="node-description ">An announce-only forum to spotlight classic message board solutions.</div>
<div class="node-meta">
<div class="node-statsMeta">
<dl class="pairs pairs--inline">
<dt>Threads</dt>
<dd>14</dd>
</dl>
<dl class="pairs pairs--inline">
<dt>Messages</dt>
<dd>17</dd>
</dl>
</div>
</div>
</div>
<div class="node-stats">
<dl class="pairs pairs--rows">
<dt>Threads</dt>
<dd>14</dd>
</dl>
<dl class="pairs pairs--rows">
<dt>Messages</dt>
<dd>17</dd>
</dl>
</div>
<div class="node-extra">
<div class="node-extra-icon">
<a href="/board/members/joe4.6721/" class="avatar avatar--xs" data-user-id="6721" data-xf-init="member-tooltip" id="js-XFUniqueId27">
<img src="/board/data/avatars/s/6/6721.jpg?1574703013" srcset="/board/data/avatars/m/6/6721.jpg?1574703013 2x" alt="Joe4" class="avatar-u6721-s" width="48" height="48" loading="lazy">
</a>
</div>
<div class="node-extra-row">
<a href="/board/threads/chip-pearsons-numerous-contributions-to-excel.1056517/post-5073100" class="node-extra-title" title="Chip Pearson's Numerous Contributions to Excel">Chip Pearson's Numerous Contributions to Excel</a>
</div>
<div class="node-extra-row">
<ul class="listInline listInline--bullet">
<li><time class="node-extra-date u-dt" dir="auto" datetime="2018-05-22T07:41:13-0400" data-timestamp="1526989273" data-date="May 22, 2018" data-time="7:41 AM" data-short="May '18" title="May 22, 2018 at 7:41 AM">May 22, 2018</time></li>
<li class="node-extra-user"><a href="/board/members/joe4.6721/" class="username " dir="auto" data-user-id="6721" data-xf-init="member-tooltip" id="js-XFUniqueId28"><span class="username--moderator username--admin">Joe4</span></a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="node node--id14 node--depth2 node--forum node--read">
<div class="node-body">
<span class="node-icon" aria-hidden="true">
<i class="fa--xf far fa-comments "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#comments"></use></svg></i>
</span>
<div class="node-main js-nodeMain">
<h3 class="node-title">
<a href="/board/forums/test-here.14/" data-xf-init="" data-shortcut="node-description">Test Here</a>
</h3>
<div class="node-description ">Use this forum to test your signature, learn bbcode, smilies, XL2BB, etc.
<br>
Threads in this forum are automatically deleted after no replies for seven (7) days</div>
<div class="node-meta">
<div class="node-statsMeta">
<dl class="pairs pairs--inline">
<dt>Threads</dt>
<dd>0</dd>
</dl>
<dl class="pairs pairs--inline">
<dt>Messages</dt>
<dd>0</dd>
</dl>
</div>
</div>
</div>
<div class="node-stats">
<dl class="pairs pairs--rows">
<dt>Threads</dt>
<dd>0</dd>
</dl>
<dl class="pairs pairs--rows">
<dt>Messages</dt>
<dd>0</dd>
</dl>
</div>
<div class="node-extra">
<span class="node-extra-placeholder">None</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="p-body-sidebar" style="top: -2938px;">
<div class="block" data-widget-id="30" data-widget-key="forum_overview_trending_content" data-widget-definition="trending_content">
<div class="block-container">
<h3 class="block-minorHeader">Trending content</h3>
<ul class="block-body">
<li class="block-row">
<div class="contentRow">
<div class="contentRow-figure">
<a href="/board/members/abdo-meghari.481899/" class="avatar avatar--xxs avatar--default avatar--default--dynamic" data-user-id="481899" data-xf-init="member-tooltip" style="background-color: #cc9966; color: #603f20" id="js-XFUniqueId29">
<span class="avatar-u481899-s" role="img" aria-label="abdo meghari">A</span>
</a>
</div>
<div class="contentRow-main contentRow-main--close">
<a href="/board/threads/merge-xlsx-files-for-same-sheet-name-based-on-specific-files-names.1267117/">Thread 'merge XLSX files for same sheet name based on specific files names'</a>
<div class="contentRow-minor contentRow-minor--hideLinks">
<ul class="listInline listInline--bullet">
<li>abdo meghari</li>
<li><time class="u-dt" dir="auto" datetime="2024-11-23T06:00:56-0500" data-timestamp="1732359656" data-date="Nov 23, 2024" data-time="6:00 AM" data-short="5d" title="Nov 23, 2024 at 6:00 AM">Saturday at 6:00 AM</time></li>
</ul>
</div>
<div class="contentRow-minor contentRow-minor--hideLinks">
Replies: 21
</div>
</div>
</div>
</li>
<li class="block-row">
<div class="contentRow">
<div class="contentRow-figure">
<a href="/board/members/zoharb.199573/" class="avatar avatar--xxs" data-user-id="199573" data-xf-init="member-tooltip" id="js-XFUniqueId30">
<img src="/board/data/avatars/s/199/199573.jpg?1692841008" alt="zoharb" class="avatar-u199573-s" width="48" height="48" loading="lazy">
</a>
</div>
<div class="contentRow-main contentRow-main--close">
<a href="/board/threads/have-to-find-all-pending-order-from-9-work-sheets-in-same-workbook.1267309/">Thread 'have to find all PENDING ORDER from 9 work sheets in same workbook'</a>
<div class="contentRow-minor contentRow-minor--hideLinks">
<ul class="listInline listInline--bullet">
<li>zoharb</li>
<li><time class="u-dt" dir="auto" datetime="2024-11-28T08:37:17-0500" data-timestamp="1732801037" data-date="Nov 28, 2024" data-time="8:37 AM" data-short="13h" title="Nov 28, 2024 at 8:37 AM">Today at 8:37 AM</time></li>
</ul>
</div>
<div class="contentRow-minor contentRow-minor--hideLinks">
Replies: 16
</div>
</div>
</div>
</li>
<li class="block-row">
<div class="contentRow">
<div class="contentRow-figure">
<a href="/board/members/johnmense.314780/" class="avatar avatar--xxs avatar--default avatar--default--dynamic" data-user-id="314780" data-xf-init="member-tooltip" style="background-color: #0f3d3d; color: #33cccc" id="js-XFUniqueId31">
<span class="avatar-u314780-s" role="img" aria-label="JohnMense">J</span>
</a>
</div>
<div class="contentRow-main contentRow-main--close">
<a href="/board/threads/index-match-match-help.1267273/">Thread 'INDEX-MATCH-MATCH help!'</a>
<div class="contentRow-minor contentRow-minor--hideLinks">
<ul class="listInline listInline--bullet">
<li>JohnMense</li>
<li><time class="u-dt" dir="auto" datetime="2024-11-27T14:08:24-0500" data-timestamp="1732734504" data-date="Nov 27, 2024" data-time="2:08 PM" data-short="1d" title="Nov 27, 2024 at 2:08 PM">Yesterday at 2:08 PM</time></li>
</ul>
</div>
<div class="contentRow-minor contentRow-minor--hideLinks">
Replies: 15
</div>
</div>
</div>
</li>
<li class="block-row">
<div class="contentRow">
<div class="contentRow-figure">
<a href="/board/members/tkdkidsnake.230244/" class="avatar avatar--xxs avatar--default avatar--default--dynamic" data-user-id="230244" data-xf-init="member-tooltip" style="background-color: #cc3366; color: #f0c2d1" id="js-XFUniqueId32">
<span class="avatar-u230244-s" role="img" aria-label="TkdKidSnake">T</span>
</a>
</div>
<div class="contentRow-main contentRow-main--close">
<a href="/board/threads/exporting-cell-range-as-png-getting-a-white-border-to-the-bottom-right-why.1267166/">Thread 'Exporting Cell Range As PNG - Getting A White Border To The Bottom & Right - Why?'</a>
<div class="contentRow-minor contentRow-minor--hideLinks">
<ul class="listInline listInline--bullet">
<li>TkdKidSnake</li>
<li><time class="u-dt" dir="auto" datetime="2024-11-25T11:38:24-0500" data-timestamp="1732552704" data-date="Nov 25, 2024" data-time="11:38 AM" data-short="3d" title="Nov 25, 2024 at 11:38 AM">Monday at 11:38 AM</time></li>
</ul>
</div>
<div class="contentRow-minor contentRow-minor--hideLinks">
Replies: 16
</div>
</div>
</div>
</li>
<li class="block-row">
<div class="contentRow">
<div class="contentRow-figure">
<a href="/board/members/gc7sdu.515738/" class="avatar avatar--xxs avatar--default avatar--default--dynamic" data-user-id="515738" data-xf-init="member-tooltip" style="background-color: #993399; color: #df9fdf" id="js-XFUniqueId33">
<span class="avatar-u515738-s" role="img" aria-label="gc7sdu">G</span>
</a>
</div>
<div class="contentRow-main contentRow-main--close">
<a href="/board/threads/how-to-set-excel-formula-alert-on-amount-in-minimum-and-maximum.1267187/">Thread 'How to set excel formula alert on amount in minimum and maximum'</a>
<div class="contentRow-minor contentRow-minor--hideLinks">
<ul class="listInline listInline--bullet">
<li>gc7sdu</li>
<li><time class="u-dt" dir="auto" datetime="2024-11-25T22:13:31-0500" data-timestamp="1732590811" data-date="Nov 25, 2024" data-time="10:13 PM" data-short="2d" title="Nov 25, 2024 at 10:13 PM">Tuesday at 10:13 PM</time></li>
</ul>
</div>
<div class="contentRow-minor contentRow-minor--hideLinks">
Replies: 14
</div>
</div>
</div>
</li>
</ul>
</div>
</div>
<div class="block" data-widget-id="9" data-widget-key="forum_overview_forum_statistics" data-widget-definition="forum_statistics">
<div class="block-container">
<h3 class="block-minorHeader">Forum statistics</h3>
<div class="block-body block-row">
<dl class="pairs pairs--justified count--threads">
<dt>Threads</dt>
<dd>1,224,119</dd>
</dl>
<dl class="pairs pairs--justified count--messages">
<dt>Messages</dt>
<dd>6,176,489</dd>
</dl>
<dl class="pairs pairs--justified count--users">
<dt>Members</dt>
<dd>452,730</dd>
</dl>
<dl class="pairs pairs--justified">
<dt>Latest member</dt>
<dd><a href="/board/members/palsmith.520471/" class="username " dir="auto" data-user-id="520471" data-xf-init="member-tooltip" id="js-XFUniqueId34">palsmith</a></dd>
</dl>
</div>
</div>
</div>
<div class="block" data-widget-id="10" data-widget-key="forum_overview_share_page" data-widget-definition="share_page">
<div class="block-container">
<h3 class="block-minorHeader">Share this page</h3>
<div class="block-body block-row">
<div class="shareButtons shareButtons--iconic" data-xf-init="share-buttons" data-page-url="" data-page-title="" data-page-desc="" data-page-image="">
<span class="u-anchorTarget" id="_xfUid-1-1732848603"></span>
<div class="shareButtons-buttons">
<a class="shareButtons-button shareButtons-button--brand shareButtons-button--facebook" href="#_xfUid-1-1732848603" data-href="https://www.facebook.com/sharer.php?u={url}" id="js-XFUniqueId35">
<i class="fa--xf fab fa-facebook-f "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/brands.svg?v=1729808417#facebook-f"></use></svg></i>
<span>Facebook</span>
</a>
<a class="shareButtons-button shareButtons-button--brand shareButtons-button--twitter" href="#_xfUid-1-1732848603" data-href="https://twitter.com/intent/tweet?url={url}&text={title}" id="js-XFUniqueId36">
<svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 512 512" class=""><!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"></path></svg> <span>X (Twitter)</span>
</a>
<a class="shareButtons-button shareButtons-button--brand shareButtons-button--linkedin" href="#_xfUid-1-1732848603" data-href="https://www.linkedin.com/sharing/share-offsite/?url={url}" id="js-XFUniqueId37">
<i class="fa--xf fab fa-linkedin "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/brands.svg?v=1729808417#linkedin"></use></svg></i>
<span>LinkedIn</span>
</a>
<a class="shareButtons-button shareButtons-button--brand shareButtons-button--reddit" href="#_xfUid-1-1732848603" data-href="https://reddit.com/submit?url={url}&title={title}" id="js-XFUniqueId38">
<i class="fa--xf fab fa-reddit-alien "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/brands.svg?v=1729808417#reddit-alien"></use></svg></i>
<span>Reddit</span>
</a>
<a class="shareButtons-button shareButtons-button--brand shareButtons-button--tumblr" href="#_xfUid-1-1732848603" data-href="https://www.tumblr.com/widgets/share/tool?canonicalUrl={url}&title={title}" id="js-XFUniqueId39">
<i class="fa--xf fab fa-tumblr "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/brands.svg?v=1729808417#tumblr"></use></svg></i>
<span>Tumblr</span>
</a>
<a class="shareButtons-button shareButtons-button--brand shareButtons-button--whatsApp" href="#_xfUid-1-1732848603" data-href="https://api.whatsapp.com/send?text={title} {url}" id="js-XFUniqueId40">
<i class="fa--xf fab fa-whatsapp "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/brands.svg?v=1729808417#whatsapp"></use></svg></i>
<span>WhatsApp</span>
</a>
<a class="shareButtons-button shareButtons-button--email" href="#_xfUid-1-1732848603" data-href="mailto:?subject={title}&body={url}" id="js-XFUniqueId41">
<i class="fa--xf far fa-envelope "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#envelope"></use></svg></i>
<span>Email</span>
</a>
<a class="shareButtons-button shareButtons-button--share is-hidden" href="#_xfUid-1-1732848603" data-xf-init="web-share" data-title="" data-text="" data-url="" data-hide=".shareButtons-button:not(.shareButtons-button--share)" id="js-XFUniqueId42">
<i class="fa--xf far fa-share-alt "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#share-alt"></use></svg></i>
<span>Share</span>
</a>
<a class="shareButtons-button shareButtons-button--link" href="#_xfUid-1-1732848603" data-clipboard="{url}" id="js-XFUniqueId43">
<i class="fa--xf far fa-link "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#link"></use></svg></i>
<span>Link</span>
</a>
</div>
</div>
</div>
</div>
</div>
<div id="adngin-sidebar2-0" style="min-height:250px;"></div>
<div id="adngin-sidebar1-0" style="margin:auto;"></div>
</div>
</div>
</div>
</div>
<footer class="p-footer" id="footer">
<div class="p-footer-inner">
<div class="p-footer-row">
<div class="p-footer-row-opposite">
<ul class="p-footer-linkList">
<li><a href="/contact-us/">Contact us</a></li>
<li><a href="/terms-of-use/">Terms and rules</a></li>
<li><a href="/privacy-policy/">Privacy policy</a></li>
<li><a href="/board/help/">Help</a></li>
<li><a href="/board/forums/-/index.rss" target="_blank" class="p-footer-rssLink" title="RSS"><span aria-hidden="true"><i class="fa--xf far fa-rss "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#rss"></use></svg></i><span class="u-srOnly">RSS</span></span></a></li>
</ul>
<ul class="p-footer-linkList">
<li><div id="ccpa" style="display:none;">Do not share my Personal Information</div></li>
</ul>
</div>
</div>
<div class="p-footer-copyright">
<a href="https://xenforo.com" class="u-concealed" dir="ltr" target="_blank" rel="sponsored noopener">Community platform by XenForo<sup>®</sup> <span class="copyright">© 2010-2024 XenForo Ltd.</span></a>
<br>All contents © 1998-2024 by <a href="https://www.mrexcel.com">MrExcel Publishing</a>.
</div>
</div>
</footer>
</div> <!-- closing p-pageWrapper -->
<div id="pledge-overlay"> <div id="pledge-popup"> <div class="inner-popup"> <div id="pledge-header"> <img src="https://www.mrexcel.com/img/sgw/logo.jpg"> </div><div id="pledge-description"> <div id="pledge-front" class="active"> <div id="pledge-front-title"><h3>We've detected that you are using an adblocker.</h3></div><div id="pledge-front-text">We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.</div><div id="pledge-disable-btn" class="active"><span>Allow Ads at MrExcel</span></div></div><div id="pledge-blockers"> <div id="pledge-blockers-title"><h3>Which adblocker are you using?</h3></div><div id="pledge-blockers-list"> <span class="pledge-blockers-item"> <img src="https://www.mrexcel.com/img/sgw/ab_icon.png" alt="AdBlock" id="ab-logo" class="pledge-blockers-logo"> </span> <span class="pledge-blockers-item"> <img src="https://www.mrexcel.com/img/sgw/abp_icon.png" alt="AdBlock Plus" id="abp-logo" class="pledge-blockers-logo"> </span> <span class="pledge-blockers-item"> <img src="https://www.mrexcel.com/img/sgw/ubo_icon.png" alt="uBlock Origin" id="ubo-logo" class="pledge-blockers-logo"> </span> <span class="pledge-blockers-item"> <img src="https://www.mrexcel.com/img/sgw/ub_icon.png" alt="uBlock" id="ub-logo" class="pledge-blockers-logo"> </span> </div></div><div id="pledge-instruction"> <div id="pledge-instructions-ab"> <h3>Disable AdBlock</h3> <div class="pledge-instructions-text"> Follow these easy steps to disable AdBlock<br><br>1)Click on the icon in the browser’s toolbar.<br>2)Click on the icon in the browser’s toolbar.<br>2)Click on the "Pause on this site" option. </div><div class="pledge-instructions-video"> <img src="https://www.mrexcel.com/img/sgw/ab_instructions.jpg" id="pledge-instructions-ab-video"> </div><div class="go-back"><span>Go back</span></div></div><div id="pledge-instructions-abp"> <h3>Disable AdBlock Plus</h3> <div class="pledge-instructions-text"> Follow these easy steps to disable AdBlock Plus<br><br>1)Click on the icon in the browser’s toolbar.<br>2)Click on the toggle to disable it for "mrexcel.com". </div><div class="pledge-instructions-video"> <img src="https://www.mrexcel.com/img/sgw/abp_instructions.jpg" id="pledge-instructions-abp-video"> </div><div class="go-back"><span>Go back</span></div></div><div id="pledge-instructions-ubo"> <h3>Disable uBlock Origin</h3> <div class="pledge-instructions-text"> Follow these easy steps to disable uBlock Origin<br><br>1)Click on the icon in the browser’s toolbar.<br>2)Click on the "Power" button.<br>3)Click on the "Refresh" button. </div><div class="pledge-instructions-video"> <img src="https://www.mrexcel.com/img/sgw/ubo_instructions.jpg" id="pledge-instructions-ubo-video"> </div><div class="go-back"><span>Go back</span></div></div><div id="pledge-instructions-ub"> <h3>Disable uBlock</h3> <div class="pledge-instructions-text"> Follow these easy steps to disable uBlock<br><br>1)Click on the icon in the browser’s toolbar.<br>2)Click on the "Power" button.<br>3)Click on the "Refresh" button. </div><div class="pledge-instructions-video"> <img src="https://www.mrexcel.com/img/sgw/ub_instructions.jpg" id="pledge-instructions-ub-video"> </div><div class="go-back"><span>Go back</span></div></div></div></div><div id="pledge-footer"> <div id="pledge-skip"><span>Continue without ads</span></div><div id="pledge-refresh"><span>I've disabled my adblock</span></div></div></div></div></div>
<div class="u-bottomFixer js-bottomFixTarget">
</div>
<div class="u-navButtons js-navButtons">
<a href="javascript:" class="button button--scroll"><span class="button-text"><i class="fa--xf far fa-arrow-left "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#arrow-left"></use></svg></i><span class="u-srOnly">Back</span></span></a>
</div>
<div class="u-scrollButtons js-scrollButtons" data-trigger-type="up">
<a href="#top" class="button button--scroll" data-xf-click="scroll-to"><span class="button-text"><i class="fa--xf far fa-arrow-up "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><use href="/board/data/local/icons/regular.svg?v=1729808417#arrow-up"></use></svg></i><span class="u-srOnly">Top</span></span></a>
</div>
<form style="display:none" hidden="hidden">
<input type="text" name="_xfClientLoadTime" value="" id="_xfClientLoadTime" title="_xfClientLoadTime" tabindex="-1">
</form>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"url": "https://www.mrexcel.com/board/",
"potentialAction": {
"@type": "SearchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://www.mrexcel.com/board/search/search?keywords={search_keywords}"
},
"query-input": "required name=search_keywords"
}
}
</script>
<iframe name="__tcfapiLocator" style="display: none;"></iframe><iframe name="__uspapiLocator" style="display: none;"></iframe><iframe name="__adconsentLocator" style="display: none;"></iframe><img src="https://ad-delivery.net/px.gif?ch=2" style="display: none !important; width: 1px !important; height: 1px !important;"><img src="https://ad.doubleclick.net/favicon.ico?ad=300x250&ad_box_=1&adnet=1&showad=1&size=250x250" style="display: none !important; width: 1px !important; height: 1px !important;"><img src="https://ad-delivery.net/px.gif?ch=1&e=0.7135088193986119" style="display: none !important; width: 1px !important; height: 1px !important;"><iframe name="googlefcPresent" style="display: none; width: 0px; height: 0px; border: none; z-index: -1000; left: -1000px; top: -1000px;"></iframe><div id="snigel-cmp-framework" class="snigel-cmp-framework"><style>@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:local("Roboto"),local("Roboto-Regular"),url(https://cdn.snigelweb.com/resources/fonts/roboto-regular-webfont.woff2) format("woff2")}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-display:swap;src:local("Roboto Bold"),local("Roboto-Bold"),url(https://cdn.snigelweb.com/resources/fonts/roboto-bold-webfont.woff2) format("woff2")}.snigel-cmp-framework{font:11.5px "Roboto",sans-serif;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.3);z-index:2000000000;font-family:"Roboto",sans-serif;font-size:11.5px;line-height:12px;letter-spacing:0.6px;font-weight:400;color:#4A4A4A}.snigel-cmp-framework.hidden{display:none}.snigel-cmp-framework.sn-bm .sn-v-cell{vertical-align:bottom}.snigel-cmp-framework.sn-bm .sn-inner{width:100%;max-width:100%}.snigel-cmp-framework.sn-bm .sn-tabs{height:30vh}.snigel-cmp-framework.sn-bm.sn-custom .sn-tabs{height:40vh}.snigel-cmp-framework.sn-bm .sn-footer-tab{padding:5px}.snigel-cmp-framework.sn-bm .sn-selector{line-height:55px}.snigel-cmp-framework.sn-bm .sn-logo .sn-inner-logo{max-height:56px;height:80px;max-width:130px}.snigel-cmp-framework.sn-bm .sn-content{padding:5px}.snigel-cmp-framework.sn-amp-fs .sn-content{max-height:calc(100vh - 170px)}@media (max-height: 450px){.snigel-cmp-framework.sn-amp-fs .sn-content{max-height:calc(100vh - 170px)}}@media (max-height: 450px){.snigel-cmp-framework.sn-amp-fs .sn-tabs{height:auto}}.snigel-cmp-framework *,.snigel-cmp-framework *:before,.snigel-cmp-framework *:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.snigel-cmp-framework .sn-inner{background-color:#fffefe;max-width:800px;width:70%;margin-left:auto;display:block;margin-right:auto}@media (max-width: 992px){.snigel-cmp-framework .sn-inner{width:100%}}@media (min-width: 992px) and (max-width: 1024px){.snigel-cmp-framework .sn-inner{width:95%;max-width:1000px}}.snigel-cmp-framework .sn-content{padding:1.2%;overflow:hidden;max-height:415px}.snigel-cmp-framework .sn-content a{color:#565656;text-decoration:underline;font-weight:700}.snigel-cmp-framework .sn-content a:hover{color:#565656}.snigel-cmp-framework .sn-header-tab{position:relative;border-bottom:1px solid #D8D8D8;padding:1.2%;box-shadow:0 3px 5px -2px #D8D8D8}@media (max-width: 992px){.snigel-cmp-framework .sn-content{max-height:calc(100vh - 260px)}}@media (max-width: 992px) and (max-height: 450px){.snigel-cmp-framework .sn-content{max-height:calc(100vh - 260px)}}.snigel-cmp-framework strong{font-weight:700}.snigel-cmp-framework h1,.snigel-cmp-framework h2,.snigel-cmp-framework h3,.snigel-cmp-framework h4,.snigel-cmp-framework h5,.snigel-cmp-framework h6,.snigel-cmp-framework p,.snigel-cmp-framework span{font-family:"Roboto",sans-serif;text-align:left;color:#4A4A4A;text-transform:none;letter-spacing:normal;text-shadow:none}.snigel-cmp-framework h1,.snigel-cmp-framework h2,.snigel-cmp-framework h3,.snigel-cmp-framework h4,.snigel-cmp-framework h5,.snigel-cmp-framework h6{font-weight:700;float:none}.snigel-cmp-framework h1{font-size:2.3em !important;line-height:1.2em !important;text-align:left;margin:10px 0 !important}@media (max-width: 768px){.snigel-cmp-framework h1{font-size:1.91667em !important;line-height:1.09091em !important}}.snigel-cmp-framework h2{font-size:1.64286em !important;line-height:1.2em !important;margin-bottom:5px;margin-top:10px}@media (max-width: 768px){.snigel-cmp-framework h2{font-size:1.4375em !important;line-height:1.09091em !important}}.snigel-cmp-framework h3{font-size:1.4375em !important;line-height:.92308em !important;margin-top:15px;margin-bottom:10px}@media (max-width: 768px){.snigel-cmp-framework h3{font-size:1.15em !important;line-height:1.2em !important}}.snigel-cmp-framework h4{margin:0px 0 10px;font-size:1.15em !important;line-height:1.2em !important}@media (max-width: 768px){.snigel-cmp-framework h4{font-size:1.04545em !important;line-height:1.09091em !important}}.snigel-cmp-framework h5{font-size:1.04545em !important;line-height:1.09091em !important}@media (max-width: 768px){.snigel-cmp-framework h5{font-size:.95833em !important;line-height:1em !important}}.snigel-cmp-framework p{font-size:1.15em !important;line-height:1.33333em !important;margin:0 0 10px;padding:0}@media (max-width: 768px){.snigel-cmp-framework p{font-size:1.04545em !important;line-height:1.2em !important}}.snigel-cmp-framework p.error{color:#ed143d}.sn-clearfix:after{clear:both;display:table;content:''}.sn-hidden{display:none !important;visibility:hidden !important;z-index:-10 !important}.sn-v-table{height:100%;width:100%;display:table}.sn-v-table .sn-v-cell{position:relative;display:table-cell;vertical-align:middle}@media (min-width: 1024px){.hide-desktop{display:none !important}}@media (min-width: 992px) and (max-width: 1024px){.hide-tablet{display:none !important}}@media (max-width: 992px){.hide-mobile{display:none !important}}@media (min-width: 992px) and (max-width: 1024px){.show-tablet{display:block !important}}.sn-logo,.sn-selector{display:block;min-height:1px;width:100%}.sn-logo{max-height:80px;overflow:hidden}.sn-logo .sn-inner-logo{max-height:80px;height:100px;max-width:214px;margin-left:auto;display:block;margin-right:auto}@media (max-width: 992px){.sn-logo .sn-inner-logo{margin:0px auto 0}}@media (max-width: 411px){.sn-logo .sn-inner-logo{max-height:140px;max-width:160px;height:60px}}@media (max-height: 450px){.sn-logo .sn-inner-logo{max-height:50px;height:50px;max-width:100px}}.sn-logo .sn-inner-logo img{display:block;max-width:100%;height:auto;max-height:80px;margin:0 auto}@media (max-height: 450px){.sn-logo{max-height:60px}}.sn-custom .sn-logo{max-height:80px;overflow:hidden}@media (min-width: 768px){.sn-custom .sn-logo{width:22%;float:left}}@media (max-width: 768px){.sn-custom .sn-logo{width:100%;float:left}}.sn-selector{line-height:80px;vertical-align:middle}@media (min-width: 768px){.sn-selector{width:78%;float:left}}@media (max-width: 768px){.sn-selector{width:100%;float:left}}@media (max-width: 599px){.sn-selector{line-height:30px}}.sn-selector ul{margin:0;padding:0;text-align:right;font-size:11.5px;line-height:80px;display:list-item;list-style:none}@media (max-width: 768px){.sn-selector ul{text-align:center;display:block;line-height:1}}.sn-selector ul li{display:inline-block;padding:7px 5px;list-style:none;margin:0 3px;position:relative;color:#3440CA;font-size:1.04545em;line-height:1}@media (max-width: 992px){.sn-selector ul li{margin:0px 9px;padding:7px 0px;font-size:1.04545em}}.sn-selector ul li:after{content:'';display:block;background-color:#3440CA;height:1px;width:100%;left:0;position:absolute;bottom:0;-moz-transform:scale(0, 1);-o-transform:scale(0, 1);-ms-transform:scale(0, 1);-webkit-transform:scale(0, 1);transform:scale(0, 1);-webkit-transition:all 200ms ease-in-out;-moz-transition:all 200ms ease-in-out;-o-transition:all 200ms ease-in-out;transition:all 200ms ease-in-out}.sn-selector ul li:hover{cursor:pointer}.sn-selector ul li.sn-active:after{-moz-transform:scale(1, 1);-o-transform:scale(1, 1);-ms-transform:scale(1, 1);-webkit-transform:scale(1, 1);transform:scale(1, 1);-webkit-transition:all 200ms ease-in-out;-moz-transition:all 200ms ease-in-out;-o-transition:all 200ms ease-in-out;transition:all 200ms ease-in-out}.sn-tabs{overflow-y:auto;max-width:95%;margin-left:auto;display:block;margin-right:auto;padding:0 10px;position:relative;z-index:0;scroll-behavior:smooth;max-height:350px}@media (max-width: 411px){.sn-tabs{max-width:95%;-webkit-overflow-scrolling:touch}.sn-tabs[data-attr="learn"] h1{text-align:center}}@media (max-height: 450px){.sn-tabs{height:30vh}}.sn-tabs.sn-vendors .sn-left>p{padding-left:10px;word-break:break-word}.sn-tabs.sn-vendors h4{padding-top:5px}@media (max-width: 411px){.sn-tabs.sn-leg .sn-collapsible{display:block;padding:5px 17px}}.sn-tabs.sn-leg .sn-collapsible .sn-row-vend{display:block;width:100%}.sn-tabs.sn-leg .sn-collapsible .sn-row-vend .sn-left,.sn-tabs.sn-leg .sn-collapsible .sn-row-vend .sn-right{float:left;width:50%}.sn-tabs.sn-leg .sn-collapsible .sn-row-vend:after{content:'';clear:both;display:table}.sn-tabs.sn-leg .sn-collapsible .sn-sub .sn-arrow:before,.sn-tabs.sn-leg .sn-collapsible .sn-sub .sn-arrow:after{top:14px}.sn-tabs.sn-leg .sn-collapsible .sn-int{width:102px}@media (max-width: 411px){.sn-tabs.sn-leg .sn-collapsible .sn-int{width:100%;padding:5px 10px;width:50%}}.sn-tabs.sn-leg .sn-collapsible .sn-sub-toggle:after{clear:both;display:table;content:''}@media (max-width: 768px){.sn-tabs.sn-leg h4{display:inline-block;width:calc(100% - 100px);margin:0 0 5px}.sn-tabs.sn-leg .sn-info h4{text-align:left;width:100%}}.sn-tabs.sn-leg .sn-left>p{padding-left:10px;word-break:break-word}.sn-tabs.sn-leg .sn-row:after{content:'';clear:both;display:table}.sn-footer-tab{position:relative;border-top:1px solid #D8D8D8;padding:1.2%;box-shadow:0 -3px 5px -2px #D8D8D8}.sn-footer-tab .sn-privacy,.sn-footer-tab .sn-action-btn{width:100%;display:block;min-height:1px}@media (min-width: 992px){.sn-footer-tab .sn-privacy,.sn-footer-tab .sn-action-btn{width:20%;float:left}}.sn-footer-tab .sn-action-btn{width:100%;text-align:center}@media (min-width: 992px){.sn-footer-tab .sn-action-btn.sn-two-btn{text-align:right}}.sn-footer-tab .sn-privacy{text-align:left}.sn-footer-tab .sn-privacy a{line-height:45px;color:#3440CA;font-size:1.15em}@media (max-width: 411px){.sn-footer-tab .sn-privacy a{line-height:27px}}@media (max-width: 768px){.sn-footer-tab .sn-privacy a{line-height:30px}}@media (max-height: 450px){.sn-footer-tab .sn-privacy a{line-height:20px}}@media (max-width: 992px){.sn-footer-tab .sn-privacy{text-align:center}}.sn-b-def{width:50%;max-width:300px;border:1px solid #3440CA;padding:5px;font-size:1.15em;line-height:2em;color:#3440CA;margin-left:10px;background:#fffefe;margin:0 0 0 10px;overflow:hidden;position:relative;display:inline-block;text-align:center}.sn-b-def:after{background:rgba(255,255,255,0.1);content:"";position:absolute;left:0;top:0;bottom:0;width:100%;opacity:1;-webkit-transition:all 200ms ease;-moz-transition:all 200ms ease;-o-transition:all 200ms ease;transition:all 200ms ease;-moz-transform:scale(0, 1);-o-transform:scale(0, 1);-ms-transform:scale(0, 1);-webkit-transform:scale(0, 1);transform:scale(0, 1);transform-origin:0 50%}.sn-b-def:hover{cursor:pointer}.sn-b-def:hover:after{-moz-transform:scale(1, 1);-o-transform:scale(1, 1);-ms-transform:scale(1, 1);-webkit-transform:scale(1, 1);transform:scale(1, 1)}@media (min-width: 992px){.sn-b-def{width:45%}}@media (max-width: 992px){.sn-b-def{margin-left:0px}}@media (max-height: 450px){.sn-b-def{width:50%}}@media (min-width: 320px) and (max-width: 768px){.sn-b-def{width:100%}}@media (max-width: 768px){.sn-b-def{font-size:1.15em !important;line-height:2em !important;margin-bottom:5px}}@media (min-width: 769px){.sn-b-def.sn-three-btn{width:32%}.sn-b-def.sn-adj-fnt{font-size:.95833em}}.sn-b-def.sn-blue{background-color:#3440CA;color:#fff}#sn-b-reject{margin-left:0}.sn-collapsible{display:table;padding:5px 20px;border:1px solid #E0DEDE;border-radius:15.5px;box-shadow:0 0 12px -4px #E0DEDE;width:calc(100% - 40px);margin:12.5px 0}@media (max-width: 768px){.sn-collapsible{width:100%}}.sn-collapsible.sn-toggled .sn-info{display:none}.sn-collapsible .sn-row{display:table-row}@media (max-width: 768px){.sn-collapsible .sn-row{width:100%;display:block}.sn-collapsible .sn-row.sn-row-vend{display:table-row}}.sn-collapsible .sn-left,.sn-collapsible .sn-right{display:table-cell;vertical-align:middle;position:relative}.sn-collapsible .sn-left.sn-sub{display:block;vertical-align:top}.sn-collapsible .sn-left.sn-sub>p{padding-left:25px}.sn-collapsible .sn-left.sn-sub.sn-toggled>p{display:none}.sn-collapsible .sn-right{width:70px;text-align:right}.sn-collapsible .sn-right.sn-sub{vertical-align:top}.sn-collapsible .sn-right.sn-vend{width:85px}@media (max-width: 768px){.sn-collapsible .sn-right.sn-pur{vertical-align:top}.sn-collapsible .sn-right.sn-pur .sn-switch{margin-top:25px}}.sn-switch{position:relative;display:inline-block;width:48px;height:24px}.sn-switch:hover{cursor:pointer}.sn-switch span::before,.sn-switch span::after{content:"";display:block;position:absolute;-webkit-transition:all 200ms ease-in-out;-moz-transition:all 200ms ease-in-out;-o-transition:all 200ms ease-in-out;transition:all 200ms ease-in-out;background-color:#E0DEDE}.sn-switch span::before{width:100%;height:100%;border-radius:9999em}.sn-switch span::after{top:2px;left:3px;width:20px;height:20px;border-radius:50%;background-color:#fff;box-shadow:0 0 2px #979797}.sn-switch input{display:none}.sn-switch input:checked+span::before{background-color:#3440CA}.sn-switch input:checked+span::after{left:24px}.sn-sub-toggle{display:inline-block;margin:0px 0 5px;width:100%}@media (max-width: 411px){.sn-sub-toggle{display:block}}.sn-sub-toggle:hover{cursor:pointer}.sn-sub-toggle span,.sn-sub-toggle h4{display:block;float:left}.sn-sub-toggle h4{width:calc(100% - 25px)}.sn-sub-toggle span.sn-objected-label{float:none;display:inline-block;line-height:inherit;position:absolute;top:5px;right:-5px}.sn-arrow{position:relative;display:inline-block;width:25px;height:14px}.sn-arrow:after,.sn-arrow:before{position:absolute;width:10px;height:1px;display:block;background-color:#3440CA;content:'';-webkit-transition:all 200ms ease-in-out;-moz-transition:all 200ms ease-in-out;-o-transition:all 200ms ease-in-out;transition:all 200ms ease-in-out;top:9px}.sn-arrow:after{left:9px;-moz-transform:rotate(20deg);-o-transform:rotate(20deg);-ms-transform:rotate(20deg);-webkit-transform:rotate(20deg);transform:rotate(20deg)}.sn-arrow:before{-moz-transform:rotate(-20deg);-o-transform:rotate(-20deg);-ms-transform:rotate(-20deg);-webkit-transform:rotate(-20deg);transform:rotate(-20deg)}.sn-arrow.sn-v-toggle{height:24px;margin-left:10px}.sn-arrow.sn-v-toggle:after,.sn-arrow.sn-v-toggle:before{top:10px}.sn-arrow.sn-v-toggle:hover{cursor:pointer}.sn-arrow.sn-toggled:after{-moz-transform:rotate(-20deg);-o-transform:rotate(-20deg);-ms-transform:rotate(-20deg);-webkit-transform:rotate(-20deg);transform:rotate(-20deg)}.sn-arrow.sn-toggled:before{-moz-transform:rotate(20deg);-o-transform:rotate(20deg);-ms-transform:rotate(20deg);-webkit-transform:rotate(20deg);transform:rotate(20deg)}.sn-policy-v{overflow-wrap:anywhere}.sn-policy-v a{font-weight:400}.sn-int .sn-arrow.sn-v-toggle{margin-left:5px;top:10px}.sn-objected-label{line-height:3;display:inline-block;margin-left:5px;font-weight:600;text-transform:uppercase;color:#4A4A4A;font-size:10px !important}.sn-objected-label.hidden{color:transparent;visibility:hidden;opacity:0}.sn-objector{line-height:3;display:block;font-weight:600;text-transform:uppercase;margin:5px 0;text-align:left}@media (max-width: 768px){.sn-objector{line-height:1}}.sn-objector:hover{cursor:pointer}.sn-objector input{margin-left:5px}.sn-object-all{text-decoration:underline;float:right;margin-right:45px;font-size:12px !important}@media (max-width: 411px){.sn-object-all{display:block;float:none}}.sn-object-all:hover{cursor:pointer}.sn-object-all.hidden{display:none}@media (max-width: 768px){.sn-selector{overflow-x:scroll;display:block;width:100vw;scroll-behavior:smooth}}.sn-scroll-left{margin:0;text-align:center;line-height:1;margin-top:5px;position:relative;height:9px}.sn-scroll-left span{font-size:10px !important;line-height:0;opacity:0.6;position:fixed;margin-top:5px;width:150px;left:calc(50% - 75px);text-align:center !important}.sn-clearfix{pointer-events:none}.sn-disable_all_s,.sn-enable_all_s{display:inline-block;float:right;font-size:13px !important;text-decoration:underline}.sn-disable_all_s:hover,.sn-enable_all_s:hover{cursor:pointer}@media (min-width: 320px) and (max-width: 411px){.sn-disable_all_s,.sn-enable_all_s{float:none}}#sn-tp{text-decoration:underline;font-weight:700}#sn-tp:hover{cursor:pointer}#sn-back:hover{cursor:pointer}@media (min-width: 320px) and (max-width: 411px){.purposes .sn-disable_all_s,.purposes .sn-enable_all_s{float:none}}
</style><div class="sn-v-table"><div class="sn-v-cell"><div class="sn-inner"><div class="sn-header-tab"><div class="sn-logo"><div class="sn-inner-logo"><div id="sn-aligner" style="vertical-align:middle;display:inline-block;height:100%;"></div><div id="sn-back" style="vertical-align:middle;display:inline-block;width:100%;"><img src="https://www.mrexcel.com/img/mrexcel-logo-color.svg"></div></div></div><div class="sn-clearfix"></div></div><div class="sn-content"><div class="sn-tabs learn" data-attr="learn"><h1>We care about your privacy!</h1><p>When visiting our site, pre-selected companies may access and use certain information on your device and about this web page to serve relevant ads or personalised content. Please note that ads help keep our service free. Personal data will be processed based on consent in accordance with Art.6(1)(a) of the GDPR framework in <a target="_blank" href="https://eur-lex.europa.eu/legal-content/EN/TXT/?qid=1528874672298&uri=CELEX%3A32016R0679">EU law</a>, or as legitimate interest in accordance with Art.6(1)(f) of the same.</p><h3 style="margin-bottom:15px;">Learn more why you are seeing this</h3><p>We, the 'Publisher', and a select group of <span id="sn-tp">trusted partners</span> (850), known as 'Vendors', need your consent for data-processing purposes. These purposes include to store and/or access information on a device, like cookie management and to process personal data such as standard information sent by a device and other unique identifiers for personalised ads and content, ad and content measurement, audience insights and product development. With your consent we and our partners may use precise geolocation data and actively scan device characteristics for identification.</p><p>You may consent to the processing described above or access more detailed information and customise your choices. The given consent will apply to this site only. Please take into consideration that some of your personal data processing may rely on legitimate interest which does not require your consent but you have a right to object to this.</p><p>You can always edit your preferences at any time in our site’s <a target="_blank" href="https://www.mrexcel.com/privacy-policy/">privacy policy page</a>.</p></div></div><div class="sn-footer-tab"> <div class="sn-action-btn sn-two-btn"><div class="sn-b-def" id="sn-b-custom">Customise choices</div><div class="sn-b-def sn-blue" id="accept-choices">Accept all & visit the site</div></div><div class="sn-clearfix"></div></div></div></div></div></div><iframe name="googlefcInactive" src="about:blank" style="display: none; width: 0px; height: 0px; border: none; z-index: -1000; left: -1000px; top: -1000px;"></iframe><iframe name="googlefcLoaded" src="about:blank" style="display: none; width: 0px; height: 0px; border: none; z-index: -1000; left: -1000px; top: -1000px;"></iframe></body></html>