((q,m)=>{if(XF.activate)console.error("XF core has been double loaded");else{XF.browser||(XF.browser={browser:"",version:0,os:"",osVersion:null});XF.extendObject=(...a)=>{let c=!1,b=a[0]||{},f=1;"boolean"===typeof b&&(c=b,b=a[f]||{},f++);for(;f<a.length;f++){if(!a[f])continue;const d=a[f];Object.keys(d).forEach(e=>{const g=b[e],h=d[e];c&&h&&"object"===typeof h?(Array.isArray(h)?b[e]=g&&Array.isArray(g)?g:[]:b[e]=g&&"object"===typeof g?g:{},b[e]=XF.extendObject(c,b[e],h)):void 0!==h&&(b[e]=h)})}return b};
XF.createElement=(a,c={},b=null)=>{const f=m.createElement(a);Object.entries(c).forEach(([d,e])=>{"object"===typeof e?Object.entries(e).forEach(([g,h])=>{switch(d){case "properties":return f[g]=h;case "attributes":return f.setAttribute(g,h);case "dataset":return f.dataset[g]=h;case "style":return f.style[g]=h;default:console.error("XF.createElement supports properties, attributes, dataset and style objects only.")}}):f[d]=e});b instanceof HTMLElement&&b.appendChild(f);return f};XF.createElementFromString=
(a,c=null)=>{a=`<body>${a}</body>`;a=(new q.DOMParser).parseFromString(a,"text/html").body;if(1<a.children.length){const b=m.createElement("div");b.classList.add("js-createdContainer");b.append(...a.children);a=b}else a=a.firstChild;c instanceof Node&&c.appendChild(a);return a};XF.isCreatedContainer=a=>a instanceof Element&&a.classList.contains("js-createdContainer");XF.extendObject(XF,{config:{userId:null,enablePush:!1,skipServiceWorkerRegistration:!1,skipPushNotificationSubscription:!1,skipPushNotificationCta:!1,
serviceWorkerPath:null,pushAppServerKey:null,csrf:m.querySelector("html").dataset.csrf,time:{now:0,today:0,todayDow:0,tomorrow:0,yesterday:0,week:0,month:0,year:0},cookie:{path:"/",domain:"",prefix:"xf_"},url:{fullBase:"/",basePath:"/",css:"",js:"",icon:"",keepAlive:""},css:{},js:{},jsMt:{},fullJs:!1,jsState:{},speed:{xxfast:50,xfast:100,fast:200,normal:400,slow:600},job:{manualUrl:""},borderSizeFeature:"3px",fontAwesomeWeight:"r",enableRtnProtect:!0,enableFormSubmitSticky:!0,visitorCounts:{conversations_unread:"0",
alerts_unviewed:"0",total_unread:"0",title_count:!1,icon_indicator:!1},uploadMaxFilesize:null,uploadMaxWidth:0,uploadMaxHeight:0,allowedVideoExtensions:[],allowedAudioExtensions:[],shortcodeToEmoji:!0,publicMetadataLogoUrl:"",publicPushBadgeUrl:""},debug:{disableAjaxSubmit:!1},counter:1,pageDisplayTime:null,phrases:{},getApp:()=>m.querySelector("html").dataset.app||null,isFunction:a=>"function"===typeof a,isObject:a=>a===Object(a),isPlainObject:a=>"[object Object]"===Object.prototype.toString.call(a),
isEmptyObject:a=>0===Object.keys(a).length,hasOwn:(a,c)=>Object.prototype.hasOwnProperty.call(a,c),isNumeric:a=>!isNaN(parseFloat(a))&&isFinite(a),isHidden:a=>"none"===q.getComputedStyle(a).display||0===a.offsetHeight||"hidden"===a.type&&"input"===a.tagName.toLowerCase(),toBoolean:a=>{switch(a){case "true":case "yes":case "on":case "1":case 1:return!0;default:return!1}},toCamelCase:a=>a.replace(/-([a-z])/g,(c,b)=>b.toUpperCase()),_scrollLeftType:null,scrollLeftType:()=>{if(null!==XF._scrollLeftType)return XF._scrollLeftType;
if(XF.isRtl()){const a=XF.createElementFromString('<div style="width: 80px; height: 40px; font-size: 30px; overflow: scroll; white-space: nowrap; word-wrap: normal; position: absolute; top: -1000px; visibility: hidden; pointer-events: none">MMMMMMMMMM</div>');m.body.append(a);XF._scrollLeftType=0<a.scrollLeft?"inverted":-1===a.scrollLeft?"negative":"normal";a.remove();return XF._scrollLeftType}XF._scrollLeftType="normal";return XF._scrollLeftType},eventHandlers:{},customEvent:(a,c)=>new G(a,c),trigger:(a,
c,b={})=>{"string"===typeof c&&(c=XF.customEvent(c,b));const f=c.type,[d,e="default"]=f.split(".");if(!XF.eventHandlers[e]||!XF.eventHandlers[e][d])return!(d.cancelable&&d.defaultPrevented);if("default"===e)return a.dispatchEvent(c);XF.eventHandlers[e][d].forEach(g=>{if(a===g.element){const {handler:h,options:k}=g;k.once&&XF.off(a,f,h,k);h.call(a,c);k.passive&&c.defaultPrevented&&console.warn("preventDefault() was called on a namespaced passive event listener and this is not supported.")}});return!(d.cancelable&&
d.defaultPrevented)},onDelegated:(a,c,b,f,d={})=>{const e=g=>{const h=g.target.closest(b);h&&a.contains(h)&&f.call(h,g)};e.originalHandler=f;XF.on(a,c,e,d)},on:(a,c,b,f={})=>{a?c.split(" ").forEach(d=>{const [e,g="default"]=d.split(".");d={element:a,handler:b,options:f};XF.eventHandlers[g]||(XF.eventHandlers[g]={});XF.eventHandlers[g][e]||(XF.eventHandlers[g][e]=[]);XF.eventHandlers[g][e].push(d);a.addEventListener(e,b,f)}):console.error("No element passed in to event.")},off:(a,c,b=null,f=!1)=>{const [d,
e="default"]=c.split(".");!d&&e?XF.eventHandlers[e]&&(Object.keys(XF.eventHandlers[e]).forEach(g=>{XF.eventHandlers[e][g].forEach(h=>{a.removeEventListener(g,h.handler,f)})}),delete XF.eventHandlers[e]):XF.eventHandlers[e]&&XF.eventHandlers[e][d]&&(XF.eventHandlers[e][d]=XF.eventHandlers[e][d].filter(g=>b&&b!==g.handler&&b!==g.handler.originalHandler?!0:(a.removeEventListener(d,g.handler,f),!1)),XF.eventHandlers[e][d].length||delete XF.eventHandlers[e][d])},onTransitionEnd:(a,c,b)=>{let f=!1;const d=
(e,...g)=>{if(e.target===e.currentTarget&&!f)return f=!0,XF.off(e.currentTarget,"transitionend",d),b(e,...g)};XF.on(a,"transitionend",d);setTimeout(()=>{f||XF.trigger(a,"transitionend")},c+10)},onWithin:(a,c,b,f=!1)=>{c.split(" ").forEach(d=>{const e=g=>{g.target.contains(a)&&(f&&XF.off(m,d,e),b(g))};XF.on(m,d,e)});return a},oneWithin:(a,c,b)=>XF.onWithin(a,c,b,!0),onPointer:(a,c,b,f={})=>{if(XF.isPlainObject(c)){for(const d of Object.keys(c))XF.onPointer(a,d,c[d],f);return a}"string"===typeof c&&
(c=c.split(/\s+/));c.forEach(d=>XF.on(a,d,e=>{e.xfPointerType=e.pointerType||a.getAttribute("data-xf-pointer-type")||"";b(e)},f));XF.on(a,"pointerdown",d=>a.setAttribute("data-xf-pointer-type",d.pointerType),{passive:!0});return a},uniqueId:a=>{let c=a.getAttribute("id");c||(c="js-XFUniqueId"+XF.getUniqueCounter(),a.setAttribute("id",c));return c},findExtended:(a,c)=>{const b=a.match(/^<([^|]+)(\|([\s\S]+))?$/);if("string"===typeof a&&b){a=b[1].trim();let f,d;const e={up:"parentElement",next:"nextElementSibling",
prev:"previousElementSibling"};let g;do if(f=a.match(/^:(up|next|prev)(\((\d+)\))?/)){f[2]||(f[3]=1);g=e[f[1]];for(d=0;d<f[3];d++)(c=c[g])||(c=null);a=a.substr(f[0].length).trim()}while(f);a.length&&(c=c.closest(a));c||(c=null);a=b[2]?b[3].trim():"";return c&&a.length?c.querySelectorAll(a):c}return c.querySelectorAll(a)},position:a=>({top:a.offsetTop,left:a.offsetLeft}),dimensions:(a,c,b)=>{const f=a.getBoundingClientRect(),d={top:f.top+q.scrollY,left:f.left+q.scrollX};c?(d.width=a.offsetWidth||f.width,
d.height=a.offsetHeight||f.height,b&&(a=q.getComputedStyle(a),d.width+=parseInt(a.marginLeft)+parseInt(a.marginRight),d.height+=parseInt(a.marginTop)+parseInt(a.marginBottom))):(d.width=a.clientWidth||f.width,d.height=a.clientHeight||f.height);d.right=d.left+d.width;d.bottom=d.top+d.height;return d},viewport:(a,c,b)=>{a===q&&(a=m.documentElement);a={width:c?a.offsetWidth:a.clientWidth,height:c?a.offsetHeight:a.clientHeight,left:a.scrollLeft,top:a.scrollTop,right:0,bottom:0,docWidth:m.documentElement.scrollWidth,
docHeight:m.documentElement.scrollHeight};a.bottom=a.top+a.height;a.right=a.left+a.width;return a},hasFixableParent:a=>{let c=!1;for(;a.parentNode;)if(a=a.parentNode,a instanceof Element){switch(q.getComputedStyle(a).getPropertyValue("position")){case "fixed":case "sticky":case "-webkit-sticky":c=a}if(c)break}return c},hasFixedParent:a=>{let c=!1;for(;a.parentNode;)if(a=a.parentNode,a instanceof Element){var b=q.getComputedStyle(a);switch(b.getPropertyValue("position")){case "fixed":c=a;break;case "sticky":case "-webkit-sticky":const d=
XF.dimensions(a,!0),e=XF.viewport(q);var f=b.getPropertyValue("top");b=b.getPropertyValue("bottom");if("auto"!==f&&(f=d.top-e.top-parseInt(f,10),.5>=Math.abs(f))){c=a;break}"auto"!==b&&(f=d.bottom-e.bottom-parseInt(b,10),.5>=Math.abs(f)&&(c=a))}if(c)break}return c},autofocus:a=>{XF.isIOS()?a.matches(":focus")||(a.classList.add("is-focused"),XF.on(a,"blur",()=>a.classList.remove("is-focused"))):a.focus();return this},replaceSelectedText:(a,c)=>{let b=a.selectionStart;a.setRangeText(c,b,a.selectionEnd,
"preserve");a.selectionStart=b+c.length;a.selectionEnd=a.selectionStart},normalizedScrollLeft:(a,c)=>{const b=XF.scrollLeftType();if("undefined"!==typeof c){switch(b){case "negative":c=0<c?-c:0;break;case "inverted":c=a.scrollWidth-a.offsetWidth-c}a.scrollLeft=c}else switch(c=a.scrollLeft,b){case "negative":return 0>c?-c:0;case "inverted":return a=a.scrollWidth-c-a.offsetWidth,.5>a?0:a;default:return c}},focusNext:a=>{var c=Array.prototype.slice.call(m.querySelectorAll('input:not([type="hidden"]),select,textarea,a,button'));
c=c.filter(b=>0<b.offsetWidth||0<b.offsetHeight||0<b.getClientRects().length);a=c.indexOf(a);(c=c[a+1]||null)&&c.focus();return c},getKeyboardInputs:()=>"input:not([type=radio], [type=checkbox], [type=submit], [type=reset]), textarea",onPageLoad:()=>{XF.trigger(m,"xf:page-load-start");XF.NavDeviceWatcher.initialize();XF.ActionIndicator.initialize();XF.DynamicDate.initialize();XF.KeepAlive.initialize();XF.LinkWatcher.initLinkProxy();XF.LinkWatcher.initExternalWatcher();XF.ExpandableContent.watch();
XF.ScrollButtons.initialize();XF.NavButtons.initialize();XF.KeyboardShortcuts.initialize();XF.FormInputValidation.initialize();XF.PWA.initialize();XF.Push.initialize();XF.IgnoreWatcher.initializeHash();XF.BrowserWarning.display();XF.BrowserWarning.hideJsWarning();XF.History.initialize();XF.PullToRefresh.initialize();XF.LazyHandlerLoader.initialize();XF.config.jsState=XF.applyJsState({},XF.config.jsState);XF.activate(m);XF.on(m,"ajax:complete",a=>{({data:a}=a);a&&a.visitor&&XF.updateVisitorCounts(a.visitor,
!0)});XF.on(m,"ajax:before-success",a=>{({data:a}=a);a&&a&&a.job&&(a=a.job,a.manual&&XF.JobRunner.runManual(a.manual),a.autoBlocking?XF.JobRunner.runAutoBlocking(a.autoBlocking,a.autoBlockingMessage):a.auto&&setTimeout(XF.JobRunner.runAuto,0))});XF.on(m,"keyup",a=>{"Enter"===a.key&&(a=a.target,a.matches("a:not([href])")&&a.click())});m.querySelector("html[data-run-jobs]")&&setTimeout(XF.JobRunner.runAuto,100);XF.config.visitorCounts&&XF.updateVisitorCountsOnLoad(XF.config.visitorCounts);XF.CrossTab.on("visitorCounts",
a=>{XF.updateVisitorCounts(a,!1)});XF.pageLoadScrollFix();setTimeout(()=>{const a=m.querySelector("[data-load-auto-click]");a&&a.click()},100);XF.trigger(m,"xf:page-load-complete")},addExtraPhrases:a=>{a.querySelectorAll("script.js-extraPhrases").forEach(c=>{let b;try{b=JSON.parse(c.textContent)||{},XF.extendObject(XF.phrases,b)}catch(f){console.error(f)}c.remove()})},phrase:(a,c,b)=>{let f=XF.phrases[a];f&&c&&(f=XF.stringTranslate(f,c));return f||b||a},_isRtl:null,isRtl:()=>{if(null===XF._isRtl){const a=
m.querySelector("html").getAttribute("dir");XF._isRtl=a&&"RTL"===a.toUpperCase()}return XF._isRtl},rtlFlipKeyword:a=>{if(!XF.isRtl())return a;switch(a.toLowerCase()){case "left":return"right";case "right":return"left";default:return a}},isMac:()=>"mac"===XF.browser.os,isIOS:()=>"ios"===XF.browser.os,log:(...a)=>{console.log&&console.log(...a)},findRelativeIf:(a,c,b=!0)=>{if(!a)throw Error("No selector provided");a.endsWith(">")&&(a+=" *");const f=a.match(/^([<>|])/);f?"<"===f[1]?(a=XF.findExtended(a,
c),b&&a instanceof NodeList&&(a=1<=a.length?a[0]:null)):("|"===f[1]?a=a.substring(1):">"===f[1]&&(a=":scope "+a),a=b?c.querySelector(a):c.querySelectorAll(a)):a=b?m.querySelector(a):m.querySelectorAll(a);return a},isElementVisible:a=>{const c=m.documentElement;a=a.getBoundingClientRect();return 0<=a.top&&0<=a.left&&a.bottom<=c.clientHeight&&a.right<=c.clientWidth},layoutChange:()=>{XF._layoutChangeTriggered||(XF._layoutChangeTriggered=!0,setTimeout(()=>{XF._layoutChangeTriggered=!1;XF.trigger(m.body,
"xf:layout")},0))},_layoutChangeTriggered:!1,updateAvatars:(a,c,b)=>{m.querySelectorAll(".avatar").forEach(f=>{var d=f.querySelector("img, span");const e="avatar-u"+a+"-",g=f.classList.contains("avatar--updateLink")?f.querySelector(".avatar-update"):null;if((b||!d.classList.contains("js-croppedAvatar"))&&d.className.startsWith(e)){if(d.classList.contains(e+"s"))d=XF.createElementFromString(c.s);else if(d.classList.contains(e+"m"))d=XF.createElementFromString(c.m);else if(d.classList.contains(e+"l"))d=
XF.createElementFromString(c.l);else if(d.classList.contains(e+"o"))d=XF.createElementFromString(c.o);else return;f.innerHTML="";f.append(...d.childNodes);d.classList.contains("avatar--default")?(f.classList.add("avatar--default"),d.classList.contains("avatar--default--dynamic")?f.classList.add("avatar--default--dynamic"):d.classList.contains("avatar--default--text")?f.classList.add("avatar--default--text"):d.classList.contains("avatar--default--image")&&f.classList.add("avatar--default--image")):
f.classList.remove("avatar--default","avatar--default--dynamic","avatar--default--text","avatar--default--image");f.setAttribute("style",d.getAttribute("style"));g&&f.appendChild(g)}})},updateVisitorCounts:(a,c,b)=>{a&&"public"===XF.getApp()&&(XF.badgeCounterUpdate(m.querySelectorAll(".js-badge--conversations"),a.conversations_unread),XF.badgeCounterUpdate(m.querySelectorAll(".js-badge--alerts"),a.alerts_unviewed),XF.config.visitorCounts.title_count&&XF.pageTitleCounterUpdate(a.total_unread),XF.config.visitorCounts.icon_indicator&&
XF.faviconUpdate(a.total_unread),c&&(XF.appBadgeUpdate(a.total_unread),XF.CrossTab.trigger("visitorCounts",a),XF.LocalStorage.setJson("visitorCounts",{time:b||Math.floor((new Date).getTime()/1E3)-1,conversations_unread:a.conversations_unread,alerts_unviewed:a.alerts_unviewed,total_unread:a.total_unread})))},updateVisitorCountsOnLoad:a=>{const c=XF.getLocalLoadTime(),b=XF.LocalStorage.getJson("visitorCounts");b&&b.time&&b.time>c&&(a.conversations_unread=b.conversations_unread,a.alerts_unviewed=b.alerts_unviewed,
a.total_unread=b.total_unread);XF.updateVisitorCounts(a,!0,c)},badgeCounterUpdate:(a,c)=>{a.forEach(b=>{b&&(b.setAttribute("data-badge",c),"0"!==String(c)?b.classList.add("badgeContainer--highlighted"):b.classList.remove("badgeContainer--highlighted"))})},shouldCountBeShown:a=>0<parseInt(a.replace(/[,. ]/g,"")),pageTitleCache:"",pageTitleCounterUpdate:a=>{let c=m.title;""===XF.pageTitleCache&&(XF.pageTitleCache=c);c!==XF.pageTitleCache&&"("===c.charAt(0)&&(c=XF.pageTitleCache);a=(XF.shouldCountBeShown(a)?
"("+a+") ":"")+c;a!==m.title&&(m.title=a)},favIconAlertShown:!1,faviconUpdate:a=>{const c=XF.shouldCountBeShown(a);if(c!==XF.favIconAlertShown){var b=m.querySelectorAll('link[rel~="icon"]');b.length&&(XF.favIconAlertShown=c,b.forEach(f=>{const d=f.getAttribute("href"),e=f.dataset.originalHref;if(XF.shouldCountBeShown(a)){e||(f.dataset.originalHref=d);const g=new Image;XF.on(g,"load",()=>{const h=XF.faviconDraw(g);h&&f.setAttribute("href",h)});g.src=d}else e&&(f.setAttribute("href",e),delete f.dataset.originalHref)}))}},
faviconDraw:a=>{const c=a.naturalWidth,b=XF.createElement("canvas",{width:c,height:a.naturalHeight}),f=b.getContext("2d"),d=c/(32/6),e=2*Math.PI;f.drawImage(a,0,0);f.beginPath();f.arc(d,d,d,0,e,!1);f.fillStyle="#E03030";f.fill();f.lineWidth=c/16;f.strokeStyle="#EAEAEA";f.stroke();f.closePath();try{return b.toDataURL("image/png")}catch(g){return null}},appBadgeUpdate:a=>{"setAppBadge"in navigator&&!navigator.webdriver&&!navigator.userAgent.match(/Chrome-Lighthouse|Googlebot|AdsBot-Google|Mediapartners-Google/i)&&
(a=parseInt(String(a).replace(/[,. ]/g,"")),navigator.setAppBadge(a))},unparseBbCode:a=>{const c=XF.createElement("div",{innerHTML:a||""});c.querySelectorAll(".js-noSelectToQuote").forEach(b=>b.remove());["B","I","U","S"].forEach(b=>{c.querySelectorAll(b).forEach(f=>{f.outerHTML=`[${b.toLowerCase()}]${f.innerHTML}[/${b.toLowerCase()}]`})});c.querySelectorAll(".bbCodeBlock--quote").forEach(b=>{const f=b.querySelector(".bbCodeBlock-expandContent");f?b.outerHTML=`<div>[QUOTE]${f.innerHTML}[/QUOTE]</div>`:
f.querySelector(".bbCodeBlock-expand").remove()});c.querySelectorAll(".bbCodeBlock--code").forEach(b=>{const f=b.querySelector(".bbCodeCode code");if(!f)return!0;var d=f.className;d=(d=d?d.match(/language-(\S+)/):null)?d[1]:null;f.removeAttribute("class");b.outerHTML=f.outerHTML;f.setAttribute("data-language",d||"none")});c.querySelectorAll(".bbCodeBlock--unfurl").forEach(b=>{b.outerHTML="[URL unfurl=true]"+b.dataset.url+"[/URL]"});c.querySelectorAll('div[style*="text-align"]').forEach(b=>{const f=
q.getComputedStyle(b).textAlign.toUpperCase();b.outerHTML=`[${f}]${b.innerHTML}[/${f}]`});c.querySelectorAll("div[data-media-site-id][data-media-key], form[data-media-site-id][data-media-key]").forEach(b=>{const f=b.dataset.mediaSiteId,d=b.dataset.mediaKey;if(!f||!d)return!0;b.outerHTML=`[MEDIA=${f}]${d}[/MEDIA]`});c.querySelectorAll(".bbCodeSpoiler").forEach(b=>{var f=b.querySelector(".bbCodeSpoiler-button");if(f){const d=b.querySelector(".bbCodeSpoiler-content").innerHTML;let e="";(f=f.querySelector(".bbCodeSpoiler-button-title"))&&
(e=`="${f.textContent}"`);b.outerHTML=`[SPOILER${e}]${d}[/SPOILER]`}});c.querySelectorAll(".bbCodeInlineSpoiler").forEach(b=>{b.outerHTML=`[ISPOILER]${b.innerHTML}[/ISPOILER]`});return c.innerHTML},hideOverlays:()=>{Object.values(XF.Overlay.cache).forEach(a=>{a.hide()})},hideTooltips:()=>{Object.values(XF.TooltipTrigger.cache).forEach(a=>a.hide())},hideParentOverlay:a=>{(a=a.closest(".overlay-container"))&&(a=XF.DataStore.get(a,"overlay"))&&a.hide()},getStickyHeaderOffset:()=>{let a,c=0;for(a=0;a<
XF.StickyHeader.cache.length;a++){const b=XF.StickyHeader.cache[a];b.target.classList.contains(b.options.stickyClass)&&(c+=b.target.offsetHeight)}return c},loadedScripts:{},loadScript:(a,c)=>{if(XF.hasOwn(XF.loadedScripts,a))return!1;XF.loadedScripts[a]=!0;a=XF.createElement("script",{src:a,onload:c});m.head.appendChild(a);return!0},loadScripts:(a,c)=>{var b=m.scripts[0];const f="async"in b;b=b.readyState;const d=m.head;let e=a.length;const g=[],h=()=>{e--;0===e&&c&&c()},k=()=>{let l;for(;g[0]&&"loaded"===
g[0].readyState;)l=g.shift(),l.onreadystatechange=null,l.onerror=null,d.appendChild(l),h()};for(const l of a)if(!XF.loadedScripts[l])if(XF.loadedScripts[l]=!0,f)XF.createElement("script",{src:l,async:!1,onload:h,onerror:h},d);else if(b){const p=XF.createElement("script",{onreadystatechange:k,onerror:()=>{p.onreadystatechange=null;p.onerror=null;h()},url:l});g.push(p)}else{const p=new XMLHttpRequest;p.open("GET",l,!0);p.onload=()=>{200<=p.status&&400>p.status&&XF.createElement("script",{text:p.response},
d);h()};p.onerror=h;p.send()}!e&&c&&c()},async ajax(a,c,b={},f,d={}){"function"===typeof b&&void 0===f&&(f=b,b={});b instanceof HTMLFormElement&&(b=new FormData(b));let e=!0,g=!0,h=!0,k=!0;d.skipDefault&&(g=e=!1,delete d.skipDefault);d.skipDefaultSuccessError&&(g=!1,delete d.skipDefaultSuccessError);d.skipDefaultSuccess&&(e=!1,delete d.skipDefaultSuccess);d.skipError&&(h=!1,delete d.skipError);void 0!==d.global&&(k=d.global?!0:!1,delete d.global);const l=(r,u,y)=>{XF.trigger(m,XF.customEvent("ajax:before-success",
{request:r,response:u,status:u.status,data:y}));g&&XF.defaultAjaxSuccessError(y,u.status,u,r)||e&&XF.defaultAjaxSuccess(y,u.status,u,r)||f&&f(y,u.status,u,r)},p=(r,u,y,z=null)=>{h&&XF.defaultAjaxError(y,null==u?void 0:u.status,u,r,z)},n={"X-Requested-With":"XMLHttpRequest"};let t;var w=d.dataType||"json";delete d.dataType;let v;switch(w){case "html":v=r=>r.text();n.Accept="text/html";break;case "json":v=r=>r.json();n.Accept="application/json";break;case "xml":v=r=>r.text();n.Accept="application/xml";
break;default:throw Error(`Unsupported dataType: ${w}`);}"json"!==w&&(e=!1);b=XF.dataPush(b,"_xfResponseType",w);b=XF.dataPush(b,"_xfWithData",1);b=XF.dataPush(b,"_xfRequestUri",q.location.pathname+q.location.search);XF.config.csrf&&(b=XF.dataPush(b,"_xfToken",XF.config.csrf));"GET"===a.toUpperCase()?c+=(c.includes("?")?"&":"?")+(new URLSearchParams(b)).toString():b instanceof FormData?t=b:Array.isArray(b)?(t=XF.Serializer.serializeFormData(b),n["Content-Type"]="application/x-www-form-urlencoded"):
(t=JSON.stringify(b),n["Content-Type"]="application/json");const x=new AbortController;b=x.signal;d.signal&&d.signal.addEventListener("abort",()=>{x.abort()});delete d.signal;w="GET"===a.toUpperCase()?3E4:6E4;w=setTimeout(()=>{x.abort(new DOMException("_XF_TIMEOUT","AbortError"))},d.timeout||w);delete d.timeout;a=new Request(c,{method:a,headers:n,body:t,signal:b,...d});XF.trigger(m,XF.customEvent("ajax:send",{request:a}));k&&XF.trigger(m,"xf:action-start");try{const r=await fetch(a);let u;if(r.ok)u=
await v(r),l(a,r,u);else{u=await r.text();try{u=JSON.parse(u),l(a,r,u)}catch(y){p(a,r,u)}}XF.trigger(m,XF.customEvent("ajax:complete",{request:a,response:r,data:u}));return{request:a,response:r,data:u}}catch(r){return p(a,null,null,r),XF.trigger(m,XF.customEvent("ajax:complete",{request:a,error:r})),{request:a,error:r}}finally{clearTimeout(w),k&&XF.trigger(m,"xf:action-stop")}},ajaxAbortable(a,c,b={},f,d={}){const e=new AbortController;d.signal=e.signal;return{ajax:XF.ajax(a,c,b,f,d),controller:e}},
dataPush:(a,c,b)=>{a&&"string"!==typeof a?void 0!==a[0]?a.push({name:c,value:b}):a instanceof FormData?a.append(c,b):a[c]=b:(a=String(a),a+="&"+encodeURIComponent(c)+"="+encodeURIComponent(b));return a},defaultAjaxSuccessError:(a,c,b,f)=>{if("object"!==typeof a)return XF.alert("Response was not JSON."),!0;a.html&&a.html.templateErrors&&(c="Errors were triggered when rendering this template:",a.html.templateErrorDetails&&(c+="\n* "+a.html.templateErrorDetails.join("\n* ")),console.error(c));return a.errorHtml?
(XF.setupHtmlInsert(a.errorHtml,(d,e)=>{e=e.h1||e.title||XF.phrase("oops_we_ran_into_some_problems");XF.overlayMessage(e,d)}),!0):a.errors?(XF.alert(a.errors),!0):a.exception?(XF.alert(a.exception),!0):!1},defaultAjaxSuccess:(a,c,b,f)=>{a&&"ok"===a.status&&a.message&&XF.flashMessage(a.message,3E3);return!1},defaultAjaxError:(a,c,b,f,d)=>{if(d instanceof DOMException&&"AbortError"===d.name)"_XF_TIMEOUT"===d.message&&XF.alert(XF.phrase("server_did_not_respond_in_time_try_again"));else{if(d instanceof
Error)throw d;console.error("Error: "+a);XF.alert(XF.phrase("oops_we_ran_into_some_problems_more_details_console"))}},activate:a=>{XF.addExtraPhrases(a);XF.IgnoreWatcher.refresh(a);XF.Element.initialize(a);XF.DynamicDate.refresh(a);XF.ExpandableContent.checkSizing(a);XF.UnfurlLoader.activateContainer(a);XF.KeyboardShortcuts.initializeElements(a);XF.FormInputValidation.initializeElements(a);XF.LazyHandlerLoader.loadLazyHandlers(a);q.FB&&setTimeout(()=>FB.XFBML.parse(a),0);XF.trigger(m,XF.customEvent("xf:reinit",
{element:a}))},activateAll:a=>{Array.from(a).forEach(c=>XF.activate(c))},getDefaultFormData:(a,c,b,f)=>{let d,e;c&&c.hasAttribute("name")&&(e=c.getAttribute("name"));b&&"multipart/form-data"===a.getAttribute("enctype")&&console.error("JSON serialized forms do not support the file upload-style enctype.");if(q.FormData&&!b)d=new FormData(a),e&&d.append(e,c.getAttribute("value")||e),a.querySelectorAll('input[type="file"]').forEach(g=>{const h=g.files;if("undefined"!==typeof h&&0===h.length)try{d.delete(g.getAttribute("name"))}catch(k){}});
else{if(b){a=a.elements;let g;const h=[],k=[];if(f){"string"===typeof f&&(f=f.split(","));const l=[];f.forEach((p,n)=>{"number"===typeof n?l.push(XF.regexQuote(p.trim())):l.push(XF.regexQuote(n.trim()))});l.length&&(g=new RegExp("^("+l.join("|")+")(\\[|$)"))}Array.from(a).forEach(l=>{const p=l.name;p&&"_xf"!==p.substring(0,3)?!g||g.test(p)?h.push(l):k.push(l):k.push(l)});d=XF.Serializer.serializeArray(k);f=XF.Serializer.serializeJSON(h);d.unshift({name:b,value:JSON.stringify(f)})}else d=XF.Serializer.serializeArray(a);
e&&d.push({name:e,value:e})}return d},scriptMatchRegex:/<script([^>]*)>([\s\S]*?)<\/script>/ig,setupHtmlInsert:(a,c,b)=>{"string"===typeof a&&(a={content:a});if("object"==typeof a&&a.content){if(b&&a.content&&!a.js){let f=a.content;a.js=[];let d;for(;d=/<script[^>]*src="([^"]+)"[^>]*><\/script>/i.exec(f);)a.js.push(d[1]),f=f.substring(d.index+d[0].length)}XF.Loader.load(a.js,a.css,()=>{const f=a.jsInline||[];var d=a.content;var e="string"==typeof d;if(a.cssInline)for(var g of a.cssInline)XF.createElement("style",
{textContent:g},m.head);if(e&&(d=d.trim(),!b))for(;e=XF.scriptMatchRegex.exec(d);){g=!1;const l=e[1].match(/(^|\s)type=("|'|)([^"' ;]+)/);if(l)switch(l[3].toLowerCase()){case "text/javascript":case "text/ecmascript":case "application/javascript":case "application/ecmascript":g=!0}else g=!0;g&&(f.push(e[2]),d=d.replace(e[0],""))}let h=XF.createElementFromString(d);if(h){h.querySelectorAll("noscript").forEach(l=>{l.parentNode.removeChild(l)});if(c instanceof HTMLElement){const l=c;c=p=>{l.innerHTML=
"";l.append(p);XF.activate(l)}}if("function"!==typeof c)console.error("onReady was not a function");else{var k=!1;d=(l,p)=>{if(!k){k=!0;for(const n of f)eval(n);a.jsState&&(XF.config.jsState=XF.applyJsState(XF.config.jsState,a.jsState));l||(p&&(h=p),XF.activate(h))}};!1!==c(h,a,d)&&d()}}})}else console.error("Was not provided an object or HTML content")},alert:(a,c,b,f)=>{let d=a;"object"==typeof a&&(d="<ul>",Object.keys(a).forEach(e=>{d+="<li>"+a[e]+"</li>"}),d+="</ul>",d='<div class="blockMessage">'+
d+"</div>");c||(c="error");if(!b)switch(c){case "error":b=XF.phrase("oops_we_ran_into_some_problems");break;default:b=""}return XF.overlayMessage(b,d)},getOverlayHtml:a=>{var c={dismissible:!0,title:null,url:null};"object"===typeof a&&a.constructor===Object&&(c={...c,...a},a.html&&(a=a.html));if("string"==typeof a)a=XF.createElementFromString(a);else if(!(a instanceof HTMLElement))throw Error("Can only create an overlay with html provided as a string or DOM Element");if(!a.classList.contains("overlay")){var b=
c.title;if(!b){var f=a.querySelector(".overlay-title");f&&(b=f.textContent,f.parentNode.removeChild(f))}b||(b=m.querySelector("title").textContent);(f=a.querySelector(".overlay-content"))&&(a=f);f=XF.createElement("div",{className:"overlay",tabIndex:"-1",dataset:{url:c.url}});b=XF.createElement("div",{className:"overlay-title",innerHTML:b});c.dismissible&&(c=XF.createElement("a",{className:"overlay-titleCloser js-overlayClose",role:"button",tabIndex:0,ariaLabel:XF.phrase("close")}),b.prepend(c));
c=XF.createElement("div",{className:"overlay-content"});XF.isCreatedContainer(a)?c.append(...a.childNodes):c.append(a);f.appendChild(b);f.appendChild(c);a=f}m.body.appendChild(a);return a},createMultiBar:(a,c,b,f)=>{},getMultiBarHtml:a=>{var c={dismissible:!0,title:null};"object"===typeof a&&a.constructor===Object&&(XF.extendObject(c,a),a.html&&(a=a.html));if("string"==typeof a)a=XF.createElementFromString(a);else if(!(a instanceof HTMLElement))throw Error("Can only create an action bar with html provided as a string or DOM Element");
c=XF.createElement("div",{className:"multiBar",tabIndex:-1});const b=XF.createElement("div",{className:"multiBar-inner",innerHTML:"<span>Hello there.</span>"});b.appendChild(a);c.appendChild(b);m.body.appendChild(c);return c},overlayMessage:(a,c)=>{if("string"==typeof c)c=XF.createElementFromString(c),c instanceof HTMLElement||(c=XF.createElement("div",{innerText:c.textContent}));else if(!(c instanceof HTMLElement))throw Error("Can only create an overlay with html provided as a string or DOM Element");
if(!c.matches(".block, .blockMessage")&&!c.querySelector(".block, .blockMessage")){const b=XF.createElement("div",{className:"blockMessage"});b.appendChild(c);c=b}c=XF.getOverlayHtml({title:a,html:c});return XF.showOverlay(c,{role:"alertdialog"})},flashMessage:(a,c,b)=>{a=XF.createElementFromString('<div class="flashMessage-content">'+a+"</div>");const f=XF.createElementFromString('<div class="flashMessage"></div>');f.appendChild(a);m.body.appendChild(f);XF.Transition.addClassTransitioned(f,"is-active");
setTimeout(()=>{XF.Transition.removeClassTransitioned(f,"is-active",()=>{f.parentNode.removeChild(f);b&&b()})},Math.max(500,c))},htmlspecialchars:a=>String(a).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),regexQuote:a=>String(a).replace(/([\\.+*?[^\]$(){}=!<>|:])/g,"\\$1"),stringTranslate:(a,c)=>{a=a.toString();for(const b of Object.keys(c)){const f=new RegExp(XF.regexQuote(b,"g"));a=a.replace(f,c[b])}return a},stringHashCode:a=>{let c=0,b,f,d;if(0===a.length)return c;
b=0;for(d=a.length;b<d;b++)f=a.charCodeAt(b),c=(c<<5)-c+f,c|=0;return c},getUniqueCounter:()=>{const a=XF.counter;XF.counter++;return a},canonicalizeUrl:a=>{if(a.match(/^[a-z]+:/i))return a;if(0===a.indexOf("/")){const c=XF.config.url.fullBase.match(/^([a-z]+:(\/\/)?[^/]+)\//i);return c?c[1]+a:a}return XF.config.url.fullBase+a},isRedirecting:!1,redirect:a=>{XF.isRedirecting=!0;if(XF.JobRunner.isBlockingJobRunning())return XF.on(m,"job:blocking-complete",()=>XF.redirect(a),{once:!0}),!1;a=XF.canonicalizeUrl(a);
const c=q.location;if(a===c.href)c.reload();else{q.location=a;const b=a.split("#"),f=c.href.split("#");b[1]&&b[0]===f[0]&&c.reload()}return!0},getAutoCompleteUrl:()=>"admin"===XF.getApp()?XF.canonicalizeUrl("admin.php?users/find"):XF.canonicalizeUrl("index.php?members/find"),applyDataOptions:(a,c,b)=>{let f={},d,e,g;for(const h of Object.keys(a))if(f[h]=a[h],XF.hasOwn(c,h)){d=c[h];e=typeof d;g=!0;switch(typeof f[h]){case "object":if("string"===e)try{d=JSON.parse(d)}catch(k){}break;case "string":"string"!==
e&&(d=String(d));break;case "number":"number"!==e&&(d=Number(d),isNaN(d)&&(g=!1));break;case "boolean":"boolean"!==e&&(d=XF.toBoolean(d))}g&&(f[h]=d)}XF.isPlainObject(b)&&(f=XF.extendObject(f,b));return f},watchInputChangeDelayed:(a,c,b=200)=>{let f=a.value,d;XF.on(a,"input",e=>{clearTimeout(d);d=setTimeout(()=>{f!==a.value&&(f=a.value,c(e))},b)})},insertIntoEditor:(a,c,b,f)=>XF.modifyEditorContent(a,d=>{d.insertContent(c)},d=>{XF.insertIntoTextBox(d,b)},f),replaceEditorContent:(a,c,b,f)=>XF.modifyEditorContent(a,
d=>{d.replaceContent(c)},d=>{XF.replaceIntoTextBox(d,b)},f),clearEditorContent:(a,c)=>{c=XF.replaceEditorContent(a,"","",c);XF.trigger(a,"draft:sync");return c},modifyEditorContent:(a,c,b,f)=>{a=XF.getEditorInContainer(a,f);return a?a.ed?(a.isBbCodeView()?(c=a.ed.bbCode.getTextArea(),b(c),XF.trigger(c,"autosize")):c(a),!0):a instanceof HTMLElement&&"TEXTAREA"===a.nodeName?(b(a),XF.trigger(a,"autosize"),!0):!1:!1},getEditorInContainer:(a,c)=>{if(a.classList.contains("js-editor")){if(c&&a.matches(c))return null}else{a=
Array.from(a.querySelectorAll(".js-editor"));c&&(a=a.filter(f=>!f.matches(c)));if(!a.length)return null;a=a[0]}const b=XF.Element.getHandler(a,"editor");return b?b:"TEXTAREA"===a.nodeName?a:null},focusEditor:(a,c)=>{a=XF.getEditorInContainer(a,c);return a?XF.Editor&&a instanceof XF.Editor?(a.isInitialized()&&a.scrollToCursor(),!0):a instanceof HTMLElement&&"TEXTAREA"===a.tagName?(XF.autofocus(a),!0):!1:!1},insertIntoTextBox:(a,c)=>{const b=a.scrollTop,f=a.selectionStart;var d=a.selectionEnd;const e=
a.value,g=e.substring(0,f);d=e.substring(d,e.length);a.value=g+c+d;XF.trigger(a,"autosize");a.selectionStart=f+c.length;a.selectionEnd=a.selectionStart;a.scrollTop=b;XF.autofocus(a)},replaceIntoTextBox:(a,c)=>{a.value=c;XF.trigger(a,"autosize")},isElementWithinDraftForm:a=>{a=a.closest("form");return null!==a&&a.hasAttribute("data-xf-init")&&a.getAttribute("data-xf-init").includes("draft")},logRecentEmojiUsage:a=>{if(!XF.Cookie.isGroupConsented("optional"))return[];a=a.trim();const c=XF.Feature.has("hiddenscroll")?
12:11;var b=XF.Cookie.get("emoji_usage");b=b?b.split(","):[];const f=b.indexOf(a);-1!==f&&b.splice(f,1);b.push(a);b.length>c&&(b=b.reverse().slice(0,c).reverse());XF.Cookie.set("emoji_usage",b.join(","),new Date((new Date).setFullYear((new Date).getFullYear()+1)));XF.trigger(m,"recent-emoji:logged")},getRecentEmojiUsage:()=>{const a=XF.Cookie.get("emoji_usage");return(a?a.split(","):[]).reverse()},getFixedOffsetParent:a=>{for(;a&&1===a.nodeType;){if("fixed"===getComputedStyle(a).position)return a;
a=a.parentNode}return m.documentElement},getFixedOffset:a=>{const c=a.getBoundingClientRect(),b=XF.getFixedOffsetParent(a).getBoundingClientRect();return"html"===a.nodeName.toLowerCase()?{top:c.top,left:c.left}:{top:c.top-b.top,left:c.left-b.left}},autoFocusWithin:(a,c,b)=>{let f=a.querySelector(c||"[autofocus]");if(!f){if(!f&&XF.NavDeviceWatcher.isKeyboardNav()){c=a.querySelectorAll("a, button, input, textarea, select, [tabindex]");for(var d of c)if(d.offsetWidth&&d.offsetHeight&&!d.disabled&&!d.hasAttribute("data-no-auto-focus")){f=
d;break}}if(!f&&(d=a.querySelector("form:not([data-no-auto-focus])"))){d=d.querySelectorAll("input, textarea, select, button, .tagify__input");for(const e of d)if(e.offsetWidth&&e.offsetHeight&&!e.disabled&&!e.classList.contains("select2-hidden-accessible")){f=e;break}}!f&&b&&(f=b);f||(a.setAttribute("tabindex","-1"),f=a)}a=[];b=f.parentNode;do a.push({el:b,left:b.scrollLeft,top:b.scrollTop});while(b=b.parentNode);XF.on(f,"focus",()=>{XF.on(q,"resize",()=>{setTimeout(()=>{XF.isElementVisible(f)||
(f.scrollIntoView({behavior:"smooth",block:"end",inline:"nearest"}),XF.off(q,"resize"))},50)})});XF.autofocus(f);for(const e of a)a=e.el,a.scrollLeft!==e.left&&(a.scrollLeft=e.left),a.scrollTop!==e.top&&(a.scrollTop=e.top)},display:(a,c=null)=>{c?a.style.display=c:(a.style.removeProperty("display"),null!==c||a.offsetWidth||(c=q.getComputedStyle(a),"none"===c.display&&(a.style.display=c.getPropertyValue("--js-display"))))},bottomFix:a=>{const c=m.querySelector(".js-bottomFixTarget");c?c.append(a):
(a.style.position="fixed",a.style.bottom="0",m.body.append(a))},addFixedMessage:(a,c)=>{let b;b=XF.createElement("div",{className:"fixedMessageBar"});const f=XF.createElement("div",{className:"fixedMessageBar-inner"},b);XF.createElement("div",{className:"fixedMessageBar-message",innerHTML:a},f);a=XF.createElement("a",{className:"fixedMessageBar-close",role:"button",tabIndex:0,ariaLabel:XF.phrase("close"),dataset:{close:!0}},f);if(c){c.class&&(b.classList.add(...c.class.split(" ")),delete c.class);
for(const d of Object.keys(c))b.setAttribute(d,c[d])}XF.on(a,"click",()=>{b.classList.remove("is-active");XF.on(b,"transitionend",()=>{b.parentNode.removeChild(b)})});XF.bottomFix(b);b.classList.add("is-active")},_measureScrollBar:null,measureScrollBar:(a,c)=>{c="height"===c||"h"===c?"h":"w";if(a||null===XF._measureScrollBar){const b=XF.createElement("div",{className:"scrollMeasure"},a||m.body),f={w:b.offsetWidth-b.clientWidth,h:b.offsetHeight-b.clientHeight};b.parentNode.removeChild(b);a||(XF._measureScrollBar=
f);return f[c]}return XF._measureScrollBar[c]},windowHeight:()=>XF.browser.ios||XF.browser.android?q.innerHeight:m.documentElement.clientHeight,pageLoadScrollFix:()=>{if(!XF.Feature.has("overflowanchor")&&q.location.hash){var a=!1,c=()=>{if(!a){var b=q.location.hash.replace(/[^a-zA-Z0-9_-]/g,"");(b=b?m.getElementById(b):null)&&b.scrollIntoView(!0)}};"complete"===m.readyState?setTimeout(c,0):(setTimeout(()=>{XF.on(q,"scroll",b=>{a=!0},{once:!0})},100),XF.on(q,"load",c,{once:!0}))}},applyJsState:(a,
c)=>{a=a||{};if(!c)return a;let b;for(b of Object.keys(c))a[b]||XF.hasOwn(XF.jsStates,b)&&XF.jsStates[b]()&&(a[b]=!0);return a},jsStates:{facebook:()=>this.fbSdk(),fbSdk:()=>{XF.createElement("div",{id:"fb-root"},m.body);q.fbAsyncInit=()=>{FB.init({version:"v2.7",xfbml:!0})};XF.loadScript("https://connect.facebook.net/"+XF.getLocale()+"/sdk.js");return!0},twitter:()=>{q.twttr=(()=>{const a=q.twttr||{};XF.loadScript("https://platform.twitter.com/widgets.js")&&(a._e=[],a.ready=c=>{a._e.push(c)});return a})();
return!0},flickr:()=>{XF.loadScript("https://embedr.flickr.com/assets/client-code.js");return!0},instagram:()=>{XF.loadScript("https://www.instagram.com/embed.js");return!0},tiktok:()=>{XF.loadScript("https://www.tiktok.com/embed.js",()=>{XF.on(m,"embed:loaded",a=>{a=Array.from(m.querySelectorAll("blockquote.tiktok-embed"));"undefined"!==typeof tiktokEmbed&&a.length&&tiktokEmbed.lib.render(a)})});return!0},reddit:()=>{XF.loadScript("https://embed.reddit.com/widgets.js",()=>{XF.on(m,"xf:reinit",a=>
{q.rembeddit&&rembeddit.init()})});return!0},reddit_comment(){return this.reddit()},imgur:()=>{q.imgurEmbed||(q.imgurEmbed={tasks:m.querySelectorAll("blockquote.imgur-embed-pub").length});XF.loadScript("//s.imgur.com/min/embed-controller.js",()=>{XF.on(m,"xf:reinit",a=>{imgurEmbed.tasks+=m.querySelectorAll("blockquote.imgur-embed-pub").length;for(a=0;a<imgurEmbed.tasks;a++)imgurEmbed.createIframe(),imgurEmbed.tasks--})});return!0},pinterest:()=>{XF.loadScript("//assets.pinterest.com/js/pinit.js",
()=>{XF.on(m,"xf:reinit",a=>{PinUtils.build(a.target)})});return!0}},getLocale:()=>{let a=m.querySelector("html").getAttribute("lang").replace("-","_");a||(a="en_US");return a},supportsPointerEvents:()=>"PointerEvent"in q,isEventTouchTriggered(a){if(a){if(a.xfPointerType)return"touch"===a.xfPointerType;if(a=a.originalEvent){if(this.supportsPointerEvents()&&a instanceof PointerEvent)return"touch"===a.pointerType;if(a.sourceCapabilities)return a.sourceCapabilities.firesTouchEvents}}return XF.Feature.has("touchevents")},
getElEffectiveZIndex:a=>{let c=parseInt(q.getComputedStyle(a).getPropertyValue("z-index"),10)||0;for(;a.parentElement;){a=a.parentElement;const b=parseInt(q.getComputedStyle(a).getPropertyValue("z-index"),10);b>c&&(c=b)}return c},setRelativeZIndex(a,c,b,f){f||(f=6);c=this.getElEffectiveZIndex(c);f&&f>c&&(c=f);if(null===b||"undefined"===typeof b)b=0;a=Array.isArray(a)?a:[a];f=a.length;for(let d=0;d<f;d++){const e=a[d];c||b?(XF.DataStore.get(e,"baseZIndex")||XF.DataStore.set(e,"baseZIndex",parseInt(q.getComputedStyle(e).getPropertyValue("z-index"),
10)||0),e.style.zIndex=XF.DataStore.get(e,"baseZIndex")+b+c):e.style.zIndex=""}},adjustHtmlForRte:a=>{a=a.replace(/<img[^>]+>/ig,c=>{if(c.match(/class="([^"]* )?smilie([ "])/)){const b=c.match(/alt="([^"]+)"/);if(b)return b[1]}return c});a=a.replace(/([\w\W]|^)<a\s[^>]*data-user-id="\d+"\s+data-username="([^"]+)"[^>]*>([\w\W]+?)<\/a>/gi,(c,b,f,d)=>b+("@"===b?"":"@")+d.replace(/^@/,""));a=a.replace(/(<img\s[^>]*)src="[^"]*"(\s[^>]*)data-url="([^"]+)"/gi,(c,b,f,d)=>b+'src="'+d+'"'+f);a=XF.createElement("div",
{innerHTML:a});a.querySelectorAll("blockquote").forEach(c=>{["attributes","quote","source"].forEach(f=>{c.getAttribute("data-"+f)||c.removeAttribute("data-"+f)});const b=c.querySelector(".bbCodeBlock-title");b&&c.removeChild(b)});return a=a.innerHTML},requestAnimationTimeout:(a,c=0)=>{const b=h=>q.setTimeout(h,1E3/60),f=q.requestAnimationFrame||b,d=Date.now(),e={},g=()=>{Date.now()-d>=c?a():e.id=f(g)};e.id=f(g);e.cancel=()=>{(q.cancelAnimationFrame||q.clearTimeout)(e.id)};return e},proxy:(a,c,...b)=>
{let f;if("string"===typeof c)f=a[c].bind(a);else if(XF.isFunction(a))f=a.bind(c);else return;return(...d)=>f(...b,...d)},_localLoadTime:null,getLocalLoadTime:()=>{if(XF._localLoadTime)return XF._localLoadTime;var a;let c=XF.config.time,b=m.querySelector("#_xfClientLoadTime");var f=b.value;f&&f.length&&(f=f.split(","),2===f.length&&parseInt(f[1],10)===c.now&&(a=parseInt(f[0],10)));a||(q.performance&&(f=q.performance.getEntriesByType("navigation"),0<f.length&&(a=f[0],a=Math.floor((a.requestStart+a.responseStart)/
2E3))),a||(a=Math.floor((new Date).getTime()/1E3)-1),b.value=a+","+c.now);return XF._localLoadTime=a},getFutureDate:(a,c)=>{let b=864E5;switch(c){case "year":b*=365;break;case "month":b*=30}b*=a;return new Date(Date.now()+b)},smoothScroll:(a,c,b,f)=>{let d;a instanceof HTMLElement||"string"===typeof a?((b=a instanceof HTMLElement?a:m.querySelector(a))?(d=b.getBoundingClientRect().top+q.scrollY,a=parseInt(getComputedStyle(m.documentElement).getPropertyValue("scroll-padding-top"),10),isNaN(a)||(d-=
a)):d=null,!0===c&&(c=b?"#"+b.id:null)):"number"===typeof a&&(b=null,d=a);if(null===d)console.error("Invalid scroll position");else{0>d&&(d=0);a=()=>{c&&"pushState"in q.history&&q.history.pushState({},"",q.location.toString().replace(/#.*$/,"")+c)};if(f&&(b=m.documentElement,f=b.scrollTop,b=f+b.clientHeight,d>=f&&d<=b)){a();return}try{a(),q.scrollTo({top:d,behavior:"smooth"})}catch(e){c&&(q.location.hash=c)}}}});XF.create=a=>{const c=function(...b){this.__construct(...b)};c.prototype=Object.create(a);
c.prototype.__construct||(c.prototype.__construct=()=>{});return c.prototype.constructor=c};XF.extend=(a,c)=>{const b=function(...d){this.__construct(...d)};let f;b.prototype=Object.create(a.prototype);b.prototype.__construct||(b.prototype.__construct=()=>{});b.prototype.constructor=b;if("object"==typeof c){if("object"==typeof c.__backup){a=c.__backup;for(f of Object.keys(a)){if(b.prototype[a[f]])throw Error("Method "+a[f]+" already exists on object. Aliases must be unique.");b.prototype[a[f]]=b.prototype[f]}delete c.__backup}for(f of Object.keys(c))b.prototype[f]=
c[f]}return b};XF.classToConstructor=a=>{let c=q;const b=a.split(".");let f;for(f=0;f<b.length;f++)c=c[b[f]];return"function"!=typeof c?(console.error("%s is not a function.",a),!1):c};XF.Cookie={get(a){return(a=(new RegExp("(^| )"+XF.config.cookie.prefix+a+"=([^;]+)(;|$)")).exec(m.cookie))?decodeURIComponent(a[2]):null},getEncodedCookieValue(a,c,b,f){const d=XF.config.cookie;return d.prefix+a+"="+encodeURIComponent(c)+(void 0===b?"":";expires="+b.toUTCString())+(d.path?";path="+d.path:"")+(d.domain?
";domain="+d.domain:"")+(f?";samesite="+f:"")+(d.secure?";secure":"")},getEncodedCookieValueSize(a,c,b,f){return this.getEncodedCookieValue(a,c,b,f).length},set(a,c,b,f){m.cookie=this.getEncodedCookieValue(a,c,b,f)},getJson(a){a=this.get(a);if(!a)return{};try{return JSON.parse(a)||{}}catch(c){return{}}},setJson(a,c,b){this.set(a,JSON.stringify(c),b)},remove(a){const c=XF.config.cookie;m.cookie=c.prefix+a+"="+(c.path?"; path="+c.path:"")+(c.domain?"; domain="+c.domain:"")+(c.secure?"; secure":"")+
"; expires=Thu, 01-Jan-70 00:00:01 GMT"},removeMultiple(a){for(const c of a)this.remove(c)},supportsExpiryDate(){return!0},getConsentMode(){return XF.config.cookie.consentMode},isGroupConsented(a){return"_required"===a||"_unknown"===a?!0:XF.config.cookie.consented.includes(a)},isThirdPartyConsented(a){return this.isGroupConsented("_third_party")}};XF.LocalStorage={getKeyName(a){return XF.config.cookie.prefix+a},get(a){let c=null;try{c=q.localStorage.getItem(this.getKeyName(a))}catch(b){}if(null===
c){const b=this.getFallbackValue();b&&XF.hasOwn(b,a)&&(c=b[a])}return c},getJson(a){a=this.get(a);if(!a)return{};try{return JSON.parse(a)||{}}catch(c){return{}}},set(a,c,b){try{q.localStorage.setItem(this.getKeyName(a),c)}catch(f){b&&(b=this.getFallbackValue(),b[a]=c,this.updateFallbackValue(b))}},setJson(a,c,b){this.set(a,JSON.stringify(c),b)},remove(a){try{q.localStorage.removeItem(this.getKeyName(a))}catch(b){}const c=this.getFallbackValue();c&&XF.hasOwn(c,a)&&(delete c[a],this.updateFallbackValue(c))},
removeMultiple(a){for(const c of a)this.remove(c)},getFallbackValue(){let a=XF.Cookie.get("ls");if(a)try{a=JSON.parse(a)}catch(c){a={}}return a||{}},updateFallbackValue(a){XF.isEmptyObject(a)?XF.Cookie.remove("ls"):XF.Cookie.set("ls",JSON.stringify(a))},supportsExpiryDate(){return!1}};XF.Animate=(()=>{let a=!0;const c={linear:f=>f,quadratic:f=>f**2,swing:f=>.5-Math.cos(f*Math.PI)/2,circ:f=>1-Math.sin(Math.acos(f)),back:(f,d)=>f**2*((d+1)*f-d),bounce:f=>{let d=0,e=1;for(;;d+=e,e/=2)if(f>=(7-4*d)/11)return-((11-
6*d-11*f)/16)+e**2},elastic:(f,d)=>(10*(f-1))**2*Math.cos(20*Math.PI*d/3*f)},b=(f,d)=>{d={speed:XF.config.speed.normal,delta:c.swing,complete:()=>{},start:()=>{},finish:()=>{},...d};a||(d.speed=0);let e=d.start(f);if(!1===e)d.complete();else{void 0===e&&(e={});var g=new Date,h=()=>{var k=new Date-g;k=0<d.speed?Math.min(1,k/d.speed):1;const l=d.delta(k);e={...e,...d.step(f,{...e,delta:l})};1===k?(d.finish(f,e),setTimeout(d.complete,0)):XF.requestAnimationTimeout(h)};return XF.requestAnimationTimeout(h)}};
return{enable:()=>{a=!0},disable:()=>{a=!1},easing:c,animate:b,fadeOut:(f,d={})=>b(f,{...d,start:e=>{if("none"===q.getComputedStyle(e).display)return!1},step:(e,{delta:g})=>{e.style.opacity=(1-g).toString()},finish:e=>{XF.display(e,"none");e.style.opacity=""}}),fadeIn:(f,d={})=>b(f,{...d,start:e=>{if("none"!==q.getComputedStyle(e).display)return!1;XF.display(e)},step:(e,{delta:g})=>{e.style.opacity=g.toString()},finish:e=>{e.style.opacity=""}}),fadeTo:(f,d={})=>b(f,{...d,start:e=>{const g=Number(q.getComputedStyle(e).opacity);
var h;const k=null!=(h=d.opacity)?h:1;if(g===k)return!1;h=k-g;XF.display(e);return{initialOpacity:g,deltaOpacity:h}},step:(e,{delta:g,initialOpacity:h,deltaOpacity:k})=>{e.style.opacity=(h+k*g).toString()}}),slideUp:(f,d={})=>b(f,{...d,start:e=>{if("none"===q.getComputedStyle(e).display)return!1;const g=e.offsetHeight;e.style.overflow="hidden";return{initialHeight:g}},step:(e,{delta:g,initialHeight:h})=>{e.style.height=h*(1-g)+"px"},finish:e=>{XF.display(e,"none");e.style.height="";e.style.overflow=
""}}),slideDown:(f,d={})=>b(f,{...d,start:e=>{if("none"!==q.getComputedStyle(e).display)return!1;XF.display(e);const g=e.offsetHeight;e.style.overflow="hidden";return{targetHeight:g}},step:(e,{delta:g,targetHeight:h})=>{e.style.height=h*g+"px"},finish:e=>{e.style.height="";e.style.overflow=""}}),fadeUp:(f,d={})=>b(f,{...d,start:e=>{if("none"===q.getComputedStyle(e).display)return!1;const g=e.offsetHeight;e.style.overflow="hidden";return{initialHeight:g}},step:(e,{delta:g,initialHeight:h})=>{e.style.height=
h*(1-g)+"px";e.style.opacity=(1-g).toString()},finish:e=>{XF.display(e,"none");e.style.height="";e.style.opacity="";e.style.overflow=""}}),fadeDown:(f,d={})=>b(f,{...d,start:e=>{if("none"!==q.getComputedStyle(e).display)return!1;XF.display(e);const g=e.offsetHeight;e.style.overflow="hidden";return{targetHeight:g}},step:(e,{delta:g,targetHeight:h})=>{e.style.height=h*g+"px";e.style.opacity=g.toString()},finish:e=>{e.style.height="";e.style.opacity="";e.style.overflow=""}})}})();XF.Transition=(()=>
{const a=d=>{if(!(d&&d instanceof Element))return 0;d=q.getComputedStyle(d).transitionDuration;var e=0;if(d&&(d=/^(\+|-|)([0-9]*\.[0-9]+|[0-9]+)(ms|s)/i.exec(d))){e="-"===d[1]?-1:1;const g=parseFloat(d[2]);d="ms"===d[3].toLowerCase()?1:1E3;e=e*g*d}return e},c=(d,e,g)=>{const h=[];XF.isFunction(e)&&(e=e.call(d,0,d.className));e=e.trim().split(/\s+/);d=" "+d.className+" ";for(const k of e)((e=0<=d.indexOf(" "+k+" "))&&!g||!e&&g)&&h.push(k);return h},b={height:"height padding-top padding-bottom margin-top margin-bottom border-top-width border-bottom-width".split(" "),
width:"width padding-left padding-right margin-left margin-right border-right-width border-left-width".split(" ")},f=(d,e,g,h,k)=>{k=k?0:a(d);const l=e?"add":"remove",p=e?"remove":"add";e=c(d,g,e?!0:!1);var n=()=>{h&&setTimeout(()=>{h.call(d,XF.customEvent("transitionend"))},0)};if(e.length)if(0>=k)d.classList[l](...e),n();else{d.classList.contains("is-transitioning")&&XF.trigger(d,"transitionend");d.classList.add("is-transitioning");if(q.getComputedStyle(d).getPropertyValue("transition-property").match(/(^|\s|,)-xf-(width|height)($|\s|,)/)){n=
RegExp.$2;const r=b[n];var t=q.getComputedStyle(d);const u={};for(var w of r)u[w]=t.getPropertyValue(w);w=u[n];const y="transition."+n;let z=XF.DataStore.get(d,y);const A=d.style;t=A.transition||"";z||(z={},r.forEach(B=>{z[B]=A[B]||""}));const D=(B,C)=>{const E=q.getComputedStyle(B);let F;switch(C){case "width":F=B.clientWidth-parseFloat(E.paddingLeft)-parseFloat(E.paddingRight);break;case "height":F=B.clientHeight-parseFloat(E.paddingTop||"0")-parseFloat(E.paddingBottom||"0")}return F};if(0===D(d,
n)){w="0";for(var v of Object.keys(u))u[v]="0"}XF.DataStore.set(d,y,z);d.style.transition="none";d.classList[l](...e);const H=q.getComputedStyle(d);v={};for(var x of r)v[x]=H.getPropertyValue(x);x=v[n];if(0===D(d,n)){x="0";for(let B of Object.keys(v))v[B]="0"}d.classList[p](...e);if(w!==x){let B=h;for(let C of Object.keys(u))d.style[C]=u[C];d.offsetWidth;d.style.transition=t;for(let C of Object.keys(v))d.style[C]=v[C];h=(...C)=>{d.style.cssText=XF.DataStore.get(d,y);XF.DataStore.remove(d,y);B&&B(...C)}}else d.style.transition=
t}XF.onTransitionEnd(d,k,(...r)=>{d.classList.remove("is-transitioning");h&&h(...r)});d.classList[l](g)}else n()};return{addClassTransitioned:(d,e,g,h)=>{const k=Array.isArray(d)?d:[d],l=k.length;for(let p=0;p<l;p++)f(k[p],!0,e,g,h);return d},removeClassTransitioned:(d,e,g,h)=>{const k=Array.isArray(d)?d:[d],l=k.length;for(let p=0;p<l;p++)f(k[p],!1,e,g,h);return d},toggleClassTransitioned:(d,e,g,h,k)=>{"boolean"!==typeof g&&"undefined"===typeof h&&(h=g,g=null);const l="boolean"===typeof g,p=Array.isArray(d)?
d:[d],n=p.length;for(let t=0;t<n;t++){const w=p[t];let v;v=l?g:w.classList.contains(e)?!1:!0;f(w,v,e,h,k)}return d}}})();XF.CrossTab=(()=>{const a={};let c=!1,b;const f=d=>{var e=XF.LocalStorage.getKeyName("__crossTab");if(d.key===e){try{var g=JSON.parse(d.newValue)}catch(h){return}if(g&&g.event&&(d=g.event,g=g.data||null,e=a[d])){b=d;for(const h of e)h(g);b=null}}};return{on:(d,e)=>{a[d]||(a[d]=[]);a[d].push(e);c||(c=!0,XF.on(q,"storage",f))},trigger:(d,e,g)=>{!g&&b&&b===d||XF.LocalStorage.setJson("__crossTab",
{event:d,data:e,_:new Date+Math.random()})}}})();XF.Breakpoint=(()=>{let a=null;const c=["narrow","medium","wide","full"],b=e=>{for(const g of c){if(e===g)break;if(a===g)return!0}return!1},f=e=>{let g=!1;for(const h of c)if(e===h)g=!0;else if(a===h)return g;return!1},d=()=>{const e=q.getComputedStyle(m.querySelector("html"),":after").getPropertyValue("content").replace(/"/g,"");a?e!==a&&(a=e,XF.trigger(m,"breakpoint:change")):a=e;return a};d();XF.on(q,"resize",d,{passive:!0});return{current:()=>a,
refresh:d,isNarrowerThan:b,isAtOrNarrowerThan:e=>a===e||b(e),isWiderThan:f,isAtOrWiderThan:e=>a===e||f(e)}})();XF.JobRunner=(()=>{let a=!1,c=[],b,f=null,d=0,e,g=null;const h=()=>{fetch(XF.canonicalizeUrl("job.php"),{method:"POST",headers:{Accept:"application/json"},cache:"no-store"}).then(v=>{if(!v.ok)throw Error("Network response was not ok.");return v.json()}).then(v=>{v&&v.more&&setTimeout(h,100)})},k=v=>{const {ajax:x,controller:r}=XF.ajaxAbortable("post",XF.canonicalizeUrl("job.php"),{only_ids:v},
u=>{u.more&&u.ids&&u.ids.length?(u.status&&(m.querySelector("#xfAutoBlockingJobStatus").textContent=u.status),setTimeout(()=>{k(u.ids)},0)):(l(),u.moreAuto&&setTimeout(h,100))},{skipDefault:!0});x.catch(l);e=r},l=()=>{g&&g.hide();d--;0>d&&(d=0);0===d&&(XF.trigger(m,"job:auto-blocking-complete"),w());e&&e.abort();e=null},p=()=>{f&&f.hide();c=[];a=!1;XF.trigger(m,"job:manual-complete");w();b&&b.abort();b=null},n=()=>{f||(f=t("xfManualJobStatus"));return f},t=v=>{v=XF.getOverlayHtml({title:XF.phrase("processing..."),
dismissible:!1,html:`<div class="blockMessage"><span id="${v}">${XF.phrase("processing...")}</span></div>`});return new XF.Overlay(v,{backdropClose:!1,keyboard:!1})},w=()=>{a||0<d||XF.trigger(m,"job:blocking-complete")};return{isBlockingJobRunning:()=>a||0<d,runAuto:h,runAutoBlocking:(v,x)=>{if("number"===typeof v)v=[v];else if(!Array.isArray(v))return;v.length&&(d++,g||(g=t("xfAutoBlockingJobStatus")),g.show(),x||(x=XF.phrase("processing...")),m.querySelector("#xfAutoBlockingJobStatus").textContent=
x,k(v))},runManual:v=>{const x=XF.config.job.manualUrl;if(x&&(null===v?c=null:(c=c||[],"number"===typeof v?c.push(v):Array.isArray(v)&&(c=[...c,...v])),!a)){a=!0;n().show();var r=y=>{const {ajax:z,controller:A}=XF.ajaxAbortable("post",x,y?{only_id:y}:null,D=>{D.jobRunner?(m.querySelector("#xfManualJobStatus").textContent=D.jobRunner.status||XF.phrase("processing..."),setTimeout(()=>{r(y)},0)):u()},{skipDefault:!0});z.catch(p);b=A},u=()=>{Array.isArray(c)&&0===c.length?p():r(c?c.shift():null)};u()}},
stopManual:p,getManualOverlay:n}})();XF.DataStore=(()=>{const a=new WeakMap;return{set:(c,b,f)=>{a.has(c)||a.set(c,{});a.get(c)[b]=f},get:(c,b)=>(c=a.get(c))?c[b]:null,remove:(c,b)=>{(c=a.get(c))&&delete c[b]}}})();XF.Serializer=(()=>{const a=(b,f,d)=>{if(void 0===b)throw Error("ArgumentError: param 'serialized' expected to be an object or array, found undefined");if(!f||0===f.length)throw Error("ArgumentError: param 'keys' expected to be an array with at least one element");var e=f[0];if(1===f.length)""===
e?b.push(d):b[e]=d;else{const g=f[1];if(""===e){e=b.length-1;const h=b[e];e=XF.isObject(h)&&(void 0===h[g]||2<f.length)?e:e+1}""===g?void 0!==b[e]&&Array.isArray(b[e])||(b[e]=[]):void 0!==b[e]&&XF.isObject(b[e])||(b[e]={});f=f.slice(1);a(b[e],f,d)}},c=b=>{b=b.split("[");b=b.map(f=>f.replace(/\]/g,""));""===b[0]&&b.shift();return b};return{serializeArray:b=>{const f=[];if(b instanceof HTMLFormElement)b=Array.from(b.elements);else if(b instanceof NodeList||b instanceof HTMLCollection)b=Array.from(b);
else if(!(b instanceof Array))throw Error("serializeArray expects either a form element, a NodeList/HTMLCollection of inputs, or an array of inputs");b.forEach(d=>{d.name&&!d.disabled&&"file"!==d.type&&"reset"!==d.type&&"submit"!==d.type&&"button"!==d.type&&("select-multiple"===d.type?Array.from(d.options).forEach(e=>{e.selected&&f.push({name:d.name,value:e.value})}):("checkbox"!==d.type&&"radio"!==d.type||d.checked)&&f.push({name:d.name,value:d.value}))});return f},serializeFormData:b=>b.map(f=>
`${encodeURIComponent(f.name)}=${encodeURIComponent(f.value)}`).join("&"),serializeJSON:b=>{const f={};XF.Serializer.serializeArray(b).forEach(d=>{const e=d.value;d=c(d.name);a(f,d,e)});return f}}})();XF.Loader=(()=>{const a=XF.config.css,c=XF.config.js,b=(f=[],d=[],e)=>{const g=f.filter(l=>!XF.hasOwn(c,l)),h=d.filter(l=>!XF.hasOwn(a,l));let k=(g.length?1:0)+(h.length?1:0);0===k?e&&e():(g.length&&XF.loadScripts(g,()=>{g.forEach(l=>{c[l]=!0});k--;0===k&&e&&e()}),h.length&&((f=XF.config.url.css)?(f=
f.replace("__SENTINEL__",h.join(",")),fetch(f,{headers:{Accept:"text/css"}}).then(l=>{if(!l.ok)throw Error("Network response was not ok.");return l.text()}).then(l=>{const p=XF.config.url.basePath;p&&(l=l.replace(/(url\(("|')?)([^"')]+)(("|')?\))/gi,(n,t,w,v,x,r)=>{v.match(/^([a-z]+:|\/)/i)||(v=p+v);return t+v+x}));XF.createElement("style",{textContent:l},m.head);h.forEach(n=>{a[n]=!0});k--;0===k&&e&&e()})):(console.error("No CSS URL so cannot dynamically load CSS"),k--,0===k&&e&&e())))};return{load:b,
loadCss:(f,d)=>b([],f,d),loadJs:(f,d)=>b(f,[],d)}})();XF.LazyHandlerLoader=(()=>{const a={};let c;const b=(e,g,h="init",k=!0)=>{null===("init"===h?XF.Element.getObjectFromIdentifier(g):XF.Event.getObjectFromIdentifier(g))&&(a[g]={file:e,type:h,minified:k,loading:!1})},f=e=>{let g=[];if(e instanceof NodeList||Array.isArray(e))return e.forEach(l=>{g=[...g,...f(l)]}),g;const h=Object.keys(a).map(l=>a[l].type).filter((l,p,n)=>n.indexOf(l)===p),k=`[data-xf-${h.join("], [data-xf-")}]`;e=e.nodeType===Node.DOCUMENT_NODE?
e.documentElement:e;e.matches(k)&&(g=[...g,...d(e,h)]);e.querySelectorAll(k).forEach(l=>{g=[...g,...d(l,h)]});return g.filter((l,p,n)=>n.indexOf(l)===p)},d=(e,g)=>{let h=[];for(const k of g)g=`data-xf-${k}`,e.hasAttribute(g)&&(g=e.getAttribute(g).split(" ").filter(l=>""!==l),h=[...h,...g]);return h};return{initialize:()=>{b("xf/action.js","alerts-list");b("xf/action.js","bookmark-click");b("xf/action.js","bookmark-label-filter");b("xf/action.js","content-vote");b("xf/action.js","copy-to-clipboard");
b("xf/action.js","draft");b("xf/action.js","draft-trigger");b("xf/action.js","focus-trigger");b("xf/action.js","poll-block");b("xf/action.js","preview");b("xf/action.js","push-cta");b("xf/action.js","push-toggle");b("xf/action.js","reaction");b("xf/action.js","share-input");b("xf/action.js","attribution","click");b("xf/action.js","like","click");b("xf/action.js","switch","click");b("xf/action.js","switch-overlay","click");b("xf/form.js","ajax-submit");b("xf/form.js","asset-upload");b("xf/form.js",
"auto-submit");b("xf/form.js","change-submit");b("xf/form.js","check-all");b("xf/form.js","checkbox-select-disabler");b("xf/form.js","desc-loader");b("xf/form.js","disabler");b("xf/form.js","emoji-completer");b("xf/form.js","field-adder");b("xf/form.js","form-submit-row");b("xf/form.js","guest-username");b("xf/form.js","input-validator");b("xf/form.js","min-length");b("xf/form.js","password-hide-show");b("xf/form.js","select-plus");b("xf/form.js","textarea-handler");b("xf/form.js","user-mentioner");
b("xf/form.js","submit","click");b("xf/structure.js","focus-inserter");b("xf/structure.js","responsive-data-list");b("xf/structure.js","tabs");b("xf/structure.js","toggle-storage");b("xf/structure.js","touch-proxy");b("xf/structure.js","video-init");b("xf/structure.js","duplicator","click");b("xf/structure.js","inserter","click");b("xf/structure.js","menu-proxy","click");b("xf/structure.js","remover","click");b("xf/structure.js","shifter","click");b("xf/structure.js","toggle","click");b("xf/structure.js",
"comment-toggle","click");b("xf/structure.js","toggle-class","click");b("xf/tooltip.js","preview-tooltip");b("xf/tooltip.js","share-tooltip")},register:b,checkLazyRegistration:e=>{e in a&&(delete a[e],clearTimeout(c),c=setTimeout(()=>{XF.activate(m)},50))},loadLazyHandlers:e=>{const g=XF.config.url.js;if(g){var h=f(e);e=Object.keys(a).filter(k=>h.includes(k)?!1===a[k].loading:!1);e.length&&(e=e.map(k=>{k=a[k];k.loading=!0;k=k.minified&&!XF.config.fullJs?k.file.replace(".js",".min.js"):k.file;return g.replace("__SENTINEL__",
k)+"_mt="+XF.config.jsMt[k]||""}).filter((k,l,p)=>p.indexOf(k)===l),XF.Loader.loadJs(e))}else console.error("No JS URL so cannot lazy-load JS")}}})();XF.ClassMapper=XF.create({_map:{},_toExtend:{},add(a,c){this._map[a]=c},extend(a,c){let b=this.getObjectFromIdentifier(a);b?(b=XF.extend(b,c),this._map[a]=b):(this._toExtend[a]||(this._toExtend[a]=[]),this._toExtend[a].push(c))},getObjectFromIdentifier(a){let c=this._map[a];const b=this._toExtend[a];if(!c)return null;if("string"==typeof c){c=XF.classToConstructor(c);
if(b){for(const f of b)c=XF.extend(c,f);delete this._toExtend[a]}this._map[a]=c}return c}});XF.ActionIndicator=(()=>{let a=0,c;const b=()=>{a++;1===a&&(c||(c=XF.createElement("span",{className:"globalAction",innerHTML:'<span class="globalAction-bar"></span><span class="globalAction-block"><i></i><i></i><i></i></span>'},m.body)),c.classList.add("is-active"))},f=()=>{a--;0<a||(a=0,c&&c.classList.remove("is-active"))};return{initialize:()=>{XF.on(m,"xf:action-start",b);XF.on(m,"xf:action-stop",f)},show:b,
hide:f}})();XF.StyleVariation=(()=>{const a=()=>{const e=m.querySelector("html").dataset.variation;return e?e:q.matchMedia("(prefers-color-scheme: dark)").matches&&XF.config.style.dark?XF.config.style.dark:q.matchMedia("(prefers-color-scheme: light)").matches&&XF.config.style.light?XF.config.style.light:"default"},c=m.documentElement;let b=!1;const f=e=>{b=!1;const {variation:g,colorScheme:h,icon:k,properties:l}=e,p=a();g?c.setAttribute("data-variation",g):c.removeAttribute("data-variation");h?c.setAttribute("data-color-scheme",
h):c.removeAttribute("data-color-scheme");d(l.metaThemeColor);var n=m.querySelectorAll("picture[data-variations]");for(var t of n){n=XF.createElement("picture");const x=JSON.parse(t.dataset.variations);var w=t.querySelector("img");w={properties:{},attributes:{width:w.getAttribute("width"),height:w.getAttribute("height"),alt:w.getAttribute("alt")}};if(""!==g)w.properties.src=x[g][1],x[g][2]&&(w.properties.srcset=`${x[g][2]} 2x`);else{var v=XF.config.style.defaultColorScheme;const r="dark"===v?"light":
"dark";v=XF.config.style[v];const u=XF.config.style[r];for(const [y,z]of Object.entries(x))if(y===v)w.properties.src=z[1],z[2]&&(w.properties.srcset=`${z[2]} 2x`);else if(y===u&&(z[1]!==x[v][1]||z[2]!==x[v][2])){const A=XF.createElement("source",{srcset:`${z[1]}${z[2]?`, ${z[2]} 2x`:""}`,media:`(prefers-color-scheme: ${r})`});n.prepend(A)}}n.append(XF.createElement("img",w));t.innerHTML="";t.append(...n.childNodes)}(t=m.querySelector(".js-styleVariationsMenu"))&&XF.trigger(t,"menu:close");(t=m.querySelector(".js-styleVariationsLink"))&&
k&&(t=t.querySelector("i.fa--xf"))&&(n=XF.createElementFromString(XF.Icon.getIcon("default",k)),t.replaceWith(n));if(t=m.querySelector(".js-styleVariationsMenu")){t=t.querySelectorAll(".menu-linkRow");for(const x of t)x.dataset.variation===g?x.classList.add("is-selected"):x.classList.remove("is-selected")}e=XF.customEvent("xf:variation-change",{oldVariation:p,newVariation:g,data:e});XF.trigger(m,e)},d=e=>{if(e){var g=m.querySelector("head");g.querySelectorAll("meta[name=theme-color]").forEach(h=>
h.remove());if("object"!==typeof e)XF.createElement("meta",{name:"theme-color",content:e},g);else for(const h in e)XF.createElement("meta",{name:"theme-color",media:`(prefers-color-scheme: ${h})`,content:e[h]},g)}};return{getVariation:a,getColorScheme:()=>{const e=m.querySelector("html").dataset.colorScheme;if(e)return e;if(q.matchMedia("(prefers-color-scheme: dark)").matches&&XF.config.style.dark)return"dark";let g;return null!=(g=XF.config.style.defaultColorScheme)?g:"light"},updateVariation:e=>
{if(!b){b=!0;var g="admin"===m.querySelector("html").dataset.app?"admin.php?account/style-variation":"index.php?misc/style-variation";e=e?{variation:e}:{reset:1};XF.ajax("GET",XF.canonicalizeUrl(g),e,f,{skipDefault:!0})}}}})();XF.Icon=(()=>{const a=/<svg [^>]*viewBox="(?<viewBox>[^"]+)"[^>]*>.*?(?:<defs>.*<\/defs>)?(?<icon>(?:<path [^>]*\/>)+)<\/svg>/i,c=(h,k,l,p)=>{l=void 0!==l?l:"";l=`${d(h)} ${e(k)} ${l}`;return`<i class="fa--xf ${l}">${p}</i>`},b=(h,k)=>{h=g(h);k=k.replace(/^fa-/,"");return XF.config.url.icon.replace("__VARIANT__",
h).replace("__NAME__",k)},f=(h,k)=>{h=g(h);k=k.replace(/^fa-/,"");return XF.config.url.iconInline.replace("__VARIANT__",h).replace("__NAME__",k)},d=h=>{let k="far";h=g(h);switch(h){case "light":k="fal";break;case "regular":k="far";break;case "solid":k="fas";break;case "duotone":k="fad";break;case "brands":k="fab"}return k},e=h=>{h=h.replace(/^fa-/,"");return`fa-${h}`},g=h=>{let k="regular";"default"===h&&(h=XF.config.fontAwesomeWeight);switch(h){case 300:case "l":case "fal":case "light":k="light";
break;case 400:case "r":case "far":case "regular":k="regular";break;case 900:case "s":case "fas":case "solid":k="solid";break;case "d":case "fad":case "duotone":k="duotone";break;case "b":case "fab":case "brands":k="brands"}return k};return{ICON_DATA_REGEX:a,ICON_CLASS_REGEX:/^fa-(?!-)(?<name>[a-z0-9-]+)$/i,ICON_CLASS_BLOCKLIST_REGEX:/^fa-(xs|sm|lg|\d+x|fw|ul|li|rotate-\d+|flip-(horizontal|vertical|both)|spin|pulse|border|pull-(left|right)|stack(-\dx)?|inverse)$/i,getIcon:(h,k,l,p)=>{const n=b(h,
k);return c(h,k,l,`<svg xmlns="http://www.w3.org/2000/svg" role="img" ${p?"":'aria-hidden="true"'}>
					${p?`<title>${p}</title>`:""}
					<use href="${n}"></use>
				</svg>`)},getInlineIcon:async(h,k,l,p)=>{var n=f(h,k);n=await fetch(n,{headers:{Accept:"image/svg+xml"}});if(!n.ok)throw Error("Inline icon could not be fetched.");n=(await n.text()).match(a);if(!n)throw Error("Icon did not match expected format.");n=n.groups;return c(h,k,l,`<svg xmlns="http://www.w3.org/2000/svg" viewBox="${n.viewBox}" role="img" ${p?"":'aria-hidden="true"'}>
					${p?`<title>${p}</title>`:""}
					${n.icon}
				</svg>`)},getIconUrl:b,getStandaloneIconUrl:f,getVariantClass:d,getIconClass:e,normalizeIconVariant:g,normalizeIconName:h=>h.replace(/^fa-/,"")}})();XF.DynamicDate=(()=>{let a,c,b,f,d,e,g=!1,h;const k=()=>{h=setInterval(()=>{p(m)},2E4)},l=()=>{if(!g){g=!0;var t=XF.config.time;a=XF.getLocalLoadTime();c=t.now;b=t.today;f=t.yesterday;d=t.tomorrow;e=t.week;void 0!==m.hidden?(m.hidden||k(),XF.on(m,"visibilitychange",()=>{m.hidden?clearInterval(h):(k(),p(m))})):k()}},p=t=>{g||l();t=t.querySelectorAll("time[data-timestamp]");
const w=t.length,v=Math.floor((new Date).getTime()/1E3)-a,x=new Date;let r,u;let y,z;x.setHours(0,0,0,0);c+v>d&&(x.getDay(),d=n(x,1),b=n(x,0),f=n(x,-1),e=n(x,-6));for(let D=0;D<w;D++){r=t[D];z=parseInt(r.getAttribute("data-timestamp"),10);u=c-z+v;y=r.xfDynType;if(-2>u){var A=z-(c+v);60>A?"futureMoment"!==y&&(r.textContent=XF.phrase("in_a_moment"),r.xfDynType="futureMoment"):120>A?"futureMinute"!==y&&(r.textContent=XF.phrase("in_a_minute"),r.xfDynType="futureMinute"):3600>A?(A=Math.floor(A/60),y!==
"futureMinutes"+A&&(r.textContent=XF.phrase("in_x_minutes",{"{minutes}":A}),r.xfDynType="futureMinutes"+A)):z<d?"latertoday"!==y&&(r.textContent=XF.phrase("later_today_at_x",{"{time}":r.getAttribute("data-time")}),r.xfDynType="latertoday"):z<n(x,2)?"tomorrow"!==y&&(r.textContent=XF.phrase("tomorrow_at_x",{"{time}":r.getAttribute("data-time")}),r.xfDynType="tomorrow"):(604800>A||(r.getAttribute("data-full-date")?r.textContent=XF.phrase("date_x_at_time_y",{"{date}":r.getAttribute("data-date"),"{time}":r.getAttribute("data-time")}):
r.textContent=r.getAttribute("data-date")),r.xfDynType="future")}else 60>=u?"moment"!==y&&(r.textContent=XF.phrase("a_moment_ago"),r.xfDynType="moment"):120>=u?"minute"!==y&&(r.textContent=XF.phrase("one_minute_ago"),r.xfDynType="minute"):3600>u?(A=Math.floor(u/60),y!=="minutes"+A&&(r.textContent=XF.phrase("x_minutes_ago",{"{minutes}":A}),r.xfDynType="minutes"+A)):z>=b?"today"!==y&&(r.textContent=XF.phrase("today_at_x",{"{time}":r.getAttribute("data-time")}),r.xfDynType="today"):z>=f?"yesterday"!==
y&&(r.textContent=XF.phrase("yesterday_at_x",{"{time}":r.getAttribute("data-time")}),r.xfDynType="yesterday"):z>=e?"week"!==y&&(r.textContent=XF.phrase("day_x_at_time_y",{"{day}":XF.phrase("day"+(new Date(1E3*z)).getDay()),"{time}":r.getAttribute("data-time")}),r.xfDynType="week"):"old"!==y&&(r.getAttribute("data-full-date")?r.textContent=XF.phrase("date_x_at_time_y",{"{date}":r.getAttribute("data-date"),"{time}":r.getAttribute("data-time")}):r.textContent=r.getAttribute("data-date"),r.xfDynType=
"old");3600>u?r.setAttribute("data-short",XF.phrase("short_date_x_minutes",{"{minutes}":Math.floor(u/60)})):86400>u?r.setAttribute("data-short",XF.phrase("short_date_x_hours",{"{hours}":Math.floor(u/3600)})):2592E3>u&&r.setAttribute("data-short",XF.phrase("short_date_x_days",{"{days}":Math.floor(u/86400)}))}},n=(t,w)=>Math.floor((new Date(t.valueOf())).setFullYear(t.getFullYear(),t.getMonth(),t.getDate()+w)/1E3);return{initialize:l,refresh:p}})();XF.KeepAlive=(()=>{let a,c,b=!1,f;const d=()=>{let l=
3E3+(Math.floor(241*Math.random())+-120);120>l&&(l=120);f&&clearInterval(f);f=setInterval(h,1E3*l)};let e=0,g;const h=()=>{b&&(!1===q.navigator.onLine&&(e++,5>=e&&(g=setTimeout(h,30))),e=0,clearTimeout(g),fetch(XF.canonicalizeUrl(a),{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json","X-Requested-With":"XMLHttpRequest"},body:JSON.stringify({_xfResponseType:"json",_xfToken:XF.config.csrf}),cache:"no-store"}).then(l=>{if(!l.ok)throw Error("Network response was not ok.");
return l.json()}).then(l=>{"ok"===l.status&&(k(l),XF.CrossTab.trigger(c,l))}))},k=l=>{l.csrf&&(XF.config.csrf=l.csrf,m.querySelectorAll("input[name=_xfToken]").forEach(p=>p.value=l.csrf));if("undefined"!==typeof l.user_id){const p=m.querySelector(".js-activeUserChangeMessage");l.user_id===XF.config.userId||p||XF.addFixedMessage(XF.phrase("active_user_changed_reload_page"),{class:"js-activeUserChangeMessage"});l.user_id===XF.config.userId&&p&&p.remove()}d()};return{initialize:()=>{if(!b&&XF.config.url.keepAlive&&
XF.config.url.keepAlive.length){b=!0;a=XF.config.url.keepAlive;c="keepAlive"+XF.stringHashCode(a);d();XF.CrossTab.on(c,k);if(q.performance&&q.performance.getEntriesByType){var l=q.performance.getEntriesByType("navigation")[0];l&&(l=l.type,"navigate"!==l&&"reload"!==l||XF.CrossTab.trigger(c,{csrf:XF.config.csrf,time:XF.config.time.now,user_id:XF.config.userId}))}XF.Cookie.get("csrf")||h()}},refresh:h}})();XF.History=(()=>{const a=q.history;let c=a.state,b=q.location.href;const f=[];return{initialize:()=>
{XF.on(q,"popstate",d=>{d=d.state;let e=!1;for(const g of f)g(d,c,b)&&(e=!0);e||b.replace(/#.*$/,"")===q.location.href.replace(/#.*$/,"")||q.location.reload();c=d;b=q.location.href})},handle:d=>{f.push(d)},push:(d,e,g)=>{a.pushState(d,e,g);c=d;b=q.location.href},replace:(d,e,g)=>{a.replaceState(d,e,g);c=d;b=q.location.href},go:d=>{a.go(d)}}})();XF.PullToRefresh=(()=>({initialize:()=>{XF.isIOS()&&XF.Feature.has("displaymodestandalone")&&"public"===XF.getApp()&&XF.loadScript(XF.canonicalizeUrl("js/vendor/boxfactura/pulltorefresh.min.js"),
()=>{PullToRefresh.init({classPrefix:"iosRefresh-",distReload:70,iconArrow:XF.Icon.getIcon("default","fa-arrow-down","fa-2x"),iconRefreshing:XF.Icon.getIcon("default","fa-spinner-third","fa-2x fa-spin"),instructionsPullToRefresh:XF.phrase("pull_down_to_refresh"),instructionsReleaseToRefresh:XF.phrase("release_to_refresh"),instructionsRefreshing:XF.phrase("refreshing"),onRefresh(){q.location.reload()}})})}}))();XF.LinkWatcher=(()=>{const a=b=>{const f=b.currentTarget,d=f.getAttribute("data-proxy-href"),
e=f.getAttribute("data-proxy-handler-last");!d||e&&e===b.timeStamp||(f.setAttribute("data-proxy-handler-last",b.timeStamp.toString()),fetch(XF.canonicalizeUrl(d),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({_xfResponseType:"json",referrer:q.location.href.replace(/#.*$/,"")}),cache:"no-store"}).catch(()=>{}))},c=b=>{if(XF.config.enableRtnProtect&&!b.defaultPrevented){var f=b.currentTarget,d=f.getAttribute("href"),e=f.getAttribute("data-blank-handler-last");if(d&&
(!d.match(/^[a-z]:/i)||d.match(/^https?:/i))&&!f.matches("[data-fancybox]")){if(f.matches("[rel~=noopener]")){var g=XF.browser;if(g.chrome&&49<=g.version||g.mozilla&&52<=g.version||g.safari&&11<=g.version)return}if(!(f.closest("[contenteditable=true]")||(d=XF.canonicalizeUrl(d),(new RegExp("^[a-z]+://"+location.host+"(/|$|:)","i")).test(d)||e&&e===b.timeStamp||(f.setAttribute("data-blank-handler-last",b.timeStamp),g=navigator.userAgent,f=-1!==g.indexOf("MSIE"),e=-1!==g.indexOf("Safari")&&-1===g.indexOf("Chrome"),
g=-1!==g.indexOf("Gecko/"),b.shiftKey&&g||e&&(b.shiftKey||b.altKey)||f)))){if(e)f=XF.createElement("iframe",{style:{display:"none"}},m.body),e=f.contentDocument||f.contentWindow.document,e.__href=d,d=e.createElement("script"),d.textContent="window.opener=null;window.parent=null;window.top=null;window.frameElement=null;window.open(document.__href).opener = null;",e.body.appendChild(d),f.remove();else{d=q.open(d);try{d.opener=null}catch(h){}}b.preventDefault()}}}};return{initLinkProxy:()=>{m.querySelectorAll("a[data-proxy-href]:not(.link--internal)").forEach(b=>
{XF.on(b,"click",a);XF.on(b,"focusin",f=>{f.currentTarget.getAttribute("data-proxy-handler")||(f.currentTarget.setAttribute("data-proxy-handler","true"),XF.on(f.currentTarget,"click",a))})})},initExternalWatcher:()=>{m.querySelectorAll("a[target=_blank]").forEach(b=>{XF.on(b,"click",c);XF.on(b,"focusin",f=>{f.currentTarget.getAttribute("data-blank-handler")||(f.currentTarget.setAttribute("data-blank-handler","true"),XF.on(f.currentTarget,"click",c))})})}}})();XF._IgnoredWatcher=XF.create({options:{container:"body",
ignored:".is-ignored",link:".js-showIgnored"},container:null,authors:[],shown:!1,__construct(a){this.options=XF.extendObject(!0,{},this.options,a||{});this.container=a=m.querySelector(this.options.container);this.updateState();XF.on(a,"click",c=>{c.target.matches(this.options.link)&&this.show()})},refresh(a){this.container.contains(a)&&(this.shown?this.show():this.updateState())},updateState(){if(!this.shown){var a=this.getIgnored(),c=[];if(a.length)if(a.forEach(b=>{(b=b.dataset.author)&&!c.includes(b)&&
c.push(b)}),c.length){const b={names:c.join(", ")};this.getLinks().forEach(f=>{const d=f.getAttribute("title");d&&(f.setAttribute("title",Mustache.render(d,b)),f.classList.remove("is-hidden"))})}else this.getLinks().forEach(b=>{b.removeAttribute("title");b.classList.remove("is-hidden")})}},getIgnored(){return Array.from(this.container.querySelectorAll(this.options.ignored))},getLinks(){return Array.from(this.container.querySelectorAll(this.options.link))},show(){this.shown=!0;this.getIgnored().forEach(a=>
a.classList.remove("is-ignored"));this.getLinks().forEach(a=>a.classList.add("is-hidden"))},initializeHash(){if(q.location.hash){var a=q.location.hash.replace(/[^\w_#-]/g,"");if("#"!==a){a=m.getElementById(a);var c=this.options.ignored,b;a&&a.matches(c)?b=a:a&&(b=a.closest(c));b&&(b.classList.remove("is-ignored"),a.scrollIntoView(!0))}}}});XF.IgnoreWatcher=new XF._IgnoredWatcher;XF.BrowserWarning=(()=>({display:()=>{let a=!1;XF.browser.msie?a=!0:XF.browser.edge&&18>parseInt(XF.browser.version)&&(a=
!0);const c=m.querySelector(".js-browserWarning");c&&(a?XF.display(c):c.remove())},hideJsWarning:()=>{const a=m.querySelector(".js-jsWarning");a&&a.remove()}}))();XF.MultiBar=XF.create({options:{role:null,focusShow:!1,className:"",fastReplace:!1},container:null,multiBar:null,shown:!1,__construct(a,c){this.options=XF.extendObject(!0,{},this.options,c||{});this.multiBar=XF.createElementFromString(a);this.multiBar.setAttribute("role",this.options.role||"dialog");this.multiBar.setAttribute("aria-hidden",
"true");XF.on(this.multiBar,"multibar:hide",this.hide.bind(this));XF.on(this.multiBar,"multibar:show",this.show.bind(this));this.container=XF.createElementFromString('<div class="multiBar-container"></div>');this.container.append(this.multiBar);this.container.classList.add(...this.options.className.split(" "));XF.uniqueId(this.container);XF.DataStore.set(this.container,"multibar",this);m.body.append(this.container);XF.activate(this.container);XF.MultiBar.cache[this.container.id]=this},show(){this.shown||
(this.shown=!0,this.multiBar.setAttribute("aria-hidden","false"),m.querySelector(".p-pageWrapper").classList.add("has-multiBar"),this.options.fastReplace&&(this.multiBar.style.transitionDuration="0s"),m.body.append(this.container),XF.Transition.addClassTransitioned(this.multiBar,"is-active",()=>{if(this.options.focusShow){const a=this.multiBar.querySelector(".js-multiBarClose");XF.autoFocusWithin(this.multiBar.find(".multiBar-content"),null,a)}XF.trigger(this.container,"multibar:shown");XF.layoutChange()}),
this.options.fastReplace&&(this.multiBar.style.transitionDuration=""),XF.trigger(this.container,"multibar:showing"),XF.layoutChange())},hide(){this.shown&&(this.shown=!1,this.multiBar.setAttribute("aria-hidden","true"),XF.Transition.removeClassTransitioned(this.multiBar,"is-active",()=>{m.querySelector(".p-pageWrapper").classList.remove("has-multiBar");XF.trigger(this.container,"multibar:hidden");XF.layoutChange()}),XF.trigger(this.container,"multibar:hiding"),XF.layoutChange())},toggle(a){(null===
a?!this.shown:a)?this.show():this.hide()},destroy(){const a=this.container.getAttribute("id"),c=XF.MultiBar.cache;this.container.remove();XF.hasOwn(c,a)&&delete c[a]},on(a,c){XF.on(this.container,a,c)},getContainer(){return this.container},getMultiBar(){return this.multiBar}});XF.MultiBar.cache={};XF.showMultiBar=(a,c)=>{a=new XF.MultiBar(a,c);a.show();return a};XF.loadMultiBar=(a,c,b,f)=>{XF.isFunction(b)&&(b={init:b});b=XF.extendObject({cache:!1,beforeShow:null,afterShow:null,onRedirect:null,init:null,
show:!0},b||{});const d=g=>{if(b.beforeShow){var h=XF.customEvent(void 0);h.cancelable=!0;b.beforeShow(g,h);if(h.defaultPrevented)return}b.show&&g.show();b.afterShow&&(h=XF.customEvent(void 0),h.cancelable=!0,b.afterShow(g,h))};if(b.cache&&XF.loadMultiBar.cache[a])d(XF.loadMultiBar.cache[a]);else{var e=g=>{if(g.redirect)if(b.onRedirect)b.onRedirect(g,e);else XF.ajax("get",g.redirect,h=>{e(h)});g.html&&XF.setupHtmlInsert(g.html,(h,k,l)=>{const p=new XF.MultiBar(XF.getMultiBarHtml({html:h,title:k.title||
k.h1}),f);b.init&&b.init(p);if(!b.cache)p.on("multibar:hidden",()=>{p.destroy()});l();b.cache&&(XF.loadMultiBar.cache[a]=p);d(p)})};return XF.ajax("post",a,c,g=>{e(g)})}};XF.loadMultiBar.cache={};XF.Overlay=XF.create({options:{backdropClose:!0,escapeClose:!0,focusShow:!0,className:""},container:null,overlay:null,shown:!1,__construct(a,c){this.options=XF.extendObject(!0,{},this.options,c||{});this.overlay=a;this.overlay.setAttribute("role",this.options.role||"dialog");this.overlay.setAttribute("aria-hidden",
"true");this.container=XF.createElementFromString('<div class="overlay-container"></div>');this.container.append(this.overlay);this.options.className&&this.container.classList.add(...this.options.className.split(" "));XF.uniqueId(this.container);XF.DataStore.set(this.container,"overlay",this);if(this.options.escapeClose)XF.on(this.container,"keydown.overlay",b=>{"Escape"===b.key&&this.hide()});this.options.backdropClose&&(XF.on(this.container,"mousedown",b=>{XF.DataStore.set(this.container,"block-close",
!1);b.target!==this.container&&XF.DataStore.set(this.container,"block-close",!0)}),XF.on(this.container,"click",b=>{b.target===this.container&&(XF.DataStore.get(this.container,"block-close")||this.hide());XF.DataStore.set(this.container,"block-close",!1)}));XF.onDelegated(this.container,"click",".js-overlayClose",()=>this.hide());m.body.append(this.container);XF.activate(this.container);XF.Overlay.cache[this.container.getAttribute("id")]=this;XF.on(this.overlay,"overlay:hide",this.hide.bind(this));
XF.on(this.overlay,"overlay:show",this.show.bind(this))},show(){this.shown||(this.shown=!0,this.overlay.setAttribute("aria-hidden","false"),m.body.append(this.container),XF.Transition.addClassTransitioned(this.container,"is-active",()=>{if(this.options.focusShow){const a=this.overlay.querySelector(".js-overlayClose");XF.autoFocusWithin(this.overlay.querySelector(".overlay-content"),null,a)}XF.trigger(this.container,"overlay:shown");XF.layoutChange()}),XF.trigger(this.container,"overlay:showing"),
XF.ModalOverlay.open(),XF.layoutChange())},hide(){this.shown&&(this.shown=!1,this.overlay.setAttribute("aria-hidden","true"),XF.Transition.removeClassTransitioned(this.container,"is-active",()=>{XF.trigger(this.container,"overlay:hidden");XF.ModalOverlay.close();XF.layoutChange()}),XF.trigger(this.container,"overlay:hiding"),XF.layoutChange())},recalculate(){this.shown&&XF.Modal.updateScrollbarPadding()},toggle(){this.shown?this.hide():this.show()},destroy(){const a=this.container.getAttribute("id"),
c=XF.Overlay.cache;this.container.remove();XF.hasOwn(c,a)&&delete c[a]},on(a,c){XF.on(this.container,a,c)},getContainer(){return this.container},getOverlay(){return this.overlay}});XF.Overlay.cache={};XF.ModalOverlay=(()=>{let a=0;const c=m.body;return{getOpenCount:()=>a,open:()=>{XF.Modal.open();a++;1==a&&c.classList.add("is-modalOverlayOpen")},close:()=>{XF.Modal.close();0<a&&(a--,0==a&&c.classList.remove("is-modalOverlayOpen"))}}})();XF.Modal=(()=>{let a=0;const c=m.body,b=m.querySelector("html"),
f=()=>{let d="right";const e=c.classList.contains("is-modalOpen")?XF.measureScrollBar()+"px":"";XF.isRtl()&&(XF.browser.chrome||XF.browser.mozilla||(d="left"));b.style["margin-"+d]=e};return{getOpenCount:()=>a,open:()=>{a++;1==a&&(c.classList.add("is-modalOpen"),f())},close:()=>{0<a&&(a--,0==a&&(c.classList.remove("is-modalOpen"),f()))},updateScrollbarPadding:f}})();XF.showOverlay=(a,c)=>{a=new XF.Overlay(a,c);a.show();return a};XF.loadOverlay=(a,c,b)=>{XF.isFunction(c)&&(c={init:c});c=XF.extendObject({cache:!1,
beforeShow:null,afterShow:null,onRedirect:null,ajaxOptions:{},init:null,show:!0},c||{});const f=e=>{if(c.beforeShow){var g=XF.customEvent("overlay:before-show");c.beforeShow(e,g);if(g.defaultPrevented)return}c.show&&e.show();c.afterShow&&(g=XF.customEvent("overlay:after-show"),c.afterShow(e,g))};if(c.cache&&XF.loadOverlay.cache[a])f(XF.loadOverlay.cache[a]);else{var d=e=>{if(e.redirect)if(c.onRedirect)c.onRedirect(e,d);else XF.ajax("get",e.redirect,g=>d(g));e.html&&XF.setupHtmlInsert(e.html,(g,h,
k)=>{const l=new XF.Overlay(XF.getOverlayHtml({html:g,title:h.title||h.h1,url:XF.canonicalizeUrl(a)}),b);c.init&&c.init(l);if(!c.cache)l.on("overlay:hidden",()=>l.destroy());k();c.cache&&(XF.loadOverlay.cache[a]=l);f(l)})};return XF.ajax("get",a,{},e=>{d(e)},c.ajaxOptions)}};XF.loadOverlay.cache={};XF.NavDeviceWatcher=(()=>{let a=!0;const c=b=>{b!=a&&(m.querySelector("html").classList.toggle("has-pointer-nav",!b),a=b)};return{initialize:()=>{XF.on(m,"mousedown",()=>c(!1),{passive:!0});XF.on(m,"keydown",
b=>{switch(b.key){case "Tab":case "Enter":c(!0)}},{passive:!0})},toggle:c,isKeyboardNav:()=>a}})();XF.ScrollButtons=(()=>{let a=null,c=!1,b=!1,f=!1,d=q.scrollY||m.documentElement.scrollTop,e=null,g=null,h,k=null;const l=r=>{if(!c){r=q.scrollY||m.documentElement.scrollTop;var u=d;d=r;if(r>u)"down"!=e&&(e="down",g=u);else if(r<u)"up"!=e&&(e="up",g=u);else return;if(b){if("up"!==e||100>d){h&&(h.cancel(),h=null);return}if(30>g-r)return}h||(h=XF.requestAnimationTimeout(()=>{h=null;p();t()},200))}},p=()=>
{f||(XF.Transition.addClassTransitioned(k,"is-active"),f=!0)},n=()=>{f&&(XF.Transition.removeClassTransitioned(k,"is-active"),f=!1)},t=()=>{clearTimeout(a);a=setTimeout(()=>n(),3E3)},w=()=>{clearTimeout(a);p()},v=()=>clearTimeout(a),x=r=>{r=r.target;r.matches(".button--scroll")&&r.closest(".button--scroll")&&(c=!0,setTimeout(()=>{c=!1},500),n())};return{initialize:()=>{if(k&&k.length)return!1;k=m.querySelector(".js-scrollButtons");if(!k)return!1;"up"===k.dataset.triggerType&&(b=!0);XF.on(k,"mouseenter",
w);XF.on(k,"focus",w);XF.on(k,"mouseleave",v);XF.on(k,"blur",v);XF.on(k,"click",x);XF.on(q,"scroll",l,{passive:!0});return!0},show:p,hide:n,startHideTimer:t,clearHideTimer:()=>clearTimeout(a)}})();XF.NavButtons=(()=>{let a=null,c=!1,b=!1,f=null;const d=n=>{c||XF.requestAnimationTimeout(()=>{g();h()},200)},e=()=>{b||(f.forEach(n=>{XF.Transition.addClassTransitioned(n,"is-active")}),b=!0)},g=()=>{b&&(f.forEach(n=>{XF.Transition.removeClassTransitioned(n,"is-active")}),b=!1)},h=()=>{clearTimeout(a);
a=setTimeout(()=>e(),500)},k=()=>{clearTimeout(a);e()},l=()=>{clearTimeout(a)},p=n=>{n=n.target;if(n.classList.contains("button--scroll")||n.closest(".button--scroll"))c=!0,setTimeout(()=>{c=!1},500),q.history.back(),g()};return{initialize:()=>{if(XF.Feature.has("displaymodestandalone")){if(f)return!1;f=m.querySelectorAll(".js-navButtons");if(!f)return!1;f.forEach(n=>{XF.on(n,"mouseenter focus",k);XF.on(n,"mouseleave blur",l);XF.on(n,"click",p)});XF.on(q,"scroll",d,{passive:!0});1<q.history.length&&
e();return!0}},show:e,hide:g,startShowTimer:h,clearShowTimer:()=>{clearTimeout(a)}}})();XF.KeyboardShortcuts=(()=>{const a={},c=e=>{Array.isArray(e)?e.forEach(g=>c(g)):(e instanceof Element&&e.matches("[data-xf-key]")&&b(e),e.querySelectorAll("[data-xf-key]").forEach(g=>b(g)))},b=e=>{const g=String(e.dataset.xfKey),h=g.substr(g.lastIndexOf("+")+1),k="#"===h[0]?h.substr(1):h.toUpperCase().charCodeAt(0);var l=g.toUpperCase().split("+");var p=-1!==l.indexOf("CTRL");var n=-1!==l.indexOf("ALT");l=-1!==
l.indexOf("META");(p=p?1:n?2:l?4:0)?XF.Keyboard.isStandardKey(k)?(a[k]=a[k]||{},a[k][p]=e):console.warn("It is not possible to specify a keyboard shortcut using this key combination (%s)",g):a[h]=e},f=e=>{switch(e.key){case "Escape":XF.MenuWatcher.closeAll();XF.hideTooltips();return;case "Shift":case "Control":case "Alt":case "Meta":return}if(XF.Keyboard.isShortcutAllowed(m.activeElement)&&(!XF.hasOwn(a,e.key)||0!=(e.ctrlKey?1:e.altKey?2:e.metaKey?4:0)||!d(a[e.key]))&&XF.hasOwn(a,e.which)){const g=
e.ctrlKey?1:e.altKey?2:e.metaKey?4:0;XF.hasOwn(a[e.which],g)&&d(a[e.which][g])}},d=e=>e?(XF.NavDeviceWatcher.toggle(!0),XF.isElementVisible(e)||e.scrollIntoView(!0),e.matches(XF.getKeyboardInputs())?XF.autofocus(e):(e.matches("a[href]"),e.click()),!0):!1;return{initialize:()=>XF.on(m.body,"keyup",f,{passive:!0}),initializeElements:c}})();XF.Keyboard={isShortcutAllowed:a=>{switch(a.tagName){case "TEXTAREA":case "SELECT":return!1;case "INPUT":switch(a.type){case "checkbox":case "radio":case "submit":case "reset":return!0;
default:return!1}case "BODY":return!0;default:return XF.browser.msie&&a.closest(".fr-element")?!1:"true"===a.contentEditable?!1:!0}},isStandardKey:a=>48<=a&&90>=a};XF.FormInputValidation=(()=>{let a={};const c=d=>{Array.isArray(d)?d.forEach(e=>c(e)):(d instanceof Element&&d.matches("form")&&f(d),d.querySelectorAll("form").forEach(e=>f(e)))},b=()=>{a.length&&a.forEach(d=>f(d))},f=d=>{d.querySelectorAll("input, textarea, select, button").forEach(e=>{XF.on(e,"invalid",g=>{a:{const {form:h,input:k}={event:g,
form:d,input:e};g=h.querySelector(":invalid");if(k===g){if(XF.isElementVisible(k)){g=void 0;break a}if(g=h.closest(".overlay-container.is-active")){const l=k.getBoundingClientRect(),p=g.getBoundingClientRect();g.scrollTop=l.top-p.top+g.scrollTop-100}else k.scrollIntoView(),q.scrollBy(0,-100)}g=void 0}return g})})};return{initialize:()=>{a=Array.from(m.querySelectorAll("form:not([novalidate])"));b()},initializeElements:c}})();XF.NoticeWatcher=(()=>({getBottomFixerNoticeHeight:()=>{let a=0;m.querySelectorAll(".js-bottomFixTarget .notices--bottom_fixer .js-notice").forEach(c=>
{"none"!==q.getComputedStyle(c).display&&(a+=c.offsetHeight)});return a}}))();XF.PWA=(()=>{let a=null,c,b=!0,f=null;const d=()=>{let n=XF.config.serviceWorkerPath;null===n&&(n="service_worker.js");return n&&n.length?XF.canonicalizeUrl(n):null},e=()=>navigator.standalone||q.matchMedia("(display-mode: standalone), (display-mode: minimal-ui)").matches,g=()=>{b&&(XF.ActionIndicator.show(),f=setTimeout(()=>XF.ActionIndicator.hide(),3E4))},h=n=>{n.persisted&&(XF.ActionIndicator.hide(),clearTimeout(f))},
k=()=>{b=!1;setTimeout(()=>{b=!0},2E3)},l=(n,t)=>{if(navigator.serviceWorker.controller)if("string"!==typeof n||""===n)console.error("Invalid message type:",n);else{if("undefined"===typeof t)t={};else if("object"!==typeof t||null===t){console.error("Invalid message payload:",t);return}navigator.serviceWorker.controller.postMessage({type:n,payload:t})}else console.error("There is no active service worker")},p={};return{initialize:()=>{XF.PWA.isSupported()&&(XF.config.skipServiceWorkerRegistration?
c=new Promise((n,t)=>{t(Error("Service worker registration has been skipped"))}):(c=navigator.serviceWorker.register(d()),c.then(n=>{n=n.active?!1:!0;var t=XF.config.cacheKey;XF.LocalStorage.get("cacheKey")!==t&&(n||l("updateCache"),XF.LocalStorage.set("cacheKey",t,!0))}),c.catch(n=>{console.error("Service worker registration failed:",n)}),navigator.serviceWorker.getRegistrations().then(n=>{const t=XF.canonicalizeUrl("js/xf/");for(const w in n)n[w].scope==t&&n[w].unregister()}),XF.on(navigator.serviceWorker,
"message",n=>{var t=n.data;if("object"!==typeof t||null===t)console.error("Invalid message:",t);else if(n=t.type,t=t.payload,"string"!==typeof n||""===n)console.error("Invalid message type:",n);else if("object"!==typeof t||null===t)console.error("Invalid message payload:",t);else{var w=p[n];"undefined"===typeof w?console.error("No handler available for message type:",n):w(t)}}),e()&&(XF.on(q,"beforeunload",g),XF.on(q,"pageshow",h),XF.on(m,"click",n=>{n.target.matches(".js-skipPwaNavIndicator")&&k(n)}))))},
isSupported:()=>{null===a&&(a=!!("serviceWorker"in navigator&&d()));return a},isRunning:e,inhibitNavigationIndicator:k,getRegistration:()=>c,sendMessage:l}})();XF.Push=(()=>{const a=(e,g)=>{XF.PWA.getRegistration().then(()=>{c();e&&e()}).catch(()=>{g&&g()})},c=()=>{XF.PWA.getRegistration().then(e=>e.pushManager.getSubscription()).then(e=>{XF.Push.isSubscribed=null!==e;XF.Push.isSubscribed?(XF.trigger(m,"push:init-subscribed"),XF.config.userId&&d(e)?XF.Push.updateUserSubscription(e,"update"):(e.unsubscribe(),
XF.Push.updateUserSubscription(e,"unsubscribe"))):XF.trigger(m,"push:init-unsubscribed")})};let b=null;const f=e=>{var g="=".repeat((4-e.length%4)%4);e=(e+g).replace(/-/g,"+").replace(/_/g,"/");e=q.atob(e);g=new Uint8Array(e.length);for(let h=0;h<e.length;++h)g[h]=e.charCodeAt(h);return g},d=e=>{e instanceof PushSubscription&&(e=e.options.applicationServerKey);if("string"===typeof e)return XF.config.pushAppServerKey===e;e.buffer&&e.BYTES_PER_ELEMENT&&(e=e.buffer);if(!(e instanceof ArrayBuffer))throw Error("input must be an array buffer or convertable to it");
var g=f(XF.config.pushAppServerKey).buffer;const h=g.byteLength;if(h!==e.byteLength)return!1;g=new DataView(g);e=new DataView(e);for(let k=0;k<h;k++)if(g.getUint8(k)!==e.getUint8(k))return!1;return!0};return{isSubscribed:null,initialize:()=>{XF.Push.isSupported()&&(XF.config.skipPushNotificationSubscription||a())},registerWorker:a,getPushHistoryUserIds:()=>XF.LocalStorage.getJson("push_history_user_ids")||{},setPushHistoryUserIds:e=>{XF.LocalStorage.setJson("push_history_user_ids",e||{})},hasUserPreviouslySubscribed:e=>
{const g=XF.Push.getPushHistoryUserIds();return XF.hasOwn(g,e||XF.config.userId)},addUserToPushHistory:e=>{const g=XF.Push.getPushHistoryUserIds();g[e||XF.config.userId]=!0;XF.Push.setPushHistoryUserIds(g)},removeUserFromPushHistory:e=>{const g=XF.Push.getPushHistoryUserIds();delete g[e||XF.config.userId];XF.Push.setPushHistoryUserIds(g)},handleUnsubscribeAction:(e,g)=>{XF.Push.isSubscribed&&XF.PWA.getRegistration().then(h=>h.pushManager.getSubscription()).then(h=>{if(h)return b=h,h.unsubscribe()}).catch(h=>
{console.error("Error unsubscribing",h);g&&g()}).then(()=>{b&&XF.Push.updateUserSubscription(b,"unsubscribe");XF.Push.isSubscribed=!1;e&&e()})},handleSubscribeAction:(e,g,h)=>{XF.Push.isSubscribed||Notification.requestPermission().then(k=>{if("granted"!==k)console.error("Permission was not granted");else{var l=XF.Push.base64ToUint8(XF.config.pushAppServerKey);XF.PWA.getRegistration().then(p=>{p.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:l}).then(n=>{XF.Push.updateUserSubscription(n,
"insert");XF.Push.isSubscribed=!0;n={body:XF.phrase("push_enable_notification_body"),dir:XF.isRtl()?"rtl":"ltr"};XF.config.publicMetadataLogoUrl&&(n.icon=XF.config.publicMetadataLogoUrl);XF.config.publicPushBadgeUrl&&(n.badge=XF.config.publicPushBadgeUrl);e||p.showNotification(XF.phrase("push_enable_notification_title"),n);XF.config.userId&&XF.Push.addUserToPushHistory();g&&g()}).catch(n=>{console.error("Failed to subscribe the user: ",n);h&&h()})})}})},handleToggleAction:(e,g,h,k)=>{XF.Push.isSubscribed?
XF.Push.handleUnsubscribeAction(e,g):XF.Push.handleSubscribeAction(!1,h,k)},updateUserSubscription:(e,g)=>{if(("update"!==g||!XF.Cookie.get("push_subscription_updated"))&&"public"===XF.getApp()&&"public"===XF.getApp()){var h=e.getKey("p256dh"),k=e.getKey("auth"),l=(PushManager.supportedContentEncodings||["aesgcm"])[0];e={endpoint:e.endpoint,key:h?btoa(String.fromCharCode.apply(null,new Uint8Array(h))):null,token:k?btoa(String.fromCharCode.apply(null,new Uint8Array(k))):null,encoding:l,unsubscribed:"unsubscribe"===
g?1:0,_xfResponseType:"json",_xfToken:XF.config.csrf};fetch(XF.canonicalizeUrl("index.php?misc/update-push-subscription"),{method:"POST",headers:{"Content-Type":"application/json","X-Requested-With":"XMLHttpRequest"},body:JSON.stringify(e),cache:"no-store"}).then(p=>{if(!p.ok)throw Error("Network response was not ok.");return p.json()}).then(()=>{"update"===g&&XF.Cookie.set("push_subscription_updated","1")}).catch(p=>{console.error("Error:",p)})}},isSupported:()=>XF.PWA.isSupported()&&XF.config.enablePush&&
XF.config.pushAppServerKey&&"public"===XF.getApp()&&"PushManager"in q&&"Notification"in q,base64ToUint8:f,isExpectedServerKey:d}})();XF.ExpandableContent=(()=>{const a=c=>{c.querySelectorAll(".js-expandWatch:not(.is-expanded)").forEach(b=>{const f=b.querySelector(".js-expandContent");if(f){var d,e=0,g=()=>{const h=f.scrollHeight,k=f.offsetHeight;0==h||0==k?2E3<e||(d&&(clearTimeout(d),e+=200),d=setTimeout(g,e)):h>k+1?b.classList.add("is-expandable"):b.classList.remove("is-expandable")};g();if(!XF.DataStore.get(b,
"expand-check-triggered")&&(XF.DataStore.set(b,"expand-check-triggered",!0),b.querySelectorAll("img").forEach(h=>XF.on(h,"load",g,{once:!0})),q.MutationObserver)){let h,k,l=!0;const p=()=>{l=!1;g();setTimeout(()=>{l=!0},100)};h=new MutationObserver(n=>{b.classList.contains("is-expanded")?h.disconnect():l&&(k&&clearTimeout(k),k=setTimeout(p,200))});h.observe(b,{attributes:!0,childList:!0,subtree:!0})}}})};return{watch:()=>{XF.onDelegated(m,"click",".js-expandLink",c=>{XF.Transition.addClassTransitioned(c.target.closest(".js-expandWatch"),
"is-expanded",XF.layoutChange())});XF.on(q,"resize",()=>a(m),{passive:!0});XF.on(m,"embed:loaded",()=>a(m))},checkSizing:a}})();XF.UnfurlLoader=(()=>{let a=[],c=!1,b=[];const f=async()=>{if(a.length&&!c){var d=async e=>{let g="";e=e.body.getReader();const h=new TextDecoder;for(;;){const {done:k,value:l}=await e.read();if(k){g.split("\n").filter(n=>0!==n.length).forEach(n=>{XF.UnfurlLoader.handleResponse(JSON.parse(n))});break}g+=h.decode(l);if(!g.includes("\n"))continue;const p=g.split("\n");g=p.pop();
p.filter(n=>0!==n.length).forEach(n=>{XF.UnfurlLoader.handleResponse(JSON.parse(n))})}};c=!0;try{const e=await fetch(XF.canonicalizeUrl("unfurl.php"),{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json","X-Requested-With":"XMLHttpRequest"},body:JSON.stringify({result_ids:a}),cache:"no-store"});if(!e.ok)throw Error("Network response was not ok.");d(e)}finally{a=[],c=!1,b&&(a=b,b=[],setTimeout(f,0))}}};return{activateContainer:d=>{d=d.querySelectorAll(".js-unfurl");d.length&&
(d.forEach(e=>{"false"===e.dataset.pending||XF.DataStore.get(e,"pending-seen")||(XF.DataStore.set(e,"pending-seen",!0),e=e.dataset.resultId,c?b.push(e):a.push(e))}),f())},unfurl:f,handleResponse:d=>{const e=m.querySelector(`.js-unfurl[data-result-id="${d.result_id}"]`);e&&(d.success?XF.setupHtmlInsert(d.html,g=>{e.replaceWith(g)}):(d=e.querySelector(".js-unfurl-title a"),d.textContent=e.dataset.url,d.classList.add("bbCodePlainUnfurl"),d.classList.remove("fauxBlockLink-blockLink"),e.replaceWith(d)))}}})();
XF.Event=(()=>{const a=(d,e,g)=>{const h=d.dataset[XF.toCamelCase("xf-"+e)].split(" ")||[],k=XF.DataStore.get(d,"xf-"+e+"-handlers")||{};let l,p,n;for(n=0;n<h.length;n++)if(l=h[n],l.length){if(!k[l]){p=c.getObjectFromIdentifier(l);if(!p){console.error("Could not find %s handler for %s",e,l);continue}const t=JSON.parse(d.getAttribute(`data-xf-${l}`)||"{}");k[l]=new p(d,t)}if(g&&!1===k[l]._onEvent(g))break}XF.DataStore.set(d,"xf-"+e+"-handlers",k);return k},c=new XF.ClassMapper,b={},f=XF.create({initialized:!1,
eventType:"click",eventNameSpace:null,target:null,options:{},__construct(d,e){this.target=d;this.options=XF.applyDataOptions(this.options,d.dataset,e);this.eventType=this.eventType.toLowerCase();if(!this.eventNameSpace)throw Error(`Please provide an eventNameSpace for your extended ${this.eventType} handler class`);this._init()},_init(){let d=!1;var e=XF.customEvent(`xf-${this.eventType}:before-init.${this.eventNameSpace}`);XF.trigger(this.target,e);e.defaultPrevented||(d=this.init(),e=XF.customEvent(`xf-${this.eventType}:after-init.${this.eventNameSpace}`),
XF.trigger(this.target,e));this.initialized=!0;return d},_onEvent(d){const e=XF.customEvent(`xf-${this.eventType}:before-${this.eventType}.${this.eventNameSpace}`);XF.trigger(this.target,e);if(!e.defaultPrevented){if("function"==typeof this[this.eventType])this[this.eventType](d);else if("function"==typeof this.onEvent)this.onEvent(d);else{console.error("You must provide a %1$s(e) method for your %1$s event handler",this.eventType,this.eventNameSpace);d.preventDefault();d.stopPropagation();return}d=
XF.customEvent(`xf-${this.eventType}:after-${this.eventType}.${this.eventNameSpace}`);XF.trigger(this.target,d)}return null},init(){console.error("This is the abstract init method for XF.%s, which must be overridden.",this.eventType,this.eventNameSpace)}});return{watch:d=>{d=String(d).toLowerCase();const e=(g,h)=>{h||(h=g.currentTarget);return!h||!h.getAttribute||h.matches("a")&&(g.ctrlKey||g.shiftKey||g.altKey||g.metaKey||1<g.which)||h.closest("[contenteditable=true]")?!1:!0};XF.hasOwn(b,d)||(b[d]=
!0,XF.on(m,d,g=>{const h=g.target.closest(`[data-xf-${d}]`);if(h&&e(g,h)){const k=XF.DataStore.get(h,"xfPointerType");g.xfPointerType=g.pointerType||k||"";a(h,d,g)}}),XF.on(m,"pointerdown",g=>{const h=g.target.closest(`[data-xf-${d}]`);h&&e(g,h)&&XF.DataStore.set(h,"xfPointerType",g.pointerType)},{passive:!0}))},initElement:a,getElementHandler:(d,e,g)=>{let h=XF.DataStore.get(`xf-${g}-handlers`);h||(h=XF.Event.initElement(d,g));return h&&h[e]?h[e]:null},register:(d,e,g)=>{XF.Event.watch(d);c.add(e,
g);XF.LazyHandlerLoader.checkLazyRegistration(e)},extend:(d,e)=>{c.extend(d,e)},getObjectFromIdentifier:d=>c.getObjectFromIdentifier(d),newHandler:d=>XF.extend(f,d),AbstractHandler:f}})();XF.Element=(()=>{const a=new XF.ClassMapper,c=(d,e,g)=>{const h=XF.DataStore.get(d,"xf-element-handlers")||{};if(h[e])return h[e];const k=a.getObjectFromIdentifier(e);if(!k)return null;g=new k(d,g||{});h[e]=g;XF.DataStore.set(d,"xf-element-handlers",h);g.init();return g},b=d=>{if(d&&d.getAttribute){var e=d.getAttribute("data-xf-init");
if(e){e=e.split(" ");var g=e.length;for(let k=0;k<g;k++){var h=e[k];if(!h)continue;const l=JSON.parse(d.getAttribute(`data-xf-${h}`)||"{}");c(d,h,l)}}}},f=XF.create({target:null,options:{},__construct(d,e){this.target=d;this.options=XF.applyDataOptions(this.options,d.dataset,e)},init(){console.error("This is the abstract init method for XF.Element, which should be overridden.")},getOption(d){return this.options[d]}});return{register:(d,e)=>{a.add(d,e);XF.LazyHandlerLoader.checkLazyRegistration(d)},
extend:(d,e)=>{a.extend(d,e)},getObjectFromIdentifier:d=>a.getObjectFromIdentifier(d),initialize:d=>{d.nodeType===Node.ELEMENT_NODE&&d.matches("[data-xf-init]")&&b(d);d.querySelectorAll("[data-xf-init]").forEach(b)},initializeElement:b,applyHandler:c,getHandler:(d,e)=>{let g=XF.DataStore.get(d,"xf-element-handlers");g||(b(d),g=XF.DataStore.get(d,"xf-element-handlers"));return g&&g[e]?g[e]:null},newHandler:d=>XF.extend(f,d),AbstractHandler:f}})();XF.AutoCompleteResults=XF.create({selectedResult:0,
results:!1,scrollWatchers:null,resultsVisible:!1,resizeBound:!1,headerHtml:null,options:{},__construct(a){this.options=XF.extendObject({onInsert:null,clickAttacher:null,beforeInsert:null,insertMode:"text",displayTemplate:"{{{icon}}}{{{text}}}",wrapperClasses:""},a)},isVisible(){return this.resultsVisible},hideResults(){this.resultsVisible=!1;this.results&&XF.display(this.results,"none");this.stopScrollWatching()},stopScrollWatching(){this.scrollWatchers&&(this.scrollWatchers.forEach(a=>XF.off(a,"scroll.autocomplete")),
this.scrollWatchers=null)},addHeader(a){this.headerHtml=a},showResults(a,c,b,f){if(c){this.results||(this.results=this.createResultWrapper());this.resultsVisible=!1;XF.display(this.results,"none");this.results.innerHTML="";for(const d of Object.values(c))c=this.createResultItem(d,a),this.results.append(c);this.results.children.length&&((a=this.createResultHeader())&&this.results.prepend(a),this.prepareResults(b,f),XF.display(this.results),this.resultsVisible=!0)}else this.hideResults()},createResultWrapper(){const a=
XF.createElement("ul",{className:"autoCompleteList"});this.options.wrapperClasses&&a.classList.add(...this.options.wrapperClasses.split(" "));a.setAttribute("role","listbox");return a},createResultHeader(){return this.headerHtml?XF.createElement("li",{className:"menu-header menu-header--small",unselectable:"on",innerHTML:this.headerHtml}):null},createResultItem(a,c){const b=XF.createElement("li",{unselectable:"on",role:"option",style:{cursor:"pointer"}});b.innerHTML=Mustache.render(this.options.displayTemplate,
this.getResultItemParams(a,c));XF.DataStore.set(b,"insertText","string"===typeof a?a:a.text);XF.DataStore.set(b,"insertHtml",a.html||"");XF.on(b,"mouseenter",this.resultMouseEnter.bind(this));if(this.options.clickAttacher)this.options.clickAttacher(b,this.resultClick.bind(this));else XF.on(b,"click",this.resultClick.bind(this));return b},getResultItemParams(a,c){const b={icon:"",text:"",desc:"",textPlain:"",descPlain:""};if("string"===typeof a)b.text=XF.htmlspecialchars(a);else if(b.text=XF.htmlspecialchars(a.text),
"undefined"!==typeof a.desc&&(b.desc=XF.htmlspecialchars(a.desc)),"undefined"!==typeof a.icon?b.icon=XF.createElement("img",{className:"autoCompleteList-icon",src:XF.htmlspecialchars(a.icon)}):"undefined"!==typeof a.iconHtml&&(b.icon=XF.createElement("span",{className:"autoCompleteList-icon",innerHTML:a.iconHtml})),b.icon&&(b.icon=b.icon.outerHTML),a.extraParams)for(let [f,d]of Object.entries(a.extraParams))f=(a=f.match(/Html$/))?f.replace(/Html$/,""):f,d=a?d:XF.htmlspecialchars(d),b[f]=d;b.textPlain=
b.text;b.descPlain=b.desc;b.text=this.highlightResultText(b.text,c);b.desc=this.highlightResultText(b.desc,c);return b},highlightResultText(a,c){c=new RegExp("("+XF.regexQuote(XF.htmlspecialchars(c))+")","i");return a.replace(c,b=>`<strong>${b}</strong>`)},prepareResults(a,c){this.results.connected||(m.body.append(this.results),XF.setRelativeZIndex(this.results,a,1));this.results.style.top="";this.results.style.left="";this.results.style.right="";this.results.style.bottom="";const b=(e,g)=>{XF.isFunction(g)&&
(g=g(this.results,a));if(!g){g=a.getBoundingClientRect();var h=g.left+q.scrollX;g={top:g.top+q.scrollY+a.offsetHeight+"px",left:h+"px"};XF.isRtl()&&(g.right=m.documentElement.clientWidth-h-a.offsetWidth+"px",g.left="auto")}for(let k in g)e.style[k]=g[k];return g};this.stopScrollWatching();const f=[];let d=a.parentElement;for(;d;){const e=q.getComputedStyle(d);"scroll"!==e.overflowX&&"auto"!==e.overflowX||f.push(d);d=d.parentElement}f.length&&(f.forEach(e=>{XF.on(e,"scroll.autocomplete",()=>{b(this.results,
c)})}),this.scrollWatchers=f);this.results.style.position="absolute";b(this.results,c);this.selectResult(0,!0)},resultClick(a){a.stopPropagation();this.insertResult(this.getResultText(a.currentTarget),a.currentTarget,a)&&this.hideResults()},resultMouseEnter(a){a=Array.from(a.currentTarget.parentNode.children).indexOf(a.currentTarget);this.selectResult(a,!0)},selectResult(a,c){if(this.results){var b=this.selectedResult=c?a:this.selectedResult+a;a=Array.from(this.results.children);a.forEach((f,d)=>
{d==b?f.classList.add("is-selected"):f.classList.remove("is-selected")});if(0>b||b>=a.length)this.selectedResult=-1}},insertSelectedResult(a){let c;var b=!1;if(!this.resultsVisible)return!1;let f=!0;0<=this.selectedResult&&(c=this.results.children[this.selectedResult])&&(b=this.getResultText(c),this.options.beforeInsert&&(b=this.options.beforeInsert(b,c)),f=this.insertResult(b,c,a),b=!0);f&&this.hideResults();return b},insertResult(a,c,b){return this.options.onInsert?!1!==this.options.onInsert(a,
c,b):!0},getResultText(a){let c;switch(this.options.insertMode){case "text":c=XF.DataStore.get(a,"insertText");break;case "html":c=XF.DataStore.get(a,"insertHtml")}return c}});XF.AutoCompleter=XF.create({options:{url:null,method:"GET",idleWait:200,minLength:2,at:"@",keepAt:!0,insertMode:"text",displayTemplate:"{{{icon}}}{{{text}}}",beforeInsert:null,suffixEd:"\u00a0",suffix:" "},input:null,ed:null,results:null,visible:!1,idleTimer:null,pendingQuery:"",__construct(a,c,b){this.options=XF.extendObject({},
this.options,c);this.input=a;this.ed=b;this.options.url?(("string"!=typeof this.options.at||1<this.options.at.length)&&console.error("The 'at' option should be a single character string."),this.init()):console.error("No URL option passed in to XF.AutoCompleter.")},init(){const a={onInsert:c=>{this.insertResult(c)},beforeInsert:this.options.beforeInsert,insertMode:this.options.insertMode,displayTemplate:this.options.displayTemplate};this.ed&&(a.clickAttacher=(c,b)=>{const f=this.ed.$(c);this.ed.events.bindClick(f,
!1,d=>{d.currentTarget=c;b(d)})});this.results=new XF.AutoCompleteResults(a);this.ed?(this.ed.events.on("keydown",this.keydown.bind(this),!0),this.ed.events.on("keyup",this.keyup.bind(this),!0),this.ed.events.on("click blur",this.blur.bind(this)),XF.on(this.ed.$wp[0],"scroll",this.blur.bind(this),{passive:!0})):(XF.on(this.input,"keydown",this.keydown.bind(this)),XF.on(this.input,"keyup",this.keyup.bind(this)),XF.on(this.input,"click",this.blur.bind(this)),XF.on(this.input,"blur",this.blur.bind(this)),
XF.on(m,"scroll",this.blur.bind(this),{passive:!0}))},keydown(a){if(this.visible)switch(a.key){case "ArrowDown":this.results.selectResult(1);a.preventDefault();a.stopPropagation();break;case "ArrowUp":this.results.selectResult(-1);a.preventDefault();a.stopPropagation();break;case "Escape":this.hide();a.preventDefault();a.stopPropagation();break;case "Enter":case "Tab":if(this.visible)return this.results.insertSelectedResult(a),a.preventDefault(),a.stopPropagation(),!1}},keyup(a){if(this.visible)switch(a.key){case "ArrowDown":case "ArrowUp":case "Enter":case "Tab":return}this.hide();
this.idleTimer&&clearTimeout(this.idleTimer);this.idleTimer=setTimeout(this.lookForMatch.bind(this),this.options.idleWait)},blur(){this.visible&&setTimeout(this.hide.bind(this),250)},lookForMatch(){const a=this.getCurrentMatchInfo();a?this.foundMatch(a.query):this.hide()},getCurrentMatchInfo(){let a,c;if(this.ed){a=this.ed.selection.ranges(0);if(!a||!a.collapsed)return null;var b=a.endContainer;if(!b||b.nodeType!==Node.TEXT_NODE)return null;c=b;b=b.nodeValue.substring(0,a.endOffset)}else{this.input.focus();
a=this.getSelection(this.input);if(!a||1>=a.end)return!1;b=this.input.value.substring(0,a.end)}const f=b.lastIndexOf(this.options.at);if(-1===f)return null;if(0===f||b.substr(f-1,1).match(/(\s|[\](,]|--)/)){const d=b.substr(f+1);if(!d.match(/\s/)||15>=d.length)return{text:b,textNode:c,start:f,query:d.replace(new RegExp(String.fromCharCode(160),"g")," "),range:a}}return null},getSelection(a){const c=a.selectionStart,b=a.selectionEnd,f=b-c;a=a.value.substring(c,b);return{start:c,end:b,length:f,text:a}},
foundMatch(a){this.pendingQuery!==a&&(this.pendingQuery=a,a.length>=this.options.minLength&&"["!==a.substr(0,1)&&this.getPendingQueryOptions())},getPendingQueryOptions(){XF.ajax(this.options.method,this.options.url,{q:this.pendingQuery},this.handlePendingQueryOptions.bind(this),{global:!1,error:!1})},handlePendingQueryOptions(a){const c=this.getCurrentMatchInfo();a.q&&c&&a.q===c.query&&(a.results&&a.results.length?this.show(a.q,a.results):this.hide())},insertResult(a){this.hide();var c=this.getCurrentMatchInfo();
if(c){var b=c.start+1,f=c.range;if(this.ed){this.ed.selection.save();XF.EditorHelpers.focus(this.ed);f=c.textNode;const e=f.nodeValue,g=this.options.suffixEd;var d=f.splitText(this.options.keepAt?b:b-1);d.textContent=e.substr(b+c.query.length);c="html"===this.options.insertMode?XF.createElementFromString(a+g):m.createTextNode(a+g);d.parentNode.insertBefore(c,d);f.parentNode.normalize();this.ed.selection.restore()}else d=this.input,a+=this.options.suffix,XF.autofocus(d),-1!==b&&(d.selectionStart=c.start,
d.selectionEnd=f.end,XF.replaceSelectedText(d,(this.options.keepAt?this.options.at:"")+a))}},show(a,c){const b=this.getCurrentMatchInfo(),f=this.input,d=XF.dimensions(f);if(b)if(this.visible=!0,this.ed){const e=b.range;this.results.showResults(a,c,f,g=>{var h=e.cloneRange();h.setStart(b.textNode,b.start);h.setEnd(b.textNode,b.start+1);h=h.getBoundingClientRect();return this.getResultPositionForSelection(h.left,h.bottom,e.getBoundingClientRect().left,g,d)})}else this.results.showResults(a,c,f,e=>{let g=
m.createElement("div");var h=q.getComputedStyle(f),k="";for(var l of h)k+=`${l}: ${h.getPropertyValue(l)}; `;g.style.cssText=k;g.style.position="absolute";g.style.height="";g.style.width=`${f.offsetWidth}px`;g.style.opacity="0";g.style.top="0";g.style.left="-9999px";g.textContent=f.value;m.body.appendChild(g);l=m.createRange();l.setStart(g.firstChild,b.start);l.setEnd(g.firstChild,b.start+1);let p=l.getBoundingClientRect(),n=XF.dimensions(g);h=d.left+(p.left-n.left);k=d.top+(p.bottom-n.top);l.setStart(g.firstChild,
b.start+1+b.query.length);l.setEnd(g.firstChild,b.start+1+b.query.length);p=l.getBoundingClientRect();l=d.left+(p.left-n.left);m.body.removeChild(g);return this.getResultPositionForSelection(h,k,l,e,d)})},getResultPositionForSelection(a,c,b,f,d){f=f.offsetWidth;c=c+q.scrollY+3;a+f>d.right&&(a=b-f);a<d.left&&(a=d.left);return{top:`${c}px`,left:`${a}px`}},hide(){this.visible&&(this.visible=!1,this.results.hideResults())}});class G extends Event{constructor(a,c={}){void 0===c.bubbles&&(c.bubbles=!0);
void 0===c.cancelable&&(c.cancelable=!0);super(a,c);delete c.bubbles;delete c.cancelable;for(const b in c)this[b]=c[b]}}XF.pageDisplayTime=Date.now();XF.on(q,"DOMContentLoaded",()=>setTimeout(XF.onPageLoad,0));XF.on(q,"pageshow",()=>{if(!XF.pageDisplayTime||Date.now()>XF.pageDisplayTime)XF.pageDisplayTime=Date.now()})}})(window,document);

((m,k)=>{XF._baseInserterOptions={after:null,append:null,before:null,prepend:null,replace:null,removeOldSelector:!0,animateReplace:!0,animateDisplay:null,scrollTarget:null,href:null,afterLoad:null};XF.Inserter=XF.create({options:XF.extendObject(!0,{},XF._baseInserterOptions),target:null,href:null,loading:!1,__construct(a,b){this.target=a;this.options=XF.extendObject(!0,{},this.options,b);(a=this.options.href||this.target.dataset.inserterHref||this.target.getAttribute("href"))?this.href=a:console.error("Target must have href")},
onEvent(a,b){a.preventDefault();this.loading||(this.loading=!0,a=k.querySelectorAll(this.options.replace),a.length&&a.forEach(c=>XF.Transition.addClassTransitioned(c,"is-active")),XF.ajax("get",this.href,b||{},this.onLoad.bind(this)).finally(()=>{this.loading=!1}))},onLoad(a){if(a.html){var b=this.options,c=b.scrollTarget,d=b.afterLoad,e;c&&(e=XF.findRelativeIf(c,this.target));XF.setupHtmlInsert(a.html,(f,g,h)=>{this._applyChange(f,b.after,this._applyAfter.bind(this));this._applyChange(f,b.append,
this._applyAppend.bind(this));this._applyChange(f,b.before,this._applyBefore.bind(this));this._applyChange(f,b.prepend,this._applyPrepend.bind(this));this._applyChange(f,b.replace,this._applyReplace.bind(this));h(!0);d&&d(a);return!1});XF.layoutChange();e&&e.scrollIntoView(!0)}},_applyChange(a,b,c){if(b&&b.length){b=b.split(",");for(let f of b){f=f.split(" with ");b=f[0].trim();var d=f[1]?f[1].trim():b;if(b.length&&d.length){var e=k.querySelector(b);d=a.matches(d)?a:a.querySelector(d);c(b,e,d)}}}},
_applyAfter(a,b,c){b&&c&&(b.after(c),XF.activate(c),this._removeOldSelector(a,b))},_applyAppend(a,b,c){b&&c&&(XF.activate(c),Array.from(c.children).forEach(d=>b.appendChild(d)))},_applyBefore(a,b,c){b&&c&&(b.after(c),XF.activate(c),this._removeOldSelector(a,b))},_applyPrepend(a,b,c){b&&c&&(XF.activate(c),Array.from(c.children).reverse().forEach(d=>b.prepend(d)))},_applyReplace(a,b,c){b&&(a=this.options.animateReplace,XF.isIOS()&&(a=!1),c&&(a&&(XF.display(c,"none"),c.style.opacity=0),b.insertAdjacentElement("afterend",
c)),a?(a=()=>{b.remove();XF.layoutChange();c&&XF.activate(c);XF.Animate.fadeDown(c,{speed:XF.config.speed.normal,complete:XF.layoutChange,display:this.options.animateDisplay})},"none"===m.getComputedStyle(b).display?a():XF.Animate.fadeUp(b,{complete:a()})):(b.remove(),c&&XF.activate(c)))},_removeOldSelector(a,b){if(this.options.removeOldSelector){var c;(c=a.match(/^\.([a-z0-9_-]+)/i))&&b.classList.remove(c[1])}}});XF.MenuBuilder={actionBar(a,b,c){const d=a.querySelector(".js-menuBuilderTarget");b.closest(".actionBar-set").querySelectorAll(".actionBar-action--menuItem").forEach(e=>
{e=e.cloneNode(!0);e.className="menu-linkRow";d.appendChild(e)});XF.activate(d)},dataList(a,b,c){const d=a.querySelector(".js-menuBuilderTarget");b.closest(".dataList-row").querySelectorAll(".dataList-cell--responsiveMenuItem").forEach(e=>{Array.from(e.cloneNode(!0).children).forEach(f=>{if("a"===f.nodeName.toLowerCase())f.className="menu-linkRow";else{let g=XF.createElement("div",{className:"menu-row"});g.appendChild(f);f=g}d.appendChild(f)})});XF.activate(d)}};XF.MenuWatcher=(()=>{let a=[],b=null,
c=!1,d=!1;const e=h=>{d||g(h.target)},f=h=>{a.forEach(l=>XF.trigger(l,"menu:reposition"))},g=h=>{c||(c=!0,a.forEach(l=>{let p=XF.DataStore.get(l,"menu-trigger"),n=p?p.target:null;l.contains(h)||n&&n.contains(h)||p&&p.close()}),c=!1)};return{onOpen:(h,l)=>{b||(b=XF.createElement("div",{className:"menuOutsideClicker"}),b.addEventListener("click",e),h.parentNode.insertBefore(b,h));a.length||(k.addEventListener("click",e),XF.on(m,"resize",f,{passive:!0}),l&&b.classList.add("is-active"));a.push(h)},onClose:h=>
{a=a.filter(l=>l!==h);a.length||(XF.off(k,"click",e),XF.off(m,"resize",f),b&&b.classList.remove("is-active"));g(h)},closeAll:()=>{c=!0;a.forEach(h=>XF.trigger(h,"menu:close"));c=!1},closeUnrelated:g,preventDocClick:()=>{d=!0},allowDocClick:()=>{d=!1}}})();XF.OffCanvasBuilder={navigation(a,b){k.body.append(a);const c=XF.createElementFromString('<ul class="offCanvasMenu-list" />');k.querySelectorAll(".js-offCanvasNavSource .p-navEl").forEach(d=>{let e=d.classList.contains("is-selected");var f=d.querySelector(".p-navEl-link");
let g=d.querySelector("[data-menu]");d.dataset.hasChildren&&!g&&(d=d.querySelector('[data-xf-click~="menu"]'),(d=XF.DataStore.get(d,"xf-click-handlers"))&&d.menu&&(g=d.menu.menu));if(f){d=XF.createElement("div",{className:"offCanvasMenu-linkHolder"});var h=k.createElement("li");f=f.cloneNode(!0);f.classList.remove(["p-navEl-link","p-navEl-link--menuTrigger","p-navEl-link--splitMenu"]);f.classList.add("offCanvasMenu-link");!f.matches("a")&&g&&(f.setAttribute("data-xf-click","menu-proxy"),f.setAttribute("data-trigger",
"< :up | .offCanvasMenu-link--splitToggle"));d.innerHTML="";d.append(f);e&&(h.classList.add("is-selected"),d.classList.add("is-selected"));h.append(d);if(g){f=XF.createElementFromString('<a class="offCanvasMenu-link offCanvasMenu-link--splitToggle" data-xf-click="toggle" data-target="< :up :next" role="button" tabindex="0" />');e&&f.classList.add("is-active");d.appendChild(f);const l=XF.createElementFromString('<ul class="offCanvasMenu-subList" />');e&&l.classList.add("is-active");g.querySelectorAll(".menu-linkRow").forEach(p=>
{XF.createElement("li",{innerHTML:p.cloneNode(!0).outerHTML.replace("menu-linkRow","offCanvasMenu-link")},l)});h.appendChild(l)}c.appendChild(h)}});a=a.querySelector(".js-offCanvasNavTarget").appendChild(c);XF.activate(a)},sideNav(a,b){const c=a.querySelector(".offCanvasMenu-content"),d=b.target;c&&!c.querySelector("[data-menu-close]")&&(b=c.querySelector(".block-header"),b||(b=XF.createElementFromString('<div class="offCanvasMenu-header offCanvasMenu-header--separated offCanvasMenu-shown" />'),b.innerHTML=
"",b.append(...d.childNodes),c.prepend(b)),b.append(XF.createElementFromString('<a class="offCanvasMenu-closer" data-menu-close="true" role="button" tabindex="0" />')));XF.on(m,"resize",()=>{"none"===m.getComputedStyle(d).display&&XF.trigger(a,"off-canvas:close")})},simple(a,b){k.body.append(a);const c=XF.createElementFromString('<ul class="offCanvasMenu-list" />'),d=a.dataset.ocmLinkRemoveClass;k.querySelectorAll(a.dataset.ocmLinkTarget).forEach(e=>{let f=XF.createElementFromString('<div class="offCanvasMenu-linkHolder" />');
e=e.cloneNode(!0);let g=XF.createElementFromString("<li />");e.classList.add("offCanvasMenu-link");d&&e.classList.remove(...d.split(" "));f.appendChild(e);g.appendChild(f);c.appendChild(g)});a=a.querySelector(".js-offCanvasTarget");a.appendChild(c);XF.activate(a)}};XF.ToggleStorageDataInstance=XF.create({storage:null,dataCache:{},syncTimers:{},pruneTimers:{},__construct(a){this.storage=a},getStorage(){return this.storage},get(a,b,c){c||(c={});let d=!0,e=!0;XF.hasOwn(c,"allowExpired")&&(d=c.allowExpired);
XF.hasOwn(c,"touch")&&(e=c.touch);this.dataCache[a]||(this.dataCache[a]=this.storage.getJson(a));c=this.dataCache[a];if(!XF.hasOwn(c,b))return null;c=c[b];const f=Math.floor(Date.now()/1E3);if(!d&&c[0]+c[1]<f)return delete this.dataCache[a][b],this.scheduleSync(a),null;e&&(c[0]=f,this.dataCache[a][b]=c,this.scheduleSync(a));return c[2]},set(a,b,c,d){this.dataCache[a]||(this.dataCache[a]={});d||(d=14400);const e=Math.floor(Date.now()/1E3);this.dataCache[a][b]=[e,d,c];this.scheduleSync(a)},remove(a,
b){this.dataCache[a]||(this.dataCache[a]={});delete this.dataCache[a][b];this.scheduleSync(a)},prune(a,b){const c=this.pruneTimers[a],d=()=>{clearTimeout(c);this.pruneTimers[a]=null;this.pruneInternal(a)};b?d():c||(this.pruneTimers[a]=setTimeout(d,100))},pruneInternal(a){this.dataCache[a]||(this.dataCache[a]=this.storage.getJson(a));const b=this.dataCache[a];let c;const d=Math.floor(Date.now()/1E3);let e=!1;for(let f of Object.keys(b))c=b[f],c[0]+c[1]<d&&(delete b[f],e=!0);e&&(this.dataCache[a]=b,
this.scheduleSync(a))},scheduleSync(a,b){const c=this.syncTimers[a],d=()=>{clearTimeout(c);this.syncTimers[a]=null;this.syncToStorage(a)};b?d():c||(this.syncTimers[a]=setTimeout(d,100))},syncToStorage(a){if(this.dataCache[a]){var b=this.dataCache[a];if(XF.isEmptyObject(b))this.storage.remove(a);else if(this.storage.supportsExpiryDate()){const c=XF.getFutureDate(1,"year");this.storage.setJson(a,b,c)}else this.storage.setJson(a,b)}}});XF.ToggleStorageData=(()=>{const a={local:new XF.ToggleStorageDataInstance(XF.LocalStorage),
cookie:new XF.ToggleStorageDataInstance(XF.Cookie)},b=a.local;return{getInstance(c){return a[c]},get(c,d,e){return b.get(c,d,e)},set(c,d,e,f){return b.set(c,d,e,f)},remove(c,d){return b.remove(c,d)},prune(c,d){return b.prune(c,d)}}})();XF.TooltipElement=XF.create({options:{baseClass:"tooltip",extraClass:"tooltip--basic",html:!1,inViewport:!0,loadRequired:!1,loadParams:null,placement:"top"},content:null,tooltip:null,shown:!1,shownFully:!1,placement:null,positioner:null,loadRequired:!1,loading:!1,contentApplied:!1,
setupCallbacks:null,__construct(a,b,c){this.setupCallbacks=[];this.options=XF.extendObject(!0,{},this.options,b);this.content=a;this.loadRequired=this.options.loadRequired;c&&this.setPositioner(c)},setPositioner(a){this.positioner=a},setLoadRequired(a){this.loadRequired=a},addSetupCallback(a){this.tooltip?a(this.tooltip):this.setupCallbacks.push(a)},show(){if(!this.shown)if(this.shown=!0,this.loadRequired)this.loadContent();else{var a=this.getTooltip();this.reposition();var b=XF.uniqueId(a);XF.on(m,
"resize.tooltip-"+b,this.reposition.bind(this));XF.trigger(a,"tooltip:shown");XF.display(a,"none");XF.Animate.fadeIn(a,{speed:XF.config.speed.fast,complete:()=>{this.shownFully=!0}})}},hide(){if(this.shown){this.shownFully=this.shown=!1;var a=this.tooltip;a&&(XF.Animate.fadeOut(a,{speed:XF.config.speed.fast}),XF.trigger(a,"tooltip:hidden"),a=XF.uniqueId(a),XF.off(m,"resize.tooltip-"+a))}},toggle(){this.shown?this.hide():this.show()},destroy(){this.tooltip&&this.tooltip.remove()},isShown(){return this.shown},
isShownFully(){return this.shown&&this.shownFully},requiresLoad(){return this.loadRequired},getPlacement(){return XF.rtlFlipKeyword(this.options.placement)},reposition(){var a=this.positioner;if(!a)console.error("No tooltip positioner");else if(!this.loadRequired){var b=this.options.inViewport;if(a instanceof Element){var c=XF.dimensions(a,!0);a.closest(".overlay")&&(b=!0)}else"undefined"!==typeof a[0]&&"undefined"!==typeof a[1]?c={top:a[1],right:a[0],bottom:a[1],left:a[0]}:"undefined"!==typeof a.right&&
"undefined"!==typeof a.bottom?c=a:console.error("Positioner is not in correct format",a);c.width=c.right-c.left;c.height=c.bottom-c.top;var d=k.documentElement;a=this.getTooltip();var e=this.getPlacement(),f=this.options.baseClass,g=e;if(b){b=d.clientWidth;var h=d.clientHeight;var l=d.scrollTop+XF.getStickyHeaderOffset(),p=d.scrollLeft;h={top:l,left:p,right:p+b,bottom:l+h,width:b,height:h}}else h=XF.dimensions(k.body);this.placement&&a.classList.remove(f+"--"+this.placement);a.classList.add(f+"--"+
e);a.style.visibility="hidden";XF.display(a);a.style.top="";a.style.bottom="";a.style.left="";a.style.right="";a.style.paddingLeft="";a.style.paddingRight="";a.style.paddingTop="";a.style.paddingBottom="";b=a.offsetWidth;l=a.offsetHeight;"top"==e&&c.top-l<h.top?e="bottom":"bottom"==e&&c.bottom+l>h.bottom?c.top-l>=h.top&&(e="top"):"left"==e&&c.left-b<h.left?e=c.right+b>h.right?c.top-l<h.top?"bottom":"top":"right":"right"==e&&c.right+b>h.right&&(e=c.left-b<h.left?c.top-l<h.top?"bottom":"top":"left");
e!=g&&(a.classList.remove(f+"--"+g),a.classList.add(f+"--"+e));g={top:"",right:"",bottom:"",left:""};switch(e){case "top":g.bottom=d.clientHeight-c.top;g.left=c.left+c.width/2-b/2;break;case "bottom":g.top=c.bottom;g.left=c.left+c.width/2-b/2;break;case "left":g.top=c.top+c.height/2-l/2;g.right=d.clientWidth-c.left;break;default:g.top=c.top+c.height/2-l/2,g.left=c.right}for(var n in g)a.style[n]=g[n]+"px";d=XF.dimensions(a,!0);n=c=0;f=a.querySelector("."+f+"-arrow");if("left"==e||"right"==e)d.top<
h.top?c=h.top-d.top:d.bottom>h.bottom&&(c=h.bottom-d.bottom),f.style.left="",f.style.top=50-100*c/d.top+"%";else{d.left<h.left?n=h.left-d.left:d.left+b>h.right&&(n=h.right-(d.left+b));d=parseInt(b/100*(50-100*n/b),0);p=d+parseInt(m.getComputedStyle(f).marginLeft);const q=p+f.offsetWidth;h=parseInt(a.style.paddingLeft,10);l=parseInt(a.style.paddingRight,10);p<h?(b=h-p,a.style.paddingLeft=Math.max(0,h-b),a.style.paddingRight=l+b):q>b-l&&(b=q-(b-l),a.style.paddingLeft=l+b,a.style.paddingRight=Math.max(0,
l-b));f.style.top="";f.style.left=d+"px"}n?a.style.left=parseInt(g.left)+n+"px":c&&(a.style.top=parseInt(g.top)+c+"px");this.placement=e;this.shown&&!this.loadRequired&&(a.style.visibility="")}},attach(){this.getTooltip()},getTooltip(){if(!this.tooltip){const a=this.getTemplate();k.body.append(a);this.tooltip=a;this.loadRequired||this.applyTooltipContent()}return this.tooltip},setContent(a){this.contentApplied=!1;this.content=a;this.applyTooltipContent()},applyTooltipContent(){if(this.contentApplied||
this.loadRequired)return!1;const a=this.getTooltip();var b=a.querySelector("."+this.options.baseClass+"-content");let c=this.content;XF.isFunction(c)&&(c=c());if(this.options.html){if(b.innerHTML="",c instanceof NodeList?b.append(...c):c instanceof Node?b.append(c):b.innerHTML=c,b=b.querySelector("img"))XF.on(b,"load",this.reposition.bind(this))}else b.textContent=c;b=this.setupCallbacks;for(const d of b)d(a);XF.activate(a);return this.contentApplied=!0},loadContent(){if(this.loadRequired&&!this.loading){var a=
this.content,b=c=>{this.content=c;this.loading=this.loadRequired=!1;this.applyTooltipContent();this.shown&&(this.shown=!1,this.show())};XF.isFunction(a)?(this.loading=!0,a(b,this.options.loadParams)):b("")}},getTemplate(){const a=this.options.baseClass;return XF.createElementFromString('<div class="'+a+(this.options.extraClass?" "+this.options.extraClass:"")+'" role="tooltip"><div class="'+a+'-arrow"></div><div class="'+a+'-content"></div></div>')}});XF.TooltipTrigger=XF.create({options:{delayIn:200,
delayInLoading:800,delayOut:200,trigger:"hover focus",maintain:!1,clickHide:null,onShow:null,onHide:null},target:null,tooltip:null,delayTimeout:null,delayTimeoutType:null,stopFocusBefore:null,clickTriggered:!1,touchEnterTime:null,covers:null,__construct(a,b,c){this.options=XF.extendObject(!0,{},this.options,c);this.target=a;this.tooltip=b;"auto"==this.options.trigger&&(this.options.trigger="hover focus"+(a.matches("span")?" touchclick":""));b.setPositioner(a);b.addSetupCallback(this.onTooltipSetup.bind(this));
a=XF.uniqueId(a);XF.TooltipTrigger.cache[a]=this},init(){let a=this.target,b=!1,c=!1;var d=XF.supportsPointerEvents();let e=d?"pointerover":"mouseover";d=d?"pointerout":"mouseout";null===this.options.clickHide&&(this.options.clickHide=a.matches("a"));const f=this.options.trigger.split(" ");for(const g of f)switch(g){case "hover":XF.on(a,e+".tooltip",this.mouseEnter.bind(this),{passive:!0});XF.on(a,d+".tooltip",this.leave.bind(this),{passive:!0});break;case "focus":XF.on(a,"focusin.tooltip",this.focusEnter.bind(this));
XF.on(a,"focusout.tooltip",this.leave.bind(this));break;case "click":b=!0;XF.onPointer(a,"click.tooltip",this.click.bind(this));XF.onPointer(a,"auxclick.tooltip contextmenu.tooltip",()=>{this.cancelShow();this.stopFocusBefore=Date.now()+2E3});break;case "touchclick":c=!0;XF.onPointer(a,"click.tooltip",n=>{XF.isEventTouchTriggered(n)&&this.click(n)});break;case "touchhold":c=!0;const h=this.options.delayIn;let l;const p=n=>{XF.DataStore.set(a,"tooltip:taphold",!0);XF.isEventTouchTriggered(n)&&this.click(n)};
XF.onPointer(a,{"touchstart.tooltip":n=>{XF.DataStore.set(a,"tooltip:touching",!0);l=setTimeout(()=>p(n),h)},"touchend.tooltip":()=>{clearTimeout(l);setTimeout(()=>{XF.DataStore.remove(a,"tooltip:touching")},50)},"touchmove.tooltip":()=>{clearTimeout(l)},"contextmenu.tooltip":n=>{XF.DataStore.get(a,"tooltip:touching")&&n.preventDefault()}},null,{passive:!0})}b&&c&&console.error("Cannot have touchclick and click triggers");if(!b&&this.options.clickHide)XF.onPointer(a,"click.tooltip auxclick.tooltip contextmenu.tooltip",
g=>{c&&XF.isEventTouchTriggered(g)||(this.hide(),this.stopFocusBefore=Date.now()+2E3)});XF.on(a,"tooltip:show",this.show.bind(this));XF.on(a,"tooltip:hide",this.hide.bind(this));XF.on(a,"tooltip:reposition",this.reposition.bind(this))},reposition(){this.tooltip.reposition()},click(a){0<a.button||a.ctrlKey||a.shiftKey||a.metaKey||a.altKey?this.cancelShow():this.tooltip.isShown()?this.tooltip.isShownFully()?this.hide():(a.preventDefault(),this.clickShow(a)):(a.preventDefault(),this.clickShow(a))},clickShow(a){this.clickTriggered=
!0;setTimeout(()=>{var b=this.addCovers();XF.isEventTouchTriggered(a)?Array.from(b).forEach(c=>{c.classList.add("is-active")}):(b=XF.uniqueId(this.target),XF.on(k,"click.tooltip-"+b,this.docClick.bind(this)))},0);this.show()},addCovers(){this.covers&&this.covers.forEach(d=>d.remove());var a=XF.dimensions(this.target,!0),b=[];b.push({top:0,height:a.top,left:0,right:0});b.push({top:a.top,height:a.height,left:0,width:a.left});b.push({top:a.top,height:a.height,left:a.right,right:0});b.push({top:a.bottom,
height:k.documentElement.scrollHeight-a.bottom,left:0,right:0});a=[];for(const d of b){b=XF.createElement("div",{className:"tooltipCover"});for(let e in d)b.style[e]=d[e]+"px",XF.on(b,"click",this.hide.bind(this));a.push(b)}const c=this.tooltip.getTooltip();a.forEach(d=>c.insertAdjacentElement("beforebegin",d));this.covers=a;XF.setRelativeZIndex(a,this.target);return a},docClick(a){let b=this.covers;var c=a.pageX;let d=a.pageY;b&&(0==a.screenX&&0==a.screenY&&(a=a.target.getBoundingClientRect(),c=
a.left,d=a.top),b.forEach(e=>e.classList.add("is-active")),c=k.elementFromPoint(c-m.scrollX,d-m.scrollY),b.forEach(e=>e.classList.remove("is-active")),b.includes(c)&&this.hide())},mouseEnter(a){XF.isEventTouchTriggered(a)?this.touchEnterTime=a.timeStamp:XF.browser.ios&&XF.supportsPointerEvents()&&a instanceof PointerEvent&&this.touchEnterTime&&this.touchEnterTime>a.timeStamp-1E3||this.enter()},focusEnter(a){100>Date.now()-XF.pageDisplayTime||XF.isEventTouchTriggered(a)||(!this.stopFocusBefore||Date.now()>=
this.stopFocusBefore)&&this.enter()},enter(){if(!this.isShown()||!this.clickTriggered){this.clickTriggered=!1;var a=this.tooltip.requiresLoad()?this.options.delayInLoading:this.options.delayIn;a?("enter"!==this.delayTimeoutType&&this.resetDelayTimer(),this.delayTimeoutType||this.isShown()||(this.delayTimeoutType="enter",this.delayTimeout=setTimeout(()=>{this.delayTimeoutType=null;this.show()},a))):this.show()}},leave(){if(!this.clickTriggered){var a=this.options.delayOut;a?("leave"!==this.delayTimeoutType&&
this.resetDelayTimer(),!this.delayTimeoutType&&this.isShown()&&(this.delayTimeoutType="leave",this.delayTimeout=setTimeout(()=>{this.delayTimeoutType=null;this.hide()},a))):this.hide()}},show(){var a=XF.uniqueId(this.target);XF.off(m,"focus.tooltip-"+a);XF.on(m,"focus.tooltip-"+a,b=>{this.stopFocusBefore=Date.now()+250});XF.setRelativeZIndex(this.tooltip.getTooltip(),this.target);this.options.onShow&&(a=this.options.onShow,a(this,this.tooltip));this.tooltip.show()},cancelShow(){"enter"===this.delayTimeoutType?
this.resetDelayTimer():this.tooltip.isShownFully()||this.hide()},hide(){this.tooltip.hide();this.resetDelayTimer();this.clickTriggered=!1;this.covers&&(this.covers.forEach(b=>b.remove()),this.covers=null);var a=XF.uniqueId(this.target);XF.off(k,"click.tooltip-"+a);this.options.onHide&&(a=this.options.onHide,a(this,this.tooltip))},toggle(){this.isShown()?this.hide():this.show()},isShown(){return this.tooltip.isShown()},wasClickTriggered(){return this.clickTriggered},resetDelayTimer(){this.delayTimeoutType&&
(clearTimeout(this.delayTimeout),this.delayTimeoutType=null)},addMaintainElement(a){if(!XF.DataStore.get(a,"tooltip-maintain")){var b=this.options.trigger.split(" ");for(const c of b)switch(c){case "hover":XF.on(a,"mouseover.tooltip",this.enter.bind(this));XF.on(a,"mouseout.tooltip",this.leave.bind(this));break;case "focus":XF.on(a,"focusin.tooltip",this.enter.bind(this)),XF.on(a,"focusout.tooltip",this.leave.bind(this))}XF.DataStore.set(a,"tooltip-maintain",!0)}},removeMaintainElement(a){XF.off(a,
".tooltip");XF.DataStore.set(a,"tooltip-maintain",!1)},onTooltipSetup(a){this.options.maintain&&(this.addMaintainElement(a),XF.on(a,"menu:opened",b=>{this.addMaintainElement(b.menu)}),XF.on(a,"menu:closed",b=>{this.removeMaintainElement(b.menu)}))}});XF.TooltipTrigger.cache={};XF.TooltipOptions={base:{baseClass:"tooltip",extraClass:"tooltip--basic",html:!1,inViewport:!0,placement:"top",clickHide:null,delayIn:200,delayOut:200,maintain:!1,trigger:"hover focus"},tooltip:["baseClass","extraClass","html",
"placement"],trigger:["clickHide","delayIn","delayOut","maintain","trigger"],extract(a,b){const c={};for(const d of a)c[d]=b[d];return c},extractTooltip(a){return this.extract(this.tooltip,a)},extractTrigger(a){return this.extract(this.trigger,a)}};XF.AutoComplete=XF.Element.newHandler({loadTimer:null,loadVal:"",results:null,options:{single:!1,multiple:",",acurl:"",minLength:2,queryKey:"q",extraFields:"",extraParams:{},jsonContainer:"results",autosubmit:!1},abortController:null,init(){const a=this.target;
this.options.autosubmit&&(this.options.single=!0);this.options.acurl||(this.options.acurl=XF.getAutoCompleteUrl());this.results=new XF.AutoCompleteResults({onInsert:this.addValue.bind(this)});a.setAttribute("autocomplete","off");XF.on(a,"keydown",this.keydown.bind(this));XF.on(a,"keyup",this.keyup.bind(this));XF.on(a,"blur",this.blur.bind(this));XF.on(a,"click",this.blur.bind(this));XF.on(a,"paste",()=>setTimeout(()=>{XF.trigger(a,"keydown")},0));const b=a.closest("form");XF.on(b,"submit",this.hideResults.bind(this))},
keydown(a){if(this.results.isVisible()){var b=this.results;switch(a.key){case "ArrowDown":b.selectResult(1);a.preventDefault();a.stopPropagation();break;case "ArrowUp":b.selectResult(-1);a.preventDefault();a.stopPropagation();break;case "Escape":b.hideResults();a.preventDefault();a.stopPropagation();break;case "Enter":b.insertSelectedResult(a),a.preventDefault(),a.stopPropagation()}}},keyup(a){if(this.results.isVisible())switch(a.key){case "ArrowDown":case "ArrowUp":case "Enter":return}this.loadTimer&&
clearTimeout(this.loadTimer);this.loadTimer=setTimeout(this.load.bind(this),200)},blur(a){clearTimeout(this.loadTimer);setTimeout(this.hideResults.bind(this),250);this.abortController&&(this.abortController.abort(),this.abortController=null)},load(){var a=this.loadVal;const b=this.options.extraParams;this.loadTimer&&clearTimeout(this.loadTimer);this.loadVal=this.getPartialValue();""==this.loadVal?this.hideResults():this.loadVal==a||this.loadVal.length<this.options.minLength||(b[this.options.queryKey]=
this.loadVal,""!=this.options.extraFields&&k.querySelectorAll(this.options.extraFields).forEach(c=>{b[c.name]=c.value}),this.abortController&&(this.abortController.abort(),this.abortController=null),{abortController:a}=XF.ajaxAbortable("get",this.options.acurl,b,this.showResults.bind(this),{error:!1}),a&&(this.abortController=a))},hideResults(){this.results.hideResults()},showResults(a){this.abortController&&(this.abortController=null);this.options.jsonContainer&&a&&(a=a[this.options.jsonContainer]);
this.results.showResults(this.getPartialValue(),a,this.target)},addValue(a){if(this.options.single)this.target.value=a;else{const b=this.getFullValues();""!=a&&(b.length&&(a=" "+a),b.push(a+this.options.multiple+" "));this.target.value=b.join(this.options.multiple)}XF.trigger(this.target,"change");XF.trigger(this.target,XF.customEvent("auto-complete:insert",{inserted:a.trim(),current:this.target.value}));this.options.autosubmit?(a=this.target.closest("form"),XF.trigger(a,"submit")&&a.submit()):XF.autofocus(this.target)},
getFullValues(){let a=this.target.value,b;if(""==a)return[];if(this.options.single)return[a];b=a.lastIndexOf(this.options.multiple);if(-1==b)return[];a=a.substring(0,b);return a.split(this.options.multiple)},getPartialValue(){const a=this.target.value;let b;if(this.options.single)return a.trim();b=a.lastIndexOf(this.options.multiple);return-1==b?a.trim():a.substring(b+this.options.multiple.length).trim()}});XF.HScroller=XF.Element.newHandler({options:{scrollerClass:"hScroller-scroll",actionClass:"hScroller-action",
autoScroll:".tabs-tab.is-active"},scrollTarget:null,goStart:null,goEnd:null,init(){const a=this.target.querySelector("."+this.options.scrollerClass);if(a){this.scrollTarget=a;var b,c;XF.on(a,"mousedown.horizontalScroller",g=>{g.button||(b=g.clientX,c=!1,g.preventDefault(),XF.isEventTouchTriggered(g)&&(g=k.activeElement,g.matches("input, textarea, select, button")&&g.blur()),XF.on(m,"mouseup.horizontalScroller",h=>{XF.off(m,".horizontalScroller");c&&h.preventDefault()}),XF.on(m,"mousemove.horizontalScroller",
h=>{const l=b-h.clientX;0!=l&&(this.move(l)&&(c=!0),b=h.clientX)}))});XF.on(a,"click.horizontalScroller",g=>{c&&(g.preventDefault(),g.stopImmediatePropagation(),c=!1)});XF.on(a,"scroll.horizontalScroller",this.updateScroll.bind(this),{passive:!0});XF.on(a,"tab:click.horizontalScroller",g=>{c&&g.preventDefault()});var d=XF.measureScrollBar(null,"height");a.classList.add("is-calculated");0!=d&&(a.style.marginBottom=parseInt(m.getComputedStyle(a).marginBottom,10)-d+"px");d=this.options.actionClass;var e=
XF.createElementFromString('<i class="'+d+" "+d+'--start" aria-hidden="true" />');XF.on(e,"click",()=>this.step(-1));a.insertAdjacentElement("afterend",e);this.goStart=e;d=XF.createElementFromString('<i class="'+d+" "+d+'--end" aria-hidden="true" />');XF.on(d,"click",()=>this.step(1));a.insertAdjacentElement("afterend",d);this.goEnd=d;this.updateScroll();XF.on(k.body,"xf:layout",this.updateScroll.bind(this));var f;XF.on(m,"resize",()=>{f&&clearTimeout(f);f=setTimeout(this.updateScroll.bind(this),
100)});if(e=a.querySelector(this.options.autoScroll))d=this.target.clientWidth,e=XF.dimensions(e),XF.isRtl()?80>e.left&&XF.normalizedScrollLeft(a,-e.right+d-50):e.right>d&&(e.right+80>d?XF.normalizedScrollLeft(a,e.left-50):XF.normalizedScrollLeft(a,e.left-80))}else console.error("no scroll target")},scrollToStart(){this.scrollTo(0)},scrollToEnd(){this.scrollTo(this.scrollTarget.scrollWidth)},scrollTo(a){const b=this.scrollTarget,c=b.scrollLeft,d="number"===typeof a?a-c:Number(a.replace("+=",""));
let e=null;const f=g=>{e||(e=g);g-=e;b.scrollLeft=c+d*g/150;150>g&&m.requestAnimationFrame(f)};m.requestAnimationFrame(f)},move(a){const b=this.scrollTarget,c=XF.normalizedScrollLeft(b);XF.isRtl()&&(a*=-1);XF.normalizedScrollLeft(b,c+a);return XF.normalizedScrollLeft(b)!==c},step(a){const b=Math.max(125,Math.floor(.25*this.scrollTarget.clientWidth));let c="+=";switch(XF.scrollLeftType()){case "inverted":case "negative":c="-="}this.scrollTo(c+a*b)},updateScroll(){var a=this.scrollTarget;const b=XF.normalizedScrollLeft(a);
a=a.offsetWidth+b+1<a.scrollWidth;this.goStart.classList[0<b?"add":"remove"]("is-active");this.goEnd.classList[a?"add":"remove"]("is-active")}});XF.IconRenderer=XF.Element.newHandler({options:{inline:!0,lazy:!0},icon:null,data:null,observer:null,init(){"I"!==this.target.nodeName?console.error("Icon renderer must be applied to an <i> element: %o",this.target):(this.target.classList.add("fa--xf"),this.target.innerHTML="<svg></svg>",this.options.lazy?this.setupObserver():this.showIcon())},setupObserver(){this.observer=
new IntersectionObserver(a=>{[a]=a;a.isIntersecting?this.showIcon():this.hideIcon()},{rootMargin:"100px"});this.observer.observe(this.target)},async showIcon(){const a=await this.getIcon();this.target.innerHTML="";this.target.append(...a.childNodes)},hideIcon(){this.target.innerHTML="<svg></svg>"},async getIcon(){if(null!==this.icon)return this.icon;var a=this.getData();a=this.options.inline?await XF.Icon.getInlineIcon(a.variant,a.name,a.classes,a.title):XF.Icon.getIcon(a.variant,a.name,a.classes,
a.title);return this.icon=XF.createElementFromString(a)},getData(){if(null!==this.data)return this.data;let a="",b="";for(var c of this.target.classList.values()){if(a&&b)break;c.match(XF.Icon.ICON_CLASS_BLOCKLIST_REGEX)||(["fal","far","fas","fad","fab"].includes(c)?a=XF.Icon.normalizeIconVariant(c):c.match(XF.Icon.ICON_CLASS_REGEX)&&(b=XF.Icon.normalizeIconName(c)))}a||(a="default");if(!b)throw Error("No valid icon name class was found");c=this.target.className;const d=this.target.title;this.target.removeAttribute("title");
return this.data={variant:a,name:b,classes:c,title:d}}});XF.InstallPrompt=XF.Element.newHandler({options:{button:"| .js-installPromptButton",installTemplateIOS:"| .js-installTemplateIOS"},button:null,installTemplate:null,bipEvent:null,isIOS:!1,init(){(this.button=XF.findRelativeIf(this.options.button,this.target))?(XF.on(m,"beforeinstallprompt",this.beforeInstallPrompt.bind(this)),XF.on(m,"appinstalled",this.appInstalled.bind(this)),XF.isIOS()&&!XF.Feature.has("displaymodestandalone")&&this.initIOS(),
XF.on(this.button,"click",this.buttonClick.bind(this))):console.error("No install button found for %o",this.target)},initIOS(){this.isIOS=!0;XF.display(this.target)},beforeInstallPrompt(a){a.preventDefault();this.bipEvent=a;XF.display(this.target)},appInstalled(a){XF.display(this.target,"none")},buttonClick(){if(this.isIOS){var a=XF.findRelativeIf(this.options.installTemplateIOS,this.target);a&&(a=a.content.cloneNode(!0).querySelector(".js-installTemplateContent"),XF.overlayMessage(null,a))}else this.bipEvent?
this.bipEvent.prompt():console.error("No beforeinstallprompt event was captured")}});XF.NumberBox=XF.Element.newHandler({options:{textInput:".js-numberBoxTextInput",buttonSmaller:!1,step:null},textInput:null,holdTimeout:null,holdInterval:null,init(){var a=this.target;const b=a.querySelector(this.options.textInput);if(b){this.textInput=b;a.classList.add("inputGroup--joined");var c=a.querySelector(".js-up");a=a.querySelector(".js-down");c||(c=this.createButton("up"));a||(a=this.createButton("down"));
this.setupButton(c,b);this.setupButton(a,c)}else console.error("Cannot initialize, no text input.")},createButton(a){a=XF.createElement("button",{type:"button",tabIndex:-1,title:XF.phrases["number_button_"+a]||a,ariaLabel:XF.phrases["number_button_"+a]||a,dataset:{dir:a},className:`inputGroup-text inputNumber-button inputNumber-button--${a} js-${a}`});this.textInput.disabled&&(a.classList.add("is-disabled"),a.disabled=!0);this.options.buttonSmaller&&a.classList.add("inputNumber-button--smaller");
return a},setupButton(a,b){XF.on(a,"focus",this.buttonFocus.bind(this));XF.on(a,"click",this.buttonClick.bind(this));XF.on(a,"mousedown",this.buttonMouseDown.bind(this));XF.on(a,"touchstart",this.buttonMouseDown.bind(this),{passive:!0});XF.on(a,"mouseleave",this.buttonMouseUp.bind(this));XF.on(a,"mouseup",this.buttonMouseUp.bind(this));XF.on(a,"touchend",this.buttonMouseUp.bind(this),{passive:!0});XF.on(a,"touchend",c=>{c.preventDefault();a.click()});b.insertAdjacentElement("afterend",a)},buttonFocus(a){a.preventDefault();
a.stopPropagation()},buttonClick(a){this.step(a.target.dataset.dir)},step(a){const b=this.textInput;a="step"+a.charAt(0).toUpperCase()+a.slice(1);b.readonly||(""===b.value&&(b.value=b.getAttribute("min")||0),b[a](),XF.trigger(b,"change"),XF.trigger(b,"input"))},buttonMouseDown(a){this.buttonMouseUp(a);this.holdTimeout=setTimeout(()=>{this.holdInterval=setInterval(()=>{this.step(a.target.dataset.dir)},75)},500)},buttonMouseUp(a){clearTimeout(this.holdTimeout);clearInterval(this.holdInterval)}});XF.PageJump=
XF.Element.newHandler({options:{pageUrl:null,pageInput:"| .js-pageJumpPage",pageSubmit:"| .js-pageJumpGo",sentinel:"%page%"},input:null,init(){if(this.options.pageUrl)if(this.input=XF.findRelativeIf(this.options.pageInput,this.target)){XF.on(this.input,"keyup",b=>{"Enter"===b.key&&(b.preventDefault(),this.go())});var a=XF.findRelativeIf(this.options.pageSubmit,this.target);XF.on(a,"click",b=>{b.preventDefault();this.go()});a=this.target.closest(".menu");XF.on(a,"menu:opened",()=>this.shown())}else console.error("No input provided to page jump");
else console.error("No page-url provided to page jump")},shown(){this.input.select()},go(){let a=parseInt(this.input.value,10);if(isNaN(a)||1>a)a=1;const b=this.options.pageUrl,c=this.options.sentinel;let d=b.replace(c,a);d===b&&(d=b.replace(encodeURIComponent(c),a));XF.redirect(d)}});XF.QuickSearch=XF.Element.newHandler({options:{select:"| .js-quickSearch-constraint"},select:null,init(){if(this.select=XF.findRelativeIf(this.options.select,this.target))XF.on(this.select,"change",this.updateSelectWidth.bind(this)),
this.updateSelectWidth()},updateSelectWidth(){let a=XF.createElement("span",{className:`${this.select.className} input--select`});var b=this.select.querySelector("option:checked");b||(b=this.select.querySelector("option"));a.textContent=b.textContent;XF.display(a,"inline");b=XF.createElement("div",{style:{position:"absolute",top:"-200px",visibility:"hidden"}},k.body);b.style[XF.isRtl()?"right":"left"]="-9999px";b.appendChild(a);this.select.style.width=`${a.offsetWidth+8}px`;this.select.style.flexGrow=
0;this.select.style.flexShrink=0;k.body.removeChild(b)}});XF.SearchAutoComplete=XF.extend(XF.AutoComplete,{__backup:{init:"_init",keydown:"_keydown",load:"_load"},form:null,init(){if(this.options.acurl){var a=this.target.closest("form");a?(this.form=a,this.results=new XF.SearchAutoCompleteResults({showDescriptions:this.options.showDescriptions}),this.target.setAttribute("autocomplete","off"),XF.on(this.target,"keydown",this.keydown.bind(this)),XF.on(this.target,"keyup",this.keyup.bind(this)),XF.on(this.target,
"input",()=>setTimeout(()=>{XF.trigger(this.target,"keyup")},0))):console.error("No form was found: %o",this.target)}else console.error("No auto-complete URL was provided: %o",this.target)},keydown(a){"Enter"===a.key&&this.results.isVisible()&&0>this.results.selectedResult||this._keydown(a)},load(){this.loadTimer&&clearTimeout(this.loadTimer);var a=this.getPartialValue();a!==this.loadVal&&(this.loadVal=a,""===a?this.hideResults():this.loadVal.length<this.options.minLength||(this.abortController&&
(this.abortController.abort(),this.abortController=null),{abortController:a}=XF.ajaxAbortable("POST",this.options.acurl,this.form,this.showResults.bind(this),{skipDefault:!0,skipError:!0,global:!1}),a&&(this.abortController=a)))}});XF.SearchAutoCompleteResults=XF.extend(XF.AutoCompleteResults,{__backup:{__construct:"___construct",createResultItem:"_createResultItem",getResultItemParams:"_getResultItemParams"},__construct(a){a=XF.extendObject({onInsert:this.openResult.bind(this),displayTemplate:this.getDisplayTemplate(),
wrapperClasses:"autoCompleteList--fullWidth"},a);this.___construct(a)},createResultItem(a,b){a=this._createResultItem(a,b);XF.on(a,"auxclick",c=>{c.preventDefault();this.resultClick(c)});return a},getResultItemParams(a,b){a=this._getResultItemParams(a,b);a.desc=a.descPlain;return a},highlightResultText(a,b){b=XF.regexQuote(XF.htmlspecialchars(b)).split(/\s+/).join("|");return a.replace(new RegExp(`\\b(${b})`,"gi"),c=>`<strong>${c}</strong>`)},prepareResults(a){this.results.connected||(a.closest(".menu-row, li").append(this.results),
this.selectResult(-1,!0))},getDisplayTemplate(){return'<div class="contentRow contentRow--alignMiddle" title="{{{textPlain}}}">\n\t\t\t\t\t\t{{#icon}}<div class="contentRow-figure">{{{icon}}}</div>{{/icon}}\n\t\t\t\t\t\t<div class="contentRow-main contentRow-main--close u-singleLine">\n\t\t\t\t\t\t\t<a href="{{{url}}}">{{{text}}}</a>\n\t\t\t\t\t\t\t<div class="contentRow-minor contentRow-minor--smaller">\n\t\t\t\t\t\t\t\t<ul class="listInline listInline--bullet u-singleLine">\n\t\t\t\t\t\t\t\t\t<li>{{{type}}}</li>\n\t\t\t\t\t\t\t\t\t{{#desc}}<li>{{{desc}}}</li>{{/desc}}\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>'},
openResult(a,b,c){a=b.querySelector("a").getAttribute("href");if(!a)return!1;if(c instanceof PointerEvent){if((0===c.button&&XF.isMac()?c.metaKey:c.ctrlKey)||1===c.button)return m.open(a,"_blank"),!1;if(0!==c.button)return!1}XF.redirect(a);return!1}});XF.ShareButtons=XF.Element.newHandler({options:{buttons:".shareButtons-button",iconic:".shareButtons--iconic",pageUrl:null,pageTitle:null,pageDesc:null,pageImage:null},pageUrl:null,pageTitle:null,pageDesc:null,pageImage:null,init(){const a=this.options.buttons,
b=this.target.matches(this.options.iconic);XF.onDelegated(this.target,"focus",a,this.focus.bind(this));XF.onDelegated(this.target,"mouseover",a,this.focus.bind(this));XF.onDelegated(this.target,"click",a,this.click.bind(this));Array.from(this.target.querySelectorAll(a)).forEach(c=>{b&&XF.Element.applyHandler(c,"element-tooltip",{element:"> span"});c.dataset.clipboard&&navigator.clipboard&&c.classList.remove("is-hidden")})},setupPageData(){if(this.options.pageTitle&&this.options.pageTitle.length)this.pageTitle=
this.options.pageTitle;else{var a;this.pageTitle=null==(a=k.querySelector('meta[property="og:title"]'))?void 0:a.content;if(!this.pageTitle){let b;this.pageTitle=null==(b=k.querySelector("title"))?void 0:b.textContent}}if(this.options.pageUrl&&this.options.pageUrl.length)this.pageUrl=this.options.pageUrl;else{if(a=this.target.closest(".overlay"))this.pageUrl=a.dataset.url;if(!this.pageUrl){let b;this.pageUrl=null==(b=k.querySelector('meta[property="og:url"]'))?void 0:b.content}this.pageUrl||(this.pageUrl=
m.location.href)}if(this.options.pageDesc&&this.options.pageDesc.length)this.pageDesc=this.options.pageDesc;else{let b;this.pageDesc=null==(b=k.querySelector('meta[property="og:description"]'))?void 0:b.content;if(!this.pageDesc){let c;this.pageDesc=(null==(c=k.querySelector("meta[name=description]"))?void 0:c.content)||""}}if(this.options.pageImage&&this.options.pageImage.length)this.pageImage=this.options.pageImage;else{let b;this.pageImage=null==(b=k.querySelector('meta[property="og:image"]'))?
void 0:b.content;this.pageImage||(this.pageImage=XF.config.publicMetadataLogoUrl||"")}},focus(a){const b=a.target.closest(this.options.buttons);if(!b.dataset.initialized&&!b.matches(".shareButtons-button--share")){this.pageUrl||this.setupPageData();var c=b.dataset.href;if(!c){if(b.dataset.clipboard)return;console.error("No data-href or data-clipboard on share button %o",a.currentTarget)}c=c.replace("{url}",encodeURIComponent(this.pageUrl)).replace("{title}",encodeURIComponent(this.pageTitle)).replace("{desc}",
encodeURIComponent(this.pageDesc)).replace("{image}",encodeURIComponent(this.pageImage));b.setAttribute("href",c);b.dataset.initialized=!0}},click(a){const b=a.target.closest(this.options.buttons),c=b.getAttribute("href"),d=b.dataset.popupWidth||600,e=b.dataset.popupHeight||400;b.matches(".shareButtons-button--share")||a.altKey||a.ctrlKey||a.metaKey||a.shiftKey||(b.dataset.clipboard?(a.preventDefault(),a=b.dataset.clipboard.replace("{url}",this.pageUrl).replace("{title}",this.pageTitle).replace("{desc}",
this.pageDesc).replace("{image}",this.pageImage),navigator.clipboard.writeText(a).then(()=>XF.flashMessage(XF.phrase("link_copied_to_clipboard"),3E3))):c&&c.match(/^https?:/i)&&(a.preventDefault(),m.open(c,"share","toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width="+d+",height="+e+",left="+(screen.width-d)/2+",top="+(screen.height-e)/2)))}});XF.Sticky=XF.Element.newHandler({options:{stickyClass:"is-sticky",stickyDisabledClass:"is-sticky-disabled",minWindowHeight:0,setCss:!0,
offsetTop:null},active:null,offsetTop:null,init(){this.offsetTop=null===this.options.offsetTop?parseInt(this.target.style.top||0,10):this.options.offsetTop;0===this.options.minWindowHeight?this.enable():(this.update(),XF.on(m,"resize.sticky-header",this.update.bind(this)))},update(){const a=k.documentElement.clientHeight<this.options.minWindowHeight;this.active&&a?this.disable():this.active||a||this.enable()},enable(){this.active=!0;this.target.classList.remove(this.options.stickyDisabledClass);this.options.setCss&&
(this.target.style.position="sticky",this.target.style.top=this.offsetTop+"px");this.checkIsSticky();XF.on(m,"scroll.sticky-header",this.checkIsSticky.bind(this),{passive:!0})},disable(){this.active=!1;this.target.classList.add(this.options.stickyDisabledClass);this.target.classList.remove(this.options.stickyClass);this.options.setCss&&(this.target.style.position="static",this.target.style.top="auto");XF.off(m,"scroll.sticky-header")},checkIsSticky(){const a=Math.floor(this.target.getBoundingClientRect().top),
b=this.offsetTop;a<b||a===b&&0<m.scrollY?this.target.classList.add(this.options.stickyClass):this.target.classList.remove(this.options.stickyClass);XF.layoutChange()}});XF.StickyHeader=XF.extend(XF.Sticky,{__backup:{init:"_init"},options:XF.extendObject({},XF.Sticky.prototype.options,{minWindowHeight:251,setCss:!1}),init(){this._init();XF.StickyHeader.cache.push(this)}});XF.StickyHeader.cache=[];XF.StyleVariationInput=XF.Element.newHandler({options:{variationContainer:"< form | .js-variationContainer",
variationInput:'[name="user[style_variation]"]'},variationContainer:null,init(){const a=XF.findRelativeIf(this.options.variationContainer,this.target);a?(this.variationContainer=a,XF.on(this.target,"change",this.change.bind(this))):console.error("No variation container found for %o",this.target)},change(){const a=this.variationContainer.querySelector(this.options.variationInput);XF.ajax("POST",XF.canonicalizeUrl("index.php?misc/style-variation-input"),{style_id:this.target.value,style_variation:a.value},
this.handleResponse.bind(this))},handleResponse(a){XF.setupHtmlInsert(a.html,b=>{b instanceof HTMLInputElement?XF.Animate.fadeUp(this.variationContainer,{complete:()=>{this.variationContainer.innerHTML="";this.variationContainer.appendChild(b)}}):(this.variationContainer.innerHTML="",this.variationContainer.appendChild(b),XF.Animate.fadeDown(this.variationContainer))})}});XF.Tooltip=XF.Element.newHandler({options:XF.extendObject(!0,{},XF.TooltipOptions.base,{content:null}),trigger:null,tooltip:null,
init(){const a=this.getContent(),b=XF.TooltipOptions.extractTooltip(this.options),c=XF.TooltipOptions.extractTrigger(this.options);this.tooltip=new XF.TooltipElement(a,b);this.trigger=new XF.TooltipTrigger(this.target,this.tooltip,c);this.trigger.init();XF.on(this.target,"tooltip:refresh",this.refresh.bind(this))},getContent(){if(this.options.content)return this.options.content;if(this.target instanceof SVGElement){var a=this.target.querySelector("title"),b;let d;var c=null!=(d=null!=(b=this.target.getAttribute("data-original-title"))?
b:null==a?void 0:a.textContent)?d:"";this.target.setAttribute("data-original-title",c);null==a||a.remove();return c}b=null!=(c=null!=(a=this.target.getAttribute("data-original-title"))?a:this.target.getAttribute("title"))?c:"";this.target.setAttribute("data-original-title",b);this.target.removeAttribute("title");0===this.target.children.length&&this.target.setAttribute("aria-label",b);return b},refresh(){this.tooltip.setContent(this.getContent())}});XF.ElementTooltip=XF.extend(XF.Tooltip,{__backup:{getContent:"_getContent",
init:"_init"},options:XF.extendObject({},XF.Tooltip.prototype.options,{element:null,showError:!0,noTouch:!0,shortcut:null}),element:null,init(){this.options.shortcut&&this.setupShortcut(this.options.shortcut);if(!this.options.noTouch||!XF.Feature.has("touchevents")){var a=this.options.element,b=this.options.showError;if(a){var c=XF.findRelativeIf(a,this.target);c instanceof NodeList&&(c=c[0]);c?(this.element=c,this.target.removeAttribute("title"),this.options.html=!0,this._init()):b&&console.error("Element tooltip could not find "+
a)}else b&&console.error("No element specified for the element tooltip")}},setupShortcut(a){"node-description"==a&&(this.options.element||(this.options.element="< .js-nodeMain | .js-nodeDescTooltip"),this.options.showError=!1,this.options.maintain=!0,this.options.placement="right",this.options.extraClass="tooltip--basic tooltip--description")},getContent(){return this.element.childNodes}});XF.MemberTooltipCache={};XF.MemberTooltip=XF.Element.newHandler({options:{delay:600},trigger:null,tooltip:null,
userId:null,init(){this.userId=this.target.dataset.userId;this.tooltip=new XF.TooltipElement(this.getContent.bind(this),{extraClass:"tooltip--member",html:!0,loadRequired:!0});this.trigger=new XF.TooltipTrigger(this.target,this.tooltip,{maintain:!0,delayInLoading:this.options.delay,delayIn:this.options.delay,trigger:"hover focus click",onShow:this.onShow.bind(this),onHide:this.onHide.bind(this)});this.trigger.init()},getContent(a){var b=XF.MemberTooltipCache[this.userId];b?(XF.createElementFromString(b.trim()),
a(b)):(b={skipDefault:!0,skipError:!0,global:!1},this.trigger.wasClickTriggered()&&(b.global=!0),XF.ajax("get",this.target.getAttribute("href"),{tooltip:!0},c=>this.loaded(c,a),b))},loaded(a,b){if(a.html){var c=this.userId;XF.setupHtmlInsert(a.html,(d,e,f)=>{XF.MemberTooltipCache[c]=a.html.content;b(a.html.content)})}},onShow(){const a=XF.MemberTooltip.activeTooltip;a&&a!==this&&a.hide();XF.MemberTooltip.activeTooltip=this},onHide(){XF.MemberTooltip.activeTooltip===this&&(XF.MemberTooltip.activeTooltip=
null)},show(){this.trigger.show()},hide(){this.trigger.hide()}});XF.MemberTooltip.activeTooltip=null;XF.Notices=XF.Element.newHandler({options:{type:"block",target:".js-notice",scrollInterval:5},notices:null,slider:null,dismissing:!1,init(){this.updateNoticeList();this.filter();this.handleNoticeListChange()&&(XF.onDelegated(this.target,"click",".js-noticeDismiss",this.dismiss.bind(this)),this.start())},updateNoticeList(){this.notices=this.target.querySelectorAll(`${this.options.target}`);"scrolling"===
this.options.type&&(this.target.style.overflow="hidden",this.notices.forEach(a=>a.classList.add("f-carousel__slide")));return this.notices},handleNoticeListChange(){const a=this.notices.length;a?1===a&&this.target.classList.remove("notices--isMulti"):(this.slider&&(this.slider.destroy(),this.slider=null),this.target.remove());return a},filter(){const a=this.getCookies();let b=!1;this.notices.forEach(c=>{const d=parseInt(c.dataset.noticeId,10),e=c.dataset.visibility;a&&d&&a.includes(d)&&(c.remove(),
b=!0);e&&("hidden"===m.getComputedStyle(c).visibility?(c.remove(),b=!0):c.classList.add("is-vis-processed"))});b&&this.updateNoticeList()},start(){const a=this.notices,b=this.options.type;"floating"===b?a.forEach(c=>{const d=parseInt(c.dataset.displayDuration,10),e=parseInt(c.dataset.delayDuration,10),f=c.dataset.autoDismiss;e?setTimeout(()=>{this.displayFloating(c,XF.config.speed.normal,d,f)},e):this.displayFloating(c,XF.config.speed.fast,d,f)}):"scrolling"===b&&1<this.notices.length&&(this.slider=
new Carousel(this.target,{Autoplay:{showProgress:!1,timeout:1E3*this.options.scrollInterval},Dots:{minCount:2},Navigation:!1,direction:XF.isRtl()?"rtl":"ltr",on:{ready:()=>{this.target.style.overflow="visible"}},l10n:XF.CarouselL10n()},{Autoplay}))},displayFloating(a,b,c,d){XF.Animate.fadeDown(a,{speed:b,complete(){c&&setTimeout(()=>{XF.Animate.fadeUp(a);d&&XF.trigger(a.querySelector("a.js-noticeDismiss"),"click")},c)}})},getCookies(){if(!XF.config.userId){var a=XF.Cookie.get("notice_dismiss");a=
a?a.split(","):[];var b=[];for(let c of a)c=parseInt(c,10),(-1!==c||"advanced"!==XF.Cookie.getConsentMode())&&c&&b.push(c);return b}},dismiss(a){a.preventDefault();if(!this.dismissing){this.dismissing=!0;var b=a.target;a=b.closest(".js-notice");var c=parseInt(a.dataset.noticeId,10),d=XF.config.userId,e=this.getCookies();d?XF.ajax("post",b.getAttribute("href"),{},null,{skipDefault:!0}):c&&-1===e.indexOf(c)&&(e.push(c),e.sort((f,g)=>f-g),b=new Date,b.setUTCMonth(b.getUTCMonth()+1),XF.Cookie.set("notice_dismiss",
e.join(","),b));this.removeNotice(a);this.dismissing=!1}},removeNotice(a){const b=this.notices.length;let c;const d=()=>{this.slider.removeSlide(c);this.updateNoticeList();this.handleNoticeListChange()&&this.slider.reInit()};this.slider?(c=this.slider.page,1<b?(c>=this.slider.slides.length&&(c=1),setTimeout(d,500)):d()):XF.Animate.fadeUp(a,{speed:XF.config.speed.fast,complete:()=>{a.remove();this.updateNoticeList();this.handleNoticeListChange()}})}});XF.CookieConsentForm=XF.Element.newHandler({options:{container:"article.message"},
embedHtml:null,containerElement:null,anchor:null,replace:!1,init(){if(this.containerElement=this.target.closest(this.options.container))this.anchor=this.containerElement.querySelector(".u-anchorTarget");if(this.embedHtml=this.target.querySelector(".js-embedHtml"))this.replace=this.supportsTemplateElement();XF.on(k,"ajax-submit:response",this.response.bind(this));XF.on(k,"cookie-consent:load",this.load.bind(this))},response({data:a}){a.unconsented_local_storage&&XF.LocalStorage.removeMultiple(a.unconsented_local_storage);
if(a.group_consent_state)for(let b in a.group_consent_state)k.querySelector(".js-consent_"+b).checked=a.group_consent_state[b];XF.trigger(k,"cookie-consent:load",[this.target])},load({target:a}){this.replace&&this.embedHtml&&(this.target.replaceWith(this.embedHtml.content.cloneNode(!0)),this.target===a&&this.anchor&&this.anchor.scrollIntoView())},supportsTemplateElement(){return"content"in k.createElement("template")}});XF.CookieConsentToggle=XF.Event.newHandler({eventType:"click",eventNameSpace:"XFCookieConsentToggle",
notice:null,init(){const a=k.querySelector('.notice[data-notice-id="-1"]');a||console.error(`No cookie consent notice found for ${this.target}`);this.notice=a},click(a){a.preventDefault();"none"!==m.getComputedStyle(this.notice).display?XF.Animate.slideUp(this.notice,{speed:XF.config.speed.normal,complete:XF.layoutChange}):XF.Animate.slideDown(this.notice,{speed:XF.config.speed.normal,complete:XF.layoutChange})}});XF.TouchProxy=XF.Element.newHandler({options:{allowed:"input, textarea, checkbox, a, label, [data-tp-clickable], [data-tp-primary]"},
active:!0,timer:null,proxy:null,init(){if("InputDeviceCapabilities"in m||"sourceCapabilities"in UIEvent.prototype)XF.on(this.target,"click",a=>{a.sourceCapabilities&&a.sourceCapabilities.firesTouchEvents&&this.handleTapEvent(a)});else if(XF.Feature.has("touchevents")){let a=!1;XF.on(this.target,"touchstart",()=>{a=!1},{passive:!0});XF.on(this.target,"touchmove",()=>{a=!0},{passive:!0});XF.on(this.target,"touchend",b=>{a||this.handleTapEvent(b)},{passive:!0})}},isClickable(a){a=a.closest(this.options.allowed);
return null!==a&&this.target.contains(a)},handleTapEvent(a){this.getProxy()&&this.active&&!this.isClickable(a.target)&&(a.preventDefault(),this.trigger())},getProxy(){this.proxy||(this.proxy=this.target.querySelector("[data-tp-primary]")||this.target.querySelector("a[href]"));return this.proxy},trigger(){let a=this.getProxy();a&&(this.timer&&clearTimeout(this.timer),this.active=!1,a.click(),this.timer=setTimeout(()=>{this.active=!0},500))}});XF.WebShare=XF.Element.newHandler({options:{fetch:!1,url:null,
title:null,text:null,hide:null,hideContainerEls:!0},url:null,title:null,text:null,fetchUrl:null,init(){this.isSupported()&&(this.options.fetch&&(this.fetchUrl=this.options.fetch),this.hideSpecified(),this.hideContainerElements(),this.setupShareData(),this.target.classList.remove("is-hidden"),XF.on(this.target,"click",this.click.bind(this)))},isSupported(){const a=XF.browser.os;return"share"in navigator&&"https:"==m.location.protocol&&("android"==a||"ios"==a)},hideSpecified(){if(this.options.hide){var a;
null==(a=k.querySelectorAll(this.options.hide))||a.forEach(b=>{b.classList.add("is-hidden")})}},hideContainerElements(){if(this.options.hideContainerEls){var a=Array.from(this.target.closest(".block, .blockMessage"));a.length&&(a[0].querySelectorAll(".shareButtons").forEach(b=>b.classList.remove("shareButtons--iconic")),a[0].querySelectorAll(".block-minorHeader").forEach(b=>XF.display(b,"none")),a[0].querySelectorAll(".shareButtons-label").forEach(b=>XF.display(b,"none")))}},setupShareData(){if(!this.fetchUrl){if(this.options.url)this.url=
this.options.url;else{let a;this.url=null==(a=k.querySelector('meta[property="og:url"]'))?void 0:a.content;this.url||(this.url=m.location.href)}if(this.options.title)this.title=this.options.title;else{let a;this.title=null==(a=k.querySelector('meta[property="og:title"]'))?void 0:a.content;if(!this.title){let b;this.title=null==(b=k.querySelector("title"))?void 0:b.textContent}}if(this.options.text)this.text=this.options.text;else{let a;this.text=null==(a=k.querySelector('meta[property="og:description"]'))?
void 0:a.content;if(!this.text){let b;this.text=(null==(b=k.querySelector("meta[name=description]"))?void 0:b.content)||""}}}},click(a){a.preventDefault();this.fetchUrl?XF.ajax("get",this.fetchUrl,{web_share:!0},b=>{"ok"===b.status?(this.setShareOptions(b),this.share()):XF.redirect(this.options.url)},{skipDefault:!0,skipError:!0,global:!1}):this.share()},share(){navigator.share(this.getShareOptions()).catch(a=>{})},setShareOptions(a){this.url=a.contentUrl;this.title=a.contentTitle;this.text=a.contentDesc||
a.contentTitle;this.fetchUrl=null},getShareOptions(){const a={url:this.url,title:"",text:""};this.title&&(a.title=this.title);a.text=this.text?this.text:a.title;return a}});XF.MenuClick=XF.Event.newHandler({eventNameSpace:"XFMenuClick",options:{menu:null,targetOpenClass:"is-menuOpen",openClass:"is-active",completeClass:"is-complete",zIndexRef:null,menuPosRef:null,arrowPosRef:null,directionThreshold:.6},menu:null,menuPosRef:null,menuRef:null,arrowPosRef:null,arrowRef:null,scrollFunction:null,isPotentiallyFixed:!1,
menuIsUp:!1,menuWidth:0,menuHeight:0,init(){this.options.menu&&(this.menu=XF.findRelativeIf(this.options.menu,this.target));if(!this.menu||!this.menu.length)for(var a=this.target.nextElementSibling;a;){if(a.hasAttribute("data-menu")){this.menu=a;break}a=a.nextElementSibling}if(this.menu){this.arrowPosRef=this.menuPosRef=this.target;if(this.options.menuPosRef&&(a=XF.findRelativeIf(this.options.menuPosRef,this.target))&&(this.menuPosRef=a,this.options.arrowPosRef)){const b=XF.findRelativeIf(this.options.arrowPosRef,
this.target);b.closest(a)&&(this.arrowPosRef=b)}this.target.setAttribute("aria-controls",XF.uniqueId(this.menu));this.menu.querySelector(".menu-arrow")||(a=XF.createElement("span",{className:"menu-arrow"}),this.menu.insertBefore(a,this.menu.firstChild));XF.DataStore.set(this.menu,"menu-trigger",this);XF.on(this.menu,"click",b=>{b.target.closest("[data-menu-closer]")&&this.close()});XF.on(this.menu,"menu:open",()=>this.open(XF.Feature.has("touchevents")));XF.on(this.menu,"menu:close",()=>this.close());
XF.on(this.menu,"menu:reposition",()=>{this.isOpen()&&this.reposition()});XF.on(this.menu,"keydown",this.keyboardEvent.bind(this));if(a=this.menu.closest(".tooltip"))XF.on(a,"tooltip:hidden",this.close.bind(this));if(a=this.menu.dataset.menuBuilder)if(XF.MenuBuilder[a])XF.MenuBuilder[a](this.menu,this.target,this);else console.error("No menu builder "+a+" found")}else console.error("No menu found for %o",this.target)},click(a){"undefined"!==typeof a.originalEvent&&(a=a.originalEvent);if(!(a.ctrlKey||
a.shiftKey||a.altKey)||!this.target.getAttribute("href")){var b=XF.isEventTouchTriggered(a),c=!0;!b&&this.isOpen()&&(c=!1);c&&a.preventDefault();this.toggle(b,XF.NavDeviceWatcher.isKeyboardNav())}},isOpen(){return this.target.classList.contains(this.options.targetOpenClass)},toggle(a){this.isOpen()?this.close():this.open(a)},open(a){const b=this.menu,c=this.target,d=this.menuPosRef;let e=0;if(!this.isOpen()&&!b.classList.contains("is-disabled")){k.body.append(b);this.updateMenuDimensions();this.updatePositionReferences();
XF.hasFixableParent(this.target)&&(this.scrollFunction=()=>{XF.isHidden(c)?this.close():this.repositionFixed(!0)},b.classList.add("menu--potentialFixed"),XF.on(m,"scroll",this.scrollFunction));if(this.options.zIndexRef){const g=XF.findRelativeIf(this.options.zIndexRef,c);g&&(e=XF.getElEffectiveZIndex(g))}XF.setRelativeZIndex(b,c,0,e);XF.MenuWatcher.onOpen(b,a);this.reposition();c.setAttribute("aria-expanded","true");XF.Transition.addClassTransitioned(c,this.options.targetOpenClass);b.setAttribute("aria-hidden",
"false");XF.Transition.addClassTransitioned(b,this.options.openClass,()=>{XF.Transition.addClassTransitioned(b,this.options.completeClass)});XF.Transition.addClassTransitioned(d,this.options.targetOpenClass);a=XF.customEvent("menu:opened",{menu:b});XF.trigger(this.target,a);XF.trigger(b,a);if(!XF.isIOS()||!this.isPotentiallyFixed)XF.on(b,"menu:complete",()=>{setTimeout(()=>XF.autoFocusWithin(b,"[autofocus], [data-menu-autofocus]"),10)});if(a=b.dataset.href){if(!XF.DataStore.get(b,"menu-loading")){XF.DataStore.set(b,
"menu-loading",!0);var f=b.dataset.nocache?!1:!0;XF.ajax("get",a,{},g=>{f&&delete b.dataset.href;g.html&&XF.setupHtmlInsert(g.html,(h,l,p)=>{l=b.dataset.loadTarget;let n=b;l&&(n=b.querySelector(l));n.innerHTML="";XF.isCreatedContainer(h)?n.append(...h.childNodes):n.append(h);XF.trigger(this.target,XF.customEvent("menu:loaded",{html:h,menu:b}));this.updateMenuDimensions();p(!1,n);setTimeout(this.reposition.bind(this),0);XF.trigger(this.target,XF.customEvent("menu:complete",{menu:b}));XF.trigger(b,
"menu:complete")})},{cache:f?"default":"reload"}).finally(()=>XF.DataStore.set(b,"menu-loading",!1))}}else XF.trigger(this.target,XF.customEvent("menu:complete",{menu:b})),XF.trigger(b,"menu:complete")}},reposition(a,b){if(!XF.DataStore.get(this.menu,"ios-scroll-timeout")||a){this.updatePositionReferences();this.menu.style.visibility="hidden";XF.display(this.menu);this.menu.style.position="";this.menu.style.top="";this.menu.style.bottom="";this.menu.style.left="";this.menu.style.right="";a=XF.viewport(m);
var c={};c=this.getHorizontalPosition(a,c);c=this.getVerticalPosition(a,c,b);c.display="";c.visibility="";for(let d in c)this.menu.style[d]=c[d]}},repositionFixed(a){const b=this.menu;if(a&&XF.isIOS()){var c=XF.DataStore.get(b,"ios-scroll-timeout");clearTimeout(c);c=setTimeout(()=>{XF.DataStore.remove(b,"ios-scroll-timeout");this.reposition()},300);XF.DataStore.set(b,"ios-scroll-timeout",c)}else{this.updatePositionReferences();var d=XF.DataStore.get(this.target,"menu-h");a=XF.DataStore.get(b,"menu-reset-timer");
if(d&&this.menuRef.left==d[0]&&this.menuRef.width==d[1]){d=m.getComputedStyle(b);var e=XF.viewport(m),f=XF.hasFixedParent(this.target)?"fixed":"absolute",g={top:parseInt(d.top,10)};this.menuIsUp=this.menu.classList.contains("menu--up");a&&clearTimeout(a);"fixed"==f&&f!=d.position?(g={"transition-property":"none","transition-duration":"0s"},g=this.getVerticalFixedPosition(e,g)):"absolute"==f&&(g={"transition-property":"none","transition-duration":"0s"},g=this.getVerticalAbsolutePosition(e,g));for(c in g)b.style[c]=
g[c];b.classList.toggle("menu--up",this.menuIsUp);a=setTimeout(()=>{b.style.transitionProperty="";b.style.transitionDuration=""},250);XF.DataStore.set(b,"menu-reset-timer",a)}else this.reposition()}},getHorizontalPosition(a,b){var c=!1;let d=0;this.menuWidth>a.width?d=this.menuRef.left-a.left:this.menuRef.left+this.menuRef.width/2>a.width*this.options.directionThreshold?(d=0-this.menuWidth+this.menuRef.width,c=!0):this.menuRef.width>this.menuWidth&&(d=Math.floor((this.menuRef.width-this.menuWidth)/
2));d=Math.min(d,a.right-this.menuWidth-this.menuRef.left-5);d=Math.max(d,a.left-this.menuRef.left+5);b.left=this.menuRef.left+d+"px";XF.DataStore.set(this.target,"menu-h",[this.menuRef.left,this.menuRef.width,d]);this.menu.classList.toggle("menu--left",!c);this.menu.classList.toggle("menu--right",c);a=Math.min(this.arrowRef.left-this.menuRef.left+this.arrowRef.width/2-d,this.menuWidth-20);if(c=this.menu.querySelector(".menu-arrow"))c.style.top="",c.style.left=a+"px";return b},getVerticalPosition(a,
b,c){this.menuIsUp=!1;b=!c&&XF.hasFixedParent(this.target)?this.getVerticalFixedPosition(a,b):this.getVerticalAbsolutePosition(a,b);this.menu.classList.toggle("menu--up",this.menuIsUp);return b},getVerticalFixedPosition(a,b){b.top=Math.max(0,Math.round(this.menuRef.bottom)-a.top)-this.getTopShift()+"px";b.position="fixed";parseInt(b.top)+this.menuHeight+a.top>a.bottom&&this.menuRef.top-this.menuHeight>a.top?(b.top="",b.bottom=a.bottom-this.menuRef.top+5+"px",this.menuIsUp=!0):this.menuIsUp=!1;return b},
getVerticalAbsolutePosition(a,b){b.top=this.menuRef.bottom-this.getTopShift()+"px";b.position="";parseInt(b.top,10)+this.menuHeight>a.bottom&&this.menuRef.top-this.menuHeight>a.top?(b.top="",b.bottom=a.height-this.menuRef.top+5+"px",this.menuIsUp=!0):this.menuIsUp=!1;return b},getTopShift(){return this.menu.classList.contains("menu--structural")?parseInt(XF.config.borderSizeFeature,10):0},updateMenuDimensions(){let a=this.menu.style.display,b=this.menu.style.visibility;XF.display(this.menu);this.menu.style.visibility=
"hidden";this.menu.clientWidth;this.menuWidth=this.menu.offsetWidth;this.menuHeight=this.menu.offsetHeight;XF.display(this.menu,a);this.menu.style.visibility=b;return{menuWidth:this.menuWidth,menuHeight:this.menuHeight}},updatePositionReferences(){this.menuRef=XF.dimensions(this.menuPosRef,!0);this.arrowRef=this.arrowPosRef==this.menuPosRef?this.menuRef:XF.dimensions(this.arrowPosRef,!0);return{menuRef:this.menuRef,arrowRef:this.arrowRef}},close(){if(this.isOpen()){var a=this.menu;this.target.setAttribute("aria-expanded",
"false");XF.Transition.removeClassTransitioned(this.target,this.options.targetOpenClass);a.setAttribute("aria-hidden",!0);a.classList.remove(this.options.completeClass);XF.Transition.removeClassTransitioned(a,this.options.openClass);XF.Transition.removeClassTransitioned(this.menuPosRef,this.options.targetOpenClass);XF.off(m,"scroll",this.scrollFunction);XF.MenuWatcher.onClose(a);var b=XF.customEvent("menu:closed",{menu:a});XF.trigger(this.target,b);XF.trigger(a,b)}},keyboardEvent(a){if(("ArrowUp"==
a.key||"ArrowDown"==a.key)&&XF.Keyboard.isShortcutAllowed(k.activeElement)&&k.activeElement.closest(".menu")==this.menu){var b=k.activeElement;const c=b.closest(".menu").querySelectorAll("a");b=Array.from(c).indexOf(b)+("ArrowUp"==a.key?-1:1);0>b?b=c.length-1:b>=c.length&&(b=0);c[b].focus();a.preventDefault();a.stopPropagation()}}});XF.OffCanvasClick=XF.Event.newHandler({eventNameSpace:"XFOffCanvasClick",options:{menu:null,openClass:"is-active"},menu:null,init(){this.options.menu&&(this.menu=XF.findRelativeIf(this.options.menu,
this.target));this.menu||(this.menu=Array.from(this.target.nextElementSibling).find(b=>void 0!==b.dataset.menu));if(this.menu){XF.on(this.menu,"click",b=>{b.target.matches("[data-menu-close]")&&this.closeTrigger(b)});XF.on(this.menu,"off-canvas:close",this.closeTrigger.bind(this));XF.on(this.menu,"off-canvas:open",this.openTrigger.bind(this));var a=this.menu.dataset.ocmBuilder;if(a)if(XF.OffCanvasBuilder[a])XF.OffCanvasBuilder[a](this.menu,this);else console.error("No off canvas builder "+a+" found")}else console.error("No menu found for %o",
this.target)},click(a){a.preventDefault();this.toggle()},isOpen(){return this.menu.classList.contains(this.options.openClass)},toggle(){this.isOpen()?this.close():this.open()},openTrigger(a){a.preventDefault();this.open()},open(){if(!this.isOpen()){var a=this.menu;this.addOcmClasses(a);a.setAttribute("aria-hidden","false");XF.trigger(a,"off-canvas:opening");XF.Transition.addClassTransitioned(a,this.options.openClass,()=>XF.trigger(a,"off-canvas:opened"));XF.Modal.open()}},addOcmClasses(a){const b=
a.dataset.ocmClass;b&&a.classList.add(...b.split(" "));a.querySelectorAll("[data-ocm-class]").forEach(c=>{c.classList.add(...c.dataset.ocmClass.split(" "))})},removeOcmClasses(a){const b=a.dataset.ocmClass;b&&a.classList.remove(...b.split(" "));a.querySelectorAll("[data-ocm-class]").forEach(c=>{c.classList.remove(...c.dataset.ocmClass.split(" "))})},closeTrigger(a){a.preventDefault();this.close()},close(a=!1){if(this.isOpen()){var b=this.menu;b.setAttribute("aria-hidden","true");XF.trigger(b,"off-canvas:closing");
XF.Transition.removeClassTransitioned(b,this.options.openClass,()=>{XF.trigger(b,"off-canvas:closed");this.removeOcmClasses(b)},a);XF.Modal.close()}}});XF.OverlayClick=XF.Event.newHandler({eventNameSpace:"XFOverlayClick",options:{cache:!0,overlayConfig:{},forceFlashMessage:!1,followRedirects:!1,closeMenus:!0},overlay:null,loadUrl:null,loading:!1,visible:!1,init(){var a=this.getOverlayHtml();if(a)this.setupOverlay(new XF.Overlay(a,this.options.overlayConfig));else{a=this.getLoadUrl();if(!a)throw Error("Could not find an overlay for target");
this.loadUrl=a}this.options.closeMenus&&XF.MenuWatcher.closeAll()},click(a){a.preventDefault();this.toggle()},toggle(){this.overlay?this.overlay.toggle():this.show()},show(){if(this.overlay)this.overlay.show();else if(!this.loading){this.loading=!0;var a={cache:this.options.cache,beforeShow:b=>{this.overlay=b},init:this.setupOverlay.bind(this)};this.options.followRedirects&&(a.onRedirect=(b,c)=>{this.options.forceFlashMessage?XF.flashMessage(b.message,1E3,()=>XF.redirect(b.redirect)):XF.redirect(b.redirect)});
(a=XF.loadOverlay(this.loadUrl,a,this.options.overlayConfig))?a.finally(()=>{setTimeout(()=>{this.loading=!1},300)}):this.loading=!1}},hide(){this.overlay&&this.overlay.hide()},getOverlayHtml(){var a=this.target.dataset.target;let b;a&&((b=this.target.querySelector(a))||(b=k.querySelector(a)));b||(a=this.target.getAttribute("href"))&&"#"==a.substr(0,1)&&(b=k.querySelector(a));b&&!b.matches(".overlay")&&(b=XF.getOverlayHtml(b));return b?b:null},getLoadUrl(){return this.target.dataset.href||this.target.getAttribute("href")||
null},setupOverlay(a){this.overlay=a;a.on("overlay:shown",()=>{this.visible=!0});a.on("overlay:hidden",()=>{this.visible=!1});if(!this.options.cache&&this.loadUrl)a.on("overlay:hidden",()=>{this.overlay=null});return this.overlay}});XF.OverlayClick.overlayCache={};XF.ScrollToClick=XF.Event.newHandler({eventType:"click",eventNameSpace:"XFScrollToClick",options:{target:null,silent:!1,hash:null,speed:300},scroll:null,init(){var a;const b=this.options.hash,c=this.target.getAttribute("href");this.options.target&&
(a=XF.findRelativeIf(this.options.target,this.target));if(!a)if(c&&c.length&&"#"==c.charAt(0))a=k.querySelector(c);else if(this.options.silent)return;if(a)if(this.scroll=a,!0===b||"true"===b)a=a.getAttribute("id"),this.options.hash=a&&a.length?a:null;else{if(!1===b||"false"===b)this.options.hash=null}else console.error("No scroll target could be found")},click(a){this.scroll&&(a.preventDefault(),XF.smoothScroll(this.scroll,this.options.hash,this.options.speed))}});XF.StyleVariationClick=XF.Event.newHandler({eventType:"click",
eventNameSpace:"XFStyleVariationClick",options:{variation:null},init(){},click(a){a.preventDefault();XF.StyleVariation.updateVariation(this.options.variation)}});XF.Element.register("auto-complete","XF.AutoComplete");XF.Element.register("cookie-consent-form","XF.CookieConsentForm");XF.Element.register("h-scroller","XF.HScroller");XF.Element.register("icon","XF.IconRenderer");XF.Element.register("install-prompt","XF.InstallPrompt");XF.Element.register("notices","XF.Notices");XF.Element.register("number-box",
"XF.NumberBox");XF.Element.register("page-jump","XF.PageJump");XF.Element.register("quick-search","XF.QuickSearch");XF.Element.register("search-auto-complete","XF.SearchAutoComplete");XF.Element.register("share-buttons","XF.ShareButtons");XF.Element.register("sticky","XF.Sticky");XF.Element.register("sticky-header","XF.StickyHeader");XF.Element.register("style-variation-input","XF.StyleVariationInput");XF.Element.register("tooltip","XF.Tooltip");XF.Element.register("element-tooltip","XF.ElementTooltip");
XF.Element.register("member-tooltip","XF.MemberTooltip");XF.Element.register("touch-proxy","XF.TouchProxy");XF.Element.register("web-share","XF.WebShare");XF.Event.register("click","cookie-consent-toggle","XF.CookieConsentToggle");XF.Event.register("click","menu","XF.MenuClick");XF.Event.register("click","off-canvas","XF.OffCanvasClick");XF.Event.register("click","overlay","XF.OverlayClick");XF.Event.register("click","scroll-to","XF.ScrollToClick");XF.Event.register("click","style-variation","XF.StyleVariationClick")})(window,
document);