(()=>{function Vt(r){return Object.is(r,-0)?0:r}function zt(r,e,t){return Math.min(Math.max(t,r),e)}function G(r,e){return r===e?0:r{},this.reject=()=>{},this.complete=!1,this.promise=new Promise((e,t)=>{this.resolve=i=>(this.complete=!0,e(i)),this.reject=i=>(this.complete=!0,t(i))})}getPromise(){return this.complete?new Promise(e=>{e()}):this.promise}};function Ve(r,e){let t=Object.prototype.toString.call(r).slice(8,-1).toLowerCase();return e===t}function ze(r){return Ve(r,"string")}function Gt(r){return Ve(r,"undefined")}function ne(r){return!Gt(r)}function Ge(){return Ye()||Je()}function Ye(){return/iPhone|iPad|iPod/i.test(navigator.userAgent)||Ke()}function Je(){return/Android/i.test(navigator.userAgent)}function Ke(){return navigator.userAgent.toLowerCase().indexOf("macintosh")!==-1&&Boolean(navigator.maxTouchPoints)&&navigator.maxTouchPoints>2}function oe(){return Date.now()}function Qe(r,e){return e-r}function Y(r,e,t){let i;return function(...n){let o=this,s=()=>{i=void 0,r.apply(o,n)},c=()=>{i=void 0};!t&&i===void 0&&(i=+setTimeout(s,e)),t&&i===void 0&&(r.apply(o,n),i=+setTimeout(c,e))}}function Xe(r,e=0,t=100){let i=oe(),n,o,s=new Promise((l,a)=>{n=l,o=a}),c=()=>{let l=Qe(i,oe());r()?n():e&&l>e?o("Wait until timed out"):setTimeout(c,t)};return c(),s}function Ze(r,e){let t=0,i=n=>{let o=window.innerWidth;(!Ge()||t!==o)&&(r(n),t=o)};return window.addEventListener("resize",i,e),()=>{window.removeEventListener("resize",i)}}var w=class{constructor(){this.watcherConfigs=[]}add(e){Array.isArray(e.on)?e.on.forEach(i=>{let n=Object.assign({},e);n.on=i,this.addSingleEvent(n)}):this.addSingleEvent(e)}addSingleEvent(e){let t=i=>{e.runWhen?e.runWhen()&&e.callback(i):e.callback(i)};e.listener=t,e.on==="smartResize"?e.remover=Ze(t,e.eventOptions||{}):(e.element.addEventListener(e.on,t,e.eventOptions||{}),e.remover=()=>{e.element.removeEventListener(e.on,t,e.eventOptions||{})}),this.watcherConfigs.push(e)}removeById(e){this.watcherConfigs=this.watcherConfigs.filter(t=>{if(t.id&&t.id===e){let i=t.remover;return i&&i(),!1}return t})}removeAll(){this.watcherConfigs.forEach(e=>{let t=e.remover;t&&t()}),this.watcherConfigs=[]}run(e){this.watcherConfigs.filter(i=>i.id&&i.id===e).forEach(i=>{i.callback()&&i.callback()})}dispose(){this.removeAll()}};function se(r){return!r.paused&&!r.ended&&r.readyState>2}function et(r,e=!1){Array.from(r.querySelectorAll("video")).forEach(i=>{e&&(i.currentTime=0),se(i)||i.play().then(()=>{}).catch()})}function tt(r,e=1e4){let t=Array.from(r.querySelectorAll("video"));return ae(t,e)}function ae(r,e=1e4){let t=[];return r.forEach(i=>{let n=new U;t.push(n.getPromise()),Xe(()=>i.readyState===4,e,10).then(()=>{n.resolve()})}),Promise.all(t)}function le(r,e,t){let i=new CustomEvent(e,{detail:t});r.dispatchEvent(i)}function it(r){r.parentNode.removeChild(r)}function Jt(r){return window.getComputedStyle(r)}function rt(r,e=!1){return r?e&&r.offsetParent?r.getBoundingClientRect().top-r.offsetParent.getBoundingClientRect().top+window.scrollY:r.getBoundingClientRect().top+window.scrollY:0}function Kt(r){return window.getComputedStyle(r).display==="none"}function ce(r){return Kt(r)?!0:r.parentElement?ce(r.parentElement):!1}function he(r){return(i=>{let n=Jt(i);return!(n.opacity!=="1"||n.visibility==="hidden"||n.display==="none")})(r)?r.parentElement?he(r.parentElement):!0:!1}function nt(r,e){if(r===e)return!1;let t=r.getBoundingClientRect(),i=e.getBoundingClientRect();return!(t.righti.right||t.bottomi.bottom)}var m=class{constructor(e){this.element=e,this.watcher=new w}};var ue=class extends m{constructor(e){super(e);this.clickTargetElement=this.element.querySelector("[click-target]"),this.iframeVideo=this.element.querySelector("[iframe-video]"),this.watcher.add({element:this.clickTargetElement,on:"click",callback:this.onClick.bind(this),eventOptions:{passive:!0}})}onClick(){let e=this.iframeVideo.getAttribute("data-src");this.iframeVideo.src=e,this.clickTargetElement.classList.add("centered-video__overlay--active")}};var de=class extends m{constructor(e){super(e);this.scrollY=0,this.direction=0,this.scrollY=window.scrollY,this.body=document.body,this.watcher.add({element:window,on:"scroll",callback:this.onScroll.bind(this),eventOptions:{passive:!0}})}onScroll(){let e=window.scrollY,t=G(this.scrollY,e);this.scrollY=e,this.scrollY>=60?this.element.classList.add("scrolled"):this.element.classList.remove("scrolled"),t>=1&&this.scrollY>=6?(this.element.classList.add("hide"),this.element.classList.remove("show"),this.body.classList.add("header-hidden"),this.body.classList.remove("header-showing")):(this.element.classList.add("show"),this.element.classList.remove("hide"),this.body.classList.remove("header-hidden"),this.body.classList.add("header-showing"))}};var y=class{static inview(e,t={},i){let n=null,o=null,s=null,c=!1,l=new U,a=()=>({changes:n,lastChange:o,inview:s,ready:c}),u=g=>{g.length>=1&&(n=g,o=g.slice(-1)[0],s=o.isIntersecting,c=!0,l.resolve()),i&&i(e,g.slice(-1)[0],d)},h=window.location.search.split("evBypass=")[1];if(h=h&&h.split("&")[0],h==="true")return window.setTimeout(()=>{i&&i(e,{isIntersecting:!0,isVisible:!0},()=>{}),l.resolve()}),{observer:null,dispose:()=>{},state:()=>({ready:!0,inview:!0}),readyPromise:l.getPromise()};let d=()=>{p&&p.unobserve(e),p&&p.disconnect(),n=[],o=null},p=new IntersectionObserver(u,t);return p.observe(e),{observer:p,dispose:d,state:a,readyPromise:l.getPromise()}}};var x=class{constructor(e){this.isReadWriteOnly=!1,this.callbacks=[],this.isDisposed=!1,this.raf_=null,this.frame=null,this.lastUpdateTime=0,this.fps=0,this.currentFps=0,this.isPlaying=!1,this.isRunningRaf=!1,this.callbacks=[],this.runCondition=null,this.delta=0,this.elaspedTime=0,this.startTime=0,e?this.watch(e):this.isReadWriteOnly=!0,window.DEGU_RAF_REGISTRY&&window.DEGU_RAF_REGISTRY.register(this)}watch(e){this.callbacks.push(e)}setReadWriteMode(e){this.isReadWriteOnly=e}preRead(e){window.DEGU_RAF_REGISTRY&&window.DEGU_RAF_REGISTRY.addOneTimePreRead({callback:e,raf:this})}read(e){window.DEGU_RAF_REGISTRY&&window.DEGU_RAF_REGISTRY.addOneTimeRead({callback:e,raf:this})}write(e){window.DEGU_RAF_REGISTRY&&window.DEGU_RAF_REGISTRY.addOneTimeWrite({callback:e,raf:this})}postWrite(e){window.DEGU_RAF_REGISTRY&&window.DEGU_RAF_REGISTRY.addOneTimePostWrite({callback:e,raf:this})}unwatch(e){this.callbacks=this.callbacks.filter(t=>t===e)}runWhen(e){this.runCondition=e}runWhenElementIsInview(e,t){return this.ev&&this.ev.dispose(),this.runCondition=null,this.ev=y.inview(e,t||{}),this.runWhen(()=>this.ev&&this.ev.state().inview),this.ev.readyPromise}setFps(e){this.fps=e}start(e=!1){!e&&this.isPlaying||(this.startTime=(typeof performance=="undefined"?Date:performance).now(),this.animationLoop_(),this.isPlaying=!0)}stop(){this.isPlaying=!1,window.cancelAnimationFrame(this.raf_),this.isRunningRaf=!1}dispose(){this.ev&&this.ev.dispose(),this.callbacks=[],this.isDisposed=!0,this.stop(),window.DEGU_RAF_REGISTRY&&window.DEGU_RAF_REGISTRY.unregister(this)}getDelta(e){return e?this.delta/1e3:this.delta}getElapsedTime(){return this.elaspedTime}getStartTime(){return this.startTime}getCurrentFps(){return this.currentFps}animationLoop_(){if(!this.isRunningRaf){if(this.raf_=window.requestAnimationFrame(e=>{this.frame=e,this.isRunningRaf=!1,this.animationLoop_()}),this.isRunningRaf=!0,this.lastUpdateTime){let t=Date.now()-this.lastUpdateTime;this.delta=t,this.elaspedTime+=t/1e3;let i=this.fps===0?0:1e3/this.fps;this.currentFps=1e3/t,t>i&&(this.callbacks&&this.callbacks.forEach(n=>{let o=()=>{n(this.frame,this.lastUpdateTime,t,()=>{this.stop()})};this.runCondition?this.runCondition()&&o():o()}),this.lastUpdateTime=Date.now())}this.lastUpdateTime||(this.lastUpdateTime=Date.now())}}},_=class{constructor(){this.flushScheduled=!1,this.preReads=[],this.reads=[],this.writes=[],this.postWrites=[],this.rafs=[]}static runRafCallbacks(e){for(;e.length;){let t=e.splice(0,1)[0];!t.raf.isDisposed&&(t.raf.isPlaying||t.raf.isReadWriteOnly)&&t.callback()}}start(){this.flushScheduled||(this.flushScheduled=!0,requestAnimationFrame(()=>{this.runRaf()}))}runRaf(){window.DEGU_RAF_REGISTRY_DEBUG&&console.log("Running raf",this.reads.length,this.writes.length),_.runRafCallbacks(this.preReads),_.runRafCallbacks(this.reads),_.runRafCallbacks(this.writes),_.runRafCallbacks(this.postWrites),this.flushScheduled=!1}addOneTimePreRead(e){this.preReads.push(e),this.start()}addOneTimeRead(e){this.reads.push(e),this.start()}addOneTimeWrite(e){this.writes.push(e),this.start()}addOneTimePostWrite(e){this.postWrites.push(e),this.start()}getActiveRafCount(){return this.rafs.filter(e=>e.isPlaying).length}getRafCount(){return this.rafs.length}register(e){this.rafs.push(e)}unregister(e){this.rafs=this.rafs.filter(t=>t===e)}};window&&!window.DEGU_RAF_REGISTRY&&(window.DEGU_RAF_REGISTRY=new _);function ot(...r){}var pe=class extends Map{constructor(e=[],t=ot){super(e);this.defaultFunction=t}static usingFunction(e){return new this([],e)}get(e){if(this.has(e))return super.get(e);{let t=this.defaultFunction(e);return this.set(e,t),t}}};var fe=class{constructor(){this.callbacks=pe.usingFunction(()=>new Set)}on(e,t){this.callbacks.get(e).add(t)}dispatch(e,...t){this.callbacks.get(e).forEach(i=>i(...t))}off(e,t){let i=this.callbacks.get(e);i.delete(t),i.size===0&&this.callbacks.delete(e)}dispose(){let e=this.callbacks.values(),t=e.next();for(;!t.done;)t.value.clear(),t=e.next();this.callbacks.clear()}};var C;(function(r){r.IN="in",r.IN_ONCE="in-once",r.OUT="out"})(C||(C={}));var Qt={READY:"ready",IN:"in",IN_ONCE:"in-once",IN_FOLD:"in-fold",FIRST:"first",DOWN:"down",UP:"up",OUT:"out"},T=class{static gatherTargetElements(e){let t=[e.element];return e.childSelector&&Array.from(e.element.querySelectorAll(e.childSelector)).forEach(i=>t.push(i)),t}static assignDefaultsToConfig(e){return Object.assign({elementBaseline:0,viewportOffset:0,outviewOnlyOnElementExit:!1,downOnlyMode:!1},e)}constructor(e){if(this.scrollDirection=0,this.inOnce=!1,this.isInState=!1,this.shouldRun=!1,this.firstWrite=!0,this.eventManager=new fe,this.config=T.assignDefaultsToConfig(e),!this.config.element)throw new Error("No element is defined for inview");this.raf=new x(()=>this.onRaf()),this.readWrite=new x,this.watcher=new w,this.inviewClassNames=Object.assign({},Qt,e.inviewClassNames||{}),this.scrollY=window.scrollY,this.targetElements=T.gatherTargetElements(this.config),this.init()}on(e,t){this.eventManager.on(e,t)}off(e,t){this.eventManager.on(e,t)}runInviewState(e){this.isInState&&!e||this.readWrite.write(()=>{this.targetElements.forEach(t=>{this.firstWrite?(t.classList.add(this.inviewClassNames.FIRST),this.firstWrite=!1):t.classList.remove(this.inviewClassNames.FIRST),t.classList.remove(this.inviewClassNames.OUT),t.classList.add(this.inviewClassNames.IN),this.inOnce||(t.classList.add(this.inviewClassNames.IN_ONCE),this.eventManager.dispatch(C.IN_ONCE),this.inOnce=!0,window.scrollY===0&&t.classList.add(this.inviewClassNames.IN_FOLD));let i=this.scrollDirection===-1;t.classList.remove(i?this.inviewClassNames.DOWN:this.inviewClassNames.UP),t.classList.add(i?this.inviewClassNames.UP:this.inviewClassNames.DOWN),this.isInState=!0,this.eventManager.dispatch(C.IN)})})}runOutviewState(e){!this.isInState&&!e||this.readWrite.write(()=>{this.targetElements.forEach(t=>{this.firstWrite?(t.classList.add(this.inviewClassNames.FIRST),this.firstWrite=!1):t.classList.remove(this.inviewClassNames.FIRST),t.classList.add(this.inviewClassNames.OUT),t.classList.remove(this.inviewClassNames.IN),t.classList.remove(this.inviewClassNames.UP),t.classList.remove(this.inviewClassNames.DOWN),t.classList.add(this.scrollDirection===-1?this.inviewClassNames.UP:this.inviewClassNames.DOWN),this.isInState=!1,this.eventManager.dispatch(C.OUT)})})}dispose(){this.raf.dispose(),this.raf.dispose(),this.watcher.dispose()}init(){this.initDomWatcher(),this.addInviewIndicesToTargetElements(),this.readyTargetElements(),this.initInview(),this.onRaf(!0)}initDomWatcher(){this.watcher.add({element:window,on:"scroll",callback:()=>this.onWindowScroll(),eventOptions:{passive:!0}}),this.watcher.add({element:window,on:"smartResize",callback:()=>this.onWindowScroll(),eventOptions:{passive:!0}})}addInviewIndicesToTargetElements(){this.targetElements.length<=1||this.readWrite.write(()=>{this.targetElements.forEach((e,t)=>{e.setAttribute("inview-index",`${t}`)})})}readyTargetElements(){this.readWrite.write(()=>{this.targetElements.forEach(e=>{e.classList.add(this.inviewClassNames.READY)})})}initInview(){let e=this.config.evIntersectionObserverOptions||{rootMargin:"100px 0px 100px 0px"};this.raf.runWhenElementIsInview(this.config.element,e).then(()=>this.raf.start())}onWindowScroll(){this.raf.read(()=>{let e=window.scrollY;this.scrollDirection=G(this.scrollY,e),this.scrollY=e,this.shouldRun=!0})}onRaf(e){!e&&!this.shouldRun||(this.shouldRun=!1,this.readWrite.read(()=>{let t=window.innerHeight,i=this.config.element.getBoundingClientRect(),n=i.top+this.config.elementBaseline*i.height,o=1-re(0,t,n,!0),s=1-re(0,t,i.top+i.height,!0);o=1-this.config.viewportOffset?this.runOutviewState(e):this.runInviewState(e)}))}};var me=class extends m{constructor(e){super(e);this.updateMobileScrollPosition=!1,this.clicked=!1,this.raf=new x(this.onRaf.bind(this)),this.raf.start(),this.links=Array.from(this.element.querySelectorAll("[jump-item]")),this.scroller=this.element.querySelector("[scroller]"),this.targetX=0,this.scrollTargetY=0,this.targets=[],this.links.forEach(i=>{let n=i.hash.replace("#",""),o=document.getElementById(n);this.targets.push(o)}),y.inview(this.element,{},(i,n,o)=>{n.isIntersecting&&this.element.classList.add("in")});let t=window.location.hash?300:0;window.setTimeout(()=>{this.watcher.add({element:window,on:"scroll",callback:this.onScroll.bind(this),eventOptions:{passive:!0}}),this.watcher.add({element:this.scroller,on:["mousedown","touchstart"],callback:this.down.bind(this),eventOptions:{passive:!0}}),this.watcher.add({element:this.scroller,on:["click"],callback:this.click.bind(this),eventOptions:{passive:!0}}),this.watcher.add({element:this.scroller,on:["mouseup","touchend"],callback:this.up.bind(this),eventOptions:{passive:!0}}),this.watcher.add({element:window,on:"hashchange",callback:this.onHashChange.bind(this),eventOptions:{passive:!0}}),window.location.hash&&this.onScroll()},t)}click(){window.setTimeout(()=>{let e=document.getElementById(window.location.hash.replace("#",""));this.links.forEach((t,i)=>{t.getAttribute("href")==window.location.hash&&(this.setScrollX(i),this.clicked=!0)})}),window.setTimeout(()=>{this.clicked=!1},800)}down(){this.updateMobileScrollPosition=!1,this.targetX=this.scroller.scrollLeft}up(){this.targetX=this.scroller.scrollLeft}onRaf(){this.updateMobileScrollPosition&&(this.scroller.scrollLeft=qe(this.scroller.scrollLeft,this.targetX,.14,.55),this.scroller.scrollTop=0)}onHashChange(){let e=document.getElementById(window.location.hash.replace("#",""));this.scrollTargetY=rt(e)-80,window.scroll({top:this.scrollTargetY,left:0,behavior:"smooth"})}setScrollX(e){if(this.clicked)return;let t=this.links[e],i=this.links[e].getBoundingClientRect();this.targetX=t.offsetLeft-window.innerWidth*.15;let n=this.scroller.offsetWidth-100,o=t.offsetWidth,s=Be(n,o);this.targetX-=s,this.links.forEach((c,l)=>{c.classList.remove("active")}),this.links[e].classList.add("active")}onScroll(){this.updateMobileScrollPosition=!0;let e=0,t=1e5,i=-1,n=!0;if(this.links.forEach((o,s)=>{let l=this.targets[s].getBoundingClientRect(),a=l.top;l.top+l.height>e&&ai.text()).then(i=>new window.DOMParser().parseFromString(i,"text/xml")).then(i=>{let n=i.querySelectorAll("item"),o=this.createElement("div","keyword-blog__feature__list");o.setAttribute("in-effect","true");let s=this.createElement("div","keyword-blog__list");s.setAttribute("in-effect","true"),s.setAttribute("delay-1","true"),n.forEach((c,l)=>{var a,u,h,d;let p=(a=c.querySelector("link"))===null||a===void 0?void 0:a.textContent,g=(u=c.querySelector("title"))===null||u===void 0?void 0:u.textContent,v=((h=c.querySelector("image"))===null||h===void 0?void 0:h.textContent)||"https://storage.googleapis.com/gweb-uniblog-publish-prod/images/E02637722_Google_GA_GML_Recap_Blog_asset_Jun.max-600x600.jpg",S=(d=c.querySelector("pubDate"))===null||d===void 0?void 0:d.textContent,De=new Date(S),qt=`${["January","February","March","April","May","June","July","August","September","October","November","December"][De.getMonth()]} ${De.getDay()}`,b=this.createElement("a","keyword-blog__item");b.href=p;let ie=this.createElement("div","keyword-blog__item__title");ie.textContent=g;let Ue=this.createElement("div","keyword-blog__item__published");Ue.textContent=qt;let z=this.createElement("img","keyword-blog__item__image");z.src=v,z.alt=g,z.setAttribute("loading","lazy");let We=this.createElement("div","keyword-blog__item__read");We.textContent="Read the article",l<4?(console.log(c),b.appendChild(z),b.appendChild(ie),b.appendChild(We),o.appendChild(b)):l<10&&(b.appendChild(Ue),b.appendChild(ie),s.appendChild(b))}),this.element.append(o),this.element.append(s)})}createElement(e,t){let i=document.createElement(e);return i.classList.add(t),i}};var st={LOAD_START:"LOAD_START",LOAD_LOADED:"LOAD_LOADED"},at=class{constructor(e){this.playOnInview=!0,this.el=e,this.video=this.el.parentElement,this.watcher=new w,this.watcher.add({element:window,on:"smartResize",callback:Y(this.onResize.bind(this),500)}),this.watcher.add({element:this.el,on:"force-lazy-load",callback:()=>{this.paint(!0)}});let t=this.el.getAttribute("lazy-video-forward-scalar");this.forwardLoadScalar=ne(t)?+t:1,this.url=this.el.getAttribute("lazy-video")||"",this.setComplete=!1,this.playOnInview=!this.el.hasAttribute("lazy-video-disable-inview-play"),this.ev=y.inview(this.video,{rootMargin:window.innerHeight*this.forwardLoadScalar+"px"},()=>{this.paint()}),this.inviewEv=y.inview(this.video,{},()=>{this.paint()}),this.ev.readyPromise.then(()=>{this.paint()})}onResize(){this.setComplete||this.paint()}paint(e=!1){(this.isPainted()&&!this.setComplete||e)&&(this.setComplete=!0,this.el.setAttribute("src",this.url),ae([this.video]).then(()=>{le(this.video,st.LOAD_LOADED,{}),this.playOnInview&&this.playVideo()}),this.video.load(),this.video.setAttribute("load","true"),this.video.pause(),le(this.video,st.LOAD_START,{}),this.dispose()),this.setComplete&&this.playOnInview&&(!this.isPainted()&&!this.inviewEv.state().inview?(this.video.currentTime=0,this.video.pause()):this.playVideo())}playVideo(){se(this.video)||this.video.play().then(()=>{}).catch()}isPainted(){return!ce(this.video)&&this.ev.state().inview}dispose(){this.ev.dispose(),this.watcher.dispose()}},we=class{constructor(e){this.lazyVideos=[],Array.from(e.querySelectorAll("[lazy-video]")).forEach(i=>{this.lazyVideos.push(new at(i))})}dispose(){this.lazyVideos&&this.lazyVideos.forEach(e=>{e.dispose()})}};var L=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--breakpoint-tablet")),W=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--breakpoint-laptop")),ve=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--breakpoint-desktop")),Xt={TABLET:L,DESKTOP:W,DESKTOP_LARGE:ve,IS_DESKTOP_LARGE:()=>window.innerWidth>=ve,IS_DESKTOP:()=>window.innerWidth>=W,IS_DESKTOP_OR_TABLET:()=>window.innerWidth>=L,IS_MOBILE:()=>window.innerWidthwindow.innerWidth>=ve,isDesktop:()=>window.innerWidth>=W,isDesktopOrTablet:()=>window.innerWidth>=L,isTabletPortrait:()=>window.innerWidth>=L&&window.innerWidthwindow.innerWidth,isTabletOrMobile:()=>window.innerWidthwindow.innerWidth{this.watcher.add({element:n,on:"click",callback:this.toggle.bind(this),eventOptions:{passive:!0}})}),[this.menuClose,...this.links].forEach(n=>{this.watcher.add({element:n,on:"click",callback:this.hideMenu.bind(this),eventOptions:{passive:!0}})})}hideMenu(){this.menuEl.setAttribute("tabindex","-1"),this.menuEl.setAttribute("aria-hidden","true"),this.menuEl.classList.remove(be),this.menuBackdrop.classList.remove(ct)}showMenu(){this.menuEl.setAttribute("tabindex","0"),this.menuEl.removeAttribute("aria-hidden"),this.menuEl.classList.add(be),this.menuBackdrop.classList.add(ct)}toggle(){this.menuEl.classList.contains(be)?this.hideMenu():this.showMenu()}onResize(){lt.isDesktop()&&this.hideMenu()}};function ht(r){let e=window.location.search.split(r+"=")[1];return e=e&&e.split("&")[0],e||null}function ut(r){return new URLSearchParams(window.location.search).has(r)}var xe=class{constructor(e){if(this.highlighters=[],this.config=e,this.config.rafFps||(this.config.rafFps=5),this.config.urlParamName){let t=ht(this.config.urlParamName);t&&(this.config.attributes=t.split(","))}this.watcher=new w,this.watcher.add({element:window,on:["click","resize","scroll"],callback:Y(this.refresh.bind(this),1)}),this.attributeWatcher=new w,this.raf=new x(this.refresh.bind(this)),this.raf.setFps(this.config.rafFps),this.raf.start()}refresh(){this.removeHighlighters(),this.createHighlighters()}createHighlighter(e,t,i,n){if(!he(t)&&!n)return;let o=!1,s=t.getAttribute(i);if((s==="None"||s===""||!s)&&(o=!0),n&&t.hasAttribute(i))return;let c=this.highlighters.filter(h=>~h.attributeEls.indexOf(t))[0],l=!0,a=document.createElement("div");c&&(a=c.highlighterEl,l=!1),a.classList.add(this.config.cssClassName),a.classList.add(i),o&&a.classList.add("missing-text"),n&&a.classList.add("missing");let u=document.createElement("span");if(n?u.innerText=`Missing: ${i}`:u.innerText=`${i}: ${s}`,a.appendChild(u),l){let h=t.getBoundingClientRect(),d=`${h.top+h.height/2}px`,p=`${h.bottom}px`,g=`${h.top}px`,v=(h.left+h.right)/2;h.width>80?a.style.setProperty("--max-width",`${h.width*1.5}px`):a.style.setProperty("--max-width","80px"),a.style.setProperty("--left",`${v}px`),a.style.setProperty("--center",d),a.style.setProperty("--top",g),a.style.setProperty("--bottom",p),this.attributeWatcher.add({element:a,on:["mousedown"],callback:S=>{S.preventDefault(),S.stopPropagation(),this.raf.stop(),window.setTimeout(()=>{t.classList.add("attribute-highlighter-active")})}}),this.attributeWatcher.add({element:a,on:["mouseup"],callback:S=>{S.preventDefault(),S.stopPropagation(),t.classList.remove("attribute-highlighter-active"),window.setTimeout(()=>{this.raf.start()},100)}}),this.highlighters.push({highlighterEl:a,attributeEls:[t]}),a.classList.remove("up"),e.parentElement.appendChild(a)}else this.highlighters.forEach(h=>{~h.attributeEls.indexOf(t)&&h.attributeEls.push(t)});this.highlighters.forEach(h=>{let d=h.highlighterEl;nt(d,a)&&(d.classList.contains("up")?(a.classList.add("up"),a.style.setProperty("--height",a.offsetHeight+"px"),a.style.setProperty("--center",d.offsetTop+"px")):(a.classList.add("up"),a.style.setProperty("--height",a.offsetHeight+"px")))})}createHighlighters(){this.attributeWatcher.removeAll(),[].forEach.call(document.querySelectorAll(this.config.scopeQuerySelector),e=>{this.config.attributes.forEach(t=>{if(ze(t)){let i=t;[].forEach.call(e.querySelectorAll(`[${t}]`),n=>{this.createHighlighter(e,n,i,!1)})}else{let i=t,n=i.attribute,o=i.querySelector;[].forEach.call(e.querySelectorAll(`${o}`),s=>{this.createHighlighter(e,s,n,!1)})}}),this.config.warnMissingAttributes&&this.config.warnMissingAttributes.forEach(t=>{let i=t,n=i.attribute,o=i.querySelector;[].forEach.call(e.querySelectorAll(`${o}`),s=>{this.createHighlighter(e,s,n,!0)})})})}removeHighlighters(){this.highlighters.forEach(e=>{it(e.highlighterEl)}),this.highlighters=[]}dispose(){this.watcher&&this.watcher.dispose(),this.attributeWatcher&&this.attributeWatcher.dispose(),this.raf&&this.raf.dispose()}};var Ee=class extends m{constructor(e){super(e);let t=e.getAttribute("videoa"),i=e.getAttribute("videob");this.videoA=this.element.querySelector(t),this.videoB=this.element.querySelector(i),this.videoA.addEventListener("ended",()=>{this.videoB.pause(),this.videoB.currentTime=0,this.videoB.play().then(()=>{}).catch(),this.element.classList.add("show-video-b")})}};var J=window,K=J.ShadowRoot&&(J.ShadyCSS===void 0||J.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,dt=Symbol(),pt=new WeakMap,Ae=class{constructor(e,t,i){if(this._$cssResult$=!0,i!==dt)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o,t=this.t;if(K&&e===void 0){let i=t!==void 0&&t.length===1;i&&(e=pt.get(t)),e===void 0&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),i&&pt.set(t,e))}return e}toString(){return this.cssText}},ft=r=>new Ae(typeof r=="string"?r:r+"",void 0,dt);var Se=(r,e)=>{K?r.adoptedStyleSheets=e.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet):e.forEach(t=>{let i=document.createElement("style"),n=J.litNonce;n!==void 0&&i.setAttribute("nonce",n),i.textContent=t.cssText,r.appendChild(i)})},Q=K?r=>r:r=>r instanceof CSSStyleSheet?(e=>{let t="";for(let i of e.cssRules)t+=i.cssText;return ft(t)})(r):r;var _e,X=window,mt=X.trustedTypes,Zt=mt?mt.emptyScript:"",gt=X.reactiveElementPolyfillSupport,Ce={toAttribute(r,e){switch(e){case Boolean:r=r?Zt:null;break;case Object:case Array:r=r==null?r:JSON.stringify(r)}return r},fromAttribute(r,e){let t=r;switch(e){case Boolean:t=r!==null;break;case Number:t=r===null?null:Number(r);break;case Object:case Array:try{t=JSON.parse(r)}catch(i){t=null}}return t}},wt=(r,e)=>e!==r&&(e==e||r==r),Oe={attribute:!0,type:String,converter:Ce,reflect:!1,hasChanged:wt},Re="finalized",E=class extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this._$Eu()}static addInitializer(e){var t;this.finalize(),((t=this.h)!==null&&t!==void 0?t:this.h=[]).push(e)}static get observedAttributes(){this.finalize();let e=[];return this.elementProperties.forEach((t,i)=>{let n=this._$Ep(i,t);n!==void 0&&(this._$Ev.set(n,i),e.push(n))}),e}static createProperty(e,t=Oe){if(t.state&&(t.attribute=!1),this.finalize(),this.elementProperties.set(e,t),!t.noAccessor&&!this.prototype.hasOwnProperty(e)){let i=typeof e=="symbol"?Symbol():"__"+e,n=this.getPropertyDescriptor(e,i,t);n!==void 0&&Object.defineProperty(this.prototype,e,n)}}static getPropertyDescriptor(e,t,i){return{get(){return this[t]},set(n){let o=this[e];this[t]=n,this.requestUpdate(e,o,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)||Oe}static finalize(){if(this.hasOwnProperty(Re))return!1;this[Re]=!0;let e=Object.getPrototypeOf(this);if(e.finalize(),e.h!==void 0&&(this.h=[...e.h]),this.elementProperties=new Map(e.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){let t=this.properties,i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(let n of i)this.createProperty(n,t[n])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(e){let t=[];if(Array.isArray(e)){let i=new Set(e.flat(1/0).reverse());for(let n of i)t.unshift(Q(n))}else e!==void 0&&t.push(Q(e));return t}static _$Ep(e,t){let i=t.attribute;return i===!1?void 0:typeof i=="string"?i:typeof e=="string"?e.toLowerCase():void 0}_$Eu(){var e;this._$E_=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$Eg(),this.requestUpdate(),(e=this.constructor.h)===null||e===void 0||e.forEach(t=>t(this))}addController(e){var t,i;((t=this._$ES)!==null&&t!==void 0?t:this._$ES=[]).push(e),this.renderRoot!==void 0&&this.isConnected&&((i=e.hostConnected)===null||i===void 0||i.call(e))}removeController(e){var t;(t=this._$ES)===null||t===void 0||t.splice(this._$ES.indexOf(e)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach((e,t)=>{this.hasOwnProperty(t)&&(this._$Ei.set(t,this[t]),delete this[t])})}createRenderRoot(){var e;let t=(e=this.shadowRoot)!==null&&e!==void 0?e:this.attachShadow(this.constructor.shadowRootOptions);return Se(t,this.constructor.elementStyles),t}connectedCallback(){var e;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(e=this._$ES)===null||e===void 0||e.forEach(t=>{var i;return(i=t.hostConnected)===null||i===void 0?void 0:i.call(t)})}enableUpdating(e){}disconnectedCallback(){var e;(e=this._$ES)===null||e===void 0||e.forEach(t=>{var i;return(i=t.hostDisconnected)===null||i===void 0?void 0:i.call(t)})}attributeChangedCallback(e,t,i){this._$AK(e,i)}_$EO(e,t,i=Oe){var n;let o=this.constructor._$Ep(e,i);if(o!==void 0&&i.reflect===!0){let s=(((n=i.converter)===null||n===void 0?void 0:n.toAttribute)!==void 0?i.converter:Ce).toAttribute(t,i.type);this._$El=e,s==null?this.removeAttribute(o):this.setAttribute(o,s),this._$El=null}}_$AK(e,t){var i;let n=this.constructor,o=n._$Ev.get(e);if(o!==void 0&&this._$El!==o){let s=n.getPropertyOptions(o),c=typeof s.converter=="function"?{fromAttribute:s.converter}:((i=s.converter)===null||i===void 0?void 0:i.fromAttribute)!==void 0?s.converter:Ce;this._$El=o,this[o]=c.fromAttribute(t,s.type),this._$El=null}}requestUpdate(e,t,i){let n=!0;e!==void 0&&(((i=i||this.constructor.getPropertyOptions(e)).hasChanged||wt)(this[e],t)?(this._$AL.has(e)||this._$AL.set(e,t),i.reflect===!0&&this._$El!==e&&(this._$EC===void 0&&(this._$EC=new Map),this._$EC.set(e,i))):n=!1),!this.isUpdatePending&&n&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t){Promise.reject(t)}let e=this.scheduleUpdate();return e!=null&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var e;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach((n,o)=>this[o]=n),this._$Ei=void 0);let t=!1,i=this._$AL;try{t=this.shouldUpdate(i),t?(this.willUpdate(i),(e=this._$ES)===null||e===void 0||e.forEach(n=>{var o;return(o=n.hostUpdate)===null||o===void 0?void 0:o.call(n)}),this.update(i)):this._$Ek()}catch(n){throw t=!1,this._$Ek(),n}t&&this._$AE(i)}willUpdate(e){}_$AE(e){var t;(t=this._$ES)===null||t===void 0||t.forEach(i=>{var n;return(n=i.hostUpdated)===null||n===void 0?void 0:n.call(i)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(e){return!0}update(e){this._$EC!==void 0&&(this._$EC.forEach((t,i)=>this._$EO(i,this[i],t)),this._$EC=void 0),this._$Ek()}updated(e){}firstUpdated(e){}};E[Re]=!0,E.elementProperties=new Map,E.elementStyles=[],E.shadowRootOptions={mode:"open"},gt==null||gt({ReactiveElement:E}),((_e=X.reactiveElementVersions)!==null&&_e!==void 0?_e:X.reactiveElementVersions=[]).push("1.6.3");var Pe,Z=window,I=Z.trustedTypes,vt=I?I.createPolicy("lit-html",{createHTML:r=>r}):void 0,ke="$lit$",A=`lit$${(Math.random()+"").slice(9)}$`,bt="?"+A,ei=`<${bt}>`,O=document,B=()=>O.createComment(""),j=r=>r===null||typeof r!="object"&&typeof r!="function",yt=Array.isArray,ti=r=>yt(r)||typeof(r==null?void 0:r[Symbol.iterator])=="function",$e=`[ \f\r]`,H=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,xt=/-->/g,Et=/>/g,R=RegExp(`>|${$e}(?:([^\\s"'>=/]+)(${$e}*=${$e}*(?:[^ \f\r"'\`<>=]|("|')|))|$)`,"g"),At=/'/g,St=/"/g,_t=/^(?:script|style|textarea|title)$/i,Ct=r=>(e,...t)=>({_$litType$:r,strings:e,values:t}),Fr=Ct(1),qr=Ct(2),P=Symbol.for("lit-noChange"),f=Symbol.for("lit-nothing"),Ot=new WeakMap,k=O.createTreeWalker(O,129,null,!1);function Rt(r,e){if(!Array.isArray(r)||!r.hasOwnProperty("raw"))throw Error("invalid template strings array");return vt!==void 0?vt.createHTML(e):e}var ii=(r,e)=>{let t=r.length-1,i=[],n,o=e===2?"":"",s=H;for(let c=0;c"?(s=n??H,h=-1):u[1]===void 0?h=-2:(h=s.lastIndex-u[2].length,a=u[1],s=u[3]===void 0?R:u[3]==='"'?St:At):s===St||s===At?s=R:s===xt||s===Et?s=H:(s=R,n=void 0);let p=s===R&&r[c+1].startsWith("/>")?" ":"";o+=s===H?l+ei:h>=0?(i.push(a),l.slice(0,h)+ke+l.slice(h)+A+p):l+A+(h===-2?(i.push(void 0),c):p)}return[Rt(r,o+(r[t]||"")+(e===2?"":"")),i]},N=class{constructor({strings:e,_$litType$:t},i){let n;this.parts=[];let o=0,s=0,c=e.length-1,l=this.parts,[a,u]=ii(e,t);if(this.el=N.createElement(a,i),k.currentNode=this.el.content,t===2){let h=this.el.content,d=h.firstChild;d.remove(),h.append(...d.childNodes)}for(;(n=k.nextNode())!==null&&l.length0){n.textContent=I?I.emptyScript:"";for(let p=0;p2||i[0]!==""||i[1]!==""?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=f}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(e,t=this,i,n){let o=this.strings,s=!1;if(o===void 0)e=M(this,e,t,0),s=!j(e)||e!==this._$AH&&e!==P,s&&(this._$AH=e);else{let c=e,l,a;for(e=o[0],l=0;l{var i,n;let o=(i=t==null?void 0:t.renderBefore)!==null&&i!==void 0?i:e,s=o._$litPart$;if(s===void 0){let c=(n=t==null?void 0:t.renderBefore)!==null&&n!==void 0?n:null;o._$litPart$=s=new D(e.insertBefore(B(),c),c,void 0,t??{})}return s._$AI(r),s};var Te,Le;var $=class extends E{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var e,t;let i=super.createRenderRoot();return(e=(t=this.renderOptions).renderBefore)!==null&&e!==void 0||(t.renderBefore=i.firstChild),i}update(e){let t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=Nt(t,this.renderRoot,this.renderOptions)}connectedCallback(){var e;super.connectedCallback(),(e=this._$Do)===null||e===void 0||e.setConnected(!0)}disconnectedCallback(){var e;super.disconnectedCallback(),(e=this._$Do)===null||e===void 0||e.setConnected(!1)}render(){return P}};$.finalized=!0,$._$litElement$=!0,(Te=globalThis.litElementHydrateSupport)===null||Te===void 0||Te.call(globalThis,{LitElement:$});var Mt=globalThis.litElementPolyfillSupport;Mt==null||Mt({LitElement:$});((Le=globalThis.litElementVersions)!==null&&Le!==void 0?Le:globalThis.litElementVersions=[]).push("3.3.3");var Dt=r=>e=>typeof e=="function"?((t,i)=>(customElements.define(t,i),i))(r,e):((t,i)=>{let{kind:n,elements:o}=i;return{kind:n,elements:o,finisher(s){customElements.define(t,s)}}})(r,e);var ni=(r,e)=>e.kind==="method"&&e.descriptor&&!("value"in e.descriptor)?{...e,finisher(t){t.createProperty(e.key,r)}}:{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:e.key,initializer(){typeof e.initializer=="function"&&(this[e.key]=e.initializer.call(this))},finisher(t){t.createProperty(e.key,r)}},oi=(r,e,t)=>{e.constructor.createProperty(t,r)};function ee(r){return(e,t)=>t!==void 0?oi(r,e,t):ni(r,e)}var Ie,vn=((Ie=window.HTMLSlotElement)===null||Ie===void 0?void 0:Ie.prototype.assignedElements)!=null?(r,e)=>r.assignedElements(e):(r,e)=>r.assignedNodes(e).filter(t=>t.nodeType===Node.ELEMENT_NODE);var Ut="https://www.gstatic.com",Wt="/glue/cookienotificationbar/config/2a.json",Bt="/glue/cookienotificationbar/config/2b.json",V;(function(r){r.TWO_A="2A",r.TWO_B="2B"})(V||(V={}));var jt;(function(r){r.ACCEPTED="ACCEPTED",r.REJECTED="REJECTED",r.UNKNOWN="UNKNOWN"})(jt||(jt={}));var Ne=class{constructor(){this.loadedScripts={},this.disposed=!1}load(e,t){let i=this.loadedScripts[e];if(i)return i;let n=new Promise((o,s)=>{if(t.test()){o();return}this.renderScriptTag(e,t);let c=Date.now(),l=t.timeout||5e3,a=()=>{if(this.disposed){s("script loader is disposed");return}if(t.test()){o();return}if(Date.now()-c>l){s(`failed to load ${e} due to timeout`);return}window.requestAnimationFrame(a)};window.requestAnimationFrame(a)});return this.loadedScripts[e]=n,n.catch(o=>{console.error(`failed to load ${e}`),console.error(o),delete this.loadedScripts[e]}),n}renderScriptTag(e,t){let i=document.createElement("script");if(t==null?void 0:t.attrs)for(let n in t.attrs){let o=t.attrs[n];i.setAttribute(n,o)}i.src=e,document.body.appendChild(i)}renderDom(e){this.renderScriptTag(e)}dispose(){this.loadedScripts={},this.disposed=!0}};var Me=function(r,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(r,e,t,i);else for(var c=r.length-1;c>=0;c--)(s=r[c])&&(o=(n<3?s(o):n>3?s(e,t,o):s(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},si="https://www.gstatic.com/glue/cookienotificationbar/cookienotificationbar.min.js",Ht="https://www.gstatic.com/glue/cookienotificationbar/cookienotificationbar.min.css",te=class extends ${constructor(){super(...arguments);this.variant=V.TWO_B,this.siteId=window.location.hostname}connectedCallback(){super.connectedCallback(),this.loadLibraryScript(),this.initStatusChangeListener()}initStatusChangeListener(){let e=window.handleCookieBarStatusChange;window.glueCookieNotificationBarLoaded=t=>{e&&e(t.detail),this.cookieBar=window.glue.CookieNotificationBar.instance,this.cookieBar.listen("statuschange",i=>e&&i.detail?e(i.detail):void 0)}}getStatus(){var e;return(e=this.cookieBar)===null||e===void 0?void 0:e.status}getConfigURL(){let e=new URLSearchParams(window.location.search).get("cookieBarLocale"),t=e&&/^[a-zA-Z0-9-_]+$/.test(e)?`/intl/${e}`:"",i=this.variant.toLocaleUpperCase()===V.TWO_A?Wt:Bt;return Ut+t+i}loadStyles(){if(document.head.querySelector(`link[href="${Ht}"]`))return;let e=document.createElement("link");e.rel="stylesheet",e.href=Ht,document.head.appendChild(e)}async loadLibraryScript(){new Ne().load(si,{attrs:{"data-glue-cookie-notification-bar-category":this.variant,"data-glue-cookie-notification-bar-site-id":this.siteId},timeout:2e4,test:()=>{var t;return typeof((t=window.glue)===null||t===void 0?void 0:t.CookieNotificationBar)!="undefined"}}).then(()=>this.loadStyles())}async testLocaleElibiility(){return(await(await fetch(this.getConfigURL())).json()).required!==!1}};Me([ee({reflect:!0,converter:r=>r==null?void 0:r.toUpperCase()})],te.prototype,"variant",void 0);Me([ee({attribute:"site-id"})],te.prototype,"siteId",void 0);te=Me([Dt("bds-cookiebar")],te);var Ft=class{constructor(){this.inviews=[];var e=Array.from(document.getElementsByTagName("a"));e.forEach(o=>{(o.host!==window.location.host&&(!o.host.includes("/search/howsearchworks/")||o.host.includes("withgoogle.com"))||o.host.includes("support.google.com")||o.host.includes("developers.google.com")||o.hasAttribute("external"))&&(o.setAttribute("rel","noopener"),o.setAttribute("target","_blank"))});var t=document.getElementsByTagName("html")[0],i=/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor);if(window.location.hash&&i?setTimeout(()=>{var o=window.location.hash;window.location.hash="",window.location.hash=o,setTimeout(()=>{t.classList.add("ready")})},300):t.classList.add("ready"),ut("alt")){let o=new xe({cssClassName:"attribute-highlighter",scopeQuerySelector:".section",attributes:["alt","aria-label"]})}Array.from(document.querySelectorAll("[inview]")).forEach(o=>{let s=o.getAttribute("inview-offset"),c=new T({element:o,elementBaseline:0,viewportOffset:s?+s:.1});c.on(C.IN_ONCE,()=>{let l=Array.from(o.querySelectorAll("video"));tt(o).then(()=>{et(o,!0)})}),this.inviews.push(c)}),this.lazyVideoManager=new we(document.documentElement),this.createComponents()}createComponents(){let e={"[centered-video-component]":ue,"[header-scroll-component]":de,"[jump-nav]":me,"[keyword-blog-component]":ge,"[mobile-nav-component]":ye,"[video-swapper]":Ee};Object.keys(e).forEach(t=>{Array.from(document.querySelectorAll(t)).forEach(n=>{new e[t](n)})})}};document.addEventListener("DOMContentLoaded",()=>{new Ft});})(); /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ /** * @license * Copyright 2019 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ /** * @license * Copyright 2021 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ /** * @license * Copyright 2022 Google LLC * SPDX-License-Identifier: BSD-3-Clause */