Aopz clyzpvu vm pmyhtl-ylzpgly> pz ilpun bzlk bukly aol alytz vm aol NWS C3> spjluzl. Aopz spjluzl hssvdz fvb av bzl
pmyhtl-ylzpgly> pu Vwlu Zvbyjl wyvqljaz, iba pa ylxbpylz fvby wyvqlja av il wbispj, wyvcpkl haaypibapvu huk il spjluzlk bukly clyzpvu 3 vy shaly vm aol NUB Nlulyhs Wbispj Spjluzl.Pm fvb hyl bzpun aopz spiyhyf pu h uvu-vwlu zvbyjl wyvqlja vy dlizpal, fvb dpss ullk av wbyjohzl h svd jvza vul aptl jvttlyjphs spjluzl.Mvy tvyl pumvythapvu cpzpa oaawz://pmyhtl-ylzpgly.jvt/wypjpun>."];Object.fromEntries(["2cgs7fdf4xb","1c9ctcccr4z","1q2pc4eebgb","ueokt0969w","w2zxchhgqz","1umuxblj2e5"].map(((e,t)=>[e,Math.max(0,t-1)])));const d=e=>(e=>e.replaceAll(/[A-Za-z]/g,(e=>String.fromCodePoint((e<="Z"?90:122)>=(e=e.codePointAt(0)+19)?e:e-26))))(c[e]),u=e=>e,m=1e5,f=e=>Math.round(e*m)/m;let p="",h=!1;const y=e=>{p=e.id,h=e.logging},g=e=>""!=`${e}`&&void 0!==e;const b=(...e)=>[`[iframe-resizer][${p||"child"}]`,...e].join(" "),v=(...e)=>h&&console?.info(`[iframe-resizer][${p}]`,...e),w=(...e)=>console?.warn(b(...e)),z=(...e)=>console?.warn((e=>t=>window.chrome?e(t.replaceAll("
","\n").replaceAll("","[31;1m").replaceAll(">","[m").replaceAll("","[1m").replaceAll("","[3m").replaceAll("","[4m")):e(t.replaceAll("
","\n").replaceAll(/<[/a-z]+>/gi,"")))(b)(...e)),S=e=>z(e);let E=[];const j=e=>{const t=e.side||i,n=e.onChange||u,r={root:document.documentElement,rootMargin:"0px",threshold:1},a=new WeakSet;function l(){E=document.querySelectorAll(`[${o}]`),n()}const s=new IntersectionObserver((function(e){e.forEach((e=>{e.target.toggleAttribute(o,(e=>0===e.boundingClientRect[t]||e.boundingClientRect[t]>e.rootBounds[t])(e))})),requestAnimationFrame(l)}),r);return function(e){for(const t of e)t.nodeType!==Node.ELEMENT_NODE||a.has(t)||(s.observe(t),a.add(t))}},C=()=>E.length>0,$="--ifr-start",T="--ifr-end",M="--ifr-measure",P=[],A=new WeakSet,O=e=>"object"==typeof e&&A.add(e);let N=null,I=null,k={};const R=setInterval((()=>{if(P.length<10)return;if(k.hasTags&&k.len<25)return;P.sort();const e=Math.min(P.reduce(((e,t)=>e+t),0)/P.length,P[Math.floor(P.length/2)]);e<=4||(clearInterval(R),z(`Performance Warning>\n\nCalculating the page size is taking an excessive amount of time (${f(e)}ms).\n\nTo improve performance add the data-iframe-size> attribute to the ${k.Side.toLowerCase()} most element on the page. For more details see: https://iframe-resizer.com/perf>.`))}),5e3);function x(e){e.getEntries().forEach((e=>{if(e.name===T){const{duration:t}=performance.measure(M,$,T);!function(e,t){const{Side:n,len:o,hasTags:i,logging:r}=e;k=e,A.has(I)||N===I||i&&o<=1||(r||O(I),N=I,v(`\n${n} position calculated from:`,I,`\nParsed ${o} ${i?"tagged":"potentially overflowing"} elements in ${f(t)}ms`))}(e.detail,t),P.push(t),P.length>100&&P.shift()}}))}function q(){new PerformanceObserver(x).observe({entryTypes:["mark"]}),O(document.documentElement),O(document.body)}"undefined"!=typeof document&&"undefined"!=typeof PerformanceObserver&&("loading"===document.readyState?document.addEventListener("DOMContentLoaded",q):q()),"undefined"!=typeof window&&function(){const o={contentVisibilityAuto:!0,opacityProperty:!0,visibilityProperty:!0},c={height:()=>(w("Custom height calculation function not defined"),qe.auto()),width:()=>(w("Custom width calculation function not defined"),Le.auto())},m={bodyOffset:1,bodyScroll:1,offset:1,documentElementOffset:1,documentElementScroll:1,boundingClientRect:1,max:1,min:1,grow:1,lowestElement:1},p=128,h={},b="checkVisibility"in window,v="auto",M="[iFrameSizer]",P=M.length,A={max:1,min:1,bodyScroll:1,documentElementScroll:1},O="scroll";let N,k,R,x,q=!0,L="",B=0,D="",W="",U=!0,F=!1,V=!0,J=!1,H=1,Z=v,_=!0,Q="",X={},Y=!1,G=0,K=!1,ee="",te=u,ne="child",oe=null,ie=!1,re="",ae=[],le=window.parent,se="*",ce=0,de=!1,ue="",me=1,fe=O,pe=window,he=()=>{w("onMessage function not defined")},ye=()=>{},ge=null,be=null;function ve(){var o,s,u;!function(){const e=e=>"true"===e,t=Q.slice(P).split(":");ee=t[0],B=void 0===t[1]?B:Number(t[1]),F=void 0===t[2]?F:e(t[2]),Y=void 0===t[3]?Y:e(t[3]),q=void 0===t[6]?q:e(t[6]),D=t[7],Z=void 0===t[8]?Z:t[8],L=t[9],W=t[10],ce=void 0===t[11]?ce:Number(t[11]),X.enable=void 0!==t[12]&&e(t[12]),ne=void 0===t[13]?ne:t[13],fe=void 0===t[14]?fe:t[14],K=void 0===t[15]?K:e(t[15]),N=void 0===t[16]?N:Number(t[16]),k=void 0===t[17]?k:Number(t[17]),U=void 0===t[18]?U:e(t[18]),t[19],ue=t[20]||ue,G=void 0===t[21]?G:Number(t[21])}(),y({id:ee,logging:Y}),function(){function e(e){he=e?.onMessage||he,ye=e?.onReady||ye,"number"==typeof e?.offset&&(z("Deprecated option>\n\n The offset> option has been renamed to offsetSize>. Use of the old name will be removed in a future version of iframe-resizer>."),U&&(N=e?.offset),F&&(k=e?.offset)),"number"==typeof e?.offsetSize&&(U&&(N=e?.offsetSize),F&&(k=e?.offsetSize)),Object.prototype.hasOwnProperty.call(e,"sizeSelector")&&(re=e.sizeSelector),se=e?.targetOrigin||se,Z=e?.heightCalculationMethod||Z,fe=e?.widthCalculationMethod||fe}function t(e,t){return"function"==typeof e&&(c[t]=e,e="custom"),e}if(1===G)return;const n=window.iframeResizer||window.iFrameResizer;"object"==typeof n&&(e(n),Z=t(Z,"height"),fe=t(fe,"width"))}(),function(){try{ie="iframeParentListener"in window.parent}catch(e){}}(),G<0?S(`${d(G+2)}${d(2)}`):ue.codePointAt(0)>4||G<2&&S(d(3)),ue&&""!==ue&&"false"!==ue?ue!==e&&z(`Version mismatch>\n\nThe parent and child pages are running different versions of iframe resizer>.\n\nParent page: ${ue} - Child page: ${e}.\n`):z("Legacy version detected on parent page>\n\nDetected legacy version of parent page script. It is recommended to update the parent page to use @iframe-resizer/parent>.\n\nSee https://iframe-resizer.com/setup/> for more details.\n"),$e(),Te(),function(){let e=!1;const t=t=>document.querySelectorAll(`[${t}]`).forEach((o=>{e=!0,o.removeAttribute(t),o.toggleAttribute(n,!0)}));t("data-iframe-height"),t("data-iframe-width"),e&&z("Deprecated Attributes>\n \nThe data-iframe-height> and data-iframe-width> attributes have been deprecated and replaced with the single data-iframe-size> attribute. Use of the old attributes will be removed in a future version of iframe-resizer>.")}(),we(),U!==F&&(te=j({onChange:()=>We("overflowChanged","Overflow updated"),side:U?i:r})),1!==G&&(pe.parentIframe=Object.freeze({autoResize:e=>(!0===e&&!1===q?(q=!0,We("autoResizeEnabled","Auto Resize enabled")):!1===e&&!0===q&&(q=!1),Je(0,0,"autoResize",JSON.stringify(q)),q),close(){Je(0,0,"close")},getId:()=>ee,getPageInfo(e){if("function"==typeof e)return ge=e,Je(0,0,"pageInfo"),void z("Deprecated Method>\n \nThe getPageInfo()> method has been deprecated and replaced with getParentProps()>. Use of this method will be removed in a future version of iframe-resizer>.\n");ge=null,Je(0,0,"pageInfoStop")},getParentProps(e){if("function"!=typeof e)throw new TypeError("parentIframe.getParentProps(callback) callback not a function");return be=e,Je(0,0,"parentInfo"),()=>{be=null,Je(0,0,"parentInfoStop")}},getParentProperties(e){z("Renamed Method>\n \nThe getParentProperties()> method has been renamed getParentProps()>. Use of the old name will be removed in a future version of iframe-resizer>.\n"),this.getParentProps(e)},moveToAnchor(e){X.findTarget(e)},reset(){Ve()},scrollBy(e,t){Je(t,e,"scrollBy")},scrollTo(e,t){Je(t,e,"scrollTo")},scrollToOffset(e,t){Je(t,e,"scrollToOffset")},sendMessage(e,t){Je(0,0,"message",JSON.stringify(e),t)},setHeightCalculationMethod(e){Z=e,$e()},setWidthCalculationMethod(e){fe=e,Te()},setTargetOrigin(e){se=e},resize(e,t){We(a,`parentIframe.resize(${e||""}${t?`,${t}`:""})`,e,t)},size(e,t){z("Deprecated Method>\n \nThe size()> method has been deprecated and replaced with resize()>. Use of this method will be removed in a future version of iframe-resizer>.\n"),this.resize(e,t)}}),pe.parentIFrame=pe.parentIframe),function(){function e(e){Je(0,0,e.type,`${e.screenY}:${e.screenX}`)}function t(t,n){l(window.document,t,e)}!0===K&&(t("mouseenter"),t("mouseleave"))}(),X=function(){const e=()=>({x:document.documentElement.scrollLeft,y:document.documentElement.scrollTop});function n(n){const o=n.getBoundingClientRect(),i=e();return{x:parseInt(o.left,t)+parseInt(i.x,t),y:parseInt(o.top,t)+parseInt(i.y,t)}}function o(e){function t(e){const t=n(e);Je(t.y,t.x,"scrollToOffset")}const o=e.split("#")[1]||e,i=decodeURIComponent(o),r=document.getElementById(i)||document.getElementsByName(i)[0];void 0===r?Je(0,0,"inPageLink",`#${o}`):t(r)}function i(){const{hash:e,href:t}=window.location;""!==e&&"#"!==e&&o(t)}function r(){for(const e of document.querySelectorAll('a[href^="#"]'))"#"!==e.getAttribute("href")&&l(e,"click",(t=>{t.preventDefault(),o(e.getAttribute("href"))}))}function a(){l(window,"hashchange",i)}function s(){setTimeout(i,p)}function c(){r(),a(),s()}return X.enable&&(1===G?z("In page linking requires a Professional or Business license. Please see https://iframe-resizer.com/pricing for more details."):c()),{findTarget:o}}(),ze(Ie(document)()),void 0===D&&(D=`${B}px`),Se("margin",(s="margin",(u=D).includes("-")&&(w(`Negative CSS value ignored for ${s}`),u=""),u)),Se("background",L),Se("padding",W),function(){const e=document.createElement("div");e.style.clear="both",e.style.display="block",e.style.height="0",document.body.append(e)}(),function(){const e=e=>e.style.setProperty("height","auto","important");e(document.documentElement),e(document.body)}(),Ee(),We("init","Init message from host page",void 0,void 0,e),document.title&&""!==document.title&&Je(0,0,"title",document.title),je({method:o="add",eventType:"After Print",eventName:"afterprint"}),je({method:o,eventType:"Before Print",eventName:"beforeprint"}),je({method:o,eventType:"Ready State Change",eventName:"readystatechange"}),function(){const e=new Set;let t=!1,n=0,o=[];const i=t=>{for(const n of t){const{addedNodes:t,removedNodes:o}=n;for(const n of t)e.add(n);for(const t of o)e.delete(t)}},r=16,a=2,l=200;let s=1;function c(){const d=performance.now(),u=d-n;if(u>r*s+++a&&u0}function ze(e){J||te(e)}function Se(e,t){void 0!==t&&""!==t&&"null"!==t&&document.body.style.setProperty(e,t)}function Ee(){if(""!==re)for(const e of document.querySelectorAll(re))e.dataset.iframeSize=!0}function je(e){({add(t){function n(){We(e.eventName,e.eventType)}h[t]=n,l(window,t,n,{passive:!0})},remove(e){const t=h[e];delete h[e],s(window,e,t)}})[e.method](e.eventName)}function Ce(e,t,n,o){return t!==e&&(e in n||(w(`${e} is not a valid option for ${o}CalculationMethod.`),e=t),e in m&&z(`Deprecated ${o}CalculationMethod (${e})>\n\nThis version of iframe-resizer> can auto detect the most suitable ${o} calculation method. It is recommended that you remove this option.`)),e}function $e(){Z=Ce(Z,v,qe,"height")}function Te(){fe=Ce(fe,O,Le,"width")}function Me(e){Array.isArray(e)&&0!==e.length&&We("resizeObserver",`Resize Observed: ${function(e){switch(!0){case!g(e):return"";case g(e.id):return`${e.nodeName.toUpperCase()}#${e.id}`;case g(e.name):return`${e.nodeName.toUpperCase()} (${e.name})`;default:return e.nodeName.toUpperCase()+(g(e.className)?`.${e.className}`:"")}}(e[0].target)}`)}const Pe=new WeakSet;function Ae(e){if(e.nodeType!==Node.ELEMENT_NODE)return;if(!Pe.has(e)){const t=getComputedStyle(e)?.position;""!==t&&"static"!==t&&(oe.observe(e),Pe.add(e))}const t=Ie(e)();for(const e of t){if(Pe.has(e)||e?.nodeType!==Node.ELEMENT_NODE)continue;const t=getComputedStyle(e)?.position;""!==t&&"static"!==t&&(oe.observe(e),Pe.add(e))}}function Oe(e){performance.mark($);const t=(n=e).charAt(0).toUpperCase()+n.slice(1);var n;let i=0,r=document.documentElement,a=J?0:document.documentElement.getBoundingClientRect().bottom;performance.mark($);const l=J?ae:C()?E:Ie(document)();let s=l.length;for(const t of l)J||!b||t.checkVisibility(o)?(i=t.getBoundingClientRect()[e]+parseFloat(getComputedStyle(t).getPropertyValue(`margin-${e}`)),i>a&&(a=i,r=t)):s-=1;return I=r,performance.mark(T,{detail:{Side:t,len:s,hasTags:J,logging:Y}}),a}const Ne=e=>[e.bodyOffset(),e.bodyScroll(),e.documentElementOffset(),e.documentElementScroll(),e.boundingClientRect()],Ie=e=>()=>e.querySelectorAll("* :not(head):not(meta):not(base):not(title):not(script):not(link):not(style):not(map):not(area):not(option):not(optgroup):not(template):not(track):not(wbr):not(nobr)"),ke={height:0,width:0},Re={height:0,width:0};function xe(e){function t(){return Re[i]=r,ke[i]=s,r}const n=C(),o=e===qe,i=o?"height":"width",r=e.boundingClientRect(),a=Math.ceil(r),l=Math.floor(r),s=(e=>e.documentElementScroll()+Math.max(0,e.getOffset()))(e);switch(!0){case!e.enabled():return s;case J:return e.taggedElement();case!n&&0===Re[i]&&0===ke[i]:return t();case de&&r===Re[i]&&s===ke[i]:return Math.max(r,s);case 0===r:return s;case!n&&r!==Re[i]&&s<=ke[i]:return t();case!o:return e.taggedElement();case!n&&rs:return t()}return Math.max(e.taggedElement(),t())}const qe={enabled:()=>U,getOffset:()=>N,auto:()=>xe(qe),bodyOffset:()=>{const{body:e}=document,n=getComputedStyle(e);return e.offsetHeight+parseInt(n.marginTop,t)+parseInt(n.marginBottom,t)},bodyScroll:()=>document.body.scrollHeight,offset:()=>qe.bodyOffset(),custom:()=>c.height(),documentElementOffset:()=>document.documentElement.offsetHeight,documentElementScroll:()=>document.documentElement.scrollHeight,boundingClientRect:()=>Math.max(document.documentElement.getBoundingClientRect().bottom,document.body.getBoundingClientRect().bottom),max:()=>Math.max(...Ne(qe)),min:()=>Math.min(...Ne(qe)),grow:()=>qe.max(),lowestElement:()=>Oe(i),taggedElement:()=>Oe(i)},Le={enabled:()=>F,getOffset:()=>k,auto:()=>xe(Le),bodyScroll:()=>document.body.scrollWidth,bodyOffset:()=>document.body.offsetWidth,custom:()=>c.width(),documentElementScroll:()=>document.documentElement.scrollWidth,documentElementOffset:()=>document.documentElement.offsetWidth,boundingClientRect:()=>Math.max(document.documentElement.getBoundingClientRect().right,document.body.getBoundingClientRect().right),max:()=>Math.max(...Ne(Le)),min:()=>Math.min(...Ne(Le)),rightMostElement:()=>Oe(r),scroll:()=>Math.max(Le.bodyScroll(),Le.documentElementScroll()),taggedElement:()=>Oe(r)},Be=(e,t)=>!(Math.abs(e-t)<=ce);let De=!1;function We(e,t,n,o,i){x=performance.now(),(q||e===a)&&(document.hidden||(De||(R=!0,function(e,t,n,o,i){const r=void 0===n?qe[Z]():n,l=void 0===o?Le[fe]():o;U&&Be(H,r)||F&&Be(me,l)||"init"===e?(Ue(),H=r,me=l,Je(H,me,e,i)):!e!==a&&(U&&Z in A||F&&fe in A)?Ve():R=!1}(e,0,n,o,i),requestAnimationFrame((()=>{De=!1}))),De=!0))}function Ue(){de||(de=!0,requestAnimationFrame((()=>{de=!1})))}function Fe(e){H=qe[Z](),me=Le[fe](),Je(H,me,e)}function Ve(e){const t=Z;Z=v,Ue(),Fe("reset"),Z=t}function Je(e,t,n,o,i){G<-1||(void 0!==i||(i=se),function(){const r=`${ee}:${e+(N||0)}:${t+(k||0)}:${n}${void 0===o?"":`:${o}`}`;Y&&(console.group(`[iframe-resizer][${ee}]`),console.info("Sending message to host page via "+(ie?"sameDomain":"postMessage")),console.info(`%c${r}`,"font-style: italic"),R&&console.info(function(){const e=f(performance.now()-x);return"init"===n?`Initialised iFrame in %c${e}ms`:`Content size recalculated in %c${e}ms`}(),"font-weight:bold;color:#777"),console.groupEnd()),R=!1,ie?window.parent.iframeParentListener(M+r):le.postMessage(M+r,i)}())}function He(e){const t={init:function(){Q=e.data,le=e.source,ve(),V=!1,setTimeout((()=>{_=!1}),p)},reset(){_||Fe("resetPage")},resize(){We(a)},moveToAnchor(){X.findTarget(o())},inPageLink(){this.moveToAnchor()},pageInfo(){const e=o();ge?setTimeout((()=>ge(JSON.parse(e)))):Je(0,0,"pageInfoStop")},parentInfo(){const e=o();be?setTimeout(be(Object.freeze(JSON.parse(e)))):Je(0,0,"parentInfoStop")},message(){const e=o();he(JSON.parse(e))}},n=()=>e.data.split("]")[1].split(":")[0],o=()=>e.data.slice(e.data.indexOf(":")+1),i=()=>"iframeResize"in window||void 0!==window.jQuery&&""in window.jQuery.prototype,r=()=>e.data.split(":")[2]in{true:1,false:1};M===`${e.data}`.slice(0,P)&&(!1!==V?r()&&t.init():function(){const o=n();o in t?t[o]():i()||r()||w(`Unexpected message (${e.data})`)}())}function Ze(){"loading"!==document.readyState&&window.parent.postMessage("[iFrameResizerChild]Ready","*")}function _e(e){return He(e),pe}"iframeChildListener"in window?w("Already setup"):(window.iframeChildListener=e=>setTimeout((()=>He({data:e,sameDomain:!0}))),l(window,"message",He),l(window,"readystatechange",Ze),Ze());try{top?.document?.getElementById("banner")&&(pe={},window.mockMsgListener=_e,s(window,"message",He),define([],(()=>_e)))}catch(e){}}()}();
diff --git a/assets/js/iframe-resizer.jquery.js b/assets/js/iframe-resizer.jquery.js
new file mode 100644
index 00000000..d0f4c403
--- /dev/null
+++ b/assets/js/iframe-resizer.jquery.js
@@ -0,0 +1,20 @@
+/*!
+ * @preserve
+ *
+ * @module iframe-resizer/jquery 5.3.0 (iife)
+ *
+ * @license GPL-3.0 for non-commercial use only.
+ * For commercial use, you must purchase a license from
+ * https://iframe-resizer.com/pricing
+ *
+ * @description Keep same and cross domain iFrames sized to their content
+ *
+ * @author David J. Bradshaw
+ *
+ * @see {@link https://iframe-resizer.com}
+ *
+ * @copyright (c) 2013 - 2024, David J. Bradshaw. All rights reserved.
+ */
+
+
+!function(){"use strict";const e="5.3.0",i="[iFrameSizer]",t=i.length,n=Object.freeze({max:1,scroll:1,bodyScroll:1,documentElementScroll:1}),o=(e,i,t,n)=>e.addEventListener(i,t,n||!1),r=(e,i,t)=>e.removeEventListener(i,t,!1);const a="[iframe-resizer]";const s=e=>`${a}[${function(e){return window.top===window.self?`Parent page: ${e}`:window?.parentIFrame?.getId?`${window.parentIFrame.getId()}: ${e}`:`Nested parent page: ${e}`}(e)}]`,l=(e,i,...t)=>window?.console[e](s(i),...t),c=(e,...i)=>l("warn",e,...i),d=(e,i)=>console?.warn((e=>i=>window.chrome?e(i.replaceAll("
","\n").replaceAll("","[31;1m").replaceAll(">","[m").replaceAll("","[1m").replaceAll("","[3m").replaceAll("","[4m")):e(i.replaceAll("
","\n").replaceAll(/<[/a-z]+>/gi,"")))((e=>(...i)=>[`${a}[${e}]`,...i].join(" "))(e))(i)),u=e=>{if(!e)return"";let i=-559038744,t=1103547984;for(let n,o=0;o>>15,1935289751),t^=Math.imul(t^i>>>15,3405138345),i^=t>>>16,t^=i>>>16,(2097152*(t>>>0)+(i>>>11)).toString(36)},f=e=>e.replaceAll(/[A-Za-z]/g,(e=>String.fromCodePoint((e<="Z"?90:122)>=(e=e.codePointAt(0)+19)?e:e-26))),p=["Puchspk Spjluzl Rlf>","Tpzzpun Spjluzl Rlf>","Aopz spiyhyf pz hchpshisl dpao ivao Jvttlyjphs huk Vwlu-Zvbyjl spjluzlz.Jvttlyjphs Spjluzl>Mvy jvttlyjphs bzl, pmyhtl-ylzpgly> ylxbpylz h svd jvza vul aptl spjluzl mll. Mvy tvyl pumvythapvu cpzpa oaawz://pmyhtl-ylzpgly.jvt/wypjpun>.Vwlu Zvbyjl Spjluzl>Pm fvb hyl bzpun aopz spiyhyf pu h uvu-jvttlyjphs vwlu zvbyjl wyvqlja aolu fvb jhu bzl pa mvy myll bukly aol alytz vm aol NWS C3 Spjluzl. Av jvumpyt fvb hjjlwa aolzl alytz, wslhzl zla aol spjluzl> rlf pu pmyhtl-ylzpgly> vwapvuz av NWSc3>.Mvy tvyl pumvythapvu wslhzl zll: oaawz://pmyhtl-ylzpgly.jvt/nws>","NWSc3 Spjluzl Clyzpvu>Aopz clyzpvu vm pmyhtl-ylzpgly> pz ilpun bzlk bukly aol alytz vm aol NWS C3> spjluzl. Aopz spjluzl hssvdz fvb av bzl
pmyhtl-ylzpgly> pu Vwlu Zvbyjl wyvqljaz, iba pa ylxbpylz fvby wyvqlja av il wbispj, wyvcpkl haaypibapvu huk il spjluzlk bukly clyzpvu 3 vy shaly vm aol NUB Nlulyhs Wbispj Spjluzl.Pm fvb hyl bzpun aopz spiyhyf pu h uvu-vwlu zvbyjl wyvqlja vy dlizpal, fvb dpss ullk av wbyjohzl h svd jvza vul aptl jvttlyjphs spjluzl.Mvy tvyl pumvythapvu cpzpa oaawz://pmyhtl-ylzpgly.jvt/wypjpun>."],h=["NWSc3","zvsv","wyv","ibzpulzz","vlt"],m=Object.fromEntries(["2cgs7fdf4xb","1c9ctcccr4z","1q2pc4eebgb","ueokt0969w","w2zxchhgqz","1umuxblj2e5"].map(((e,i)=>[e,Math.max(0,i-1)]))),y=e=>f(p[e]);var g=e=>{const i=e[f("spjluzl")];if(!i)return-1;const t=i.split("-");let n=function(e=""){let i=-2;const t=u(f(e));return t in m&&(i=m[t]),i}(t[0]);return 0===n||(e=>e[2]===u(e[0]+e[1]))(t)||(n=-2),n};var w={};var b=Object.freeze({autoResize:!0,bodyBackground:null,bodyMargin:null,bodyPadding:null,checkOrigin:!0,direction:"vertical",inPageLinks:!1,heightCalculationMethod:"auto",id:"iFrameResizer",log:!1,license:void 0,mouseEvents:!0,offsetHeight:null,offsetWidth:null,postMessageTarget:null,sameDomain:!1,scrolling:!1,sizeHeight:!0,sizeWidth:!1,warningTimeout:5e3,tolerance:0,waitForLoad:!1,widthCalculationMethod:"auto",onClose:()=>!0,onClosed(){},onInit:!1,onMessage:null,onMouseEnter(){},onMouseLeave(){},onReady:e=>{"function"==typeof w[e.id].onInit&&(d(e.id,"\n[31;1mDeprecated Option[m\n\nThe [1monInit()[m function is deprecated and has been replaced with [1monReady()[m. It will be removed in a future version of iFrame Resizer.\n "),w[e.id].onInit(e))},onResized(){},onScroll:()=>!0}),v={position:null,version:e};function z(n){function a(){M(H),I(),O("onResized",H)}function s(e){if("border-box"!==e.boxSizing)return 0;return(e.paddingTop?parseInt(e.paddingTop,10):0)+(e.paddingBottom?parseInt(e.paddingBottom,10):0)}function l(e){if("border-box"!==e.boxSizing)return 0;return(e.borderTopWidth?parseInt(e.borderTopWidth,10):0)+(e.borderBottomWidth?parseInt(e.borderBottomWidth,10):0)}function u(e){return A.slice(A.indexOf(":")+7+e)}const f=(e,i)=>(t,n)=>{const o={};var r,a;r=function(){x(`Send ${e} (${t})`,`${e}:${i()}`,n)},o[a=n]||(r(),o[a]=requestAnimationFrame((()=>{o[a]=null})))},p=(e,i)=>()=>{let t=!1;const n=i=>()=>{w[d]?t&&t!==i||(e(i,d),t=i,requestAnimationFrame((()=>{t=!1}))):c()},a=n("scroll"),s=n("resize window");function l(e,i){i(window,"scroll",a),i(window,"resize",s)}function c(){l(0,r),u.disconnect(),f.disconnect()}const d=P,u=new ResizeObserver(n("page observed")),f=new ResizeObserver(n("iframe observed"));l(0,o),u.observe(document.body,{attributes:!0,childList:!0,subtree:!0}),f.observe(w[d].iframe,{attributes:!0,childList:!1,subtree:!1}),w[d]&&(w[d][`stop${i}`]=c)},h=e=>()=>{e in w[P]&&(w[P][e](),delete w[P][e])},m=f("pageInfo",(function(){const e=document.body.getBoundingClientRect(),i=H.iframe.getBoundingClientRect(),{scrollY:t,scrollX:n,innerHeight:o,innerWidth:r}=window,{clientHeight:a,clientWidth:s}=document.documentElement;return JSON.stringify({iframeHeight:i.height,iframeWidth:i.width,clientHeight:Math.max(a,o||0),clientWidth:Math.max(s,r||0),offsetTop:parseInt(i.top-e.top,10),offsetLeft:parseInt(i.left-e.left,10),scrollTop:t,scrollLeft:n,documentHeight:a,documentWidth:s,windowHeight:o,windowWidth:r})})),y=f("parentInfo",(function(){const{iframe:e}=H,{scrollWidth:i,scrollHeight:t}=document.documentElement,{width:n,height:o,offsetLeft:r,offsetTop:a,pageLeft:s,pageTop:l,scale:c}=window.visualViewport;return JSON.stringify({iframe:e.getBoundingClientRect(),document:{scrollWidth:i,scrollHeight:t},viewport:{width:n,height:o,offsetLeft:r,offsetTop:a,pageLeft:s,pageTop:l,scale:c}})})),g=p(m,"PageInfo"),b=p(y,"ParentInfo"),z=h("stopPageInfo"),k=h("stopParentInfo");function F(e){const i=e.getBoundingClientRect();return R(),{x:Number(i.left)+Number(v.position.x),y:Number(i.top)+Number(v.position.y)}}function N(e){const i=e?F(H.iframe):{x:0,y:0};let t=((e,i)=>({x:e.width+i.x,y:e.height+i.y}))(H,i);window.top===window.self?(v.position=t,C(P)):window.parentIFrame?window.parentIFrame["scrollTo"+(e?"Offset":"")](t.x,t.y):c(P,"Unable to scroll to requested position, window.parentIFrame not found")}function C(e){const{x:i,y:t}=v.position,n=w[e]?.iframe;!1!==O("onScroll",{iframe:n,top:t,left:i,x:i,y:t})?I():$()}function E(e){let i={};if(0===H.width&&0===H.height){const e=u(9).split(":");i={x:e[1],y:e[0]}}else i={x:H.width,y:H.height};O(e,{iframe:H.iframe,screenX:Number(i.x),screenY:Number(i.y),type:H.type})}const O=(e,i)=>j(P,e,i);let A=n.data,H={},P=null;"[iFrameResizerChild]Ready"!==A?i===`${A}`.slice(0,t)&&A.slice(t).split(":")[0]in w&&(H=function(){const e=A.slice(t).split(":"),i=e[1]?Number(e[1]):0,n=w[e[0]]?.iframe,o=getComputedStyle(n);return{iframe:n,id:e[0],height:i+s(o)+l(o),width:Number(e[2]),type:e[3],msg:e[4]}}(),P=H.id,P?(function(e){if(!w[e])throw new Error(`${H.type} No settings for ${e}. Message was: ${A}`)}(P),H.type in{true:1,false:1,undefined:1}||(w[P].loaded=!0,function(){let e=!0;return null===H.iframe&&(c(P,`The iframe (${H.id}) was not found.`),e=!1),e}()&&function(){const{origin:e,sameDomain:i}=n;if(i)return!0;let t=w[P]?.checkOrigin;if(t&&"null"!=`${e}`&&!(t.constructor===Array?function(){let i=0,n=!1;for(;iLegacy version detected in iframe>\n\nDetected legacy version of child page script. It is recommended to update the page in the iframe to use @iframe-resizer/child>.\n\nSee https://iframe-resizer.com/setup/#child-page-setup> for more details.\n")),L=!0,O("onReady",H.iframe);break;default:if(0===H.width&&0===H.height)return void c(P,`Unsupported message received (${H.type}), this is likely due to the iframe containing a later version of iframe-resizer than the parent page`);if(0===H.width||0===H.height)return;if(document.hidden)return;a()}var i,t}())):c("","iframeResizer received messageData without id, message was: ",A)):Object.keys(w).forEach((e=>{w[e].mode>=0&&x("iFrame requested init",W(e),e)}))}function j(e,i,t){let n=null,o=null;if(w[e]){if(n=w[e][i],"function"!=typeof n)throw new TypeError(`${i} on iFrame[${e}] is not a function`);"onClose"===i||"onScroll"===i?o=n(t):setTimeout((()=>n(t)))}return o}function k(e){const{id:i}=e;delete w[i]}function T(e){const i=e.id;if(!1!==j(i,"onClose",i)){try{e.parentNode&&e.remove()}catch(e){c(i,e)}j(i,"onClosed",i),k(e)}}function R(e){null===v.position&&(v.position={x:window.scrollX,y:window.scrollY})}function $(){v.position=null}function I(e){null!==v.position&&(window.scrollTo(v.position.x,v.position.y),$())}function S(e){R(e.id),M(e),x("reset","reset",e.id)}function M(e){const i=e.id;function t(i){const t=`${e[i]}px`;e.iframe.style[i]=t}w[i].sizeHeight&&t("height"),w[i].sizeWidth&&t("width")}function x(e,t,n,o){w[n]&&(w[n]?.postMessageTarget?function(){const{postMessageTarget:e,targetOrigin:o}=w[n];if(w[n].sameDomain)try{return void w[n].iframe.contentWindow.iframeChildListener(i+t)}catch(e){}e.postMessage(i+t,o)}():c(n,`[${e}] IFrame(${n}) not found`),o&&w[n]?.warningTimeout&&(w[n].msgTimeout=setTimeout((function(){if(void 0===w[n])return;const{iframe:e,loaded:i,loadErrorShown:t,waitForLoad:o}=w[n],{sandbox:r}=e;i||t||(w[n].loadErrorShown=!0,d(n,`\nNo response from iFrame>\n \nThe iframe (${n}>) has not responded within ${w[n].warningTimeout/1e3} seconds. Check @iframe-resizer/child> package has been loaded in the iframe.\n${o?"\nThe waitForLoad> option is currently set to 'true'>. If the iframe loads before the JavaScript runs, this option will prevent iframe-resizer> from initialising. To disable this, set the waitForLoad> option to 'false'>. \n":""}\n${!(r?.length>0)||r.contains("allow-scripts")&&r.contains("allow-same-origin")?"":"The iframe has the sandbox> attribute, please ensure it contains both the 'allow-same-origin'> and 'allow-scripts'> values."}\n\nThis message can be ignored if everything is working, or you can set the warningTimeout> option to a higher value or zero to suppress this warning.\n`))}),w[n].warningTimeout)))}function W(e){const i=w[e];return[e,"8",i.sizeWidth,i.log,"32",!0,i.autoResize,i.bodyMargin,i.heightCalculationMethod,i.bodyBackground,i.bodyPadding,i.tolerance,i.inPageLinks,"child",i.widthCalculationMethod,i.mouseEvents,i.offsetHeight,i.offsetWidth,i.sizeHeight,i.license,v.version,i.mode].join(":")}let F=0,L=!1,N=!1;var C=i=>t=>{function r(e){if(!e)return{};if("object"!=typeof e)throw new TypeError("Options is not an object");return("sizeWidth"in e||"sizeHeight"in e||"autoResize"in e)&&d(s,'Deprecated Option>\n\nThe sizeWidth>, sizeHeight> and autoResize> options have been replaced with new direction> option which expects values of "vertical">, "horizontal"> or "horizontal">.\n'),e}function a(e){const i=w[e]?.iframe?.title;return""===i||void 0===i}const s=function(e){if(e&&"string"!=typeof e)throw new TypeError("Invalid id for iFrame. Expected String");return""!==e&&e||(e=function(){let e=i?.id||b.id+F++;return null!==document.getElementById(e)&&(e+=F++),e}(),t.id=e,(i||{}).log),e}(t.id);return s in w&&"iFrameResizer"in t?c(s,"Ignored iFrame, already setup."):(function(e){var i,n;w[s]={iframe:t,firstRun:!0,remoteHost:t?.src.split("/").slice(0,3).join("/"),...b,...r(e),mode:g(e),syncTitle:a(s)},function(){if("horizontal"===w[s].direction)return w[s].sizeWidth=!0,void(w[s].sizeHeight=!1);if("none"===w[s].direction)return w[s].sizeWidth=!1,w[s].sizeHeight=!1,void(w[s].autoResize=!1);if("vertical"!==w[s].direction)throw new TypeError(s,`Direction value of "${w[s].direction}" is not valid`)}(),(i=e?.offsetSize||e?.offset)&&("vertical"===w[s].direction?w[s].offsetHeight=i:w[s].offsetWidth=i),e?.offset&&d(s,"Deprecated option>\n\n The offset> option has been renamed to offsetSize>. Use of the old name will be removed in a future version of iframe-resizer>."),null===w[s].postMessageTarget&&(w[s].postMessageTarget=t.contentWindow),w[s].targetOrigin=!0===w[s].checkOrigin?""===(n=w[s].remoteHost)||null!==n.match(/^(about:blank|javascript:|file:\/\/)/)?"*":n:"*"}(i),function(){const{mode:i}=w[s];i<0&&d("Parent",`${y(i+2)}${y(2)}`),N||i<0||(N=!0,((e,...i)=>{l("info",e,...i)})(`v${e} (${(e=>f(h[e]))(i)})`),i<1&&d("Parent",y(3)))}(),O(),function(){switch(t.style.overflow=!1===w[s]?.scrolling?"hidden":"auto",w[s]?.scrolling){case"omit":break;case!0:t.scrolling="yes";break;case!1:t.scrolling="no";break;default:t.scrolling=w[s]?w[s].scrolling:"no"}}(),function(){const{bodyMargin:e}=w[s];"number"!=typeof e&&"0"!==e||(w[s].bodyMargin=`${e}px`)}(),function(e){const{id:i}=t;-1!==w[i].mode&&-2!==w[i].mode&&(o(t,"load",(function(){x("iFrame.onload",`${e}:${L}`,i,!0),function(){const e=w[s]?.firstRun,i=w[s]?.heightCalculationMethod in n;!e&&i&&S({iframe:t,height:0,width:0,type:"init"})}()})),!1===w[i].waitForLoad&&x("init",`${e}:${L}`,i,!0))}(W(s)),function(){if(w[s]){const e={close:T.bind(null,w[s].iframe),disconnect:k.bind(null,w[s].iframe),removeListeners(){d(s,"\nDeprecated Method Name>\n\nThe [removeListeners()> method has been renamed to [disconnect()>.\n"),this.disconnect()},resize:x.bind(null,"Window resize","resize",s),moveToAnchor(e){x("Move to anchor",`moveToAnchor:${e}`,s)},sendMessage(e){x("Send Message",`message:${e=JSON.stringify(e)}`,s)}};w[s].iframe.iframeResizer=e,w[s].iframe.iFrameResizer=e}}()),t?.iFrameResizer};function E(){!1===document.hidden&&function(e,i){const t=e=>w[e]?.autoResize&&!w[e]?.firstRun;Object.keys(w).forEach((function(n){t(n)&&x(e,i,n)}))}("Tab Visible","resize")}const O=(e=>{let i=!1;return function(){return i?void 0:(i=!0,Reflect.apply(e,this,arguments))}})((()=>{o(window,"message",z),o(document,"visibilitychange",E),window.iframeParentListener=e=>setTimeout((()=>z({data:e,sameDomain:!0})))}));switch(!0){case void 0===window.jQuery:c("","Unable to bind to jQuery, it is not available.");break;case!window.jQuery.fn:c("","Unable to bind to jQuery, it is not fully loaded.");break;case window.jQuery.fn.iframeResize:c("","iframeResize is already assigned to jQuery.fn.");break;default:window.jQuery.fn.iframeResize=function(e){const i=C(e);return this.filter("iframe").each(((e,t)=>i(t))).end()},window.jQuery.fn.iFrameResize=function(e){return c("","Deprecated: Use the iframeResize method instead of iFrameResize"),this.iframeResize(e)}}}();
diff --git a/assets/js/iframe-resizer.parent.js b/assets/js/iframe-resizer.parent.js
new file mode 100644
index 00000000..936f4905
--- /dev/null
+++ b/assets/js/iframe-resizer.parent.js
@@ -0,0 +1,20 @@
+/*!
+ * @preserve
+ *
+ * @module iframe-resizer/parent 5.3.0 (iife)
+ *
+ * @license GPL-3.0 for non-commercial use only.
+ * For commercial use, you must purchase a license from
+ * https://iframe-resizer.com/pricing
+ *
+ * @description Keep same and cross domain iFrames sized to their content
+ *
+ * @author David J. Bradshaw
+ *
+ * @see {@link https://iframe-resizer.com}
+ *
+ * @copyright (c) 2013 - 2024, David J. Bradshaw. All rights reserved.
+ */
+
+
+!function(){"use strict";const e="[iframe-resizer]";const t=t=>`${e}[${function(e){return window.top===window.self?`Parent page: ${e}`:window?.parentIFrame?.getId?`${window.parentIFrame.getId()}: ${e}`:`Nested parent page: ${e}`}(t)}]`,i=(e,i,...n)=>window?.console[e](t(i),...n),n=(e,...t)=>i("warn",e,...t),o=(t,i)=>console?.warn((e=>t=>window.chrome?e(t.replaceAll("
","\n").replaceAll("","[31;1m").replaceAll(">","[m").replaceAll("","[1m").replaceAll("","[3m").replaceAll("","[4m")):e(t.replaceAll("
","\n").replaceAll(/<[/a-z]+>/gi,"")))((t=>(...i)=>[`${e}[${t}]`,...i].join(" "))(t))(i)),r="5.3.0",a="[iFrameSizer]",s=a.length,l=Object.freeze({max:1,scroll:1,bodyScroll:1,documentElementScroll:1}),c=(e,t,i,n)=>e.addEventListener(t,i,n||!1),d=(e,t,i)=>e.removeEventListener(t,i,!1),u=e=>{if(!e)return"";let t=-559038744,i=1103547984;for(let n,o=0;o>>15,1935289751),i^=Math.imul(i^t>>>15,3405138345),t^=i>>>16,i^=t>>>16,(2097152*(i>>>0)+(t>>>11)).toString(36)},f=e=>e.replaceAll(/[A-Za-z]/g,(e=>String.fromCodePoint((e<="Z"?90:122)>=(e=e.codePointAt(0)+19)?e:e-26))),p=["Puchspk Spjluzl Rlf>","Tpzzpun Spjluzl Rlf>","Aopz spiyhyf pz hchpshisl dpao ivao Jvttlyjphs huk Vwlu-Zvbyjl spjluzlz.Jvttlyjphs Spjluzl>Mvy jvttlyjphs bzl, pmyhtl-ylzpgly> ylxbpylz h svd jvza vul aptl spjluzl mll. Mvy tvyl pumvythapvu cpzpa oaawz://pmyhtl-ylzpgly.jvt/wypjpun>.Vwlu Zvbyjl Spjluzl>Pm fvb hyl bzpun aopz spiyhyf pu h uvu-jvttlyjphs vwlu zvbyjl wyvqlja aolu fvb jhu bzl pa mvy myll bukly aol alytz vm aol NWS C3 Spjluzl. Av jvumpyt fvb hjjlwa aolzl alytz, wslhzl zla aol spjluzl> rlf pu pmyhtl-ylzpgly> vwapvuz av NWSc3>.Mvy tvyl pumvythapvu wslhzl zll: oaawz://pmyhtl-ylzpgly.jvt/nws>","NWSc3 Spjluzl Clyzpvu>Aopz clyzpvu vm pmyhtl-ylzpgly> pz ilpun bzlk bukly aol alytz vm aol NWS C3> spjluzl. Aopz spjluzl hssvdz fvb av bzl
pmyhtl-ylzpgly> pu Vwlu Zvbyjl wyvqljaz, iba pa ylxbpylz fvby wyvqlja av il wbispj, wyvcpkl haaypibapvu huk il spjluzlk bukly clyzpvu 3 vy shaly vm aol NUB Nlulyhs Wbispj Spjluzl.Pm fvb hyl bzpun aopz spiyhyf pu h uvu-vwlu zvbyjl wyvqlja vy dlizpal, fvb dpss ullk av wbyjohzl h svd jvza vul aptl jvttlyjphs spjluzl.Mvy tvyl pumvythapvu cpzpa oaawz://pmyhtl-ylzpgly.jvt/wypjpun>."],m=["NWSc3","zvsv","wyv","ibzpulzz","vlt"],h=Object.fromEntries(["2cgs7fdf4xb","1c9ctcccr4z","1q2pc4eebgb","ueokt0969w","w2zxchhgqz","1umuxblj2e5"].map(((e,t)=>[e,Math.max(0,t-1)]))),y=e=>f(p[e]);var g=e=>{const t=e[f("spjluzl")];if(!t)return-1;const i=t.split("-");let n=function(e=""){let t=-2;const i=u(f(e));return i in h&&(t=h[i]),t}(i[0]);return 0===n||(e=>e[2]===u(e[0]+e[1]))(i)||(n=-2),n};var w={};var b=Object.freeze({autoResize:!0,bodyBackground:null,bodyMargin:null,bodyPadding:null,checkOrigin:!0,direction:"vertical",inPageLinks:!1,heightCalculationMethod:"auto",id:"iFrameResizer",log:!1,license:void 0,mouseEvents:!0,offsetHeight:null,offsetWidth:null,postMessageTarget:null,sameDomain:!1,scrolling:!1,sizeHeight:!0,sizeWidth:!1,warningTimeout:5e3,tolerance:0,waitForLoad:!1,widthCalculationMethod:"auto",onClose:()=>!0,onClosed(){},onInit:!1,onMessage:null,onMouseEnter(){},onMouseLeave(){},onReady:e=>{"function"==typeof w[e.id].onInit&&(o(e.id,"\n[31;1mDeprecated Option[m\n\nThe [1monInit()[m function is deprecated and has been replaced with [1monReady()[m. It will be removed in a future version of iFrame Resizer.\n "),w[e.id].onInit(e))},onResized(){},onScroll:()=>!0}),v={position:null,version:r};function z(e){function t(){S(H),I(),A("onResized",H)}function i(e){if("border-box"!==e.boxSizing)return 0;return(e.paddingTop?parseInt(e.paddingTop,10):0)+(e.paddingBottom?parseInt(e.paddingBottom,10):0)}function l(e){if("border-box"!==e.boxSizing)return 0;return(e.borderTopWidth?parseInt(e.borderTopWidth,10):0)+(e.borderBottomWidth?parseInt(e.borderBottomWidth,10):0)}function u(e){return C.slice(C.indexOf(":")+7+e)}const f=(e,t)=>(i,n)=>{const o={};var r,a;r=function(){x(`Send ${e} (${i})`,`${e}:${t()}`,n)},o[a=n]||(r(),o[a]=requestAnimationFrame((()=>{o[a]=null})))},p=(e,t)=>()=>{let i=!1;const n=t=>()=>{w[l]?i&&i!==t||(e(t,l),i=t,requestAnimationFrame((()=>{i=!1}))):s()},o=n("scroll"),r=n("resize window");function a(e,t){t(window,"scroll",o),t(window,"resize",r)}function s(){a(0,d),u.disconnect(),f.disconnect()}const l=P,u=new ResizeObserver(n("page observed")),f=new ResizeObserver(n("iframe observed"));a(0,c),u.observe(document.body,{attributes:!0,childList:!0,subtree:!0}),f.observe(w[l].iframe,{attributes:!0,childList:!1,subtree:!1}),w[l]&&(w[l][`stop${t}`]=s)},m=e=>()=>{e in w[P]&&(w[P][e](),delete w[P][e])},h=f("pageInfo",(function(){const e=document.body.getBoundingClientRect(),t=H.iframe.getBoundingClientRect(),{scrollY:i,scrollX:n,innerHeight:o,innerWidth:r}=window,{clientHeight:a,clientWidth:s}=document.documentElement;return JSON.stringify({iframeHeight:t.height,iframeWidth:t.width,clientHeight:Math.max(a,o||0),clientWidth:Math.max(s,r||0),offsetTop:parseInt(t.top-e.top,10),offsetLeft:parseInt(t.left-e.left,10),scrollTop:i,scrollLeft:n,documentHeight:a,documentWidth:s,windowHeight:o,windowWidth:r})})),y=f("parentInfo",(function(){const{iframe:e}=H,{scrollWidth:t,scrollHeight:i}=document.documentElement,{width:n,height:o,offsetLeft:r,offsetTop:a,pageLeft:s,pageTop:l,scale:c}=window.visualViewport;return JSON.stringify({iframe:e.getBoundingClientRect(),document:{scrollWidth:t,scrollHeight:i},viewport:{width:n,height:o,offsetLeft:r,offsetTop:a,pageLeft:s,pageTop:l,scale:c}})})),g=p(h,"PageInfo"),b=p(y,"ParentInfo"),z=m("stopPageInfo"),T=m("stopParentInfo");function F(e){const t=e.getBoundingClientRect();return k(),{x:Number(t.left)+Number(v.position.x),y:Number(t.top)+Number(v.position.y)}}function N(e){const t=e?F(H.iframe):{x:0,y:0};let i=((e,t)=>({x:e.width+t.x,y:e.height+t.y}))(H,t);window.top===window.self?(v.position=i,L(P)):window.parentIFrame?window.parentIFrame["scrollTo"+(e?"Offset":"")](i.x,i.y):n(P,"Unable to scroll to requested position, window.parentIFrame not found")}function L(e){const{x:t,y:i}=v.position,n=w[e]?.iframe;!1!==A("onScroll",{iframe:n,top:i,left:t,x:t,y:i})?I():R()}function O(e){let t={};if(0===H.width&&0===H.height){const e=u(9).split(":");t={x:e[1],y:e[0]}}else t={x:H.width,y:H.height};A(e,{iframe:H.iframe,screenX:Number(t.x),screenY:Number(t.y),type:H.type})}const A=(e,t)=>j(P,e,t);let C=e.data,H={},P=null;"[iFrameResizerChild]Ready"!==C?a===`${C}`.slice(0,s)&&C.slice(s).split(":")[0]in w&&(H=function(){const e=C.slice(s).split(":"),t=e[1]?Number(e[1]):0,n=w[e[0]]?.iframe,o=getComputedStyle(n);return{iframe:n,id:e[0],height:t+i(o)+l(o),width:Number(e[2]),type:e[3],msg:e[4]}}(),P=H.id,P?(function(e){if(!w[e])throw new Error(`${H.type} No settings for ${e}. Message was: ${C}`)}(P),H.type in{true:1,false:1,undefined:1}||(w[P].loaded=!0,function(){let e=!0;return null===H.iframe&&(n(P,`The iframe (${H.id}) was not found.`),e=!1),e}()&&function(){const{origin:t,sameDomain:i}=e;if(i)return!0;let n=w[P]?.checkOrigin;if(n&&"null"!=`${t}`&&!(n.constructor===Array?function(){let e=0,i=!1;for(;eLegacy version detected in iframe>\n\nDetected legacy version of child page script. It is recommended to update the page in the iframe to use @iframe-resizer/child>.\n\nSee https://iframe-resizer.com/setup/#child-page-setup> for more details.\n")),W=!0,A("onReady",H.iframe);break;default:if(0===H.width&&0===H.height)return void n(P,`Unsupported message received (${H.type}), this is likely due to the iframe containing a later version of iframe-resizer than the parent page`);if(0===H.width||0===H.height)return;if(document.hidden)return;t()}var e,i}())):n("","iframeResizer received messageData without id, message was: ",C)):Object.keys(w).forEach((e=>{w[e].mode>=0&&x("iFrame requested init",E(e),e)}))}function j(e,t,i){let n=null,o=null;if(w[e]){if(n=w[e][t],"function"!=typeof n)throw new TypeError(`${t} on iFrame[${e}] is not a function`);"onClose"===t||"onScroll"===t?o=n(i):setTimeout((()=>n(i)))}return o}function T(e){const{id:t}=e;delete w[t]}function $(e){const t=e.id;if(!1!==j(t,"onClose",t)){try{e.parentNode&&e.remove()}catch(e){n(t,e)}j(t,"onClosed",t),T(e)}}function k(e){null===v.position&&(v.position={x:window.scrollX,y:window.scrollY})}function R(){v.position=null}function I(e){null!==v.position&&(window.scrollTo(v.position.x,v.position.y),R())}function M(e){k(e.id),S(e),x("reset","reset",e.id)}function S(e){const t=e.id;function i(t){const i=`${e[t]}px`;e.iframe.style[t]=i}w[t].sizeHeight&&i("height"),w[t].sizeWidth&&i("width")}function x(e,t,i,r){w[i]&&(w[i]?.postMessageTarget?function(){const{postMessageTarget:e,targetOrigin:n}=w[i];if(w[i].sameDomain)try{return void w[i].iframe.contentWindow.iframeChildListener(a+t)}catch(e){}e.postMessage(a+t,n)}():n(i,`[${e}] IFrame(${i}) not found`),r&&w[i]?.warningTimeout&&(w[i].msgTimeout=setTimeout((function(){if(void 0===w[i])return;const{iframe:e,loaded:t,loadErrorShown:n,waitForLoad:r}=w[i],{sandbox:a}=e;t||n||(w[i].loadErrorShown=!0,o(i,`\nNo response from iFrame>\n \nThe iframe (${i}>) has not responded within ${w[i].warningTimeout/1e3} seconds. Check @iframe-resizer/child> package has been loaded in the iframe.\n${r?"\nThe waitForLoad> option is currently set to 'true'>. If the iframe loads before the JavaScript runs, this option will prevent iframe-resizer> from initialising. To disable this, set the waitForLoad> option to 'false'>. \n":""}\n${!(a?.length>0)||a.contains("allow-scripts")&&a.contains("allow-same-origin")?"":"The iframe has the sandbox> attribute, please ensure it contains both the 'allow-same-origin'> and 'allow-scripts'> values."}\n\nThis message can be ignored if everything is working, or you can set the warningTimeout> option to a higher value or zero to suppress this warning.\n`))}),w[i].warningTimeout)))}function E(e){const t=w[e];return[e,"8",t.sizeWidth,t.log,"32",!0,t.autoResize,t.bodyMargin,t.heightCalculationMethod,t.bodyBackground,t.bodyPadding,t.tolerance,t.inPageLinks,"child",t.widthCalculationMethod,t.mouseEvents,t.offsetHeight,t.offsetWidth,t.sizeHeight,t.license,v.version,t.mode].join(":")}let F=0,W=!1,N=!1;var L=e=>t=>{function a(e){if(!e)return{};if("object"!=typeof e)throw new TypeError("Options is not an object");return("sizeWidth"in e||"sizeHeight"in e||"autoResize"in e)&&o(d,'Deprecated Option>\n\nThe sizeWidth>, sizeHeight> and autoResize> options have been replaced with new direction> option which expects values of "vertical">, "horizontal"> or "horizontal">.\n'),e}function s(e){const t=w[e]?.iframe?.title;return""===t||void 0===t}const d=function(i){if(i&&"string"!=typeof i)throw new TypeError("Invalid id for iFrame. Expected String");return""!==i&&i||(i=function(){let t=e?.id||b.id+F++;return null!==document.getElementById(t)&&(t+=F++),t}(),t.id=i,(e||{}).log),i}(t.id);return d in w&&"iFrameResizer"in t?n(d,"Ignored iFrame, already setup."):(function(e){var i,n;w[d]={iframe:t,firstRun:!0,remoteHost:t?.src.split("/").slice(0,3).join("/"),...b,...a(e),mode:g(e),syncTitle:s(d)},function(){if("horizontal"===w[d].direction)return w[d].sizeWidth=!0,void(w[d].sizeHeight=!1);if("none"===w[d].direction)return w[d].sizeWidth=!1,w[d].sizeHeight=!1,void(w[d].autoResize=!1);if("vertical"!==w[d].direction)throw new TypeError(d,`Direction value of "${w[d].direction}" is not valid`)}(),(i=e?.offsetSize||e?.offset)&&("vertical"===w[d].direction?w[d].offsetHeight=i:w[d].offsetWidth=i),e?.offset&&o(d,"Deprecated option>\n\n The offset> option has been renamed to offsetSize>. Use of the old name will be removed in a future version of iframe-resizer>."),null===w[d].postMessageTarget&&(w[d].postMessageTarget=t.contentWindow),w[d].targetOrigin=!0===w[d].checkOrigin?""===(n=w[d].remoteHost)||null!==n.match(/^(about:blank|javascript:|file:\/\/)/)?"*":n:"*"}(e),function(){const{mode:e}=w[d];e<0&&o("Parent",`${y(e+2)}${y(2)}`),N||e<0||(N=!0,((e,...t)=>{i("info",e,...t)})(`v${r} (${(e=>f(m[e]))(e)})`),e<1&&o("Parent",y(3)))}(),A(),function(){switch(t.style.overflow=!1===w[d]?.scrolling?"hidden":"auto",w[d]?.scrolling){case"omit":break;case!0:t.scrolling="yes";break;case!1:t.scrolling="no";break;default:t.scrolling=w[d]?w[d].scrolling:"no"}}(),function(){const{bodyMargin:e}=w[d];"number"!=typeof e&&"0"!==e||(w[d].bodyMargin=`${e}px`)}(),function(e){const{id:i}=t;-1!==w[i].mode&&-2!==w[i].mode&&(c(t,"load",(function(){x("iFrame.onload",`${e}:${W}`,i,!0),function(){const e=w[d]?.firstRun,i=w[d]?.heightCalculationMethod in l;!e&&i&&M({iframe:t,height:0,width:0,type:"init"})}()})),!1===w[i].waitForLoad&&x("init",`${e}:${W}`,i,!0))}(E(d)),function(){if(w[d]){const e={close:$.bind(null,w[d].iframe),disconnect:T.bind(null,w[d].iframe),removeListeners(){o(d,"\nDeprecated Method Name>\n\nThe [removeListeners()> method has been renamed to [disconnect()>.\n"),this.disconnect()},resize:x.bind(null,"Window resize","resize",d),moveToAnchor(e){x("Move to anchor",`moveToAnchor:${e}`,d)},sendMessage(e){x("Send Message",`message:${e=JSON.stringify(e)}`,d)}};w[d].iframe.iframeResizer=e,w[d].iframe.iFrameResizer=e}}()),t?.iFrameResizer};function O(){!1===document.hidden&&function(e,t){const i=e=>w[e]?.autoResize&&!w[e]?.firstRun;Object.keys(w).forEach((function(n){i(n)&&x(e,t,n)}))}("Tab Visible","resize")}const A=(e=>{let t=!1;return function(){return t?void 0:(t=!0,Reflect.apply(e,this,arguments))}})((()=>{c(window,"message",z),c(document,"visibilitychange",O),window.iframeParentListener=e=>setTimeout((()=>z({data:e,sameDomain:!0})))})),C="[iframeResizer] ";window.iframeResize=function(){function e(e){switch(!0){case!e:throw new TypeError(`${C}iframe is not defined`);case!e.tagName:throw new TypeError(`${C}Not a valid DOM element`);case"IFRAME"!==e.tagName.toUpperCase():throw new TypeError(`${C}Expected