{"version":3,"sources":["webpack:///./src/js/utils/breakpoints.js","webpack:///./node_modules/@verndale/roving-ux/dist/index.module.js","webpack:///./src/js/modules/vertical-tab.js"],"names":["TABLET","DESKTOP","e","Map","t","c","element","d","callback","o","querySelectorAll","target","s","tabIndex","forEach","set","targets","active","index","u","get","v","addEventListener","f","keyCode","preventDefault","r","i","n","a","removeEventListener","delete","length","focus","Module","Component","setupDefaults","this","dom","$tabContainer","el","querySelector","$tabs","Array","from","$tablist","$tabContent","$tabCta","$tabToggleSvg","$tabToggle","$animatedBox","accordion","setDirection","activateTab","accordionSetMarginDesktop","rovingIndex","addListeners","window","handleResize","bind","handleClick","matchMedia","matches","partial","Math","ceil","partialContainerHeight","offsetHeight","marginBlockStart","content","style","animatorBox","parseInt","removeAttribute","marginBase","deactivateTabs","tab","getAttribute","setAttribute","classList","remove","blockSize","cta","setFocus","add","toggleTab","toggle","children","scrollHeight","switchButtonToggle","timeout","clearTimeout","setTimeout"],"mappings":"yFAAA,oEAAO,MACMA,EAAS,IACTC,EAAU,M,gCCFvB,sCAAIC,EAAE,IAAIC,IAAIC,EAAE,SAASA,GAAG,IAAIC,EAAED,EAAEE,QAAQC,EAAEH,EAAEI,SAASC,EAAEJ,EAAEK,iBAAiBN,EAAEO,QAAQ,YAAYC,EAAEH,EAAE,GAAGJ,EAAEQ,UAAU,EAAEJ,EAAEK,SAAQ,SAASZ,GAAG,OAAOA,EAAEW,UAAU,KAAID,EAAEC,SAAS,EAAEX,EAAEa,IAAIV,EAAE,CAACW,QAAQP,EAAEQ,OAAOL,EAAEM,MAAM,IAAI,IAAIC,EAAE,SAASf,GAAGF,EAAEkB,IAAI,eAAef,IAAIgB,EAAEhB,EAAEH,EAAEkB,IAAIf,GAAGY,QAAQf,EAAEa,IAAI,aAAaV,KAAKA,EAAEiB,iBAAiB,UAAUH,GAAG,IAAII,EAAE,SAASrB,GAAG,OAAOA,EAAEsB,SAAS,KAAK,GAAG,KAAK,GAAGtB,EAAEuB,iBAAiBC,EAAErB,EAAEE,GAAG,MAAM,KAAK,GAAG,KAAK,GAAGL,EAAEuB,iBAAiBE,EAAEtB,EAAEE,GAAG,MAAM,KAAK,GAAGL,EAAEuB,iBAAiBG,EAAEvB,EAAEE,GAAG,MAAM,KAAK,GAAGL,EAAEuB,iBAAiBI,EAAExB,EAAEE,KAAKF,EAAEiB,iBAAiB,UAAUC,GAAGlB,EAAEiB,iBAAiB,8BAA6B,SAASlB,EAAEwB,GAAGvB,EAAEyB,oBAAoB,UAAUX,GAAGd,EAAEyB,oBAAoB,UAAUP,GAAGlB,EAAEyB,oBAAoB,iBAAiB1B,GAAGF,EAAE6B,OAAO1B,GAAGI,EAAEK,SAAQ,SAASZ,GAAG,OAAOA,EAAEW,SAAS,UAAQe,EAAE,SAASxB,EAAEwB,GAAG,IAAIC,EAAE3B,EAAEkB,IAAIhB,GAAGyB,EAAEX,MAAM,EAAE,IAAIQ,EAAEG,EAAEb,QAAQa,EAAEX,OAAOQ,GAAGL,EAAEjB,EAAEsB,EAAEE,IAAIC,EAAE,SAASzB,EAAEwB,GAAG,IAAIC,EAAE3B,EAAEkB,IAAIhB,GAAGyB,EAAEX,MAAMW,EAAEb,QAAQgB,OAAO,EAAE,IAAIN,EAAEG,EAAEb,QAAQa,EAAEX,OAAOQ,GAAGL,EAAEjB,EAAEsB,EAAEE,IAAIF,EAAE,SAAStB,EAAEwB,GAAG,IAAIC,EAAE3B,EAAEkB,IAAIhB,GAAGyB,EAAEX,OAAO,EAAEW,EAAEX,MAAMW,EAAEb,QAAQgB,OAAO,IAAIH,EAAEX,MAAMW,EAAEb,QAAQgB,OAAO,GAAG,IAAIN,EAAEG,EAAEb,QAAQa,EAAEX,OAAOQ,GAAGL,EAAEjB,EAAEsB,EAAEE,IAAID,EAAE,SAASvB,EAAEwB,GAAG,IAAIC,EAAE3B,EAAEkB,IAAIhB,GAAGyB,EAAEX,OAAO,EAAEW,EAAEX,MAAM,IAAIW,EAAEX,MAAM,GAAG,IAAIQ,EAAEG,EAAEb,QAAQa,EAAEX,OAAOQ,GAAGL,EAAEjB,EAAEsB,EAAEE,IAAIP,EAAE,SAASjB,EAAEwB,EAAEC,GAAG,IAAIH,EAAExB,EAAEkB,IAAIhB,GAAGsB,EAAET,OAAOJ,UAAU,EAAEgB,GAAGA,EAAED,GAAGF,EAAET,OAAOW,EAAEF,EAAET,OAAOJ,SAAS,EAAEa,EAAET,OAAOgB,U,gCCAhzC,kCAIA,MAAMC,UAAeC,YACnBC,gBAGEC,KAAKC,IAAM,CACTC,cAAeF,KAAKG,GAAGC,cAAc,0BACrCC,MAAOC,MAAMC,KAAKP,KAAKG,GAAG9B,iBAAiB,iBAC3CmC,SAAUR,KAAKG,GAAGC,cAAc,oBAChCK,YAAaT,KAAKG,GAAG9B,iBAAiB,0BACtCqC,QAASV,KAAKG,GAAG9B,iBAAiB,8BAClCsC,cAAeX,KAAKG,GAAG9B,iBAAiB,6BACxCuC,WAAYN,MAAMC,KAAKP,KAAKG,GAAG9B,iBAAiB,8BAChDwC,aAAcb,KAAKG,GAAGC,cAAc,gCAGtCJ,KAAKnB,MAAQ,EACbmB,KAAKc,WAAY,EACjBd,KAAKe,eACAf,KAAKc,WACRd,KAAKgB,YAAYhB,KAAKC,IAAII,MAAM,IAAI,GAGtCL,KAAKiB,4BAELC,YAAY,CACVjD,QAvBW+B,KAuBGG,GACd7B,OAAQ,2BAIZ6C,eACEC,OAAOnC,iBAAiB,SAAUe,KAAKqB,aAAaC,KAAKtB,OACzDoB,OAAOnC,iBAAiB,SAAUe,KAAKiB,0BAA0BK,KAAKtB,OACtEA,KAAKC,IAAIO,SAASvB,iBAAiB,QAAUpB,GAAMmC,KAAKuB,YAAY1D,IAGtEoD,4BACE,GAAIG,OAAOI,WAAY,eAAc7D,UAAa8D,QAAS,CACzDzB,KAAK0B,QAAUC,KAAKC,KAAK5B,KAAKC,IAAIQ,YAAYd,OAAS,GACvDK,KAAK6B,uBAAyB7B,KAAKC,IAAIC,cAAc4B,aAAe,EACpE,IAAIC,EAAmB,EACvB/B,KAAKC,IAAIQ,YAAYhC,QAAQ,CAACuD,EAASnD,KACjCA,EAAQmB,KAAK0B,SAAY,GAAK7C,EAASmB,KAAK0B,QAAU,IACxDK,GAAoB/B,KAAK6B,wBAGvBhD,GAAUmB,KAAK0B,QAAU,EAC3BM,EAAQC,MAAMF,iBAAmB,OAEjCC,EAAQC,MAAMF,iBAAsBA,EAAF,YAItC/B,KAAKC,IAAIQ,YAAYhC,QAAQ,CAACuD,EAASnD,KACrCmD,EAAQC,MAAMF,iBAAmB,OAKvCG,YAAYrD,GACV,MAAMS,EAAI6C,SAAStD,GAEnB,GAAIuC,OAAOI,WAAY,eAAc7D,UAAa8D,QAChD,GAAInC,GAAMU,KAAK0B,QAAU,EACvB1B,KAAKC,IAAIY,aAAauB,gBAAgB,aACjC,CACL,MAAMC,EAAaV,KAAKC,MAAMtC,EAAI,GAAGU,KAAK0B,SAC1C1B,KAAKC,IAAIY,aAAaoB,MAAMF,iBAAsB/B,KAAK6B,wBAA0BQ,EAAa,GAA9C,MAKtDC,iBACEtC,KAAKC,IAAII,MAAM5B,QAAS8D,IACtB,MAAM1D,EAAQ0D,EAAIC,aAAa,cAE/BD,EAAIE,aAAa,WAAY,MAC7BF,EAAIE,aAAa,gBAAiB,SAClCF,EAAIG,UAAUC,OAAO,mCAErB3C,KAAKC,IAAIQ,YAAY5B,GAAO6D,UAAUC,OAAO,mCAC7C3C,KAAKc,UAAad,KAAKC,IAAIQ,YAAY5B,GAAOoD,MAAMW,UAAY,MAAU5C,KAAKC,IAAIQ,YAAY5B,GAAOoD,MAAMW,UAAY,OACxH5C,KAAKC,IAAIQ,YAAY5B,GAAO4D,aAAa,WAAY,MAEjD5D,EAAQ,EACVmB,KAAKC,IAAIW,WAAW/B,GAAO4D,aAAa,WAAY,MAEpDzC,KAAKC,IAAIW,WAAW/B,GAAOuD,gBAAgB,cAI/CpC,KAAKC,IAAIS,QAAQjC,QAASoE,IACxBA,EAAIJ,aAAa,WAAY,QAIjCzB,YAAYuB,EAAKO,GAAW,GACtBP,EAAIC,aAAa,gBACnBxC,KAAKnB,MAAQ0D,EAAIC,aAAa,cAE9BxC,KAAKsC,iBACLC,EAAIH,gBAAgB,YACpBG,EAAIE,aAAa,gBAAiB,QAClCF,EAAIG,UAAUK,IAAI,mCAClB/C,KAAKC,IAAIQ,YAAYT,KAAKnB,OAAO6D,UAAUK,IAAI,mCAE/C/C,KAAKC,IAAIQ,YAAYT,KAAKnB,OAAO4D,aAAa,WAAY,KAE1DzC,KAAKC,IAAIQ,YAAYT,KAAKnB,OAAOoD,MAAMW,UAAY,OAEnD5C,KAAKkC,YAAYlC,KAAKnB,OAElBmB,KAAKC,IAAIQ,YAAYT,KAAKnB,OAAOuB,cAAc,+BACjDJ,KAAKC,IAAIQ,YAAYT,KAAKnB,OAAOuB,cAAc,8BAA8BgC,gBAAgB,YAG3FU,GACFP,EAAI3C,SAKVoD,UAAUC,EAAQH,GAAW,GAC3B,GAAIG,EAAOT,aAAa,cAAe,CAGrC,GAFAxC,KAAKnB,MAAQoE,EAAOT,aAAa,cAEgC,UAA7DxC,KAAKC,IAAII,MAAML,KAAKnB,OAAO2D,aAAa,iBAA8B,CACxE,IAAII,EAAY5C,KAAKC,IAAIQ,YAAYT,KAAKnB,OAAOqE,SAAS,GAAGC,aAAe,GACxEnD,KAAKC,IAAIQ,YAAYT,KAAKnB,OAAOuB,cAAc,gCACjDwC,GAAwB5C,KAAKC,IAAIQ,YAAYT,KAAKnB,OAAOuB,cAAc,8BAA8B+C,aACrGnD,KAAKC,IAAIQ,YAAYT,KAAKnB,OAAOuB,cAAc,8BAA8BgC,gBAAgB,aAG/FpC,KAAKC,IAAII,MAAML,KAAKnB,OAAO4D,aAAa,gBAAiB,QACzDzC,KAAKC,IAAII,MAAML,KAAKnB,OAAO6D,UAAUK,IAAI,mCAEzC/C,KAAKC,IAAIQ,YAAYT,KAAKnB,OAAOoD,MAAMW,UAAeA,EAAF,KACpD5C,KAAKC,IAAIQ,YAAYT,KAAKnB,OAAO6D,UAAUK,IAAI,mCAC/C/C,KAAKC,IAAIQ,YAAYT,KAAKnB,OAAO4D,aAAa,WAAY,KAE1DzC,KAAKC,IAAIU,cAAcX,KAAKnB,OAAO6D,UAAUK,IAAI,uCAEjD/C,KAAKC,IAAII,MAAML,KAAKnB,OAAO4D,aAAa,gBAAiB,SACzDzC,KAAKC,IAAII,MAAML,KAAKnB,OAAO6D,UAAUC,OAAO,mCAE5C3C,KAAKC,IAAIQ,YAAYT,KAAKnB,OAAOoD,MAAMW,UAAY,MACnD5C,KAAKC,IAAIQ,YAAYT,KAAKnB,OAAO6D,UAAUC,OAAO,mCAClD3C,KAAKC,IAAIQ,YAAYT,KAAKnB,OAAO4D,aAAa,WAAY,MAEtDzC,KAAKC,IAAIQ,YAAYT,KAAKnB,OAAOuB,cAAc,+BACjDJ,KAAKC,IAAIQ,YAAYT,KAAKnB,OAAOuB,cAAc,8BAA8BqC,aAAa,WAAY,MAGxGzC,KAAKC,IAAIU,cAAcX,KAAKnB,OAAO6D,UAAUC,OAAO,kCAGlDG,GACFG,EAAOrD,SAKbwD,qBACEpD,KAAKC,IAAII,MAAM5B,QAAS8D,IACtBA,EAAIE,aAAa,WAAY,QAIjClB,YAAY1D,GACVmC,KAAKc,UAAYd,KAAKgD,UAAUnF,EAAES,QAAU0B,KAAKgB,YAAYnD,EAAES,QAAQ,GAGzEyC,eACE,GAAIK,OAAOI,WAAY,eAAc7D,IAAS,QAAQ8D,UAAYzB,KAAKc,UAKrE,OAJAd,KAAKc,WAAY,EACjBd,KAAKsC,iBACLtC,KAAKoD,0BACLpD,KAAKgD,UAAUhD,KAAKC,IAAIW,WAAW,IAAI,GAIrCQ,OAAOI,WAAY,eAAc7D,UAAa8D,SAAWzB,KAAKc,YAChEd,KAAKc,WAAY,EACjBd,KAAKsC,iBACLtC,KAAKoD,qBACLpD,KAAKgB,YAAYhB,KAAKC,IAAII,MAAM,IAAI,IAIxCgB,eACE,IAAIgC,GAAU,EACdC,aAAaD,GACbA,EAAUE,WAAWvD,KAAKe,aAAaO,KAAKtB,MAAO,MAIxCH","file":"9.fb44990c99ca276d3502.js","sourcesContent":["export const MOBILE = 360;\nexport const TABLET = 768;\nexport const DESKTOP = 1360;\nexport const WIDE = 1920;\n","var e=new Map,t=function(t){var c=t.element,d=t.callback,o=c.querySelectorAll(t.target||\":scope *\"),s=o[0];c.tabIndex=-1,o.forEach(function(e){return e.tabIndex=-1}),s.tabIndex=0,e.set(c,{targets:o,active:s,index:0});var u=function(t){e.get(\"last_rover\")!=c&&(v(c,e.get(c).active),e.set(\"last_rover\",c))};c.addEventListener(\"focusin\",u);var f=function(e){switch(e.keyCode){case 39:case 40:e.preventDefault(),r(c,d);break;case 37:case 38:e.preventDefault(),i(c,d);break;case 36:e.preventDefault(),n(c,d);break;case 35:e.preventDefault(),a(c,d)}};c.addEventListener(\"keydown\",f),c.addEventListener(\"DOMNodeRemovedFromDocument\",function t(n){c.removeEventListener(\"focusin\",u),c.removeEventListener(\"keydown\",f),c.removeEventListener(\"DOMNodeRemoved\",t),e.delete(c),o.forEach(function(e){return e.tabIndex=\"\"})})},n=function(t,n){var a=e.get(t);a.index=0;var r=a.targets[a.index];r&&v(t,r,n)},a=function(t,n){var a=e.get(t);a.index=a.targets.length-1;var r=a.targets[a.index];r&&v(t,r,n)},r=function(t,n){var a=e.get(t);a.index+=1,a.index>a.targets.length-1&&(a.index=a.targets.length-1);var r=a.targets[a.index];r&&v(t,r,n)},i=function(t,n){var a=e.get(t);a.index-=1,a.index<1&&(a.index=0);var r=a.targets[a.index];r&&v(t,r,n)},v=function(t,n,a){var r=e.get(t);r.active.tabIndex=-1,a&&a(n),r.active=n,r.active.tabIndex=0,r.active.focus()};export{t as rovingIndex};\n//# sourceMappingURL=index.module.js.map\n","import { Component } from '@verndale/core';\nimport { DESKTOP, TABLET } from '../utils/breakpoints';\nimport { rovingIndex } from '@verndale/roving-ux';\n\nclass Module extends Component {\n setupDefaults() {\n const self = this;\n\n this.dom = {\n $tabContainer: this.el.querySelector('.vertical-tab__tablist'),\n $tabs: Array.from(this.el.querySelectorAll('[role=\"tab\"]')),\n $tablist: this.el.querySelector('[role=\"tablist\"]'),\n $tabContent: this.el.querySelectorAll('.vertical-tab__content'),\n $tabCta: this.el.querySelectorAll('.vertical-tab__content-cta'),\n $tabToggleSvg: this.el.querySelectorAll('.vertical-tab__toggle-svg'),\n $tabToggle: Array.from(this.el.querySelectorAll('.vertical-tab__toggle-btn')),\n $animatedBox: this.el.querySelector('.vertical-tab__box-animator')\n };\n\n this.index = 0;\n this.accordion = false;\n this.setDirection();\n if (!this.accordion) {\n this.activateTab(this.dom.$tabs[0], false);\n }\n\n this.accordionSetMarginDesktop();\n\n rovingIndex({\n element: self.el,\n target: '.vertical-tab__tab-btn'\n });\n }\n\n addListeners() {\n window.addEventListener('resize', this.handleResize.bind(this));\n window.addEventListener('resize', this.accordionSetMarginDesktop.bind(this));\n this.dom.$tablist.addEventListener('click', (e) => this.handleClick(e));\n }\n\n accordionSetMarginDesktop() {\n if (window.matchMedia(`(min-width: ${TABLET}px)`).matches) {\n this.partial = Math.ceil(this.dom.$tabContent.length / 3);\n this.partialContainerHeight = this.dom.$tabContainer.offsetHeight / 3;\n let marginBlockStart = 0;\n this.dom.$tabContent.forEach((content, index) => {\n if (index % this.partial === 0 && index > (this.partial - 1)) {\n marginBlockStart += this.partialContainerHeight\n }\n\n if (index <= (this.partial - 1)) {\n content.style.marginBlockStart = '40px';\n } else {\n content.style.marginBlockStart = `${marginBlockStart}px`;\n }\n });\n } else {\n this.dom.$tabContent.forEach((content, index) => {\n content.style.marginBlockStart = null;\n });\n }\n }\n\n animatorBox(index) {\n const i = parseInt(index);\n\n if (window.matchMedia(`(min-width: ${TABLET}px)`).matches) {\n if (i <= (this.partial - 1)) {\n this.dom.$animatedBox.removeAttribute('style');\n } else {\n const marginBase = Math.ceil((i + 1)/this.partial);\n this.dom.$animatedBox.style.marginBlockStart = `${this.partialContainerHeight * (marginBase - 1)}px`;\n }\n }\n }\n\n deactivateTabs() {\n this.dom.$tabs.forEach((tab) => {\n const index = tab.getAttribute('data-index');\n\n tab.setAttribute('tabindex', '-1');\n tab.setAttribute('aria-selected', 'false');\n tab.classList.remove('vertical-tab__tab-btn--selected');\n\n this.dom.$tabContent[index].classList.remove('vertical-tab__content--selected');\n this.accordion ? (this.dom.$tabContent[index].style.blockSize = '0px') : (this.dom.$tabContent[index].style.blockSize = 'auto');\n this.dom.$tabContent[index].setAttribute('tabindex', '-1');\n\n if (index > 0) {\n this.dom.$tabToggle[index].setAttribute('tabindex', '-1');\n } else {\n this.dom.$tabToggle[index].removeAttribute('tabindex');\n }\n });\n\n this.dom.$tabCta.forEach((cta) => {\n cta.setAttribute('tabindex', '-1');\n });\n }\n\n activateTab(tab, setFocus = true) {\n if (tab.getAttribute('data-index')) {\n this.index = tab.getAttribute('data-index');\n\n this.deactivateTabs();\n tab.removeAttribute('tabindex');\n tab.setAttribute('aria-selected', 'true');\n tab.classList.add('vertical-tab__tab-btn--selected');\n this.dom.$tabContent[this.index].classList.add('vertical-tab__content--selected');\n\n this.dom.$tabContent[this.index].setAttribute('tabindex', '0');\n\n this.dom.$tabContent[this.index].style.blockSize = 'auto';\n\n this.animatorBox(this.index);\n\n if (this.dom.$tabContent[this.index].querySelector('.vertical-tab__content-cta')) {\n this.dom.$tabContent[this.index].querySelector('.vertical-tab__content-cta').removeAttribute('tabindex');\n }\n\n if (setFocus) {\n tab.focus();\n }\n }\n }\n\n toggleTab(toggle, setFocus = false) {\n if (toggle.getAttribute('data-index')) {\n this.index = toggle.getAttribute('data-index');\n\n if (this.dom.$tabs[this.index].getAttribute('aria-selected') === 'false') {\n let blockSize = this.dom.$tabContent[this.index].children[0].scrollHeight + 30;\n if (this.dom.$tabContent[this.index].querySelector('.vertical-tab__content-cta')) {\n blockSize = blockSize + this.dom.$tabContent[this.index].querySelector('.vertical-tab__content-cta').scrollHeight;\n this.dom.$tabContent[this.index].querySelector('.vertical-tab__content-cta').removeAttribute('tabindex');\n }\n\n this.dom.$tabs[this.index].setAttribute('aria-selected', 'true');\n this.dom.$tabs[this.index].classList.add('vertical-tab__tab-btn--selected');\n\n this.dom.$tabContent[this.index].style.blockSize = `${blockSize}px`;\n this.dom.$tabContent[this.index].classList.add('vertical-tab__content--selected');\n this.dom.$tabContent[this.index].setAttribute('tabindex', '0');\n\n this.dom.$tabToggleSvg[this.index].classList.add('vertical-tab__toggle-svg--open');\n } else {\n this.dom.$tabs[this.index].setAttribute('aria-selected', 'false');\n this.dom.$tabs[this.index].classList.remove('vertical-tab__tab-btn--selected');\n\n this.dom.$tabContent[this.index].style.blockSize = '0px';\n this.dom.$tabContent[this.index].classList.remove('vertical-tab__content--selected');\n this.dom.$tabContent[this.index].setAttribute('tabindex', '-1');\n\n if (this.dom.$tabContent[this.index].querySelector('.vertical-tab__content-cta')) {\n this.dom.$tabContent[this.index].querySelector('.vertical-tab__content-cta').setAttribute('tabindex', '-1');\n }\n\n this.dom.$tabToggleSvg[this.index].classList.remove('vertical-tab__toggle-svg--open');\n }\n\n if (setFocus) {\n toggle.focus();\n }\n }\n }\n\n switchButtonToggle() {\n this.dom.$tabs.forEach((tab) => {\n tab.setAttribute('tabindex', '-1');\n });\n }\n\n handleClick(e) {\n this.accordion ? this.toggleTab(e.target) : this.activateTab(e.target, true);\n }\n\n setDirection() {\n if (window.matchMedia(`(max-width: ${TABLET - 1}px)`).matches && !this.accordion) {\n this.accordion = true;\n this.deactivateTabs();\n this.switchButtonToggle();\n this.toggleTab(this.dom.$tabToggle[0], false);\n return;\n }\n\n if (window.matchMedia(`(min-width: ${TABLET}px)`).matches && this.accordion) {\n this.accordion = false;\n this.deactivateTabs();\n this.switchButtonToggle();\n this.activateTab(this.dom.$tabs[0], true);\n }\n }\n\n handleResize() {\n let timeout = false;\n clearTimeout(timeout);\n timeout = setTimeout(this.setDirection.bind(this), 200);\n }\n}\n\nexport default Module;\n"],"sourceRoot":""}