/*! For license information please see header-footer.bundle.js.LICENSE.txt */ !function(){var e={3112:function(e){e.exports=function(){"use strict";function e(){return"undefined"!=typeof window}function t(e){return(o=e)&&o.document&&function(e){return 9===e.nodeType}(o.document)?(s=(t=e).document,n=s.body,i=s.documentElement,{scrollHeight:function(){return Math.max(n.scrollHeight,i.scrollHeight,n.offsetHeight,i.offsetHeight,n.clientHeight,i.clientHeight)},height:function(){return t.innerHeight||i.clientHeight||n.clientHeight},scrollY:function(){return void 0!==t.pageYOffset?t.pageYOffset:(i||n.parentNode||n).scrollTop}}):function(e){return{scrollHeight:function(){return Math.max(e.scrollHeight,e.offsetHeight,e.clientHeight)},height:function(){return Math.max(e.offsetHeight,e.clientHeight)},scrollY:function(){return e.scrollTop}}}(e);var t,s,n,i,o}function s(e,s,n){var i,o=function(){var e=!1;try{var t={get passive(){e=!0}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){e=!1}return e}(),a=!1,r=t(e),c=r.scrollY(),h={};function l(){var e=Math.round(r.scrollY()),t=r.height(),i=r.scrollHeight();h.scrollY=e,h.lastScrollY=c,h.direction=e>c?"down":"up",h.distance=Math.abs(e-c),h.isOutOfBounds=e<0||e+t>i,h.top=e<=s.offset[h.direction],h.bottom=e+t>=i,h.toleranceExceeded=h.distance>s.tolerance[h.direction],n(h),c=e,a=!1}function d(){a||(a=!0,i=requestAnimationFrame(l))}var u=!!o&&{passive:!0,capture:!1};return e.addEventListener("scroll",d,u),l(),{destroy:function(){cancelAnimationFrame(i),e.removeEventListener("scroll",d,u)}}}function n(e){return e===Object(e)?e:{down:e,up:e}}function i(e,t){t=t||{},Object.assign(this,i.options,t),this.classes=Object.assign({},i.options.classes,t.classes),this.elem=e,this.tolerance=n(this.tolerance),this.offset=n(this.offset),this.initialised=!1,this.frozen=!1}return i.prototype={constructor:i,init:function(){return i.cutsTheMustard&&!this.initialised&&(this.addClass("initial"),this.initialised=!0,setTimeout((function(e){e.scrollTracker=s(e.scroller,{offset:e.offset,tolerance:e.tolerance},e.update.bind(e))}),100,this)),this},destroy:function(){this.initialised=!1,Object.keys(this.classes).forEach(this.removeClass,this),this.scrollTracker.destroy()},unpin:function(){!this.hasClass("pinned")&&this.hasClass("unpinned")||(this.addClass("unpinned"),this.removeClass("pinned"),this.onUnpin&&this.onUnpin.call(this))},pin:function(){this.hasClass("unpinned")&&(this.addClass("pinned"),this.removeClass("unpinned"),this.onPin&&this.onPin.call(this))},freeze:function(){this.frozen=!0,this.addClass("frozen")},unfreeze:function(){this.frozen=!1,this.removeClass("frozen")},top:function(){this.hasClass("top")||(this.addClass("top"),this.removeClass("notTop"),this.onTop&&this.onTop.call(this))},notTop:function(){this.hasClass("notTop")||(this.addClass("notTop"),this.removeClass("top"),this.onNotTop&&this.onNotTop.call(this))},bottom:function(){this.hasClass("bottom")||(this.addClass("bottom"),this.removeClass("notBottom"),this.onBottom&&this.onBottom.call(this))},notBottom:function(){this.hasClass("notBottom")||(this.addClass("notBottom"),this.removeClass("bottom"),this.onNotBottom&&this.onNotBottom.call(this))},shouldUnpin:function(e){return"down"===e.direction&&!e.top&&e.toleranceExceeded},shouldPin:function(e){return"up"===e.direction&&e.toleranceExceeded||e.top},addClass:function(e){this.elem.classList.add.apply(this.elem.classList,this.classes[e].split(" "))},removeClass:function(e){this.elem.classList.remove.apply(this.elem.classList,this.classes[e].split(" "))},hasClass:function(e){return this.classes[e].split(" ").every((function(e){return this.classList.contains(e)}),this.elem)},update:function(e){e.isOutOfBounds||!0!==this.frozen&&(e.top?this.top():this.notTop(),e.bottom?this.bottom():this.notBottom(),this.shouldUnpin(e)?this.unpin():this.shouldPin(e)&&this.pin())}},i.options={tolerance:{up:0,down:0},offset:0,scroller:e()?window:null,classes:{frozen:"headroom--frozen",pinned:"headroom--pinned",unpinned:"headroom--unpinned",top:"headroom--top",notTop:"headroom--not-top",bottom:"headroom--bottom",notBottom:"headroom--not-bottom",initial:"headroom"}},i.cutsTheMustard=!!(e()&&function(){}.bind&&"classList"in document.documentElement&&Object.assign&&Object.keys&&requestAnimationFrame),i}()}},t={};function s(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,s),o.exports}s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,{a:t}),t},s.d=function(e,t){for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){"use strict";var e=function(e){"complete"!==document.readyState&&"interactive"!==document.readyState?document.addEventListener("DOMContentLoaded",e,{once:!0}):e()};function t(t){const{component:s,load:n,name:i,querySelector:o={},querySelectorAll:a={},options:r={}}=t;if("function"!=typeof s)return;const c=()=>{(()=>{const e=void 0===i?null==t?void 0:t.root:`[data-component='${i}']`;let s;try{s=document.querySelectorAll(e)}catch(e){return console.error(e),[]}return s.length<1?(console.log(`No elements found for ${e}`),[]):Array.from(s).map((e=>{const t={};return Object.keys(o).forEach((s=>{t[s]=e.querySelector(o[s])})),Object.keys(a).forEach((s=>{const n=e.querySelectorAll(a[s]);t[s]=Array.from(n)})),{element:e,children:t,options:r}}))})().forEach((e=>new s(e)))};if(!1===n)return c;!0!==n?function(t){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;if(t)if("function"==typeof s)s(t);else if(Array.isArray(s)){const[e,n]=s;null==e||e.addEventListener(n,t)}}(c,n):c()}var n=s(3112),i=s.n(n),o=JSON.parse('{"xl":"1280","lg":"1024","md":"768","sm":"600","xs":"480"}'),a=Object.keys(o).reduce(((e,t)=>{const s=parseInt(o[t],10),n=s/16+"rem",i=(s-1)/16+"rem";return e[`${t}Min`]=window.matchMedia(`(min-width: ${n})`),e[`${t}Max`]=window.matchMedia(`(max-width: ${i})`),e}),{});const r=window.requestAnimationFrame;class c{constructor(e,t,s=window,n=250,i=!0){this.event=t,this.element=s,this.frequency=n,this.timer=0,this.initial=i,this.callback=e,this.requestTick=this.requestTick.bind(this),this.update=this.update.bind(this)}debounce(){this.callback?this.element.addEventListener(this.event,this.requestTick):console.error("Debounce error: you must specify a callback.")}update(){this.callback(),this.timer=0}requestTick(){!this.timer&&this.initial&&this.update(),0!==this.timer&&window.clearTimeout(this.timer),this.timer=window.setTimeout((()=>{r((()=>{this.update()}))}),this.frequency)}destroy(){this.element.removeEventListener(this.event,this.requestTick)}}var h;h=new WeakMap,t({name:"siteHeader",component:class{constructor({element:e,children:t,options:s}){if(h.set(this,!1),this.getInteractiveChildren=()=>{const e=["a[href]","input:not([disabled])","button:not([disabled])",'[tabindex]:not([tabindex^="-"])'].join(","),t=this.element.querySelectorAll(e);this.interactiveChildren=Array.from(t).filter((e=>null!==e.offsetParent))},this.element=e,this.children=t,this.options=s,this.html=document.querySelector("html"),this.page=document.getElementById("page"),this.siteContent=document.querySelector(".site-content"),this.interactiveChildren=[],this.menuIsOpen=!1,!this.html)return;this.init(),this.toggleMenu=this.toggleMenu.bind(this),this.closeMenuPageClick=this.closeMenuPageClick.bind(this),this.closeMenuTabbingPast=this.closeMenuTabbingPast.bind(this),this.closeSubMenu=this.closeSubMenu.bind(this),this.createSubMenuToggles=this.createSubMenuToggles.bind(this),this.handleClickOutsideSearch=this.handleClickOutsideSearch.bind(this),this.handleSearchTabbing=this.handleSearchTabbing.bind(this),this.toggleSearch=this.toggleSearch.bind(this),this.closeSectionSubNav=this.closeSectionSubNav.bind(this);const{nav:n,navMenu:i,navToggle:o,navLinks:r,membershipButton:l,subMenus:d,searchToggle:u}=this.children;n&&(this.page||this.siteContent)&&o&&new c((()=>{this.toggleMenu()}),"click",o,250,!1).debounce(),d&&this.createSubMenuToggles();let m=null;l?m=l:n&&n.lastElementChild===i&&(m=r[r.length-1]),m&&m.addEventListener("keydown",this.closeMenuTabbingPast),d&&d.forEach((e=>{var t;(null===(t=e.lastElementChild)||void 0===t?void 0:t.querySelector("a")).addEventListener("keydown",(t=>{"Tab"!==t.key||t.shiftKey||this.closeSubMenu(e.id)}))})),u&&u.addEventListener("click",this.toggleSearch),this.getInteractiveChildren(),a.lgMin.addEventListener("change",this.getInteractiveChildren)}set searchIsOpen(e){!function(e,t,s,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(e,s):i?i.value=s:t.set(e,s)}(this,h,e,"f");const{searchOpenClass:t}=this.options,{search:s,searchInput:n,searchSubmit:i,searchToggle:o}=this.children;o.setAttribute("aria-expanded",this.searchIsOpen),n.tabIndex=this.searchIsOpen?0:-1,i.tabIndex=this.searchIsOpen?0:-1,this.searchIsOpen?(this.closeMenu(),this.closeSectionSubNav(),s.classList.add(t),s.addEventListener("keydown",this.handleSearchTabbing),this.page?this.page.addEventListener("click",this.handleClickOutsideSearch):this.siteContent&&this.siteContent.addEventListener("click",this.handleClickOutsideSearch),n.focus()):(s.classList.remove(t),s.removeEventListener("keydown",this.handleSearchTabbing),this.page?this.page.removeEventListener("click",this.handleClickOutsideSearch):this.siteContent&&this.siteContent.removeEventListener("click",this.handleClickOutsideSearch))}get searchIsOpen(){return function(e,t,s,n){if("a"===s&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?n:"a"===s?n.call(e):n?n.value:t.get(e)}(this,h,"f")}init(){const{offset:e}=this.options;e&&new(i())(this.element,{offset:e,onPin:()=>{a.smMax.matches&&document.body.classList.contains("recirc-bar-mobile-disabled")&&window.dispatchEvent(new Event("mobileInitRecirc")),document.body.classList.add("header-is-visible"),document.body.classList.remove("header-not-visible")},onUnpin:()=>{document.body.classList.remove("header-is-visible"),document.body.classList.add("header-not-visible")},onTop:()=>{document.body.classList.add("header-at-top"),document.body.classList.remove("header-not-top")},onNotTop:()=>{document.body.classList.add("header-not-top"),document.body.classList.remove("header-at-top")}}).init()}openMenu(){const{children:{nav:e,navToggle:t},options:{navOpenClass:s,htmlOpenClass:n},html:i,page:o}=this;requestAnimationFrame((()=>{t.setAttribute("aria-expanded","true"),e.classList.add(s),i.classList.add(n)})),o?o.addEventListener("click",this.closeMenuPageClick):this.siteContent&&this.siteContent.addEventListener("click",this.closeMenuPageClick),this.closeSectionSubNav(),this.menuIsOpen=!0}closeMenu(){const{children:{nav:e,navToggle:t},options:{navOpenClass:s,htmlOpenClass:n},html:i,page:o}=this;requestAnimationFrame((()=>{t.setAttribute("aria-expanded","false"),e.classList.remove(s),i.classList.remove(n)})),this.closeAllSubMenus(),o?o.removeEventListener("click",this.closeMenuPageClick):this.siteContent&&this.siteContent.removeEventListener("click",this.closeMenuPageClick),this.menuIsOpen=!1}toggleMenu(){this.menuIsOpen?this.closeMenu():this.openMenu()}closeMenuPageClick(e){e.target&&("page"===e.target.id||e.target.classList.contains("site-content"))&&this.closeMenu()}closeMenuTabbingPast(e){"Tab"!==e.key||e.shiftKey||this.closeMenu()}closeSubMenu(e){const{nav:t}=this.children,s=t.querySelector(`#${e}`),n=t.querySelector(`.sub-menu-toggle[aria-controls=${e}]`);requestAnimationFrame((()=>{n.setAttribute("aria-expanded","false"),s.classList.remove("is-open")}))}closeAllSubMenus(){const{subMenus:e}=this.children;e.forEach((e=>{this.closeSubMenu(e.id)}))}createSubMenuToggles(){const{children:{subMenus:e},options:{subMenuToggleText:t}}=this;e.forEach(((e,s)=>{var n;const i=`sub-menu-${s}`;e.setAttribute("id",i);const o=document.createElement("button");o.setAttribute("aria-expanded","false"),o.setAttribute("aria-controls",i),o.classList.add("sub-menu-toggle");const a=document.createElement("span");a.classList.add("screen-reader-text"),a.innerText=t,o.appendChild(a),null===(n=e.parentNode)||void 0===n||n.insertBefore(o,e),o.addEventListener("click",(()=>{"false"===o.getAttribute("aria-expanded")?requestAnimationFrame((()=>{o.setAttribute("aria-expanded","true"),e.classList.add("is-open")})):this.closeSubMenu(e.id)}))}))}handleClickOutsideSearch(e){e.target!==this.children.searchToggle&&this.searchIsOpen&&!1===this.children.search.contains(e.target)&&(this.searchIsOpen=!1)}handleSearchTabbing(e){const{key:t,shiftKey:s}=e,{searchInput:n,searchSubmit:i,searchToggle:o}=this.children,a=(this.interactiveChildren.indexOf(o)+1)%this.interactiveChildren.length;"Tab"===t&&(s&&e.target===n?(e.preventDefault(),this.searchIsOpen=!1,o.focus()):s||e.target!==i||(e.preventDefault(),this.searchIsOpen=!1,this.interactiveChildren[a].focus())),"Escape"===t&&(this.searchIsOpen=!1,o.focus())}toggleSearch(e){e.stopPropagation(),this.searchIsOpen=!this.searchIsOpen}closeSectionSubNav(){const{children:{subNavToggle:e,subNavDropdown:t}}=this;e&&t&&"true"===e.getAttribute("aria-expanded")&&requestAnimationFrame((()=>{e.setAttribute("aria-expanded","false"),t.setAttribute("aria-hidden","true")}))}},querySelector:{nav:".site-header__nav",navMenu:".header-nav",navToggle:".menu-toggle",subNavToggle:"[data-subnav-toggle]",subNavDropdown:"[data-subnav-dropdown]",membershipButton:"#membership-login-container button",search:'[data-search-header="search"]',searchInput:'[data-search-header="input"]',searchSubmit:'[data-search-header="submit"]',searchToggle:'[data-search-header="toggle"]'},querySelectorAll:{navLinks:".site-header__nav ul li a",subMenus:".site-header__nav .header-nav > .menu-item:not(:has(> .menu-item-divider)) > .sub-menu"},options:{navOpenClass:"site-header__nav--open",htmlOpenClass:"no-scroll",searchOpenClass:"search--open",subMenuToggleText:"Open sub menu",offset:150}}),t({name:"searchForm",component:class{constructor({element:e,children:t,options:s}){this.element=e,this.children=t,this.options=s;const{children:{searchForms:n}}=this;this.handleSearchSubmit=this.handleSearchSubmit.bind(this),n&&n.length>0&&n.forEach((e=>e.addEventListener("submit",(e=>this.handleSearchSubmit(e)))))}handleSearchSubmit(e){e.preventDefault();const{options:{searchInputSelector:t}}=this,s=e.target.querySelector(t).value.trim();if(!s)return void(document.location.href="/search/");const n=encodeURIComponent(s).replace(/%20/g,"+");document.location.href=`/search/${n}/`}},querySelectorAll:{searchForms:".search__form"},options:{searchInputSelector:'[name="s"]'}})}()}();