diff --git a/404.html b/404.html index 99794c5..122e765 100644 --- a/404.html +++ b/404.html @@ -14,6 +14,6 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/404/index.html b/404/index.html index 6e9e613..dd1d84c 100644 --- a/404/index.html +++ b/404/index.html @@ -14,6 +14,6 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/_gatsby/slices/_gatsby-scripts-1.html b/_gatsby/slices/_gatsby-scripts-1.html index 374e3e3..a030186 100644 --- a/_gatsby/slices/_gatsby-scripts-1.html +++ b/_gatsby/slices/_gatsby-scripts-1.html @@ -2,6 +2,6 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/chunk-map.json b/chunk-map.json index bc5ef78..4d5a1b5 100644 --- a/chunk-map.json +++ b/chunk-map.json @@ -1 +1 @@ -{"app":["/app-6e4015bd44fd431f6814.js"],"component---src-pages-404-tsx":["/component---src-pages-404-tsx-8dda323e7d90c221b6ed.js"],"component---src-pages-index-tsx":["/component---src-pages-index-tsx-38ff6fb65105e74c32c3.js"]} \ No newline at end of file +{"app":["/app-6e4015bd44fd431f6814.js"],"component---src-pages-404-tsx":["/component---src-pages-404-tsx-8dda323e7d90c221b6ed.js"],"component---src-pages-index-tsx":["/component---src-pages-index-tsx-a0cbca3becbcba12f361.js"]} \ No newline at end of file diff --git a/component---src-pages-index-tsx-38ff6fb65105e74c32c3.js b/component---src-pages-index-tsx-38ff6fb65105e74c32c3.js deleted file mode 100644 index f1f1888..0000000 --- a/component---src-pages-index-tsx-38ff6fb65105e74c32c3.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkELM=self.webpackChunkELM||[]).push([[691],{9104:function(e,t,i){"use strict";i.r(t),i.d(t,{Head:function(){return N},default:function(){return L}});var n=i(7294),r=i(9583),o=i(8193),a=i(1451),s=i(6529),l=i.p+"static/teaser-c2a71f1dde356046cbbe0e5e5480c814.png",c=i.p+"static/overview-207c2e5c1076c9d19d0cde294d565f5d.png",u=i.p+"static/datapipeline-b52c081d3a18968a618ab2032f2abe92.png",d=i.p+"static/status-016af8bf626711cb573cf29fd8f7e93e.png",h=i.p+"static/results-4a7b9387e7e17afca7341167ba0bd8cd.png",p=i.p+"static/vis1-342b98486315be4dad64c5f173971081.png",m=i.p+"static/vis2-4fc4b96dd4e04c5a4eb40611fa817f59.png",f=i.p+"static/vis3-004b6204f9dd3bfc307205409d2ff6cc.png",g=i.p+"static/vis4-33f0ce67b804dfdcae294352a2281172.png",v=i.p+"static/vis5-30031627ad193cda766b386d1eb4af05.png",y=i.p+"static/vis6-de64a2dd03b50a5d7b284c9683f04947.png",b=i.p+"static/vis7-a859c5a45af5248f7916816fee9f2ef0.png",E=i.p+"static/vis8-bf7d58452ca36d291e624993f264c42f.png",w=i.p+"static/vis9-64fba565fe8fca0972cff25c92af6db7.png",x=i.p+"static/vis10-af238b6bb0be0d61fe9a8e3c3e5d3f0f.png",S=i.p+"static/vis11-6bdfee004623c2e5c92a7a63c97b174a.png";const T=e=>{let{children:t}=e;return n.createElement("h1",{className:"pb-1 mb-5 sm:mb-4 sm:leading-tight md:leading-tight lg:leading-tight font-bold text-center"},t)},C=e=>{let{website:t,children:i}=e;return n.createElement("div",{className:"flex flex-wrap justify-center text-2xl lg:text-2xl mb-6 sm:mb-5"},n.createElement("a",{className:"no-underline",href:t,target:"_blank"},i))},I=e=>{let{children:t}=e;return n.createElement("div",null,n.createElement("div",{className:"flex justify-center content-center"},n.createElement("p",{className:"font-semibold text-2xl sm:text-3xl m-1 sm:m-2"},"Abstract")),n.createElement("div",{className:"flex justify-center content-center"},n.createElement("p",{className:"text-justify font-light text-base sm:text-lg m-1 sm:m-1 max-w-[100%] sm:max-w-[620px]"},t)))},M=e=>{let{children:t,website:i,firstAuthor:r,affiliations:o,lastAuthor:a}=e;return n.createElement("span",{className:"text-center inline-block"},n.createElement("a",{href:i,target:"_blank",className:"font-normal no-underline text-stone-600 hover:underline underline-offset-3 hover:transition-all"},t),r||o?n.createElement("sup",{className:"pl-0.5"},r?n.createElement("span",{className:"font-bold"},"*"):null,o||null):null,a?null:n.createElement(n.Fragment,null,", "))},P=e=>{let{children:t,website:i,number:r}=e;return n.createElement("span",{className:"text-center inline-block mr-4"},n.createElement("sup",{className:"mr-0.5"},r),n.createElement("a",{href:i,target:"_blank",className:"font-light no-underline text-stone-600 hover:underline underline-offset-3 hover:transition-all"},t))},A=e=>{let{children:t,url:i,icon:r}=e;return n.createElement("span",{className:"text-center inline-block my-3.5 sm:my-2 mx-2"},n.createElement("a",{href:i,target:i.startsWith("#")?"_self":"_blank",className:"text-xl no-underline font-normal text-[#009cff] bg-[#f9f9f9] hover:bg-[#f4f4f4] hover:transition-all px-4 py-3 rounded-xl"},n.createElement("span",{className:"align-middle inline-flex justify-center mr-0.25"},r," "),n.createElement("span",null,t)))},k=e=>{let{children:t}=e;return n.createElement("div",{className:"mx-auto w-full max-w-[90%] format format-md md:format-base lg:max-w-5xl lg:format-lg format-blue dark:format-invert"},t)},R=e=>{let{children:t}=e;return n.createElement("main",{className:"pt-6 lg:pt-12 bg-white dark:bg-gray-900"},t)},N=()=>n.createElement("title",null,"Distilled Feature Fields Enable Few-Shot Language-Guided Manipulation"),O={desktop:{breakpoint:{max:3e3,min:1024},items:3},tablet:{breakpoint:{max:1024,min:464},items:2},mobile:{breakpoint:{max:464,min:0},items:1}};var L=()=>n.createElement(n.Fragment,null,n.createElement(R,null,n.createElement(k,null,n.createElement(T,null,n.createElement("span",{className:"font-extrabold text-transparent bg-clip-text bg-gradient-to-r from-pink-500 via-indigo-600 to-emerald-400"},"ELM:")," ",n.createElement("span",{className:"text-stone-800"},"Embodied Understanding of Driving Scenarios")),n.createElement(C,{website:"https://eccv.ecva.net/"},n.createElement("span",{className:"font-normal text-stone-600 hover:text-transparent hover:bg-clip-text hover:bg-gradient-to-r hover:from-pink-500 hover:via-indigo-600 hover:to-emerald-400 hover:transition-all"},"ECCV 2024")),n.createElement("div",{className:"flex flex-wrap justify-center text-xl lg:text-xl mb-4"},n.createElement(M,{website:"https://zhouyunsong-sjtu.github.io/",firstAuthor:!0,affiliations:"1, 2"},"Yunsong Zhou"),n.createElement(M,{website:"https://github.com/DevLinyan",firstAuthor:!0,affiliations:"1"},"Linyan Huang"),n.createElement(M,{website:"https://github.com/retsuh-bqw",firstAuthor:!0,affiliations:"1, 2"},"Qingwen Bu"),n.createElement(M,{affiliations:"1"},"Jia Zeng"),n.createElement(M,{affiliations:"1"},"Tianyu Li"),n.createElement("br",null),n.createElement(M,{affiliations:"3"},"Hang Qiu"),n.createElement(M,{affiliations:"2"},"Hongzi Zhu"),n.createElement(M,{affiliations:"2"},"Minyi Guo"),n.createElement(M,{affiliations:"1"},"Yu Qiao"),n.createElement(M,{website:"https://lihongyang.info/",affiliations:"1",lastAuthor:!0},"Hongyang Li")),n.createElement("div",{className:"flex flex-wrap justify-center text-xl lg:text-xl mb-1"},n.createElement(P,{website:"https://opendrivelab.com/",number:"1"},"OpenDriveLab at Shanghai AI Lab"),n.createElement(P,{number:"2"},"Shanghai Jiao Tong University"),n.createElement(P,{number:"3"},"University of California, Riverside")),n.createElement("div",{className:"flex flex-wrap justify-center text-l lg:text-l"},n.createElement("span",{className:"text-stone-600 text-center"},n.createElement("sup",{className:"mr-0.5"},"*"),"Indicates equal contribution.")),n.createElement("p",{className:"flex flex-wrap justify-center"},n.createElement(A,{url:"https://arxiv.org/pdf/2403.04593",icon:n.createElement(r.yRW,null)},"Paper"),n.createElement(A,{url:"https://github.com/OpenDriveLab/ELM",icon:n.createElement(o.RrF,null)},"Code")),n.createElement("img",{src:l,alt:"teaser"}),n.createElement("div",{className:"flex justify-center"},n.createElement("p",{className:"text-justify text-xl !mt-0 !mb-2 font-medium max-w-[100%] md:max-w-[100%]"},"ELM is an embodied language model for understanding the long-horizon driving scenarios in space and time. Compared to the vanilla vision-language model (VLM) being confined to the scene description task, we expand a wide spectrum of new tasks to fully leverage the capability of large language models in an embodiment setting. ELM achieves significant improvements in various applications."))),n.createElement("div",{className:"my-6 pt-6 pb-4 bg-gradient-to-r from-pink-100/70 via-indigo-100/70 to-emerald-100/70"},n.createElement("div",{className:"mx-auto w-full max-w-[97.5%] lg:max-w-7xl py-2 md:py-4 px-2 md:px-4"},n.createElement("p",{className:"text-center text-lg md:text-xl md:max-w-[85%] mx-auto"},n.createElement(I,null,"Embodied scene understanding serves as the cornerstone for autonomous agents to perceive, interpret, and respond to open driving scenarios. Such understanding is typically founded upon Vision-Language Models (VLMs). Nevertheless, existing VLMs are restricted to the 2D domain, devoid of spatial awareness and long-horizon extrapolation proficiencies. We revisit the key aspects of autonomous driving and formulate appropriate rubrics. Hereby, we introduce the Embodied Language Model (ELM), a comprehensive framework tailored for agents' understanding of driving scenes with large spatial and temporal spans. ELM incorporates space-aware pre-training to endow the agent with robust spatial localization capabilities. Besides, the model employs time-aware token selection to accurately inquire about temporal cues. We instantiate ELM on the reformulated multi-faced benchmark, and it surpasses previous state-of-the-art approaches in all aspects.")))),n.createElement(k,null,n.createElement("h2",{className:"font-semibold border-b-[1px] !mb-4"},"Methodology"),n.createElement("h3",{id:"language-guided",className:"!mt-4"},"Model Overview"),n.createElement("img",{src:c,alt:"Description of the image"}),n.createElement("p",null," ",n.createElement("b",null,"Systematic Pipeline of ELM.")," It consists of Pre-training by open-world data corpus and Fine-tuning on diverse tasks. To initialize the Space-aware Pre-training, we collect extensive image-text pairs from the world, empowering ELM with spatial localization while preserving the description ability in driving scenarios. In the fine-tuning process, the inputs to ELM are videos, timestamps, and text prompts. After encoding the inputs into tokens, ELM leverages the proposed Time-aware Token Selection to gather the appropriate tokens as instructed by prompts. Finally, the tokens are sent to the language model to generate output texts."),n.createElement("h3",{id:"language-guided",className:"!mt-4"},"Space-aware Pre-training"),n.createElement("img",{src:u,alt:"Description of the image"}),n.createElement("p",null," ",n.createElement("b",null,"Annotation workflow with human quality check in the loop. For location labeling:")," we first select diverse templates from the GPT generated candidates. Pixel-point pairs as annotated in the nuScenes are then sampled and filled into the templates to form our location pre-training data.",n.createElement("b",null,"For description labeling:")," Node 4 utilizes LLaMA-Adapter V2 to obtain diverse labels on nuScenes, Waymo, YouTube, and Ego4D with predefined prompts. Two rounds of quality check are conducted in Node 3 and 7 by inspectors to guarantee the image and caption quality."),n.createElement("img",{src:d,alt:"Description of the image"}),n.createElement("p",null," ",n.createElement("b",null,"Statistics of pre-training data and comparison of data collection with other VLMs. "),"Our pre-train data surpasses that in general vision (top) and autonomous driving (middle) in terms of quantity and diversity. Anno: the type of annotations; Des: description; Loc: localization."),n.createElement("h2",{className:"font-semibold border-b-[1px] !mb-4"},"Experiments")),n.createElement("div",{className:"my-6 pt-6 pb-4 bg-gradient-to-r from-pink-100/70 via-indigo-100/70 to-emerald-100/70"},n.createElement("div",{className:"relative pb-8 mb-3"},n.createElement(s.default,{responsive:O,infinite:!0,showDots:!0,renderDotsOutside:!0},n.createElement("img",{src:m,alt:"Description of the image",style:{maxHeight:"800px",marginRight:"100px"}}),n.createElement("img",{src:p,alt:"Description of the image",style:{maxHeight:"800px",marginRight:"100px"}}),n.createElement("img",{src:f,alt:"Description of the image",style:{maxHeight:"800px",marginRight:"100px"}}),n.createElement("img",{src:g,alt:"Description of the image",style:{maxHeight:"800px",marginRight:"100px"}}),n.createElement("img",{src:v,alt:"Description of the image",style:{maxHeight:"800px",marginRight:"100px"}}),n.createElement("img",{src:y,alt:"Description of the image",style:{maxHeight:"800px",marginRight:"100px"}}),n.createElement("img",{src:b,alt:"Description of the image",style:{maxHeight:"800px",marginRight:"100px"}}),n.createElement("img",{src:E,alt:"Description of the image",style:{maxHeight:"800px",marginRight:"100px"}}),n.createElement("img",{src:w,alt:"Description of the image",style:{maxHeight:"800px",marginRight:"100px"}}),n.createElement("img",{src:x,alt:"Description of the image",style:{maxHeight:"800px",marginRight:"100px"}}),n.createElement("img",{src:S,alt:"Description of the image",style:{maxHeight:"800px",marginRight:"100px"}}))),n.createElement("p",{className:"text-center text-lg md:text-xl md:max-w-[85%] mx-auto"},n.createElement("b",null,"Visualization on the benchmark.")," We provide results for ten tasks and E2E planning through videos and corresponding QA pairs.")),n.createElement(k,null,n.createElement("h3",{id:"language-guided",className:"!mt-4"},"Results"),n.createElement("img",{src:h,alt:"Description of the image"}),n.createElement("p",null," ",n.createElement("b",null,"Comparison to State-of-the-arts. "),"All methods are fine-tuned on the corresponding tasks. The main metrics (%) are marked in gray. Bold emphasizes top method; underline marks the runner-up. C: CIDEr; R: ROUGE-L; B: BLEU."),n.createElement("h2",{id:"citation",className:"border-b-[1px]"},"Citation"),n.createElement("div",{className:"relative overflow-auto"},n.createElement("pre",{className:"bg-gradient-to-r from-pink-100 via-indigo-100 to-emerald-100 !my-0"},n.createElement("code",{id:"citation-bib",className:"font-medium text-slate-800"},"@article{zhou2024embodied,\n title={Embodied Understanding of Driving Scenarios},\n author={Zhou, Yunsong and Huang, Linyan and Bu, Qingwen and Zeng, Jia and Li, Tianyu and Qiu, Hang and Zhu, Hongzi and Guo, Minyi and Qiao, Yu and Li, Hongyang},\n journal={arXiv preprint arXiv:2403.04593},\n year={2024}\n}")),n.createElement("div",{className:"absolute top-0 right-0"},n.createElement("button",{className:"float-right text-2xl text-indigo-500 bg-white hover:bg-slate-50 hover:text-indigo-600 hover:transition-all rounded-full p-2 m-3 invisible md:visible",onClick:()=>{let e=document.getElementById("citation-bib"),t=document.createRange(),i=window.getSelection();null!=e&&null!=t&&null!=i&&(t.selectNode(e),i.removeAllRanges(),i.addRange(t))}},n.createElement(a.DV2,null))))),n.createElement("footer",{className:"flex flex-col justify-center bg-gray-50 mt-8 py-8"},n.createElement("div",{className:"flex justify-center align-middle text-lg"},n.createElement("a",{role:"button",className:"text-blue-500",onClick:()=>{window.scrollTo({top:0,behavior:"smooth"})}},n.createElement("span",{className:"align-text-top inline-flex justify-center mr-0.25"},n.createElement(r.ZTc,null)," "),n.createElement("span",null,"Back to Top"))))))},4405:function(e,t,i){"use strict";i.d(t,{w_:function(){return c}});var n=i(7294),r={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},o=n.createContext&&n.createContext(r),a=function(){return a=Object.assign||function(e){for(var t,i=1,n=arguments.length;iMath.abs(o)))return;var l=a.populateSlidesOnMouseTouchMove(this.state,this.props,this.initialX,this.lastX,i,this.transformPlaceHolder),c=l.direction,u=l.nextPosition,d=l.canContinue;c&&(this.direction=c,d&&void 0!==u&&this.setTransformDirectly(u)),this.lastX=i}}},t.prototype.handleOut=function(e){this.props.autoPlay&&!this.autoPlay&&(this.autoPlay=setInterval(this.next,this.props.autoPlaySpeed));var t="touchend"===e.type&&!this.props.swipeable,i=("mouseleave"===e.type||"mouseup"===e.type)&&!this.props.draggable;if(!t&&!i&&this.onMove){if(this.setAnimationDirectly(!0),"right"===this.direction)if(this.initialX-this.lastX>=this.props.minimumTouchDrag){var n=Math.round((this.initialX-this.lastX)/this.state.itemWidth);this.next(n)}else this.correctItemsPosition(this.state.itemWidth,!0,!0);"left"===this.direction&&(this.lastX-this.initialX>this.props.minimumTouchDrag?(n=Math.round((this.lastX-this.initialX)/this.state.itemWidth),this.previous(n)):this.correctItemsPosition(this.state.itemWidth,!0,!0)),this.resetMoveStatus()}},t.prototype.isInViewport=function(e){var t=e.getBoundingClientRect(),i=t.top,n=void 0===i?0:i,r=t.left,o=void 0===r?0:r,a=t.bottom,s=void 0===a?0:a,l=t.right,c=void 0===l?0:l;return 0<=n&&0<=o&&s<=(window.innerHeight||document.documentElement.clientHeight)&&c<=(window.innerWidth||document.documentElement.clientWidth)},t.prototype.isChildOfCarousel=function(e){return!!(e instanceof Element&&this.listRef&&this.listRef.current)&&this.listRef.current.contains(e)},t.prototype.onKeyUp=function(e){var t=e.target;switch(e.keyCode){case 37:if(this.isChildOfCarousel(t))return this.previous();break;case 39:if(this.isChildOfCarousel(t))return this.next();break;case 9:if(this.isChildOfCarousel(t)&&t instanceof HTMLInputElement&&this.isInViewport(t))return this.next()}},t.prototype.handleEnter=function(e){s.isMouseMoveEvent(e)&&this.autoPlay&&this.props.autoPlay&&this.props.pauseOnHover&&(clearInterval(this.autoPlay),this.autoPlay=void 0)},t.prototype.goToSlide=function(e,i,n){var r=this;if(void 0===n&&(n=!0),!this.isInThrottle){var o=this.state.itemWidth,a=this.props,s=a.afterChange,l=a.beforeChange,c=this.state.currentSlide;"function"!=typeof l||i&&("object"!=typeof i||i.skipBeforeChange)||l(e,this.getState()),this.isAnimationAllowed=n,this.props.shouldResetAutoplay&&this.resetAutoplayInterval(),this.setState({currentSlide:e,transform:-o*e},(function(){r.props.infinite&&r.correctClonesPosition({domLoaded:!0}),"function"!=typeof s||i&&("object"!=typeof i||i.skipAfterChange)||(t.afterChangeTimeout3=setTimeout((function(){s(c,r.getState())}),r.props.transitionDuration||h))}))}},t.prototype.getState=function(){return this.state},t.prototype.renderLeftArrow=function(e){var t=this,i=this.props,n=i.customLeftArrow,r=i.rtl;return o.createElement(c.LeftArrow,{customLeftArrow:n,getState:function(){return t.getState()},previous:this.previous,disabled:e,rtl:r})},t.prototype.renderRightArrow=function(e){var t=this,i=this.props,n=i.customRightArrow,r=i.rtl;return o.createElement(c.RightArrow,{customRightArrow:n,getState:function(){return t.getState()},next:this.next,disabled:e,rtl:r})},t.prototype.renderButtonGroups=function(){var e=this,t=this.props.customButtonGroup;return t?o.cloneElement(t,{previous:function(){return e.previous()},next:function(){return e.next()},goToSlide:function(t,i){return e.goToSlide(t,i)},carouselState:this.getState()}):null},t.prototype.renderDotsList=function(){var e=this;return o.createElement(l.default,{state:this.state,props:this.props,goToSlide:this.goToSlide,getState:function(){return e.getState()}})},t.prototype.renderCarouselItems=function(){var e=[];if(this.props.infinite){var t=o.Children.toArray(this.props.children);e=a.getClones(this.state.slidesToShow,t)}return o.createElement(u.default,{clones:e,goToSlide:this.goToSlide,state:this.state,notEnoughChildren:a.notEnoughChildren(this.state),props:this.props})},t.prototype.render=function(){var e=this.props,t=e.deviceType,i=e.arrows,n=e.renderArrowsWhenDisabled,r=e.removeArrowOnDeviceType,s=e.infinite,l=e.containerClass,c=e.sliderClass,u=e.customTransition,h=e.additionalTransfrom,m=e.renderDotsOutside,f=e.renderButtonGroupOutside,g=e.className,v=e.rtl,y=a.getInitialState(this.state,this.props),b=y.shouldRenderOnSSR,E=y.shouldRenderAtAll,w=a.isInLeftEnd(this.state),x=a.isInRightEnd(this.state),S=i&&!(r&&(t&&-12*n?e+2*n:r>=i.length?i.length+e:e},t.getOriginalIndexLookupTableByClones=function(e,t){if(t.length>2*e){for(var i={},n=t.length-2*e,r=t.length-n,o=n,a=0;a2*e?t.slice(t.length-2*e,t.length).concat(t,t.slice(0,2*e)):t.concat(t,t)},t.getInitialSlideInInfiniteMode=function(e,t){return t.length>2*e?2*e:t.length},t.checkClonesPosition=function(e,t,i){var n,r=e.currentSlide,o=e.slidesToShow,a=e.itemWidth,s=e.totalItems,l=0,c=0,u=0===r,d=t.length-(t.length-2*o);return t.length2*o?((n=r>=d+t.length)&&(c=-a*(l=r-t.length)),u&&(c=-a*(l=d+(t.length-2*o)))):((n=r>=2*t.length)&&(c=-a*(l=r-t.length)),u&&(c=i.showDots?-a*(l=t.length):-a*(l=s/3))),{isReachingTheEnd:n,isReachingTheStart:u,nextSlide:l,nextPosition:c}}},3989:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(6867);function r(e){var t=e.slidesToShow;return e.totalItems=o&&window.innerWidth<=r&&(l=n)})),l}},4949:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(3905),r=i(3989);t.getLookupTableForNextSlides=function(e,t,i,o){var a={},s=r.getSlidesToSlide(t,i);return Array(e).fill(0).forEach((function(e,i){var r=n.getOriginalCounterPart(i,t,o);if(0===i)a[0]=r;else{var l=a[i-1]+s;a[i]=l}})),a}},6867:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.getPartialVisibilityGutter=function(e,t,i,n){var r=0,o=n||i;return t&&o&&(r=e[o].partialVisibilityGutter||e[o].paritialVisibilityGutter),r},t.getWidthFromDeviceType=function(e,t){var i;return t[e]&&(i=(100/t[e].items).toFixed(1)),i},t.getItemClientSideWidth=function(e,t,i){return Math.round(i/(t+(e.centerMode?1:0)))}},8035:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(3905);t.getOriginalCounterPart=n.getOriginalCounterPart,t.getClones=n.getClones,t.checkClonesPosition=n.checkClonesPosition,t.getInitialSlideInInfiniteMode=n.getInitialSlideInInfiniteMode;var r=i(6867);t.getWidthFromDeviceType=r.getWidthFromDeviceType,t.getPartialVisibilityGutter=r.getPartialVisibilityGutter,t.getItemClientSideWidth=r.getItemClientSideWidth;var o=i(3989);t.getInitialState=o.getInitialState,t.getIfSlideIsVisbile=o.getIfSlideIsVisbile,t.getTransformForCenterMode=o.getTransformForCenterMode,t.getTransformForPartialVsibile=o.getTransformForPartialVsibile,t.isInLeftEnd=o.isInLeftEnd,t.isInRightEnd=o.isInRightEnd,t.notEnoughChildren=o.notEnoughChildren,t.getSlidesToSlide=o.getSlidesToSlide;var a=i(9950);t.throttle=a.default;var s=i(4802);t.throwError=s.default;var l=i(2558);t.populateNextSlides=l.populateNextSlides;var c=i(5210);t.populatePreviousSlides=c.populatePreviousSlides;var u=i(1097);t.populateSlidesOnMouseTouchMove=u.populateSlidesOnMouseTouchMove},1097:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.populateSlidesOnMouseTouchMove=function(e,t,i,n,r,o){var a,s,l=e.itemWidth,c=e.slidesToShow,u=e.totalItems,d=e.currentSlide,h=t.infinite,p=!1,m=Math.round((i-n)/l),f=Math.round((n-i)/l),g=i {\n // Paper title\n return (\n

{children}

\n )\n}\n\nconst Venue: React.FC = ({website, children}) => {\n return (\n \n )\n}\n\nconst Abstract: React.FC = ({children}) => {\n return (\n
\n
\n

Abstract

\n
\n
\n

{\n children\n }

\n
\n
\n )\n}\n\nconst Author: React.FC = ({children, website, firstAuthor, affiliations, lastAuthor}) => {\n return (\n \n \n {children}\n \n {firstAuthor || affiliations ?\n {firstAuthor ?\n * : null}{affiliations ? affiliations : null}\n : null}\n {lastAuthor ? null : <>, }\n \n )\n}\n\nconst Affiliation: React.FC = ({children, website, number}) => {\n return (\n \n {number}\n \n {children}\n \n \n )\n}\n\nconst ActionLink: React.FC = ({children, url, icon}) => {\n return (\n \n \n {icon} \n {children}\n \n \n )\n}\n\nconst Article: React.FC = ({children}) => {\n return (\n \n {children}\n \n )\n}\n\nconst Main: React.FC = ({children}) => {\n return (\n
\n {children}\n
\n )\n}\n\n\nconst FewShotResult: React.FC = ({children, id, demos, demos_label, video, hidden}) => {\n // Result for Few-Shot Manipulation with Demos on left, and video on right\n return (\n // add hidden if hide is true\n
\n
\n

{children}

\n {children}\n

{demos_label}

\n
\n
\n \n
\n
\n )\n}\n\n\nexport const Head: HeadFC = () => Distilled Feature Fields Enable Few-Shot Language-Guided Manipulation\n\nconst carouselResponsive = {\n desktop: {\n breakpoint: {max: 3000, min: 1024},\n items: 3,\n },\n tablet: {\n breakpoint: {max: 1024, min: 464},\n items: 2,\n },\n mobile: {\n breakpoint: {max: 464, min: 0},\n items: 1,\n }\n};\n\n\nconst CarouselItem: React.FC = ({children, video}) => {\n return (\n
\n \n {/*

{children}

*/}\n
\n )\n}\n\nconst IndexPage: React.FC = () => {\n return (\n <>\n
\n
\n \n <span className=\"font-extrabold text-transparent bg-clip-text\n bg-gradient-to-r from-pink-500 via-indigo-600 to-emerald-400\">\n ELM:\n </span>\n  \n <span className=\"text-stone-800\">Embodied Understanding of Driving Scenarios</span>\n \n\n \n ECCV 2024\n \n\n {/* Authors */}\n
\n Yunsong Zhou\n Linyan Huang\n Qingwen Bu\n Jia Zeng\n Tianyu Li
\n Hang Qiu\n Hongzi Zhu\n Minyi Guo\n Yu Qiao\n Hongyang Li\n
\n\n {/* Affilations */}\n
\n OpenDriveLab at Shanghai AI Lab\n Shanghai Jiao Tong University\n University of California, Riverside\n
\n
\n *Indicates equal contribution.\n
\n\n {/* Action Links */}\n

\n }>Paper\n }>Code\n

\n\n \"teaser\"\n
\n

\n ELM is an embodied language model for understanding the long-horizon driving scenarios in space and time. \n Compared to the vanilla vision-language model (VLM) being confined to the scene description task, we expand a wide spectrum of new tasks to fully leverage the capability of large language models in an embodiment setting.\n ELM achieves significant improvements in various applications.\n

\n
\n\n
\n\n {/* Abstract */}\n
\n \n

\n \n Embodied scene understanding serves as the cornerstone for autonomous agents to perceive, interpret, and respond to open driving scenarios. Such understanding is typically founded upon Vision-Language Models (VLMs). \n Nevertheless, existing VLMs are restricted to the 2D domain, devoid of spatial awareness and long-horizon extrapolation proficiencies. We revisit the key aspects of autonomous driving and formulate appropriate rubrics. \n Hereby, we introduce the Embodied Language Model (ELM), a comprehensive framework tailored for agents' understanding of driving scenes with large spatial and temporal spans. \n ELM incorporates space-aware pre-training to endow the agent with robust spatial localization capabilities. \n Besides, the model employs time-aware token selection to accurately inquire about temporal cues. \n We instantiate ELM on the reformulated multi-faced benchmark, and it surpasses previous state-of-the-art approaches in all aspects.\n \n

\n
\n \n\n
\n\n {/* model */}\n

Methodology

\n

Model Overview

\n \"Description\n

Systematic Pipeline of ELM. It consists of Pre-training by open-world data corpus and Fine-tuning on diverse tasks. \n To initialize the Space-aware Pre-training, we collect extensive image-text pairs from the world, empowering ELM with spatial localization while preserving the description ability in driving scenarios. \n In the fine-tuning process, the inputs to ELM are videos, timestamps, and text prompts. \n After encoding the inputs into tokens, ELM leverages the proposed Time-aware Token Selection to gather the appropriate tokens as instructed by prompts. \n Finally, the tokens are sent to the language model to generate output texts.

\n\n

Space-aware Pre-training

\n \"Description\n

Annotation workflow with human quality check in the loop. \n For location labeling: we first select diverse templates from the GPT generated candidates.\n Pixel-point pairs as annotated in the nuScenes are then sampled and filled into the templates to form our location pre-training data. \n For description labeling: Node 4 utilizes LLaMA-Adapter V2 to obtain diverse labels on nuScenes, Waymo, YouTube, and Ego4D with predefined prompts. \n Two rounds of quality check are conducted in Node 3 and 7 by inspectors to guarantee the image and caption quality.

\n \n \"Description\n

Statistics of pre-training data and comparison of data collection with other VLMs. \n Our pre-train data surpasses that in general vision (top) and autonomous driving (middle) in terms of quantity and diversity. \n Anno: the type of annotations; Des: description; Loc: localization.

\n\n {/* results */}\n

Experiments

\n
\n\n
\n {/* */}\n
\n \n \"Description\n \"Description\n \n \n \"Description\n \"Description\n \"Description\n \"Description\n \"Description\n \"Description\n \"Description\n \"Description\n \"Description\n \n
\n

\n Visualization on the benchmark. We provide results for ten tasks and E2E planning through videos and corresponding QA pairs.\n

\n {/*
*/}\n \n
\n \n

Results

\n \"Description\n

Comparison to State-of-the-arts. \n All methods are fine-tuned on the corresponding tasks. The main metrics (%) are marked in gray. \n Bold emphasizes top method; underline marks the runner-up. C: CIDEr; R: ROUGE-L; B: BLEU.

\n\n\n \n\n \n\n

Citation

\n
\n
\n                            {\n                                `@article{zhou2024embodied,\n    title={Embodied Understanding of Driving Scenarios},\n    author={Zhou, Yunsong and Huang, Linyan and Bu, Qingwen and Zeng, Jia and Li, Tianyu and Qiu, Hang and Zhu, Hongzi and Guo, Minyi and Qiao, Yu and Li, Hongyang},\n    journal={arXiv preprint arXiv:2403.04593},\n    year={2024}\n}`}\n                            \n                        
\n
\n \n
\n
\n
\n\n \n
\n \n )\n}\n\nexport default IndexPage\n","export var IconsManifest = [\n {\n \"id\": \"ci\",\n \"name\": \"Circum Icons\",\n \"projectUrl\": \"https://circumicons.com/\",\n \"license\": \"MPL-2.0 license\",\n \"licenseUrl\": \"https://github.com/Klarr-Agency/Circum-Icons/blob/main/LICENSE\"\n },\n {\n \"id\": \"fa\",\n \"name\": \"Font Awesome 5\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"fa6\",\n \"name\": \"Font Awesome 6\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"io\",\n \"name\": \"Ionicons 4\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"io5\",\n \"name\": \"Ionicons 5\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"md\",\n \"name\": \"Material Design icons\",\n \"projectUrl\": \"http://google.github.io/material-design-icons/\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"https://github.com/google/material-design-icons/blob/master/LICENSE\"\n },\n {\n \"id\": \"ti\",\n \"name\": \"Typicons\",\n \"projectUrl\": \"http://s-ings.com/typicons/\",\n \"license\": \"CC BY-SA 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by-sa/3.0/\"\n },\n {\n \"id\": \"go\",\n \"name\": \"Github Octicons icons\",\n \"projectUrl\": \"https://octicons.github.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/primer/octicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"fi\",\n \"name\": \"Feather\",\n \"projectUrl\": \"https://feathericons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/feathericons/feather/blob/master/LICENSE\"\n },\n {\n \"id\": \"lu\",\n \"name\": \"Lucide\",\n \"projectUrl\": \"https://lucide.dev/\",\n \"license\": \"ISC\",\n \"licenseUrl\": \"https://github.com/lucide-icons/lucide/blob/main/LICENSE\"\n },\n {\n \"id\": \"gi\",\n \"name\": \"Game Icons\",\n \"projectUrl\": \"https://game-icons.net/\",\n \"license\": \"CC BY 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/3.0/\"\n },\n {\n \"id\": \"wi\",\n \"name\": \"Weather Icons\",\n \"projectUrl\": \"https://erikflowers.github.io/weather-icons/\",\n \"license\": \"SIL OFL 1.1\",\n \"licenseUrl\": \"http://scripts.sil.org/OFL\"\n },\n {\n \"id\": \"di\",\n \"name\": \"Devicons\",\n \"projectUrl\": \"https://vorillaz.github.io/devicons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ai\",\n \"name\": \"Ant Design Icons\",\n \"projectUrl\": \"https://github.com/ant-design/ant-design-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"bs\",\n \"name\": \"Bootstrap Icons\",\n \"projectUrl\": \"https://github.com/twbs/icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ri\",\n \"name\": \"Remix Icon\",\n \"projectUrl\": \"https://github.com/Remix-Design/RemixIcon\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"fc\",\n \"name\": \"Flat Color Icons\",\n \"projectUrl\": \"https://github.com/icons8/flat-color-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"gr\",\n \"name\": \"Grommet-Icons\",\n \"projectUrl\": \"https://github.com/grommet/grommet-icons\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"hi\",\n \"name\": \"Heroicons\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"hi2\",\n \"name\": \"Heroicons 2\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"si\",\n \"name\": \"Simple Icons\",\n \"projectUrl\": \"https://simpleicons.org/\",\n \"license\": \"CC0 1.0 Universal\",\n \"licenseUrl\": \"https://creativecommons.org/publicdomain/zero/1.0/\"\n },\n {\n \"id\": \"sl\",\n \"name\": \"Simple Line Icons\",\n \"projectUrl\": \"https://thesabbir.github.io/simple-line-icons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"im\",\n \"name\": \"IcoMoon Free\",\n \"projectUrl\": \"https://github.com/Keyamoon/IcoMoon-Free\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://github.com/Keyamoon/IcoMoon-Free/blob/master/License.txt\"\n },\n {\n \"id\": \"bi\",\n \"name\": \"BoxIcons\",\n \"projectUrl\": \"https://github.com/atisawd/boxicons\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://github.com/atisawd/boxicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"cg\",\n \"name\": \"css.gg\",\n \"projectUrl\": \"https://github.com/astrit/css.gg\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"vsc\",\n \"name\": \"VS Code Icons\",\n \"projectUrl\": \"https://github.com/microsoft/vscode-codicons\",\n \"license\": \"CC BY 4.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"tb\",\n \"name\": \"Tabler Icons\",\n \"projectUrl\": \"https://github.com/tabler/tabler-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"tfi\",\n \"name\": \"Themify Icons\",\n \"projectUrl\": \"https://github.com/lykmapipo/themify-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/thecreation/standard-icons/blob/master/modules/themify-icons/LICENSE\"\n },\n {\n \"id\": \"rx\",\n \"name\": \"Radix Icons\",\n \"projectUrl\": \"https://icons.radix-ui.com\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/radix-ui/icons/blob/master/LICENSE\"\n },\n {\n \"id\": \"pi\",\n \"name\": \"Phosphor Icons\",\n \"projectUrl\": \"https://github.com/phosphor-icons/core\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/phosphor-icons/core/blob/main/LICENSE\"\n },\n {\n \"id\": \"lia\",\n \"name\": \"Icons8 Line Awesome\",\n \"projectUrl\": \"https://icons8.com/line-awesome\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/icons8/line-awesome/blob/master/LICENSE.md\"\n }\n]","import React from \"react\";\nexport var DefaultContext = {\n color: undefined,\n size: undefined,\n className: undefined,\n style: undefined,\n attr: undefined\n};\nexport var IconContext = React.createContext && React.createContext(DefaultContext);","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from \"react\";\nimport { IconContext, DefaultContext } from \"./iconContext\";\nfunction Tree2Element(tree) {\n return tree && tree.map(function (node, i) {\n return React.createElement(node.tag, __assign({\n key: i\n }, node.attr), Tree2Element(node.child));\n });\n}\nexport function GenIcon(data) {\n // eslint-disable-next-line react/display-name\n return function (props) {\n return React.createElement(IconBase, __assign({\n attr: __assign({}, data.attr)\n }, props), Tree2Element(data.child));\n };\n}\nexport function IconBase(props) {\n var elem = function (conf) {\n var attr = props.attr,\n size = props.size,\n title = props.title,\n svgProps = __rest(props, [\"attr\", \"size\", \"title\"]);\n var computedSize = size || conf.size || \"1em\";\n var className;\n if (conf.className) className = conf.className;\n if (props.className) className = (className ? className + \" \" : \"\") + props.className;\n return React.createElement(\"svg\", __assign({\n stroke: \"currentColor\",\n fill: \"currentColor\",\n strokeWidth: \"0\"\n }, conf.attr, attr, svgProps, {\n className: className,\n style: __assign(__assign({\n color: props.color || conf.color\n }, conf.style), props.style),\n height: computedSize,\n width: computedSize,\n xmlns: \"http://www.w3.org/2000/svg\"\n }), title && React.createElement(\"title\", null, title), props.children);\n };\n return IconContext !== undefined ? React.createElement(IconContext.Consumer, null, function (conf) {\n return elem(conf);\n }) : elem(DefaultContext);\n}","module.exports = require('./lib');\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var React=require(\"react\"),LeftArrow=function(_a){var customLeftArrow=_a.customLeftArrow,getState=_a.getState,previous=_a.previous,disabled=_a.disabled,rtl=_a.rtl;if(customLeftArrow)return React.cloneElement(customLeftArrow,{onClick:function(){return previous()},carouselState:getState(),disabled:disabled,rtl:rtl});var rtlClassName=rtl?\"rtl\":\"\";return React.createElement(\"button\",{\"aria-label\":\"Go to previous slide\",className:\"react-multiple-carousel__arrow react-multiple-carousel__arrow--left \"+rtlClassName,onClick:function(){return previous()},type:\"button\",disabled:disabled})};exports.LeftArrow=LeftArrow;var RightArrow=function(_a){var customRightArrow=_a.customRightArrow,getState=_a.getState,next=_a.next,disabled=_a.disabled,rtl=_a.rtl;if(customRightArrow)return React.cloneElement(customRightArrow,{onClick:function(){return next()},carouselState:getState(),disabled:disabled,rtl:rtl});var rtlClassName=rtl?\"rtl\":\"\";return React.createElement(\"button\",{\"aria-label\":\"Go to next slide\",className:\"react-multiple-carousel__arrow react-multiple-carousel__arrow--right \"+rtlClassName,onClick:function(){return next()},type:\"button\",disabled:disabled})};exports.RightArrow=RightArrow;","\"use strict\";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){return(extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)b.hasOwnProperty(p)&&(d[p]=b[p])})(d,b)};return function(d,b){function __(){this.constructor=d}extendStatics(d,b),d.prototype=null===b?Object.create(b):(__.prototype=b.prototype,new __)}}();Object.defineProperty(exports,\"__esModule\",{value:!0});var React=require(\"react\"),utils_1=require(\"./utils\"),types_1=require(\"./types\"),Dots_1=require(\"./Dots\"),Arrows_1=require(\"./Arrows\"),CarouselItems_1=require(\"./CarouselItems\"),common_1=require(\"./utils/common\"),defaultTransitionDuration=400,defaultTransition=\"transform 400ms ease-in-out\",Carousel=function(_super){function Carousel(props){var _this=_super.call(this,props)||this;return _this.containerRef=React.createRef(),_this.listRef=React.createRef(),_this.state={itemWidth:0,slidesToShow:0,currentSlide:0,totalItems:React.Children.count(props.children),deviceType:\"\",domLoaded:!1,transform:0,containerWidth:0},_this.onResize=_this.onResize.bind(_this),_this.handleDown=_this.handleDown.bind(_this),_this.handleMove=_this.handleMove.bind(_this),_this.handleOut=_this.handleOut.bind(_this),_this.onKeyUp=_this.onKeyUp.bind(_this),_this.handleEnter=_this.handleEnter.bind(_this),_this.setIsInThrottle=_this.setIsInThrottle.bind(_this),_this.next=utils_1.throttle(_this.next.bind(_this),props.transitionDuration||defaultTransitionDuration,_this.setIsInThrottle),_this.previous=utils_1.throttle(_this.previous.bind(_this),props.transitionDuration||defaultTransitionDuration,_this.setIsInThrottle),_this.goToSlide=utils_1.throttle(_this.goToSlide.bind(_this),props.transitionDuration||defaultTransitionDuration,_this.setIsInThrottle),_this.onMove=!1,_this.initialX=0,_this.lastX=0,_this.isAnimationAllowed=!1,_this.direction=\"\",_this.initialY=0,_this.isInThrottle=!1,_this.transformPlaceHolder=0,_this}return __extends(Carousel,_super),Carousel.prototype.resetTotalItems=function(){var _this=this,totalItems=React.Children.count(this.props.children),currentSlide=utils_1.notEnoughChildren(this.state)?0:Math.max(0,Math.min(this.state.currentSlide,totalItems));this.setState({totalItems:totalItems,currentSlide:currentSlide},function(){_this.setContainerAndItemWidth(_this.state.slidesToShow,!0)})},Carousel.prototype.setIsInThrottle=function(isInThrottle){void 0===isInThrottle&&(isInThrottle=!1),this.isInThrottle=isInThrottle},Carousel.prototype.setTransformDirectly=function(position,withAnimation){var additionalTransfrom=this.props.additionalTransfrom;this.transformPlaceHolder=position;var currentTransform=common_1.getTransform(this.state,this.props,this.transformPlaceHolder);this.listRef&&this.listRef.current&&(this.setAnimationDirectly(withAnimation),this.listRef.current.style.transform=\"translate3d(\"+(currentTransform+additionalTransfrom)+\"px,0,0)\")},Carousel.prototype.setAnimationDirectly=function(animationAllowed){this.listRef&&this.listRef.current&&(this.listRef.current.style.transition=animationAllowed?this.props.customTransition||defaultTransition:\"none\")},Carousel.prototype.componentDidMount=function(){this.setState({domLoaded:!0}),this.setItemsToShow(),window.addEventListener(\"resize\",this.onResize),this.onResize(!0),this.props.keyBoardControl&&window.addEventListener(\"keyup\",this.onKeyUp),this.props.autoPlay&&(this.autoPlay=setInterval(this.next,this.props.autoPlaySpeed))},Carousel.prototype.setClones=function(slidesToShow,itemWidth,forResizing,resetCurrentSlide){var _this=this;void 0===resetCurrentSlide&&(resetCurrentSlide=!1),this.isAnimationAllowed=!1;var childrenArr=React.Children.toArray(this.props.children),initialSlide=utils_1.getInitialSlideInInfiniteMode(slidesToShow||this.state.slidesToShow,childrenArr),clones=utils_1.getClones(this.state.slidesToShow,childrenArr),currentSlide=childrenArr.lengthMath.abs(diffY)))return;var _b=utils_1.populateSlidesOnMouseTouchMove(this.state,this.props,this.initialX,this.lastX,clientX,this.transformPlaceHolder),direction=_b.direction,nextPosition=_b.nextPosition,canContinue=_b.canContinue;direction&&(this.direction=direction,canContinue&&void 0!==nextPosition&&this.setTransformDirectly(nextPosition)),this.lastX=clientX}}},Carousel.prototype.handleOut=function(e){this.props.autoPlay&&!this.autoPlay&&(this.autoPlay=setInterval(this.next,this.props.autoPlaySpeed));var shouldDisableOnMobile=\"touchend\"===e.type&&!this.props.swipeable,shouldDisableOnDesktop=(\"mouseleave\"===e.type||\"mouseup\"===e.type)&&!this.props.draggable;if(!shouldDisableOnMobile&&!shouldDisableOnDesktop&&this.onMove){if(this.setAnimationDirectly(!0),\"right\"===this.direction)if(this.initialX-this.lastX>=this.props.minimumTouchDrag){var slidesHavePassed=Math.round((this.initialX-this.lastX)/this.state.itemWidth);this.next(slidesHavePassed)}else this.correctItemsPosition(this.state.itemWidth,!0,!0);if(\"left\"===this.direction)if(this.lastX-this.initialX>this.props.minimumTouchDrag){slidesHavePassed=Math.round((this.lastX-this.initialX)/this.state.itemWidth);this.previous(slidesHavePassed)}else this.correctItemsPosition(this.state.itemWidth,!0,!0);this.resetMoveStatus()}},Carousel.prototype.isInViewport=function(el){var _a=el.getBoundingClientRect(),_b=_a.top,top=void 0===_b?0:_b,_c=_a.left,left=void 0===_c?0:_c,_d=_a.bottom,bottom=void 0===_d?0:_d,_e=_a.right,right=void 0===_e?0:_e;return 0<=top&&0<=left&&bottom<=(window.innerHeight||document.documentElement.clientHeight)&&right<=(window.innerWidth||document.documentElement.clientWidth)},Carousel.prototype.isChildOfCarousel=function(el){return!!(el instanceof Element&&this.listRef&&this.listRef.current)&&this.listRef.current.contains(el)},Carousel.prototype.onKeyUp=function(e){var target=e.target;switch(e.keyCode){case 37:if(this.isChildOfCarousel(target))return this.previous();break;case 39:if(this.isChildOfCarousel(target))return this.next();break;case 9:if(this.isChildOfCarousel(target)&&target instanceof HTMLInputElement&&this.isInViewport(target))return this.next()}},Carousel.prototype.handleEnter=function(e){types_1.isMouseMoveEvent(e)&&this.autoPlay&&this.props.autoPlay&&this.props.pauseOnHover&&(clearInterval(this.autoPlay),this.autoPlay=void 0)},Carousel.prototype.goToSlide=function(slide,skipCallbacks,animationAllowed){var _this=this;if(void 0===animationAllowed&&(animationAllowed=!0),!this.isInThrottle){var itemWidth=this.state.itemWidth,_a=this.props,afterChange=_a.afterChange,beforeChange=_a.beforeChange,previousSlide=this.state.currentSlide;\"function\"!=typeof beforeChange||skipCallbacks&&(\"object\"!=typeof skipCallbacks||skipCallbacks.skipBeforeChange)||beforeChange(slide,this.getState()),this.isAnimationAllowed=animationAllowed,this.props.shouldResetAutoplay&&this.resetAutoplayInterval(),this.setState({currentSlide:slide,transform:-itemWidth*slide},function(){_this.props.infinite&&_this.correctClonesPosition({domLoaded:!0}),\"function\"!=typeof afterChange||skipCallbacks&&(\"object\"!=typeof skipCallbacks||skipCallbacks.skipAfterChange)||(Carousel.afterChangeTimeout3=setTimeout(function(){afterChange(previousSlide,_this.getState())},_this.props.transitionDuration||defaultTransitionDuration))})}},Carousel.prototype.getState=function(){return this.state},Carousel.prototype.renderLeftArrow=function(disbaled){var _this=this,_a=this.props,customLeftArrow=_a.customLeftArrow,rtl=_a.rtl;return React.createElement(Arrows_1.LeftArrow,{customLeftArrow:customLeftArrow,getState:function(){return _this.getState()},previous:this.previous,disabled:disbaled,rtl:rtl})},Carousel.prototype.renderRightArrow=function(disbaled){var _this=this,_a=this.props,customRightArrow=_a.customRightArrow,rtl=_a.rtl;return React.createElement(Arrows_1.RightArrow,{customRightArrow:customRightArrow,getState:function(){return _this.getState()},next:this.next,disabled:disbaled,rtl:rtl})},Carousel.prototype.renderButtonGroups=function(){var _this=this,customButtonGroup=this.props.customButtonGroup;return customButtonGroup?React.cloneElement(customButtonGroup,{previous:function(){return _this.previous()},next:function(){return _this.next()},goToSlide:function(slideIndex,skipCallbacks){return _this.goToSlide(slideIndex,skipCallbacks)},carouselState:this.getState()}):null},Carousel.prototype.renderDotsList=function(){var _this=this;return React.createElement(Dots_1.default,{state:this.state,props:this.props,goToSlide:this.goToSlide,getState:function(){return _this.getState()}})},Carousel.prototype.renderCarouselItems=function(){var clones=[];if(this.props.infinite){var childrenArr=React.Children.toArray(this.props.children);clones=utils_1.getClones(this.state.slidesToShow,childrenArr)}return React.createElement(CarouselItems_1.default,{clones:clones,goToSlide:this.goToSlide,state:this.state,notEnoughChildren:utils_1.notEnoughChildren(this.state),props:this.props})},Carousel.prototype.render=function(){var _a=this.props,deviceType=_a.deviceType,arrows=_a.arrows,renderArrowsWhenDisabled=_a.renderArrowsWhenDisabled,removeArrowOnDeviceType=_a.removeArrowOnDeviceType,infinite=_a.infinite,containerClass=_a.containerClass,sliderClass=_a.sliderClass,customTransition=_a.customTransition,additionalTransfrom=_a.additionalTransfrom,renderDotsOutside=_a.renderDotsOutside,renderButtonGroupOutside=_a.renderButtonGroupOutside,className=_a.className,rtl=_a.rtl;\"production\"!==process.env.NODE_ENV&&utils_1.throwError(this.state,this.props);var _b=utils_1.getInitialState(this.state,this.props),shouldRenderOnSSR=_b.shouldRenderOnSSR,shouldRenderAtAll=_b.shouldRenderAtAll,isLeftEndReach=utils_1.isInLeftEnd(this.state),isRightEndReach=utils_1.isInRightEnd(this.state),shouldShowArrows=arrows&&!(removeArrowOnDeviceType&&(deviceType&&-12*slidesToShow?index+2*slidesToShow:currentSlide>=childrenArr.length?childrenArr.length+index:index}function getOriginalIndexLookupTableByClones(slidesToShow,childrenArr){if(childrenArr.length>2*slidesToShow){for(var table={},firstBeginningOfClones=childrenArr.length-2*slidesToShow,firstEndOfClones=childrenArr.length-firstBeginningOfClones,firstCount=firstBeginningOfClones,i=0;i2*slidesToShow?childrenArr.slice(childrenArr.length-2*slidesToShow,childrenArr.length).concat(childrenArr,childrenArr.slice(0,2*slidesToShow)):childrenArr.concat(childrenArr,childrenArr)}function getInitialSlideInInfiniteMode(slidesToShow,childrenArr){return childrenArr.length>2*slidesToShow?2*slidesToShow:childrenArr.length}function checkClonesPosition(_a,childrenArr,props){var isReachingTheEnd,currentSlide=_a.currentSlide,slidesToShow=_a.slidesToShow,itemWidth=_a.itemWidth,totalItems=_a.totalItems,nextSlide=0,nextPosition=0,isReachingTheStart=0===currentSlide,originalFirstSlide=childrenArr.length-(childrenArr.length-2*slidesToShow);return childrenArr.length2*slidesToShow?((isReachingTheEnd=currentSlide>=originalFirstSlide+childrenArr.length)&&(nextPosition=-itemWidth*(nextSlide=currentSlide-childrenArr.length)),isReachingTheStart&&(nextPosition=-itemWidth*(nextSlide=originalFirstSlide+(childrenArr.length-2*slidesToShow)))):((isReachingTheEnd=currentSlide>=2*childrenArr.length)&&(nextPosition=-itemWidth*(nextSlide=currentSlide-childrenArr.length)),isReachingTheStart&&(nextPosition=props.showDots?-itemWidth*(nextSlide=childrenArr.length):-itemWidth*(nextSlide=totalItems/3))),{isReachingTheEnd:isReachingTheEnd,isReachingTheStart:isReachingTheStart,nextSlide:nextSlide,nextPosition:nextPosition}}Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.getOriginalCounterPart=getOriginalCounterPart,exports.getOriginalIndexLookupTableByClones=getOriginalIndexLookupTableByClones,exports.getClones=getClones,exports.getInitialSlideInInfiniteMode=getInitialSlideInInfiniteMode,exports.checkClonesPosition=checkClonesPosition;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var elementWidth_1=require(\"./elementWidth\");function notEnoughChildren(state){var slidesToShow=state.slidesToShow;return state.totalItems=min&&window.innerWidth<=max&&(slidesToScroll=slidesToSlide)}),slidesToScroll}exports.notEnoughChildren=notEnoughChildren,exports.getInitialState=getInitialState,exports.getIfSlideIsVisbile=getIfSlideIsVisbile,exports.getTransformForCenterMode=getTransformForCenterMode,exports.isInLeftEnd=isInLeftEnd,exports.isInRightEnd=isInRightEnd,exports.getTransformForPartialVsibile=getTransformForPartialVsibile,exports.parsePosition=parsePosition,exports.getTransform=getTransform,exports.getSlidesToSlide=getSlidesToSlide;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var clones_1=require(\"./clones\"),common_1=require(\"./common\");function getLookupTableForNextSlides(numberOfDotsToShow,state,props,childrenArr){var table={},slidesToSlide=common_1.getSlidesToSlide(state,props);return Array(numberOfDotsToShow).fill(0).forEach(function(_,i){var nextSlide=clones_1.getOriginalCounterPart(i,state,childrenArr);if(0===i)table[0]=nextSlide;else{var now=table[i-1]+slidesToSlide;table[i]=now}}),table}exports.getLookupTableForNextSlides=getLookupTableForNextSlides;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var hasWarnAboutTypo=!1;function getPartialVisibilityGutter(responsive,partialVisible,serverSideDeviceType,clientSideDeviceType){var gutter=0,deviceType=clientSideDeviceType||serverSideDeviceType;return partialVisible&&deviceType&&(!hasWarnAboutTypo&&\"production\"!==process.env.NODE_ENV&&responsive[deviceType].paritialVisibilityGutter&&(hasWarnAboutTypo=!0,console.warn(\"You appear to be using paritialVisibilityGutter instead of partialVisibilityGutter which will be moved to partialVisibilityGutter in the future completely\")),gutter=responsive[deviceType].partialVisibilityGutter||responsive[deviceType].paritialVisibilityGutter),gutter}function getWidthFromDeviceType(deviceType,responsive){var itemWidth;responsive[deviceType]&&(itemWidth=(100/responsive[deviceType].items).toFixed(1));return itemWidth}function getItemClientSideWidth(props,slidesToShow,containerWidth){return Math.round(containerWidth/(slidesToShow+(props.centerMode?1:0)))}exports.getPartialVisibilityGutter=getPartialVisibilityGutter,exports.getWidthFromDeviceType=getWidthFromDeviceType,exports.getItemClientSideWidth=getItemClientSideWidth;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var clones_1=require(\"./clones\");exports.getOriginalCounterPart=clones_1.getOriginalCounterPart,exports.getClones=clones_1.getClones,exports.checkClonesPosition=clones_1.checkClonesPosition,exports.getInitialSlideInInfiniteMode=clones_1.getInitialSlideInInfiniteMode;var elementWidth_1=require(\"./elementWidth\");exports.getWidthFromDeviceType=elementWidth_1.getWidthFromDeviceType,exports.getPartialVisibilityGutter=elementWidth_1.getPartialVisibilityGutter,exports.getItemClientSideWidth=elementWidth_1.getItemClientSideWidth;var common_1=require(\"./common\");exports.getInitialState=common_1.getInitialState,exports.getIfSlideIsVisbile=common_1.getIfSlideIsVisbile,exports.getTransformForCenterMode=common_1.getTransformForCenterMode,exports.getTransformForPartialVsibile=common_1.getTransformForPartialVsibile,exports.isInLeftEnd=common_1.isInLeftEnd,exports.isInRightEnd=common_1.isInRightEnd,exports.notEnoughChildren=common_1.notEnoughChildren,exports.getSlidesToSlide=common_1.getSlidesToSlide;var throttle_1=require(\"./throttle\");exports.throttle=throttle_1.default;var throwError_1=require(\"./throwError\");exports.throwError=throwError_1.default;var next_1=require(\"./next\");exports.populateNextSlides=next_1.populateNextSlides;var previous_1=require(\"./previous\");exports.populatePreviousSlides=previous_1.populatePreviousSlides;var mouseOrTouchMove_1=require(\"./mouseOrTouchMove\");exports.populateSlidesOnMouseTouchMove=mouseOrTouchMove_1.populateSlidesOnMouseTouchMove;","\"use strict\";function populateSlidesOnMouseTouchMove(state,props,initialX,lastX,clientX,transformPlaceHolder){var direction,nextPosition,itemWidth=state.itemWidth,slidesToShow=state.slidesToShow,totalItems=state.totalItems,currentSlide=state.currentSlide,infinite=props.infinite,canContinue=!1,slidesHavePassedRight=Math.round((initialX-lastX)/itemWidth),slidesHavePassedLeft=Math.round((lastX-initialX)/itemWidth),isMovingLeft=initialX{let{children:t}=e;return n.createElement("h1",{className:"pb-1 mb-5 sm:mb-4 sm:leading-tight md:leading-tight lg:leading-tight font-bold text-center"},t)},C=e=>{let{website:t,children:i}=e;return n.createElement("div",{className:"flex flex-wrap justify-center text-2xl lg:text-2xl mb-6 sm:mb-5"},n.createElement("a",{className:"no-underline",href:t,target:"_blank"},i))},I=e=>{let{children:t}=e;return n.createElement("div",null,n.createElement("div",{className:"flex justify-center content-center"},n.createElement("p",{className:"font-semibold text-2xl sm:text-3xl m-1 sm:m-2"},"Abstract")),n.createElement("div",{className:"flex justify-center content-center"},n.createElement("p",{className:"text-justify font-light text-base sm:text-lg m-1 sm:m-1 max-w-[100%] sm:max-w-[620px]"},t)))},M=e=>{let{children:t,website:i,firstAuthor:r,affiliations:o,lastAuthor:a}=e;return n.createElement("span",{className:"text-center inline-block"},n.createElement("a",{href:i,target:"_blank",className:"font-normal no-underline text-stone-600 hover:underline underline-offset-3 hover:transition-all"},t),r||o?n.createElement("sup",{className:"pl-0.5"},r?n.createElement("span",{className:"font-bold"},"*"):null,o||null):null,a?null:n.createElement(n.Fragment,null,", "))},P=e=>{let{children:t,website:i,number:r}=e;return n.createElement("span",{className:"text-center inline-block mr-4"},n.createElement("sup",{className:"mr-0.5"},r),n.createElement("a",{href:i,target:"_blank",className:"font-light no-underline text-stone-600 hover:underline underline-offset-3 hover:transition-all"},t))},A=e=>{let{children:t,url:i,icon:r}=e;return n.createElement("span",{className:"text-center inline-block my-3.5 sm:my-2 mx-2"},n.createElement("a",{href:i,target:i.startsWith("#")?"_self":"_blank",className:"text-xl no-underline font-normal text-[#009cff] bg-[#f9f9f9] hover:bg-[#f4f4f4] hover:transition-all px-4 py-3 rounded-xl"},n.createElement("span",{className:"align-middle inline-flex justify-center mr-0.25"},r," "),n.createElement("span",null,t)))},k=e=>{let{children:t}=e;return n.createElement("div",{className:"mx-auto w-full max-w-[90%] format format-md md:format-base lg:max-w-5xl lg:format-lg format-blue dark:format-invert"},t)},R=e=>{let{children:t}=e;return n.createElement("main",{className:"pt-6 lg:pt-12 bg-white dark:bg-gray-900"},t)},N=()=>n.createElement("title",null,"ELM: Embodied Understanding of Driving Scenarios"),O={desktop:{breakpoint:{max:3e3,min:1024},items:3},tablet:{breakpoint:{max:1024,min:464},items:2},mobile:{breakpoint:{max:464,min:0},items:1}};var L=()=>n.createElement(n.Fragment,null,n.createElement(R,null,n.createElement(k,null,n.createElement(T,null,n.createElement("span",{className:"font-extrabold text-transparent bg-clip-text bg-gradient-to-r from-pink-500 via-indigo-600 to-emerald-400"},"ELM:")," ",n.createElement("span",{className:"text-stone-800"},"Embodied Understanding of Driving Scenarios")),n.createElement(C,{website:"https://eccv.ecva.net/"},n.createElement("span",{className:"font-normal text-stone-600 hover:text-transparent hover:bg-clip-text hover:bg-gradient-to-r hover:from-pink-500 hover:via-indigo-600 hover:to-emerald-400 hover:transition-all"},"ECCV 2024")),n.createElement("div",{className:"flex flex-wrap justify-center text-xl lg:text-xl mb-4"},n.createElement(M,{website:"https://zhouyunsong-sjtu.github.io/",firstAuthor:!0,affiliations:"1, 2"},"Yunsong Zhou"),n.createElement(M,{website:"https://github.com/DevLinyan",firstAuthor:!0,affiliations:"1"},"Linyan Huang"),n.createElement(M,{website:"https://github.com/retsuh-bqw",firstAuthor:!0,affiliations:"1, 2"},"Qingwen Bu"),n.createElement(M,{affiliations:"1"},"Jia Zeng"),n.createElement(M,{affiliations:"1"},"Tianyu Li"),n.createElement("br",null),n.createElement(M,{affiliations:"3"},"Hang Qiu"),n.createElement(M,{affiliations:"2"},"Hongzi Zhu"),n.createElement(M,{affiliations:"2"},"Minyi Guo"),n.createElement(M,{affiliations:"1"},"Yu Qiao"),n.createElement(M,{website:"https://lihongyang.info/",affiliations:"1",lastAuthor:!0},"Hongyang Li")),n.createElement("div",{className:"flex flex-wrap justify-center text-xl lg:text-xl mb-1"},n.createElement(P,{website:"https://opendrivelab.com/",number:"1"},"OpenDriveLab at Shanghai AI Lab"),n.createElement(P,{number:"2"},"Shanghai Jiao Tong University"),n.createElement(P,{number:"3"},"University of California, Riverside")),n.createElement("div",{className:"flex flex-wrap justify-center text-l lg:text-l"},n.createElement("span",{className:"text-stone-600 text-center"},n.createElement("sup",{className:"mr-0.5"},"*"),"Indicates equal contribution.")),n.createElement("p",{className:"flex flex-wrap justify-center"},n.createElement(A,{url:"https://arxiv.org/pdf/2403.04593",icon:n.createElement(r.yRW,null)},"Paper"),n.createElement(A,{url:"https://github.com/OpenDriveLab/ELM",icon:n.createElement(o.RrF,null)},"Code")),n.createElement("img",{src:l,alt:"teaser"}),n.createElement("div",{className:"flex justify-center"},n.createElement("p",{className:"text-justify text-xl !mt-0 !mb-2 font-medium max-w-[100%] md:max-w-[100%]"},"ELM is an embodied language model for understanding the long-horizon driving scenarios in space and time. Compared to the vanilla vision-language model (VLM) being confined to the scene description task, we expand a wide spectrum of new tasks to fully leverage the capability of large language models in an embodiment setting. ELM achieves significant improvements in various applications."))),n.createElement("div",{className:"my-6 pt-6 pb-4 bg-gradient-to-r from-pink-100/70 via-indigo-100/70 to-emerald-100/70"},n.createElement("div",{className:"mx-auto w-full max-w-[97.5%] lg:max-w-7xl py-2 md:py-4 px-2 md:px-4"},n.createElement("p",{className:"text-center text-lg md:text-xl md:max-w-[85%] mx-auto"},n.createElement(I,null,"Embodied scene understanding serves as the cornerstone for autonomous agents to perceive, interpret, and respond to open driving scenarios. Such understanding is typically founded upon Vision-Language Models (VLMs). Nevertheless, existing VLMs are restricted to the 2D domain, devoid of spatial awareness and long-horizon extrapolation proficiencies. We revisit the key aspects of autonomous driving and formulate appropriate rubrics. Hereby, we introduce the Embodied Language Model (ELM), a comprehensive framework tailored for agents' understanding of driving scenes with large spatial and temporal spans. ELM incorporates space-aware pre-training to endow the agent with robust spatial localization capabilities. Besides, the model employs time-aware token selection to accurately inquire about temporal cues. We instantiate ELM on the reformulated multi-faced benchmark, and it surpasses previous state-of-the-art approaches in all aspects.")))),n.createElement(k,null,n.createElement("h2",{className:"font-semibold border-b-[1px] !mb-4"},"Methodology"),n.createElement("h3",{id:"language-guided",className:"!mt-4"},"Model Overview"),n.createElement("img",{src:c,alt:"Description of the image"}),n.createElement("p",null," ",n.createElement("b",null,"Systematic Pipeline of ELM.")," It consists of Pre-training by open-world data corpus and Fine-tuning on diverse tasks. To initialize the Space-aware Pre-training, we collect extensive image-text pairs from the world, empowering ELM with spatial localization while preserving the description ability in driving scenarios. In the fine-tuning process, the inputs to ELM are videos, timestamps, and text prompts. After encoding the inputs into tokens, ELM leverages the proposed Time-aware Token Selection to gather the appropriate tokens as instructed by prompts. Finally, the tokens are sent to the language model to generate output texts."),n.createElement("h3",{id:"language-guided",className:"!mt-4"},"Space-aware Pre-training"),n.createElement("img",{src:u,alt:"Description of the image"}),n.createElement("p",null," ",n.createElement("b",null,"Annotation workflow with human quality check in the loop. For location labeling:")," we first select diverse templates from the GPT generated candidates. Pixel-point pairs as annotated in the nuScenes are then sampled and filled into the templates to form our location pre-training data.",n.createElement("b",null,"For description labeling:")," Node 4 utilizes LLaMA-Adapter V2 to obtain diverse labels on nuScenes, Waymo, YouTube, and Ego4D with predefined prompts. Two rounds of quality check are conducted in Node 3 and 7 by inspectors to guarantee the image and caption quality."),n.createElement("img",{src:d,alt:"Description of the image"}),n.createElement("p",null," ",n.createElement("b",null,"Statistics of pre-training data and comparison of data collection with other VLMs. "),"Our pre-train data surpasses that in general vision (top) and autonomous driving (middle) in terms of quantity and diversity. Anno: the type of annotations; Des: description; Loc: localization."),n.createElement("h2",{className:"font-semibold border-b-[1px] !mb-4"},"Experiments")),n.createElement("div",{className:"my-6 pt-6 pb-4 bg-gradient-to-r from-pink-100/70 via-indigo-100/70 to-emerald-100/70"},n.createElement("div",{className:"relative pb-8 mb-3"},n.createElement(s.default,{responsive:O,infinite:!0,showDots:!0,renderDotsOutside:!0},n.createElement("img",{src:m,alt:"Description of the image",style:{maxHeight:"800px",marginRight:"100px"}}),n.createElement("img",{src:p,alt:"Description of the image",style:{maxHeight:"800px",marginRight:"100px"}}),n.createElement("img",{src:f,alt:"Description of the image",style:{maxHeight:"800px",marginRight:"100px"}}),n.createElement("img",{src:g,alt:"Description of the image",style:{maxHeight:"800px",marginRight:"100px"}}),n.createElement("img",{src:v,alt:"Description of the image",style:{maxHeight:"800px",marginRight:"100px"}}),n.createElement("img",{src:y,alt:"Description of the image",style:{maxHeight:"800px",marginRight:"100px"}}),n.createElement("img",{src:b,alt:"Description of the image",style:{maxHeight:"800px",marginRight:"100px"}}),n.createElement("img",{src:E,alt:"Description of the image",style:{maxHeight:"800px",marginRight:"100px"}}),n.createElement("img",{src:w,alt:"Description of the image",style:{maxHeight:"800px",marginRight:"100px"}}),n.createElement("img",{src:x,alt:"Description of the image",style:{maxHeight:"800px",marginRight:"100px"}}),n.createElement("img",{src:S,alt:"Description of the image",style:{maxHeight:"800px",marginRight:"100px"}}))),n.createElement("p",{className:"text-center text-lg md:text-xl md:max-w-[85%] mx-auto"},n.createElement("b",null,"Visualization on the benchmark.")," We provide results for ten tasks and E2E planning through videos and corresponding QA pairs.")),n.createElement(k,null,n.createElement("h3",{id:"language-guided",className:"!mt-4"},"Results"),n.createElement("img",{src:h,alt:"Description of the image"}),n.createElement("p",null," ",n.createElement("b",null,"Comparison to State-of-the-arts. "),"All methods are fine-tuned on the corresponding tasks. The main metrics (%) are marked in gray. Bold emphasizes top method; underline marks the runner-up. C: CIDEr; R: ROUGE-L; B: BLEU."),n.createElement("h2",{id:"citation",className:"border-b-[1px]"},"Citation"),n.createElement("div",{className:"relative overflow-auto"},n.createElement("pre",{className:"bg-gradient-to-r from-pink-100 via-indigo-100 to-emerald-100 !my-0"},n.createElement("code",{id:"citation-bib",className:"font-medium text-slate-800"},"@article{zhou2024embodied,\n title={Embodied Understanding of Driving Scenarios},\n author={Zhou, Yunsong and Huang, Linyan and Bu, Qingwen and Zeng, Jia and Li, Tianyu and Qiu, Hang and Zhu, Hongzi and Guo, Minyi and Qiao, Yu and Li, Hongyang},\n journal={arXiv preprint arXiv:2403.04593},\n year={2024}\n}")),n.createElement("div",{className:"absolute top-0 right-0"},n.createElement("button",{className:"float-right text-2xl text-indigo-500 bg-white hover:bg-slate-50 hover:text-indigo-600 hover:transition-all rounded-full p-2 m-3 invisible md:visible",onClick:()=>{let e=document.getElementById("citation-bib"),t=document.createRange(),i=window.getSelection();null!=e&&null!=t&&null!=i&&(t.selectNode(e),i.removeAllRanges(),i.addRange(t))}},n.createElement(a.DV2,null))))),n.createElement("footer",{className:"flex flex-col justify-center bg-gray-50 mt-8 py-8"},n.createElement("div",{className:"flex justify-center align-middle text-lg"},n.createElement("a",{role:"button",className:"text-blue-500",onClick:()=>{window.scrollTo({top:0,behavior:"smooth"})}},n.createElement("span",{className:"align-text-top inline-flex justify-center mr-0.25"},n.createElement(r.ZTc,null)," "),n.createElement("span",null,"Back to Top"))))))},4405:function(e,t,i){"use strict";i.d(t,{w_:function(){return c}});var n=i(7294),r={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},o=n.createContext&&n.createContext(r),a=function(){return a=Object.assign||function(e){for(var t,i=1,n=arguments.length;iMath.abs(o)))return;var l=a.populateSlidesOnMouseTouchMove(this.state,this.props,this.initialX,this.lastX,i,this.transformPlaceHolder),c=l.direction,u=l.nextPosition,d=l.canContinue;c&&(this.direction=c,d&&void 0!==u&&this.setTransformDirectly(u)),this.lastX=i}}},t.prototype.handleOut=function(e){this.props.autoPlay&&!this.autoPlay&&(this.autoPlay=setInterval(this.next,this.props.autoPlaySpeed));var t="touchend"===e.type&&!this.props.swipeable,i=("mouseleave"===e.type||"mouseup"===e.type)&&!this.props.draggable;if(!t&&!i&&this.onMove){if(this.setAnimationDirectly(!0),"right"===this.direction)if(this.initialX-this.lastX>=this.props.minimumTouchDrag){var n=Math.round((this.initialX-this.lastX)/this.state.itemWidth);this.next(n)}else this.correctItemsPosition(this.state.itemWidth,!0,!0);"left"===this.direction&&(this.lastX-this.initialX>this.props.minimumTouchDrag?(n=Math.round((this.lastX-this.initialX)/this.state.itemWidth),this.previous(n)):this.correctItemsPosition(this.state.itemWidth,!0,!0)),this.resetMoveStatus()}},t.prototype.isInViewport=function(e){var t=e.getBoundingClientRect(),i=t.top,n=void 0===i?0:i,r=t.left,o=void 0===r?0:r,a=t.bottom,s=void 0===a?0:a,l=t.right,c=void 0===l?0:l;return 0<=n&&0<=o&&s<=(window.innerHeight||document.documentElement.clientHeight)&&c<=(window.innerWidth||document.documentElement.clientWidth)},t.prototype.isChildOfCarousel=function(e){return!!(e instanceof Element&&this.listRef&&this.listRef.current)&&this.listRef.current.contains(e)},t.prototype.onKeyUp=function(e){var t=e.target;switch(e.keyCode){case 37:if(this.isChildOfCarousel(t))return this.previous();break;case 39:if(this.isChildOfCarousel(t))return this.next();break;case 9:if(this.isChildOfCarousel(t)&&t instanceof HTMLInputElement&&this.isInViewport(t))return this.next()}},t.prototype.handleEnter=function(e){s.isMouseMoveEvent(e)&&this.autoPlay&&this.props.autoPlay&&this.props.pauseOnHover&&(clearInterval(this.autoPlay),this.autoPlay=void 0)},t.prototype.goToSlide=function(e,i,n){var r=this;if(void 0===n&&(n=!0),!this.isInThrottle){var o=this.state.itemWidth,a=this.props,s=a.afterChange,l=a.beforeChange,c=this.state.currentSlide;"function"!=typeof l||i&&("object"!=typeof i||i.skipBeforeChange)||l(e,this.getState()),this.isAnimationAllowed=n,this.props.shouldResetAutoplay&&this.resetAutoplayInterval(),this.setState({currentSlide:e,transform:-o*e},(function(){r.props.infinite&&r.correctClonesPosition({domLoaded:!0}),"function"!=typeof s||i&&("object"!=typeof i||i.skipAfterChange)||(t.afterChangeTimeout3=setTimeout((function(){s(c,r.getState())}),r.props.transitionDuration||h))}))}},t.prototype.getState=function(){return this.state},t.prototype.renderLeftArrow=function(e){var t=this,i=this.props,n=i.customLeftArrow,r=i.rtl;return o.createElement(c.LeftArrow,{customLeftArrow:n,getState:function(){return t.getState()},previous:this.previous,disabled:e,rtl:r})},t.prototype.renderRightArrow=function(e){var t=this,i=this.props,n=i.customRightArrow,r=i.rtl;return o.createElement(c.RightArrow,{customRightArrow:n,getState:function(){return t.getState()},next:this.next,disabled:e,rtl:r})},t.prototype.renderButtonGroups=function(){var e=this,t=this.props.customButtonGroup;return t?o.cloneElement(t,{previous:function(){return e.previous()},next:function(){return e.next()},goToSlide:function(t,i){return e.goToSlide(t,i)},carouselState:this.getState()}):null},t.prototype.renderDotsList=function(){var e=this;return o.createElement(l.default,{state:this.state,props:this.props,goToSlide:this.goToSlide,getState:function(){return e.getState()}})},t.prototype.renderCarouselItems=function(){var e=[];if(this.props.infinite){var t=o.Children.toArray(this.props.children);e=a.getClones(this.state.slidesToShow,t)}return o.createElement(u.default,{clones:e,goToSlide:this.goToSlide,state:this.state,notEnoughChildren:a.notEnoughChildren(this.state),props:this.props})},t.prototype.render=function(){var e=this.props,t=e.deviceType,i=e.arrows,n=e.renderArrowsWhenDisabled,r=e.removeArrowOnDeviceType,s=e.infinite,l=e.containerClass,c=e.sliderClass,u=e.customTransition,h=e.additionalTransfrom,m=e.renderDotsOutside,f=e.renderButtonGroupOutside,g=e.className,v=e.rtl,y=a.getInitialState(this.state,this.props),b=y.shouldRenderOnSSR,E=y.shouldRenderAtAll,w=a.isInLeftEnd(this.state),x=a.isInRightEnd(this.state),S=i&&!(r&&(t&&-12*n?e+2*n:r>=i.length?i.length+e:e},t.getOriginalIndexLookupTableByClones=function(e,t){if(t.length>2*e){for(var i={},n=t.length-2*e,r=t.length-n,o=n,a=0;a2*e?t.slice(t.length-2*e,t.length).concat(t,t.slice(0,2*e)):t.concat(t,t)},t.getInitialSlideInInfiniteMode=function(e,t){return t.length>2*e?2*e:t.length},t.checkClonesPosition=function(e,t,i){var n,r=e.currentSlide,o=e.slidesToShow,a=e.itemWidth,s=e.totalItems,l=0,c=0,u=0===r,d=t.length-(t.length-2*o);return t.length2*o?((n=r>=d+t.length)&&(c=-a*(l=r-t.length)),u&&(c=-a*(l=d+(t.length-2*o)))):((n=r>=2*t.length)&&(c=-a*(l=r-t.length)),u&&(c=i.showDots?-a*(l=t.length):-a*(l=s/3))),{isReachingTheEnd:n,isReachingTheStart:u,nextSlide:l,nextPosition:c}}},3989:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(6867);function r(e){var t=e.slidesToShow;return e.totalItems=o&&window.innerWidth<=r&&(l=n)})),l}},4949:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(3905),r=i(3989);t.getLookupTableForNextSlides=function(e,t,i,o){var a={},s=r.getSlidesToSlide(t,i);return Array(e).fill(0).forEach((function(e,i){var r=n.getOriginalCounterPart(i,t,o);if(0===i)a[0]=r;else{var l=a[i-1]+s;a[i]=l}})),a}},6867:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.getPartialVisibilityGutter=function(e,t,i,n){var r=0,o=n||i;return t&&o&&(r=e[o].partialVisibilityGutter||e[o].paritialVisibilityGutter),r},t.getWidthFromDeviceType=function(e,t){var i;return t[e]&&(i=(100/t[e].items).toFixed(1)),i},t.getItemClientSideWidth=function(e,t,i){return Math.round(i/(t+(e.centerMode?1:0)))}},8035:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(3905);t.getOriginalCounterPart=n.getOriginalCounterPart,t.getClones=n.getClones,t.checkClonesPosition=n.checkClonesPosition,t.getInitialSlideInInfiniteMode=n.getInitialSlideInInfiniteMode;var r=i(6867);t.getWidthFromDeviceType=r.getWidthFromDeviceType,t.getPartialVisibilityGutter=r.getPartialVisibilityGutter,t.getItemClientSideWidth=r.getItemClientSideWidth;var o=i(3989);t.getInitialState=o.getInitialState,t.getIfSlideIsVisbile=o.getIfSlideIsVisbile,t.getTransformForCenterMode=o.getTransformForCenterMode,t.getTransformForPartialVsibile=o.getTransformForPartialVsibile,t.isInLeftEnd=o.isInLeftEnd,t.isInRightEnd=o.isInRightEnd,t.notEnoughChildren=o.notEnoughChildren,t.getSlidesToSlide=o.getSlidesToSlide;var a=i(9950);t.throttle=a.default;var s=i(4802);t.throwError=s.default;var l=i(2558);t.populateNextSlides=l.populateNextSlides;var c=i(5210);t.populatePreviousSlides=c.populatePreviousSlides;var u=i(1097);t.populateSlidesOnMouseTouchMove=u.populateSlidesOnMouseTouchMove},1097:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.populateSlidesOnMouseTouchMove=function(e,t,i,n,r,o){var a,s,l=e.itemWidth,c=e.slidesToShow,u=e.totalItems,d=e.currentSlide,h=t.infinite,p=!1,m=Math.round((i-n)/l),f=Math.round((n-i)/l),g=i {\n // Paper title\n return (\n

{children}

\n )\n}\n\nconst Venue: React.FC = ({website, children}) => {\n return (\n \n )\n}\n\nconst Abstract: React.FC = ({children}) => {\n return (\n
\n
\n

Abstract

\n
\n
\n

{\n children\n }

\n
\n
\n )\n}\n\nconst Author: React.FC = ({children, website, firstAuthor, affiliations, lastAuthor}) => {\n return (\n \n \n {children}\n \n {firstAuthor || affiliations ?\n {firstAuthor ?\n * : null}{affiliations ? affiliations : null}\n : null}\n {lastAuthor ? null : <>, }\n \n )\n}\n\nconst Affiliation: React.FC = ({children, website, number}) => {\n return (\n \n {number}\n \n {children}\n \n \n )\n}\n\nconst ActionLink: React.FC = ({children, url, icon}) => {\n return (\n \n \n {icon} \n {children}\n \n \n )\n}\n\nconst Article: React.FC = ({children}) => {\n return (\n \n {children}\n \n )\n}\n\nconst Main: React.FC = ({children}) => {\n return (\n
\n {children}\n
\n )\n}\n\n\nconst FewShotResult: React.FC = ({children, id, demos, demos_label, video, hidden}) => {\n // Result for Few-Shot Manipulation with Demos on left, and video on right\n return (\n // add hidden if hide is true\n
\n
\n

{children}

\n {children}\n

{demos_label}

\n
\n
\n \n
\n
\n )\n}\n\n\nexport const Head: HeadFC = () => ELM: Embodied Understanding of Driving Scenarios\n\nconst carouselResponsive = {\n desktop: {\n breakpoint: {max: 3000, min: 1024},\n items: 3,\n },\n tablet: {\n breakpoint: {max: 1024, min: 464},\n items: 2,\n },\n mobile: {\n breakpoint: {max: 464, min: 0},\n items: 1,\n }\n};\n\n\nconst CarouselItem: React.FC = ({children, video}) => {\n return (\n
\n \n {/*

{children}

*/}\n
\n )\n}\n\nconst IndexPage: React.FC = () => {\n return (\n <>\n
\n
\n \n <span className=\"font-extrabold text-transparent bg-clip-text\n bg-gradient-to-r from-pink-500 via-indigo-600 to-emerald-400\">\n ELM:\n </span>\n  \n <span className=\"text-stone-800\">Embodied Understanding of Driving Scenarios</span>\n \n\n \n ECCV 2024\n \n\n {/* Authors */}\n
\n Yunsong Zhou\n Linyan Huang\n Qingwen Bu\n Jia Zeng\n Tianyu Li
\n Hang Qiu\n Hongzi Zhu\n Minyi Guo\n Yu Qiao\n Hongyang Li\n
\n\n {/* Affilations */}\n
\n OpenDriveLab at Shanghai AI Lab\n Shanghai Jiao Tong University\n University of California, Riverside\n
\n
\n *Indicates equal contribution.\n
\n\n {/* Action Links */}\n

\n }>Paper\n }>Code\n

\n\n \"teaser\"\n
\n

\n ELM is an embodied language model for understanding the long-horizon driving scenarios in space and time. \n Compared to the vanilla vision-language model (VLM) being confined to the scene description task, we expand a wide spectrum of new tasks to fully leverage the capability of large language models in an embodiment setting.\n ELM achieves significant improvements in various applications.\n

\n
\n\n
\n\n {/* Abstract */}\n
\n \n

\n \n Embodied scene understanding serves as the cornerstone for autonomous agents to perceive, interpret, and respond to open driving scenarios. Such understanding is typically founded upon Vision-Language Models (VLMs). \n Nevertheless, existing VLMs are restricted to the 2D domain, devoid of spatial awareness and long-horizon extrapolation proficiencies. We revisit the key aspects of autonomous driving and formulate appropriate rubrics. \n Hereby, we introduce the Embodied Language Model (ELM), a comprehensive framework tailored for agents' understanding of driving scenes with large spatial and temporal spans. \n ELM incorporates space-aware pre-training to endow the agent with robust spatial localization capabilities. \n Besides, the model employs time-aware token selection to accurately inquire about temporal cues. \n We instantiate ELM on the reformulated multi-faced benchmark, and it surpasses previous state-of-the-art approaches in all aspects.\n \n

\n
\n \n\n
\n\n {/* model */}\n

Methodology

\n

Model Overview

\n \"Description\n

Systematic Pipeline of ELM. It consists of Pre-training by open-world data corpus and Fine-tuning on diverse tasks. \n To initialize the Space-aware Pre-training, we collect extensive image-text pairs from the world, empowering ELM with spatial localization while preserving the description ability in driving scenarios. \n In the fine-tuning process, the inputs to ELM are videos, timestamps, and text prompts. \n After encoding the inputs into tokens, ELM leverages the proposed Time-aware Token Selection to gather the appropriate tokens as instructed by prompts. \n Finally, the tokens are sent to the language model to generate output texts.

\n\n

Space-aware Pre-training

\n \"Description\n

Annotation workflow with human quality check in the loop. \n For location labeling: we first select diverse templates from the GPT generated candidates.\n Pixel-point pairs as annotated in the nuScenes are then sampled and filled into the templates to form our location pre-training data. \n For description labeling: Node 4 utilizes LLaMA-Adapter V2 to obtain diverse labels on nuScenes, Waymo, YouTube, and Ego4D with predefined prompts. \n Two rounds of quality check are conducted in Node 3 and 7 by inspectors to guarantee the image and caption quality.

\n \n \"Description\n

Statistics of pre-training data and comparison of data collection with other VLMs. \n Our pre-train data surpasses that in general vision (top) and autonomous driving (middle) in terms of quantity and diversity. \n Anno: the type of annotations; Des: description; Loc: localization.

\n\n {/* results */}\n

Experiments

\n
\n\n
\n {/* */}\n
\n \n \"Description\n \"Description\n \n \n \"Description\n \"Description\n \"Description\n \"Description\n \"Description\n \"Description\n \"Description\n \"Description\n \"Description\n \n
\n

\n Visualization on the benchmark. We provide results for ten tasks and E2E planning through videos and corresponding QA pairs.\n

\n {/*
*/}\n \n
\n \n

Results

\n \"Description\n

Comparison to State-of-the-arts. \n All methods are fine-tuned on the corresponding tasks. The main metrics (%) are marked in gray. \n Bold emphasizes top method; underline marks the runner-up. C: CIDEr; R: ROUGE-L; B: BLEU.

\n\n\n \n\n \n\n

Citation

\n
\n
\n                            {\n                                `@article{zhou2024embodied,\n    title={Embodied Understanding of Driving Scenarios},\n    author={Zhou, Yunsong and Huang, Linyan and Bu, Qingwen and Zeng, Jia and Li, Tianyu and Qiu, Hang and Zhu, Hongzi and Guo, Minyi and Qiao, Yu and Li, Hongyang},\n    journal={arXiv preprint arXiv:2403.04593},\n    year={2024}\n}`}\n                            \n                        
\n
\n \n
\n
\n
\n\n \n
\n \n )\n}\n\nexport default IndexPage\n","export var IconsManifest = [\n {\n \"id\": \"ci\",\n \"name\": \"Circum Icons\",\n \"projectUrl\": \"https://circumicons.com/\",\n \"license\": \"MPL-2.0 license\",\n \"licenseUrl\": \"https://github.com/Klarr-Agency/Circum-Icons/blob/main/LICENSE\"\n },\n {\n \"id\": \"fa\",\n \"name\": \"Font Awesome 5\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"fa6\",\n \"name\": \"Font Awesome 6\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"io\",\n \"name\": \"Ionicons 4\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"io5\",\n \"name\": \"Ionicons 5\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"md\",\n \"name\": \"Material Design icons\",\n \"projectUrl\": \"http://google.github.io/material-design-icons/\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"https://github.com/google/material-design-icons/blob/master/LICENSE\"\n },\n {\n \"id\": \"ti\",\n \"name\": \"Typicons\",\n \"projectUrl\": \"http://s-ings.com/typicons/\",\n \"license\": \"CC BY-SA 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by-sa/3.0/\"\n },\n {\n \"id\": \"go\",\n \"name\": \"Github Octicons icons\",\n \"projectUrl\": \"https://octicons.github.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/primer/octicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"fi\",\n \"name\": \"Feather\",\n \"projectUrl\": \"https://feathericons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/feathericons/feather/blob/master/LICENSE\"\n },\n {\n \"id\": \"lu\",\n \"name\": \"Lucide\",\n \"projectUrl\": \"https://lucide.dev/\",\n \"license\": \"ISC\",\n \"licenseUrl\": \"https://github.com/lucide-icons/lucide/blob/main/LICENSE\"\n },\n {\n \"id\": \"gi\",\n \"name\": \"Game Icons\",\n \"projectUrl\": \"https://game-icons.net/\",\n \"license\": \"CC BY 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/3.0/\"\n },\n {\n \"id\": \"wi\",\n \"name\": \"Weather Icons\",\n \"projectUrl\": \"https://erikflowers.github.io/weather-icons/\",\n \"license\": \"SIL OFL 1.1\",\n \"licenseUrl\": \"http://scripts.sil.org/OFL\"\n },\n {\n \"id\": \"di\",\n \"name\": \"Devicons\",\n \"projectUrl\": \"https://vorillaz.github.io/devicons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ai\",\n \"name\": \"Ant Design Icons\",\n \"projectUrl\": \"https://github.com/ant-design/ant-design-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"bs\",\n \"name\": \"Bootstrap Icons\",\n \"projectUrl\": \"https://github.com/twbs/icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ri\",\n \"name\": \"Remix Icon\",\n \"projectUrl\": \"https://github.com/Remix-Design/RemixIcon\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"fc\",\n \"name\": \"Flat Color Icons\",\n \"projectUrl\": \"https://github.com/icons8/flat-color-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"gr\",\n \"name\": \"Grommet-Icons\",\n \"projectUrl\": \"https://github.com/grommet/grommet-icons\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"hi\",\n \"name\": \"Heroicons\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"hi2\",\n \"name\": \"Heroicons 2\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"si\",\n \"name\": \"Simple Icons\",\n \"projectUrl\": \"https://simpleicons.org/\",\n \"license\": \"CC0 1.0 Universal\",\n \"licenseUrl\": \"https://creativecommons.org/publicdomain/zero/1.0/\"\n },\n {\n \"id\": \"sl\",\n \"name\": \"Simple Line Icons\",\n \"projectUrl\": \"https://thesabbir.github.io/simple-line-icons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"im\",\n \"name\": \"IcoMoon Free\",\n \"projectUrl\": \"https://github.com/Keyamoon/IcoMoon-Free\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://github.com/Keyamoon/IcoMoon-Free/blob/master/License.txt\"\n },\n {\n \"id\": \"bi\",\n \"name\": \"BoxIcons\",\n \"projectUrl\": \"https://github.com/atisawd/boxicons\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://github.com/atisawd/boxicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"cg\",\n \"name\": \"css.gg\",\n \"projectUrl\": \"https://github.com/astrit/css.gg\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"vsc\",\n \"name\": \"VS Code Icons\",\n \"projectUrl\": \"https://github.com/microsoft/vscode-codicons\",\n \"license\": \"CC BY 4.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"tb\",\n \"name\": \"Tabler Icons\",\n \"projectUrl\": \"https://github.com/tabler/tabler-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"tfi\",\n \"name\": \"Themify Icons\",\n \"projectUrl\": \"https://github.com/lykmapipo/themify-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/thecreation/standard-icons/blob/master/modules/themify-icons/LICENSE\"\n },\n {\n \"id\": \"rx\",\n \"name\": \"Radix Icons\",\n \"projectUrl\": \"https://icons.radix-ui.com\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/radix-ui/icons/blob/master/LICENSE\"\n },\n {\n \"id\": \"pi\",\n \"name\": \"Phosphor Icons\",\n \"projectUrl\": \"https://github.com/phosphor-icons/core\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/phosphor-icons/core/blob/main/LICENSE\"\n },\n {\n \"id\": \"lia\",\n \"name\": \"Icons8 Line Awesome\",\n \"projectUrl\": \"https://icons8.com/line-awesome\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/icons8/line-awesome/blob/master/LICENSE.md\"\n }\n]","import React from \"react\";\nexport var DefaultContext = {\n color: undefined,\n size: undefined,\n className: undefined,\n style: undefined,\n attr: undefined\n};\nexport var IconContext = React.createContext && React.createContext(DefaultContext);","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from \"react\";\nimport { IconContext, DefaultContext } from \"./iconContext\";\nfunction Tree2Element(tree) {\n return tree && tree.map(function (node, i) {\n return React.createElement(node.tag, __assign({\n key: i\n }, node.attr), Tree2Element(node.child));\n });\n}\nexport function GenIcon(data) {\n // eslint-disable-next-line react/display-name\n return function (props) {\n return React.createElement(IconBase, __assign({\n attr: __assign({}, data.attr)\n }, props), Tree2Element(data.child));\n };\n}\nexport function IconBase(props) {\n var elem = function (conf) {\n var attr = props.attr,\n size = props.size,\n title = props.title,\n svgProps = __rest(props, [\"attr\", \"size\", \"title\"]);\n var computedSize = size || conf.size || \"1em\";\n var className;\n if (conf.className) className = conf.className;\n if (props.className) className = (className ? className + \" \" : \"\") + props.className;\n return React.createElement(\"svg\", __assign({\n stroke: \"currentColor\",\n fill: \"currentColor\",\n strokeWidth: \"0\"\n }, conf.attr, attr, svgProps, {\n className: className,\n style: __assign(__assign({\n color: props.color || conf.color\n }, conf.style), props.style),\n height: computedSize,\n width: computedSize,\n xmlns: \"http://www.w3.org/2000/svg\"\n }), title && React.createElement(\"title\", null, title), props.children);\n };\n return IconContext !== undefined ? React.createElement(IconContext.Consumer, null, function (conf) {\n return elem(conf);\n }) : elem(DefaultContext);\n}","module.exports = require('./lib');\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var React=require(\"react\"),LeftArrow=function(_a){var customLeftArrow=_a.customLeftArrow,getState=_a.getState,previous=_a.previous,disabled=_a.disabled,rtl=_a.rtl;if(customLeftArrow)return React.cloneElement(customLeftArrow,{onClick:function(){return previous()},carouselState:getState(),disabled:disabled,rtl:rtl});var rtlClassName=rtl?\"rtl\":\"\";return React.createElement(\"button\",{\"aria-label\":\"Go to previous slide\",className:\"react-multiple-carousel__arrow react-multiple-carousel__arrow--left \"+rtlClassName,onClick:function(){return previous()},type:\"button\",disabled:disabled})};exports.LeftArrow=LeftArrow;var RightArrow=function(_a){var customRightArrow=_a.customRightArrow,getState=_a.getState,next=_a.next,disabled=_a.disabled,rtl=_a.rtl;if(customRightArrow)return React.cloneElement(customRightArrow,{onClick:function(){return next()},carouselState:getState(),disabled:disabled,rtl:rtl});var rtlClassName=rtl?\"rtl\":\"\";return React.createElement(\"button\",{\"aria-label\":\"Go to next slide\",className:\"react-multiple-carousel__arrow react-multiple-carousel__arrow--right \"+rtlClassName,onClick:function(){return next()},type:\"button\",disabled:disabled})};exports.RightArrow=RightArrow;","\"use strict\";var __extends=this&&this.__extends||function(){var extendStatics=function(d,b){return(extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)b.hasOwnProperty(p)&&(d[p]=b[p])})(d,b)};return function(d,b){function __(){this.constructor=d}extendStatics(d,b),d.prototype=null===b?Object.create(b):(__.prototype=b.prototype,new __)}}();Object.defineProperty(exports,\"__esModule\",{value:!0});var React=require(\"react\"),utils_1=require(\"./utils\"),types_1=require(\"./types\"),Dots_1=require(\"./Dots\"),Arrows_1=require(\"./Arrows\"),CarouselItems_1=require(\"./CarouselItems\"),common_1=require(\"./utils/common\"),defaultTransitionDuration=400,defaultTransition=\"transform 400ms ease-in-out\",Carousel=function(_super){function Carousel(props){var _this=_super.call(this,props)||this;return _this.containerRef=React.createRef(),_this.listRef=React.createRef(),_this.state={itemWidth:0,slidesToShow:0,currentSlide:0,totalItems:React.Children.count(props.children),deviceType:\"\",domLoaded:!1,transform:0,containerWidth:0},_this.onResize=_this.onResize.bind(_this),_this.handleDown=_this.handleDown.bind(_this),_this.handleMove=_this.handleMove.bind(_this),_this.handleOut=_this.handleOut.bind(_this),_this.onKeyUp=_this.onKeyUp.bind(_this),_this.handleEnter=_this.handleEnter.bind(_this),_this.setIsInThrottle=_this.setIsInThrottle.bind(_this),_this.next=utils_1.throttle(_this.next.bind(_this),props.transitionDuration||defaultTransitionDuration,_this.setIsInThrottle),_this.previous=utils_1.throttle(_this.previous.bind(_this),props.transitionDuration||defaultTransitionDuration,_this.setIsInThrottle),_this.goToSlide=utils_1.throttle(_this.goToSlide.bind(_this),props.transitionDuration||defaultTransitionDuration,_this.setIsInThrottle),_this.onMove=!1,_this.initialX=0,_this.lastX=0,_this.isAnimationAllowed=!1,_this.direction=\"\",_this.initialY=0,_this.isInThrottle=!1,_this.transformPlaceHolder=0,_this}return __extends(Carousel,_super),Carousel.prototype.resetTotalItems=function(){var _this=this,totalItems=React.Children.count(this.props.children),currentSlide=utils_1.notEnoughChildren(this.state)?0:Math.max(0,Math.min(this.state.currentSlide,totalItems));this.setState({totalItems:totalItems,currentSlide:currentSlide},function(){_this.setContainerAndItemWidth(_this.state.slidesToShow,!0)})},Carousel.prototype.setIsInThrottle=function(isInThrottle){void 0===isInThrottle&&(isInThrottle=!1),this.isInThrottle=isInThrottle},Carousel.prototype.setTransformDirectly=function(position,withAnimation){var additionalTransfrom=this.props.additionalTransfrom;this.transformPlaceHolder=position;var currentTransform=common_1.getTransform(this.state,this.props,this.transformPlaceHolder);this.listRef&&this.listRef.current&&(this.setAnimationDirectly(withAnimation),this.listRef.current.style.transform=\"translate3d(\"+(currentTransform+additionalTransfrom)+\"px,0,0)\")},Carousel.prototype.setAnimationDirectly=function(animationAllowed){this.listRef&&this.listRef.current&&(this.listRef.current.style.transition=animationAllowed?this.props.customTransition||defaultTransition:\"none\")},Carousel.prototype.componentDidMount=function(){this.setState({domLoaded:!0}),this.setItemsToShow(),window.addEventListener(\"resize\",this.onResize),this.onResize(!0),this.props.keyBoardControl&&window.addEventListener(\"keyup\",this.onKeyUp),this.props.autoPlay&&(this.autoPlay=setInterval(this.next,this.props.autoPlaySpeed))},Carousel.prototype.setClones=function(slidesToShow,itemWidth,forResizing,resetCurrentSlide){var _this=this;void 0===resetCurrentSlide&&(resetCurrentSlide=!1),this.isAnimationAllowed=!1;var childrenArr=React.Children.toArray(this.props.children),initialSlide=utils_1.getInitialSlideInInfiniteMode(slidesToShow||this.state.slidesToShow,childrenArr),clones=utils_1.getClones(this.state.slidesToShow,childrenArr),currentSlide=childrenArr.lengthMath.abs(diffY)))return;var _b=utils_1.populateSlidesOnMouseTouchMove(this.state,this.props,this.initialX,this.lastX,clientX,this.transformPlaceHolder),direction=_b.direction,nextPosition=_b.nextPosition,canContinue=_b.canContinue;direction&&(this.direction=direction,canContinue&&void 0!==nextPosition&&this.setTransformDirectly(nextPosition)),this.lastX=clientX}}},Carousel.prototype.handleOut=function(e){this.props.autoPlay&&!this.autoPlay&&(this.autoPlay=setInterval(this.next,this.props.autoPlaySpeed));var shouldDisableOnMobile=\"touchend\"===e.type&&!this.props.swipeable,shouldDisableOnDesktop=(\"mouseleave\"===e.type||\"mouseup\"===e.type)&&!this.props.draggable;if(!shouldDisableOnMobile&&!shouldDisableOnDesktop&&this.onMove){if(this.setAnimationDirectly(!0),\"right\"===this.direction)if(this.initialX-this.lastX>=this.props.minimumTouchDrag){var slidesHavePassed=Math.round((this.initialX-this.lastX)/this.state.itemWidth);this.next(slidesHavePassed)}else this.correctItemsPosition(this.state.itemWidth,!0,!0);if(\"left\"===this.direction)if(this.lastX-this.initialX>this.props.minimumTouchDrag){slidesHavePassed=Math.round((this.lastX-this.initialX)/this.state.itemWidth);this.previous(slidesHavePassed)}else this.correctItemsPosition(this.state.itemWidth,!0,!0);this.resetMoveStatus()}},Carousel.prototype.isInViewport=function(el){var _a=el.getBoundingClientRect(),_b=_a.top,top=void 0===_b?0:_b,_c=_a.left,left=void 0===_c?0:_c,_d=_a.bottom,bottom=void 0===_d?0:_d,_e=_a.right,right=void 0===_e?0:_e;return 0<=top&&0<=left&&bottom<=(window.innerHeight||document.documentElement.clientHeight)&&right<=(window.innerWidth||document.documentElement.clientWidth)},Carousel.prototype.isChildOfCarousel=function(el){return!!(el instanceof Element&&this.listRef&&this.listRef.current)&&this.listRef.current.contains(el)},Carousel.prototype.onKeyUp=function(e){var target=e.target;switch(e.keyCode){case 37:if(this.isChildOfCarousel(target))return this.previous();break;case 39:if(this.isChildOfCarousel(target))return this.next();break;case 9:if(this.isChildOfCarousel(target)&&target instanceof HTMLInputElement&&this.isInViewport(target))return this.next()}},Carousel.prototype.handleEnter=function(e){types_1.isMouseMoveEvent(e)&&this.autoPlay&&this.props.autoPlay&&this.props.pauseOnHover&&(clearInterval(this.autoPlay),this.autoPlay=void 0)},Carousel.prototype.goToSlide=function(slide,skipCallbacks,animationAllowed){var _this=this;if(void 0===animationAllowed&&(animationAllowed=!0),!this.isInThrottle){var itemWidth=this.state.itemWidth,_a=this.props,afterChange=_a.afterChange,beforeChange=_a.beforeChange,previousSlide=this.state.currentSlide;\"function\"!=typeof beforeChange||skipCallbacks&&(\"object\"!=typeof skipCallbacks||skipCallbacks.skipBeforeChange)||beforeChange(slide,this.getState()),this.isAnimationAllowed=animationAllowed,this.props.shouldResetAutoplay&&this.resetAutoplayInterval(),this.setState({currentSlide:slide,transform:-itemWidth*slide},function(){_this.props.infinite&&_this.correctClonesPosition({domLoaded:!0}),\"function\"!=typeof afterChange||skipCallbacks&&(\"object\"!=typeof skipCallbacks||skipCallbacks.skipAfterChange)||(Carousel.afterChangeTimeout3=setTimeout(function(){afterChange(previousSlide,_this.getState())},_this.props.transitionDuration||defaultTransitionDuration))})}},Carousel.prototype.getState=function(){return this.state},Carousel.prototype.renderLeftArrow=function(disbaled){var _this=this,_a=this.props,customLeftArrow=_a.customLeftArrow,rtl=_a.rtl;return React.createElement(Arrows_1.LeftArrow,{customLeftArrow:customLeftArrow,getState:function(){return _this.getState()},previous:this.previous,disabled:disbaled,rtl:rtl})},Carousel.prototype.renderRightArrow=function(disbaled){var _this=this,_a=this.props,customRightArrow=_a.customRightArrow,rtl=_a.rtl;return React.createElement(Arrows_1.RightArrow,{customRightArrow:customRightArrow,getState:function(){return _this.getState()},next:this.next,disabled:disbaled,rtl:rtl})},Carousel.prototype.renderButtonGroups=function(){var _this=this,customButtonGroup=this.props.customButtonGroup;return customButtonGroup?React.cloneElement(customButtonGroup,{previous:function(){return _this.previous()},next:function(){return _this.next()},goToSlide:function(slideIndex,skipCallbacks){return _this.goToSlide(slideIndex,skipCallbacks)},carouselState:this.getState()}):null},Carousel.prototype.renderDotsList=function(){var _this=this;return React.createElement(Dots_1.default,{state:this.state,props:this.props,goToSlide:this.goToSlide,getState:function(){return _this.getState()}})},Carousel.prototype.renderCarouselItems=function(){var clones=[];if(this.props.infinite){var childrenArr=React.Children.toArray(this.props.children);clones=utils_1.getClones(this.state.slidesToShow,childrenArr)}return React.createElement(CarouselItems_1.default,{clones:clones,goToSlide:this.goToSlide,state:this.state,notEnoughChildren:utils_1.notEnoughChildren(this.state),props:this.props})},Carousel.prototype.render=function(){var _a=this.props,deviceType=_a.deviceType,arrows=_a.arrows,renderArrowsWhenDisabled=_a.renderArrowsWhenDisabled,removeArrowOnDeviceType=_a.removeArrowOnDeviceType,infinite=_a.infinite,containerClass=_a.containerClass,sliderClass=_a.sliderClass,customTransition=_a.customTransition,additionalTransfrom=_a.additionalTransfrom,renderDotsOutside=_a.renderDotsOutside,renderButtonGroupOutside=_a.renderButtonGroupOutside,className=_a.className,rtl=_a.rtl;\"production\"!==process.env.NODE_ENV&&utils_1.throwError(this.state,this.props);var _b=utils_1.getInitialState(this.state,this.props),shouldRenderOnSSR=_b.shouldRenderOnSSR,shouldRenderAtAll=_b.shouldRenderAtAll,isLeftEndReach=utils_1.isInLeftEnd(this.state),isRightEndReach=utils_1.isInRightEnd(this.state),shouldShowArrows=arrows&&!(removeArrowOnDeviceType&&(deviceType&&-12*slidesToShow?index+2*slidesToShow:currentSlide>=childrenArr.length?childrenArr.length+index:index}function getOriginalIndexLookupTableByClones(slidesToShow,childrenArr){if(childrenArr.length>2*slidesToShow){for(var table={},firstBeginningOfClones=childrenArr.length-2*slidesToShow,firstEndOfClones=childrenArr.length-firstBeginningOfClones,firstCount=firstBeginningOfClones,i=0;i2*slidesToShow?childrenArr.slice(childrenArr.length-2*slidesToShow,childrenArr.length).concat(childrenArr,childrenArr.slice(0,2*slidesToShow)):childrenArr.concat(childrenArr,childrenArr)}function getInitialSlideInInfiniteMode(slidesToShow,childrenArr){return childrenArr.length>2*slidesToShow?2*slidesToShow:childrenArr.length}function checkClonesPosition(_a,childrenArr,props){var isReachingTheEnd,currentSlide=_a.currentSlide,slidesToShow=_a.slidesToShow,itemWidth=_a.itemWidth,totalItems=_a.totalItems,nextSlide=0,nextPosition=0,isReachingTheStart=0===currentSlide,originalFirstSlide=childrenArr.length-(childrenArr.length-2*slidesToShow);return childrenArr.length2*slidesToShow?((isReachingTheEnd=currentSlide>=originalFirstSlide+childrenArr.length)&&(nextPosition=-itemWidth*(nextSlide=currentSlide-childrenArr.length)),isReachingTheStart&&(nextPosition=-itemWidth*(nextSlide=originalFirstSlide+(childrenArr.length-2*slidesToShow)))):((isReachingTheEnd=currentSlide>=2*childrenArr.length)&&(nextPosition=-itemWidth*(nextSlide=currentSlide-childrenArr.length)),isReachingTheStart&&(nextPosition=props.showDots?-itemWidth*(nextSlide=childrenArr.length):-itemWidth*(nextSlide=totalItems/3))),{isReachingTheEnd:isReachingTheEnd,isReachingTheStart:isReachingTheStart,nextSlide:nextSlide,nextPosition:nextPosition}}Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.getOriginalCounterPart=getOriginalCounterPart,exports.getOriginalIndexLookupTableByClones=getOriginalIndexLookupTableByClones,exports.getClones=getClones,exports.getInitialSlideInInfiniteMode=getInitialSlideInInfiniteMode,exports.checkClonesPosition=checkClonesPosition;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var elementWidth_1=require(\"./elementWidth\");function notEnoughChildren(state){var slidesToShow=state.slidesToShow;return state.totalItems=min&&window.innerWidth<=max&&(slidesToScroll=slidesToSlide)}),slidesToScroll}exports.notEnoughChildren=notEnoughChildren,exports.getInitialState=getInitialState,exports.getIfSlideIsVisbile=getIfSlideIsVisbile,exports.getTransformForCenterMode=getTransformForCenterMode,exports.isInLeftEnd=isInLeftEnd,exports.isInRightEnd=isInRightEnd,exports.getTransformForPartialVsibile=getTransformForPartialVsibile,exports.parsePosition=parsePosition,exports.getTransform=getTransform,exports.getSlidesToSlide=getSlidesToSlide;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var clones_1=require(\"./clones\"),common_1=require(\"./common\");function getLookupTableForNextSlides(numberOfDotsToShow,state,props,childrenArr){var table={},slidesToSlide=common_1.getSlidesToSlide(state,props);return Array(numberOfDotsToShow).fill(0).forEach(function(_,i){var nextSlide=clones_1.getOriginalCounterPart(i,state,childrenArr);if(0===i)table[0]=nextSlide;else{var now=table[i-1]+slidesToSlide;table[i]=now}}),table}exports.getLookupTableForNextSlides=getLookupTableForNextSlides;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var hasWarnAboutTypo=!1;function getPartialVisibilityGutter(responsive,partialVisible,serverSideDeviceType,clientSideDeviceType){var gutter=0,deviceType=clientSideDeviceType||serverSideDeviceType;return partialVisible&&deviceType&&(!hasWarnAboutTypo&&\"production\"!==process.env.NODE_ENV&&responsive[deviceType].paritialVisibilityGutter&&(hasWarnAboutTypo=!0,console.warn(\"You appear to be using paritialVisibilityGutter instead of partialVisibilityGutter which will be moved to partialVisibilityGutter in the future completely\")),gutter=responsive[deviceType].partialVisibilityGutter||responsive[deviceType].paritialVisibilityGutter),gutter}function getWidthFromDeviceType(deviceType,responsive){var itemWidth;responsive[deviceType]&&(itemWidth=(100/responsive[deviceType].items).toFixed(1));return itemWidth}function getItemClientSideWidth(props,slidesToShow,containerWidth){return Math.round(containerWidth/(slidesToShow+(props.centerMode?1:0)))}exports.getPartialVisibilityGutter=getPartialVisibilityGutter,exports.getWidthFromDeviceType=getWidthFromDeviceType,exports.getItemClientSideWidth=getItemClientSideWidth;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var clones_1=require(\"./clones\");exports.getOriginalCounterPart=clones_1.getOriginalCounterPart,exports.getClones=clones_1.getClones,exports.checkClonesPosition=clones_1.checkClonesPosition,exports.getInitialSlideInInfiniteMode=clones_1.getInitialSlideInInfiniteMode;var elementWidth_1=require(\"./elementWidth\");exports.getWidthFromDeviceType=elementWidth_1.getWidthFromDeviceType,exports.getPartialVisibilityGutter=elementWidth_1.getPartialVisibilityGutter,exports.getItemClientSideWidth=elementWidth_1.getItemClientSideWidth;var common_1=require(\"./common\");exports.getInitialState=common_1.getInitialState,exports.getIfSlideIsVisbile=common_1.getIfSlideIsVisbile,exports.getTransformForCenterMode=common_1.getTransformForCenterMode,exports.getTransformForPartialVsibile=common_1.getTransformForPartialVsibile,exports.isInLeftEnd=common_1.isInLeftEnd,exports.isInRightEnd=common_1.isInRightEnd,exports.notEnoughChildren=common_1.notEnoughChildren,exports.getSlidesToSlide=common_1.getSlidesToSlide;var throttle_1=require(\"./throttle\");exports.throttle=throttle_1.default;var throwError_1=require(\"./throwError\");exports.throwError=throwError_1.default;var next_1=require(\"./next\");exports.populateNextSlides=next_1.populateNextSlides;var previous_1=require(\"./previous\");exports.populatePreviousSlides=previous_1.populatePreviousSlides;var mouseOrTouchMove_1=require(\"./mouseOrTouchMove\");exports.populateSlidesOnMouseTouchMove=mouseOrTouchMove_1.populateSlidesOnMouseTouchMove;","\"use strict\";function populateSlidesOnMouseTouchMove(state,props,initialX,lastX,clientX,transformPlaceHolder){var direction,nextPosition,itemWidth=state.itemWidth,slidesToShow=state.slidesToShow,totalItems=state.totalItems,currentSlide=state.currentSlide,infinite=props.infinite,canContinue=!1,slidesHavePassedRight=Math.round((initialX-lastX)/itemWidth),slidesHavePassedLeft=Math.round((lastX-initialX)/itemWidth),isMovingLeft=initialXDistilled Feature Fields Enable Few-Shot Language-Guided Manipulation

ELM: Embodied Understanding of Driving Scenarios

*Indicates equal contribution.

 Paper Code

teaser

ELM is an embodied language model for understanding the long-horizon driving scenarios in space and time. Compared to the vanilla vision-language model (VLM) being confined to the scene description task, we expand a wide spectrum of new tasks to fully leverage the capability of large language models in an embodiment setting. ELM achieves significant improvements in various applications.

Abstract

Embodied scene understanding serves as the cornerstone for autonomous agents to perceive, interpret, and respond to open driving scenarios. Such understanding is typically founded upon Vision-Language Models (VLMs). Nevertheless, existing VLMs are restricted to the 2D domain, devoid of spatial awareness and long-horizon extrapolation proficiencies. We revisit the key aspects of autonomous driving and formulate appropriate rubrics. Hereby, we introduce the Embodied Language Model (ELM), a comprehensive framework tailored for agents' understanding of driving scenes with large spatial and temporal spans. ELM incorporates space-aware pre-training to endow the agent with robust spatial localization capabilities. Besides, the model employs time-aware token selection to accurately inquire about temporal cues. We instantiate ELM on the reformulated multi-faced benchmark, and it surpasses previous state-of-the-art approaches in all aspects.

Methodology

Model Overview

Description of the image

Systematic Pipeline of ELM. It consists of Pre-training by open-world data corpus and Fine-tuning on diverse tasks. To initialize the Space-aware Pre-training, we collect extensive image-text pairs from the world, empowering ELM with spatial localization while preserving the description ability in driving scenarios. In the fine-tuning process, the inputs to ELM are videos, timestamps, and text prompts. After encoding the inputs into tokens, ELM leverages the proposed Time-aware Token Selection to gather the appropriate tokens as instructed by prompts. Finally, the tokens are sent to the language model to generate output texts.

Space-aware Pre-training

Description of the image

Annotation workflow with human quality check in the loop. For location labeling: we first select diverse templates from the GPT generated candidates. Pixel-point pairs as annotated in the nuScenes are then sampled and filled into the templates to form our location pre-training data.For description labeling: Node 4 utilizes LLaMA-Adapter V2 to obtain diverse labels on nuScenes, Waymo, YouTube, and Ego4D with predefined prompts. Two rounds of quality check are conducted in Node 3 and 7 by inspectors to guarantee the image and caption quality.

Description of the image

Statistics of pre-training data and comparison of data collection with other VLMs. Our pre-train data surpasses that in general vision (top) and autonomous driving (middle) in terms of quantity and diversity. Anno: the type of annotations; Des: description; Loc: localization.

Experiments

Visualization on the benchmark. We provide results for ten tasks and E2E planning through videos and corresponding QA pairs.

Results

Description of the image

Comparison to State-of-the-arts. All methods are fine-tuned on the corresponding tasks. The main metrics (%) are marked in gray. Bold emphasizes top method; underline marks the runner-up. C: CIDEr; R: ROUGE-L; B: BLEU.

Citation

@article{zhou2024embodied,
+*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af}input::placeholder,textarea::placeholder{color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-year-field{padding-bottom:0;padding-top:0}select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}[type=checkbox]:checked,[type=radio]:checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:transparent}[type=checkbox]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0z'/%3E%3C/svg%3E")}[type=checkbox]:checked:focus,[type=checkbox]:checked:hover,[type=radio]:checked:focus,[type=radio]:checked:hover{background-color:currentColor;border-color:transparent}[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E");background-size:100% 100%}[type=file]:focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}[multiple],[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],select,textarea{--tw-shadow:0 0 #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-radius:0;border-width:1px;font-size:1rem;line-height:1.5rem;padding:.5rem .75rem}[multiple]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,select:focus,textarea:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#1c64f2;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);border-color:#1c64f2;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid transparent;outline-offset:2px}input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}select:not([size]){background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' aria-hidden='true' viewBox='0 0 10 6'%3E%3Cpath stroke='%236B7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m1 1 4 4 4-4'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:.75em .75em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}[multiple]{background-image:none;background-position:0 0;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}[type=checkbox],[type=radio]{--tw-shadow:0 0 #0000;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-origin:border-box;border-color:#6b7280;border-width:1px;color:#1c64f2;display:inline-block;flex-shrink:0;height:1rem;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:1rem}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#1c64f2;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid transparent;outline-offset:2px}.dark [type=checkbox]:checked,.dark [type=radio]:checked,[type=checkbox]:checked,[type=radio]:checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:.55em .55em;border-color:transparent}[type=checkbox]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' aria-hidden='true' viewBox='0 0 16 12'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M1 5.917 5.724 10.5 15 1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:.55em .55em;-webkit-print-color-adjust:exact;print-color-adjust:exact}.dark [type=radio]:checked,[type=radio]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E");background-size:1em 1em}[type=checkbox]:indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' aria-hidden='true' viewBox='0 0 16 12'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M1 5.917 5.724 10.5 15 1.5'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:.55em .55em;border-color:transparent;-webkit-print-color-adjust:exact;print-color-adjust:exact}[type=checkbox]:indeterminate:focus,[type=checkbox]:indeterminate:hover{background-color:currentColor;border-color:transparent}[type=file]{background:unset;border-color:inherit;border-radius:0;border-width:0;font-size:unset;line-height:inherit;padding:0}[type=file]:focus{outline:1px auto inherit}input[type=file]::file-selector-button{-webkit-margin-start:-1rem;-webkit-margin-end:1rem;background:#1f2937;border:0;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;margin-inline-end:1rem;margin-inline-start:-1rem;padding:.625rem 1rem .625rem 2rem}input[type=file]::file-selector-button:hover{background:#374151}.dark input[type=file]::file-selector-button{background:#4b5563;color:#fff}.dark input[type=file]::file-selector-button:hover{background:#6b7280}input[type=range]::-webkit-slider-thumb{appearance:none;-moz-appearance:none;-webkit-appearance:none;background:#1c64f2;border:0;border-radius:9999px;cursor:pointer;height:1.25rem;width:1.25rem}input[type=range]:disabled::-webkit-slider-thumb{background:#9ca3af}.dark input[type=range]:disabled::-webkit-slider-thumb{background:#6b7280}input[type=range]:focus::-webkit-slider-thumb{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1px;--tw-ring-color:rgb(164 202 254/var(--tw-ring-opacity));box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);outline:2px solid transparent;outline-offset:2px}input[type=range]::-moz-range-thumb{appearance:none;-moz-appearance:none;-webkit-appearance:none;background:#1c64f2;border:0;border-radius:9999px;cursor:pointer;height:1.25rem;width:1.25rem}input[type=range]:disabled::-moz-range-thumb{background:#9ca3af}.dark input[type=range]:disabled::-moz-range-thumb{background:#6b7280}input[type=range]::-moz-range-progress{background:#3f83f8}input[type=range]::-ms-fill-lower{background:#3f83f8}input[type=range].range-sm::-webkit-slider-thumb{height:1rem;width:1rem}input[type=range].range-lg::-webkit-slider-thumb{height:1.5rem;width:1.5rem}input[type=range].range-sm::-moz-range-thumb{height:1rem;width:1rem}input[type=range].range-lg::-moz-range-thumb{height:1.5rem;width:1.5rem}.toggle-bg:after{background:#fff;border-color:#d1d5db;border-radius:9999px;border-width:1px;box-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);content:"";height:1.25rem;left:.125rem;position:absolute;top:.125rem;transition-duration:.15s;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;width:1.25rem}input:checked+.toggle-bg:after{border-color:#fff;transform:translateX(100%)}input:checked+.toggle-bg{background:#1c64f2;border-color:#1c64f2}[data-tooltip-style^=light]+.tooltip>.tooltip-arrow:before{border-color:#e5e7eb;border-style:solid}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=top]>.tooltip-arrow:before{border-bottom-width:1px;border-right-width:1px}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=right]>.tooltip-arrow:before{border-bottom-width:1px;border-left-width:1px}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=bottom]>.tooltip-arrow:before{border-left-width:1px;border-top-width:1px}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=left]>.tooltip-arrow:before{border-right-width:1px;border-top-width:1px}.tooltip[data-popper-placement^=top]>.tooltip-arrow{bottom:-4px}.tooltip[data-popper-placement^=bottom]>.tooltip-arrow{top:-4px}.tooltip[data-popper-placement^=left]>.tooltip-arrow{right:-4px}.tooltip[data-popper-placement^=right]>.tooltip-arrow{left:-4px}.tooltip.invisible>.tooltip-arrow:before{visibility:hidden}[data-popper-arrow],[data-popper-arrow]:before{background:inherit;height:8px;position:absolute;width:8px}[data-popper-arrow]{visibility:hidden}[data-popper-arrow]:after,[data-popper-arrow]:before{content:"";transform:rotate(45deg);visibility:visible}[data-popper-arrow]:after{background:inherit;height:9px;position:absolute;width:9px}[role=tooltip]>[data-popper-arrow]:before{border-color:#e5e7eb;border-style:solid}.dark [role=tooltip]>[data-popper-arrow]:before{border-color:#4b5563;border-style:solid}[role=tooltip]>[data-popper-arrow]:after{border-color:#e5e7eb;border-style:solid}.dark [role=tooltip]>[data-popper-arrow]:after{border-color:#4b5563;border-style:solid}[data-popover][role=tooltip][data-popper-placement^=top]>[data-popper-arrow]:after,[data-popover][role=tooltip][data-popper-placement^=top]>[data-popper-arrow]:before{border-bottom-width:1px;border-right-width:1px}[data-popover][role=tooltip][data-popper-placement^=right]>[data-popper-arrow]:after,[data-popover][role=tooltip][data-popper-placement^=right]>[data-popper-arrow]:before{border-bottom-width:1px;border-left-width:1px}[data-popover][role=tooltip][data-popper-placement^=bottom]>[data-popper-arrow]:after,[data-popover][role=tooltip][data-popper-placement^=bottom]>[data-popper-arrow]:before{border-left-width:1px;border-top-width:1px}[data-popover][role=tooltip][data-popper-placement^=left]>[data-popper-arrow]:after,[data-popover][role=tooltip][data-popper-placement^=left]>[data-popper-arrow]:before{border-right-width:1px;border-top-width:1px}[data-popover][role=tooltip][data-popper-placement^=top]>[data-popper-arrow]{bottom:-5px}[data-popover][role=tooltip][data-popper-placement^=bottom]>[data-popper-arrow]{top:-5px}[data-popover][role=tooltip][data-popper-placement^=left]>[data-popper-arrow]{right:-5px}[data-popover][role=tooltip][data-popper-placement^=right]>[data-popper-arrow]{left:-5px}[role=tooltip].invisible>[data-popper-arrow]:after,[role=tooltip].invisible>[data-popper-arrow]:before{visibility:hidden}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(63,131,248,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(63,131,248,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }html{scroll-behavior:smooth}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.format{color:var(--tw-prose-body);max-width:65ch}.format :where(p):not(:where([class~=not-format] *)){margin-bottom:1.25em;margin-top:1.25em}.format :where([class~=lead]):not(:where([class~=not-format] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-bottom:1.2em;margin-top:1.2em}.format :where(a):not(:where([class~=not-format] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.format :where(strong):not(:where([class~=not-format] *)){color:var(--tw-prose-bold);font-weight:600}.format :where(a strong):not(:where([class~=not-format] *)){color:inherit}.format :where(blockquote strong):not(:where([class~=not-format] *)){color:inherit}.format :where(thead th strong):not(:where([class~=not-format] *)){color:inherit}.format :where(ol):not(:where([class~=not-format] *)){list-style-type:decimal;margin-bottom:1.25em;margin-top:1.25em;padding-left:1.625em}.format :where(ol[type=A]):not(:where([class~=not-format] *)){list-style-type:upper-alpha}.format :where(ol[type=a]):not(:where([class~=not-format] *)){list-style-type:lower-alpha}.format :where(ol[type=A s]):not(:where([class~=not-format] *)){list-style-type:upper-alpha}.format :where(ol[type=a s]):not(:where([class~=not-format] *)){list-style-type:lower-alpha}.format :where(ol[type=I]):not(:where([class~=not-format] *)){list-style-type:upper-roman}.format :where(ol[type=i]):not(:where([class~=not-format] *)){list-style-type:lower-roman}.format :where(ol[type=I s]):not(:where([class~=not-format] *)){list-style-type:upper-roman}.format :where(ol[type=i s]):not(:where([class~=not-format] *)){list-style-type:lower-roman}.format :where(ol[type="1"]):not(:where([class~=not-format] *)){list-style-type:decimal}.format :where(ul):not(:where([class~=not-format] *)){list-style-type:disc;margin-bottom:1.25em;margin-top:1.25em;padding-left:1.625em}.format :where(ol>li):not(:where([class~=not-format] *))::marker{color:var(--tw-prose-counters);font-weight:400}.format :where(ul>li):not(:where([class~=not-format] *))::marker{color:var(--tw-prose-bullets)}.format :where(hr):not(:where([class~=not-format] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-bottom:3em;margin-top:3em}.format :where(blockquote):not(:where([class~=not-format] *)){border-left-color:var(--tw-prose-quote-borders);border-left-width:.25rem;color:var(--tw-prose-quotes);font-style:italic;font-weight:500;margin-bottom:1.6em;margin-top:1.6em;padding-left:1em;quotes:"\201C""\201D""\2018""\2019"}.format :where(blockquote p:first-of-type):not(:where([class~=not-format] *)):before{content:open-quote}.format :where(blockquote p:last-of-type):not(:where([class~=not-format] *)):after{content:close-quote}.format :where(h1):not(:where([class~=not-format] *)){color:var(--tw-prose-headings);font-size:2.25em;font-weight:800;line-height:1.1111111;margin-bottom:.8888889em;margin-top:0}.format :where(h1 strong):not(:where([class~=not-format] *)){color:inherit;font-weight:900}.format :where(h2):not(:where([class~=not-format] *)){color:var(--tw-prose-headings);font-size:1.5em;font-weight:700;line-height:1.3333333;margin-bottom:1em;margin-top:2em}.format :where(h2 strong):not(:where([class~=not-format] *)){color:inherit;font-weight:800}.format :where(h3):not(:where([class~=not-format] *)){color:var(--tw-prose-headings);font-size:1.25em;font-weight:600;line-height:1.6;margin-bottom:.6em;margin-top:1.6em}.format :where(h3 strong):not(:where([class~=not-format] *)){color:inherit;font-weight:700}.format :where(h4):not(:where([class~=not-format] *)){color:var(--tw-prose-headings);font-weight:600;line-height:1.5;margin-bottom:.5em;margin-top:1.5em}.format :where(h4 strong):not(:where([class~=not-format] *)){color:inherit;font-weight:700}.format :where(img):not(:where([class~=not-format] *)){margin-bottom:2em;margin-top:2em}.format :where(figure>*):not(:where([class~=not-format] *)){margin-bottom:0;margin-top:0}.format :where(figcaption):not(:where([class~=not-format] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.format :where(code):not(:where([class~=not-format] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.format :where(code):not(:where([class~=not-format] *)):before{content:"`"}.format :where(code):not(:where([class~=not-format] *)):after{content:"`"}.format :where(a code):not(:where([class~=not-format] *)){color:inherit}.format :where(h1 code):not(:where([class~=not-format] *)){color:inherit}.format :where(h2 code):not(:where([class~=not-format] *)){color:inherit;font-size:.875em}.format :where(h3 code):not(:where([class~=not-format] *)){color:inherit;font-size:.9em}.format :where(h4 code):not(:where([class~=not-format] *)){color:inherit}.format :where(blockquote code):not(:where([class~=not-format] *)){color:inherit}.format :where(thead th code):not(:where([class~=not-format] *)){color:inherit}.format :where(pre):not(:where([class~=not-format] *)){background-color:var(--tw-prose-pre-bg);border-radius:.375rem;color:var(--tw-prose-pre-code);font-size:.875em;font-weight:400;line-height:1.7142857;margin-bottom:1.7142857em;margin-top:1.7142857em;overflow-x:auto;padding:.8571429em 1.1428571em}.format :where(pre code):not(:where([class~=not-format] *)){background-color:transparent;border-radius:0;border-width:0;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;padding:0}.format :where(pre code):not(:where([class~=not-format] *)):before{content:none}.format :where(pre code):not(:where([class~=not-format] *)):after{content:none}.format :where(table):not(:where([class~=not-format] *)){font-size:.875em;line-height:1.7142857;margin-bottom:2em;margin-top:2em;table-layout:auto;text-align:left;width:100%}.format :where(thead):not(:where([class~=not-format] *)){border-bottom-color:var(--tw-prose-th-borders);border-bottom-width:1px}.format :where(thead th):not(:where([class~=not-format] *)){color:var(--tw-prose-headings);font-weight:600;padding-bottom:.5714286em;padding-left:.5714286em;padding-right:.5714286em;vertical-align:bottom}.format :where(tbody tr):not(:where([class~=not-format] *)){border-bottom-color:var(--tw-prose-td-borders);border-bottom-width:1px}.format :where(tbody tr:last-child):not(:where([class~=not-format] *)){border-bottom-width:0}.format :where(tbody td):not(:where([class~=not-format] *)){vertical-align:baseline}.format :where(tfoot):not(:where([class~=not-format] *)){border-top-color:var(--tw-prose-th-borders);border-top-width:1px}.format :where(tfoot td):not(:where([class~=not-format] *)){vertical-align:top}.format{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.format :where(video):not(:where([class~=not-format] *)){margin-bottom:2em;margin-top:2em}.format :where(figure):not(:where([class~=not-format] *)){margin-bottom:2em;margin-top:2em}.format :where(li):not(:where([class~=not-format] *)){margin-bottom:.5em;margin-top:.5em}.format :where(ol>li):not(:where([class~=not-format] *)){padding-left:.375em}.format :where(ul>li):not(:where([class~=not-format] *)){padding-left:.375em}.format :where(.format>ul>li p):not(:where([class~=not-format] *)){margin-bottom:.75em;margin-top:.75em}.format :where(.format>ul>li>:first-child):not(:where([class~=not-format] *)){margin-top:1.25em}.format :where(.format>ul>li>:last-child):not(:where([class~=not-format] *)){margin-bottom:1.25em}.format :where(.format>ol>li>:first-child):not(:where([class~=not-format] *)){margin-top:1.25em}.format :where(.format>ol>li>:last-child):not(:where([class~=not-format] *)){margin-bottom:1.25em}.format :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-format] *)){margin-bottom:.75em;margin-top:.75em}.format :where(hr+*):not(:where([class~=not-format] *)){margin-top:0}.format :where(h2+*):not(:where([class~=not-format] *)){margin-top:0}.format :where(h3+*):not(:where([class~=not-format] *)){margin-top:0}.format :where(h4+*):not(:where([class~=not-format] *)){margin-top:0}.format :where(thead th:first-child):not(:where([class~=not-format] *)){padding-left:0}.format :where(thead th:last-child):not(:where([class~=not-format] *)){padding-right:0}.format :where(tbody td,tfoot td):not(:where([class~=not-format] *)){padding:.5714286em}.format :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-format] *)){padding-left:0}.format :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-format] *)){padding-right:0}.format :where(.format>:first-child):not(:where([class~=not-format] *)){margin-top:0}.format :where(.format>:last-child):not(:where([class~=not-format] *)){margin-bottom:0}.format-sm :where(.format>ul>li p):not(:where([class~=not-format] *)){margin-bottom:.5714286em;margin-top:.5714286em}.format-sm :where(.format>ul>li>:first-child):not(:where([class~=not-format] *)){margin-top:1.1428571em}.format-sm :where(.format>ul>li>:last-child):not(:where([class~=not-format] *)){margin-bottom:1.1428571em}.format-sm :where(.format>ol>li>:first-child):not(:where([class~=not-format] *)){margin-top:1.1428571em}.format-sm :where(.format>ol>li>:last-child):not(:where([class~=not-format] *)){margin-bottom:1.1428571em}.format-sm :where(.format>:first-child):not(:where([class~=not-format] *)){margin-top:0}.format-sm :where(.format>:last-child):not(:where([class~=not-format] *)){margin-bottom:0}.format-base :where(.format>ul>li p):not(:where([class~=not-format] *)){margin-bottom:.75em;margin-top:.75em}.format-base :where(.format>ul>li>:first-child):not(:where([class~=not-format] *)){margin-top:1.25em}.format-base :where(.format>ul>li>:last-child):not(:where([class~=not-format] *)){margin-bottom:1.25em}.format-base :where(.format>ol>li>:first-child):not(:where([class~=not-format] *)){margin-top:1.25em}.format-base :where(.format>ol>li>:last-child):not(:where([class~=not-format] *)){margin-bottom:1.25em}.format-base :where(.format>:first-child):not(:where([class~=not-format] *)){margin-top:0}.format-base :where(.format>:last-child):not(:where([class~=not-format] *)){margin-bottom:0}.format-lg :where(.format>ul>li p):not(:where([class~=not-format] *)){margin-bottom:.8888889em;margin-top:.8888889em}.format-lg :where(.format>ul>li>:first-child):not(:where([class~=not-format] *)){margin-top:1.3333333em}.format-lg :where(.format>ul>li>:last-child):not(:where([class~=not-format] *)){margin-bottom:1.3333333em}.format-lg :where(.format>ol>li>:first-child):not(:where([class~=not-format] *)){margin-top:1.3333333em}.format-lg :where(.format>ol>li>:last-child):not(:where([class~=not-format] *)){margin-bottom:1.3333333em}.format-lg :where(.format>:first-child):not(:where([class~=not-format] *)){margin-top:0}.format-lg :where(.format>:last-child):not(:where([class~=not-format] *)){margin-bottom:0}.format-xl :where(.format>ul>li p):not(:where([class~=not-format] *)){margin-bottom:.8em;margin-top:.8em}.format-xl :where(.format>ul>li>:first-child):not(:where([class~=not-format] *)){margin-top:1.2em}.format-xl :where(.format>ul>li>:last-child):not(:where([class~=not-format] *)){margin-bottom:1.2em}.format-xl :where(.format>ol>li>:first-child):not(:where([class~=not-format] *)){margin-top:1.2em}.format-xl :where(.format>ol>li>:last-child):not(:where([class~=not-format] *)){margin-bottom:1.2em}.format-xl :where(.format>:first-child):not(:where([class~=not-format] *)){margin-top:0}.format-xl :where(.format>:last-child):not(:where([class~=not-format] *)){margin-bottom:0}.format-2xl :where(.format>ul>li p):not(:where([class~=not-format] *)){margin-bottom:.8333333em;margin-top:.8333333em}.format-2xl :where(.format>ul>li>:first-child):not(:where([class~=not-format] *)){margin-top:1.3333333em}.format-2xl :where(.format>ul>li>:last-child):not(:where([class~=not-format] *)){margin-bottom:1.3333333em}.format-2xl :where(.format>ol>li>:first-child):not(:where([class~=not-format] *)){margin-top:1.3333333em}.format-2xl :where(.format>ol>li>:last-child):not(:where([class~=not-format] *)){margin-bottom:1.3333333em}.format-2xl :where(.format>:first-child):not(:where([class~=not-format] *)){margin-top:0}.format-2xl :where(.format>:last-child):not(:where([class~=not-format] *)){margin-bottom:0}.format-blue{--tw-prose-links:#2563eb;--tw-prose-invert-links:#3b82f6}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-y-0{bottom:0;top:0}.-bottom-1{bottom:-.25rem}.-left-1{left:-.25rem}.-left-1\.5{left:-.375rem}.-left-3{left:-.75rem}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.bottom-5{bottom:1.25rem}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.top-0{top:0}.top-1\/2{top:50%}.-z-10{z-index:-10}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.float-right{float:right}.m-1{margin:.25rem}.m-3{margin:.75rem}.\!my-0{margin-bottom:0!important;margin-top:0!important}.\!my-4{margin-bottom:1rem!important;margin-top:1rem!important}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-1\.5{margin-left:-.375rem;margin-right:-.375rem}.-my-1{margin-bottom:-.25rem;margin-top:-.25rem}.-my-1\.5{margin-bottom:-.375rem;margin-top:-.375rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-bottom:.25rem;margin-top:.25rem}.my-3{margin-bottom:.75rem;margin-top:.75rem}.my-3\.5{margin-bottom:.875rem;margin-top:.875rem}.my-6{margin-bottom:1.5rem;margin-top:1.5rem}.\!mb-0{margin-bottom:0!important}.\!mb-2{margin-bottom:.5rem!important}.\!mb-4{margin-bottom:1rem!important}.\!mt-0{margin-top:0!important}.\!mt-2{margin-top:.5rem!important}.\!mt-4{margin-top:1rem!important}.-mb-px{margin-bottom:-1px}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-0{margin-right:0}.mr-0\.5{margin-right:.125rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-36{height:9rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-96{height:24rem}.h-auto{height:auto}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.h-min{height:-moz-min-content;height:min-content}.h-modal{height:calc(100% - 2rem)}.h-px{height:1px}.max-h-\[90vh\]{max-height:90vh}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\/4{width:50%}.w-20{width:5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-36{width:9rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[100\%\]{max-width:100%}.max-w-\[80\%\]{max-width:80%}.max-w-\[90\%\]{max-width:90%}.max-w-\[97\.5\%\]{max-width:97.5%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.rotate-180{--tw-rotate:180deg}.rotate-180,.rotate-45{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate:45deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.\!cursor-wait{cursor:wait!important}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.snap-center{scroll-snap-align:center}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.content-center{align-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-center{justify-items:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.-space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(-1rem*var(--tw-space-x-reverse))}.-space-x-px>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(-1px*(1 - var(--tw-space-x-reverse)));margin-right:calc(-1px*var(--tw-space-x-reverse))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.75rem*var(--tw-space-x-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-left-width:calc(1px*(1 - var(--tw-divide-x-reverse)));border-right-width:calc(1px*var(--tw-divide-x-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(243 244 246/var(--tw-divide-opacity))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(229 231 235/var(--tw-divide-opacity))}.self-center{align-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-scroll{overflow-x:scroll}.scroll-smooth{scroll-behavior:smooth}.whitespace-nowrap{white-space:nowrap}.\!rounded-full{border-radius:9999px!important}.\!rounded-none{border-radius:0!important}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-xl{border-radius:.75rem}.rounded-b{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-l-lg{border-bottom-left-radius:.5rem;border-top-left-radius:.5rem}.rounded-l-md{border-bottom-left-radius:.375rem;border-top-left-radius:.375rem}.rounded-l-none{border-bottom-left-radius:0;border-top-left-radius:0}.rounded-r-lg{border-bottom-right-radius:.5rem;border-top-right-radius:.5rem}.rounded-r-none{border-bottom-right-radius:0;border-top-right-radius:0}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.\!border-b-0{border-bottom-width:0!important}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-b-\[1px\]{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-0{border-left-width:0}.border-r-0{border-right-width:0}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-cyan-300{--tw-border-opacity:1;border-color:rgb(103 232 249/var(--tw-border-opacity))}.border-cyan-500{--tw-border-opacity:1;border-color:rgb(6 182 212/var(--tw-border-opacity))}.border-cyan-600{--tw-border-opacity:1;border-color:rgb(8 145 178/var(--tw-border-opacity))}.border-cyan-700{--tw-border-opacity:1;border-color:rgb(14 116 144/var(--tw-border-opacity))}.border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity))}.border-gray-500{--tw-border-opacity:1;border-color:rgb(107 114 128/var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity))}.border-gray-900{--tw-border-opacity:1;border-color:rgb(17 24 39/var(--tw-border-opacity))}.border-green-300{--tw-border-opacity:1;border-color:rgb(132 225 188/var(--tw-border-opacity))}.border-green-500{--tw-border-opacity:1;border-color:rgb(14 159 110/var(--tw-border-opacity))}.border-green-700{--tw-border-opacity:1;border-color:rgb(4 108 78/var(--tw-border-opacity))}.border-indigo-300{--tw-border-opacity:1;border-color:rgb(180 198 252/var(--tw-border-opacity))}.border-indigo-400{--tw-border-opacity:1;border-color:rgb(141 162 251/var(--tw-border-opacity))}.border-indigo-500{--tw-border-opacity:1;border-color:rgb(104 117 245/var(--tw-border-opacity))}.border-lime-300{--tw-border-opacity:1;border-color:rgb(190 242 100/var(--tw-border-opacity))}.border-lime-400{--tw-border-opacity:1;border-color:rgb(163 230 53/var(--tw-border-opacity))}.border-lime-500{--tw-border-opacity:1;border-color:rgb(132 204 22/var(--tw-border-opacity))}.border-pink-300{--tw-border-opacity:1;border-color:rgb(248 180 217/var(--tw-border-opacity))}.border-pink-500{--tw-border-opacity:1;border-color:rgb(231 70 148/var(--tw-border-opacity))}.border-pink-600{--tw-border-opacity:1;border-color:rgb(214 31 105/var(--tw-border-opacity))}.border-purple-500{--tw-border-opacity:1;border-color:rgb(144 97 249/var(--tw-border-opacity))}.border-purple-900{--tw-border-opacity:1;border-color:rgb(74 29 150/var(--tw-border-opacity))}.border-red-300{--tw-border-opacity:1;border-color:rgb(248 180 180/var(--tw-border-opacity))}.border-red-500{--tw-border-opacity:1;border-color:rgb(240 82 82/var(--tw-border-opacity))}.border-red-900{--tw-border-opacity:1;border-color:rgb(119 29 29/var(--tw-border-opacity))}.border-teal-300{--tw-border-opacity:1;border-color:rgb(126 220 226/var(--tw-border-opacity))}.border-teal-500{--tw-border-opacity:1;border-color:rgb(6 148 162/var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}.border-yellow-300{--tw-border-opacity:1;border-color:rgb(250 202 21/var(--tw-border-opacity))}.border-yellow-400{--tw-border-opacity:1;border-color:rgb(227 160 8/var(--tw-border-opacity))}.border-yellow-500{--tw-border-opacity:1;border-color:rgb(194 120 3/var(--tw-border-opacity))}.border-yellow-600{--tw-border-opacity:1;border-color:rgb(159 88 10/var(--tw-border-opacity))}.\!bg-cyan-50{--tw-bg-opacity:1!important;background-color:rgb(236 254 255/var(--tw-bg-opacity))!important}.\!bg-transparent{background-color:transparent!important}.bg-\[\#f9f9f9\]{--tw-bg-opacity:1;background-color:rgb(249 249 249/var(--tw-bg-opacity))}.bg-cyan-100{--tw-bg-opacity:1;background-color:rgb(207 250 254/var(--tw-bg-opacity))}.bg-cyan-200{--tw-bg-opacity:1;background-color:rgb(165 243 252/var(--tw-bg-opacity))}.bg-cyan-50{--tw-bg-opacity:1;background-color:rgb(236 254 255/var(--tw-bg-opacity))}.bg-cyan-500{--tw-bg-opacity:1;background-color:rgb(6 182 212/var(--tw-bg-opacity))}.bg-cyan-600{--tw-bg-opacity:1;background-color:rgb(8 145 178/var(--tw-bg-opacity))}.bg-cyan-700{--tw-bg-opacity:1;background-color:rgb(14 116 144/var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity))}.bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(222 247 236/var(--tw-bg-opacity))}.bg-green-400{--tw-bg-opacity:1;background-color:rgb(49 196 141/var(--tw-bg-opacity))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(243 250 247/var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(14 159 110/var(--tw-bg-opacity))}.bg-green-600{--tw-bg-opacity:1;background-color:rgb(5 122 85/var(--tw-bg-opacity))}.bg-green-700{--tw-bg-opacity:1;background-color:rgb(4 108 78/var(--tw-bg-opacity))}.bg-indigo-100{--tw-bg-opacity:1;background-color:rgb(229 237 255/var(--tw-bg-opacity))}.bg-indigo-400{--tw-bg-opacity:1;background-color:rgb(141 162 251/var(--tw-bg-opacity))}.bg-indigo-600{--tw-bg-opacity:1;background-color:rgb(88 80 236/var(--tw-bg-opacity))}.bg-lime-100{--tw-bg-opacity:1;background-color:rgb(236 252 203/var(--tw-bg-opacity))}.bg-lime-400{--tw-bg-opacity:1;background-color:rgb(163 230 53/var(--tw-bg-opacity))}.bg-pink-100{--tw-bg-opacity:1;background-color:rgb(252 232 243/var(--tw-bg-opacity))}.bg-pink-600{--tw-bg-opacity:1;background-color:rgb(214 31 105/var(--tw-bg-opacity))}.bg-purple-100{--tw-bg-opacity:1;background-color:rgb(237 235 254/var(--tw-bg-opacity))}.bg-purple-50{--tw-bg-opacity:1;background-color:rgb(246 245 255/var(--tw-bg-opacity))}.bg-purple-600{--tw-bg-opacity:1;background-color:rgb(126 58 242/var(--tw-bg-opacity))}.bg-purple-700{--tw-bg-opacity:1;background-color:rgb(108 43 217/var(--tw-bg-opacity))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(253 232 232/var(--tw-bg-opacity))}.bg-red-400{--tw-bg-opacity:1;background-color:rgb(249 128 128/var(--tw-bg-opacity))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(253 242 242/var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(224 36 36/var(--tw-bg-opacity))}.bg-red-700{--tw-bg-opacity:1;background-color:rgb(200 30 30/var(--tw-bg-opacity))}.bg-teal-100{--tw-bg-opacity:1;background-color:rgb(213 245 246/var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-white\/30{background-color:hsla(0,0%,100%,.3)}.bg-white\/50{background-color:hsla(0,0%,100%,.5)}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(253 246 178/var(--tw-bg-opacity))}.bg-yellow-400{--tw-bg-opacity:1;background-color:rgb(227 160 8/var(--tw-bg-opacity))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(253 253 234/var(--tw-bg-opacity))}.bg-yellow-600{--tw-bg-opacity:1;background-color:rgb(159 88 10/var(--tw-bg-opacity))}.bg-opacity-50{--tw-bg-opacity:0.5}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-cyan-400{--tw-gradient-from:#22d3ee var(--tw-gradient-from-position);--tw-gradient-to:rgba(34,211,238,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-cyan-500{--tw-gradient-from:#06b6d4 var(--tw-gradient-from-position);--tw-gradient-to:rgba(6,182,212,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-green-400{--tw-gradient-from:#31c48d var(--tw-gradient-from-position);--tw-gradient-to:rgba(49,196,141,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-lime-200{--tw-gradient-from:#d9f99d var(--tw-gradient-from-position);--tw-gradient-to:hsla(81,88%,80%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-pink-100{--tw-gradient-from:#fce8f3 var(--tw-gradient-from-position);--tw-gradient-to:rgba(252,232,243,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-pink-100\/70{--tw-gradient-from:rgba(252,232,243,.7) var(--tw-gradient-from-position);--tw-gradient-to:rgba(252,232,243,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-pink-400{--tw-gradient-from:#f17eb8 var(--tw-gradient-from-position);--tw-gradient-to:rgba(241,126,184,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-pink-500{--tw-gradient-from:#e74694 var(--tw-gradient-from-position);--tw-gradient-to:rgba(231,70,148,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-purple-500{--tw-gradient-from:#9061f9 var(--tw-gradient-from-position);--tw-gradient-to:rgba(144,97,249,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-purple-600{--tw-gradient-from:#7e3af2 var(--tw-gradient-from-position);--tw-gradient-to:rgba(126,58,242,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-red-200{--tw-gradient-from:#fbd5d5 var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,83%,91%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-red-400{--tw-gradient-from:#f98080 var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,91%,74%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-teal-200{--tw-gradient-from:#afecef var(--tw-gradient-from-position);--tw-gradient-to:rgba(175,236,239,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-teal-400{--tw-gradient-from:#16bdca var(--tw-gradient-from-position);--tw-gradient-to:rgba(22,189,202,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-cyan-500{--tw-gradient-to:rgba(6,182,212,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#06b6d4 var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-cyan-600{--tw-gradient-to:rgba(8,145,178,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#0891b2 var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-green-500{--tw-gradient-to:rgba(14,159,110,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#0e9f6e var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-indigo-100{--tw-gradient-to:rgba(229,237,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#e5edff var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-indigo-100\/70{--tw-gradient-to:rgba(229,237,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(229,237,255,.7) var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-indigo-600{--tw-gradient-to:rgba(88,80,236,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#5850ec var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-lime-400{--tw-gradient-to:rgba(163,230,53,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#a3e635 var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-pink-500{--tw-gradient-to:rgba(231,70,148,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#e74694 var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-purple-600{--tw-gradient-to:rgba(126,58,242,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#7e3af2 var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-red-300{--tw-gradient-to:hsla(0,83%,84%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#f8b4b4 var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-red-500{--tw-gradient-to:rgba(240,82,82,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#f05252 var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-teal-500{--tw-gradient-to:rgba(6,148,162,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#0694a2 var(--tw-gradient-via-position),var(--tw-gradient-to)}.to-cyan-500{--tw-gradient-to:#06b6d4 var(--tw-gradient-to-position)}.to-cyan-600{--tw-gradient-to:#0891b2 var(--tw-gradient-to-position)}.to-cyan-700{--tw-gradient-to:#0e7490 var(--tw-gradient-to-position)}.to-emerald-100{--tw-gradient-to:#d1fae5 var(--tw-gradient-to-position)}.to-emerald-100\/70{--tw-gradient-to:rgba(209,250,229,.7) var(--tw-gradient-to-position)}.to-emerald-400{--tw-gradient-to:#34d399 var(--tw-gradient-to-position)}.to-green-600{--tw-gradient-to:#057a55 var(--tw-gradient-to-position)}.to-lime-200{--tw-gradient-to:#d9f99d var(--tw-gradient-to-position)}.to-lime-500{--tw-gradient-to:#84cc16 var(--tw-gradient-to-position)}.to-orange-400{--tw-gradient-to:#ff8a4c var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to:#e74694 var(--tw-gradient-to-position)}.to-pink-600{--tw-gradient-to:#d61f69 var(--tw-gradient-to-position)}.to-purple-700{--tw-gradient-to:#6c2bd9 var(--tw-gradient-to-position)}.to-red-600{--tw-gradient-to:#e02424 var(--tw-gradient-to-position)}.to-teal-600{--tw-gradient-to:#047481 var(--tw-gradient-to-position)}.to-yellow-200{--tw-gradient-to:#fce96a var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.fill-current{fill:currentColor}.fill-cyan-600{fill:#0891b2}.fill-gray-600{fill:#4b5563}.fill-green-500{fill:#0e9f6e}.fill-pink-600{fill:#d61f69}.fill-purple-600{fill:#7e3af2}.fill-red-600{fill:#e02424}.fill-yellow-400{fill:#e3a008}.object-cover{-o-object-fit:cover;object-fit:cover}.\!p-2{padding:.5rem!important}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-bottom:0;padding-top:0}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-8{padding-bottom:2rem;padding-top:2rem}.pb-1{padding-bottom:.25rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pl-0{padding-left:0}.pl-0\.5{padding-left:.125rem}.pl-10{padding-left:2.5rem}.pl-2{padding-left:.5rem}.pl-2\.5{padding-left:.625rem}.pl-3{padding-left:.75rem}.pl-8{padding-left:2rem}.pr-10{padding-right:2.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-0{padding-top:0}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-justify{text-align:justify}.align-middle{vertical-align:middle}.align-text-top{vertical-align:text-top}.text-2xl{font-size:1.5rem;line-height:2rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-none{line-height:1}.leading-tight{line-height:1.25}.text-\[\#009cff\]{--tw-text-opacity:1;color:rgb(0 156 255/var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgb(63 131 248/var(--tw-text-opacity))}.text-cyan-300{--tw-text-opacity:1;color:rgb(103 232 249/var(--tw-text-opacity))}.text-cyan-500{--tw-text-opacity:1;color:rgb(6 182 212/var(--tw-text-opacity))}.text-cyan-600{--tw-text-opacity:1;color:rgb(8 145 178/var(--tw-text-opacity))}.text-cyan-700{--tw-text-opacity:1;color:rgb(14 116 144/var(--tw-text-opacity))}.text-cyan-800{--tw-text-opacity:1;color:rgb(21 94 117/var(--tw-text-opacity))}.text-cyan-900{--tw-text-opacity:1;color:rgb(22 78 99/var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity))}.text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgb(14 159 110/var(--tw-text-opacity))}.text-green-600{--tw-text-opacity:1;color:rgb(5 122 85/var(--tw-text-opacity))}.text-green-700{--tw-text-opacity:1;color:rgb(4 108 78/var(--tw-text-opacity))}.text-green-800{--tw-text-opacity:1;color:rgb(3 84 63/var(--tw-text-opacity))}.text-green-900{--tw-text-opacity:1;color:rgb(1 71 55/var(--tw-text-opacity))}.text-indigo-500{--tw-text-opacity:1;color:rgb(104 117 245/var(--tw-text-opacity))}.text-indigo-700{--tw-text-opacity:1;color:rgb(81 69 205/var(--tw-text-opacity))}.text-indigo-800{--tw-text-opacity:1;color:rgb(66 56 157/var(--tw-text-opacity))}.text-indigo-900{--tw-text-opacity:1;color:rgb(54 47 120/var(--tw-text-opacity))}.text-lime-500{--tw-text-opacity:1;color:rgb(132 204 22/var(--tw-text-opacity))}.text-lime-700{--tw-text-opacity:1;color:rgb(77 124 15/var(--tw-text-opacity))}.text-lime-800{--tw-text-opacity:1;color:rgb(63 98 18/var(--tw-text-opacity))}.text-lime-900{--tw-text-opacity:1;color:rgb(54 83 20/var(--tw-text-opacity))}.text-pink-500{--tw-text-opacity:1;color:rgb(231 70 148/var(--tw-text-opacity))}.text-pink-700{--tw-text-opacity:1;color:rgb(191 18 93/var(--tw-text-opacity))}.text-pink-800{--tw-text-opacity:1;color:rgb(153 21 75/var(--tw-text-opacity))}.text-pink-900{--tw-text-opacity:1;color:rgb(117 26 61/var(--tw-text-opacity))}.text-purple-500{--tw-text-opacity:1;color:rgb(144 97 249/var(--tw-text-opacity))}.text-purple-700{--tw-text-opacity:1;color:rgb(108 43 217/var(--tw-text-opacity))}.text-purple-800{--tw-text-opacity:1;color:rgb(85 33 181/var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgb(240 82 82/var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgb(224 36 36/var(--tw-text-opacity))}.text-red-700{--tw-text-opacity:1;color:rgb(200 30 30/var(--tw-text-opacity))}.text-red-800{--tw-text-opacity:1;color:rgb(155 28 28/var(--tw-text-opacity))}.text-red-900{--tw-text-opacity:1;color:rgb(119 29 29/var(--tw-text-opacity))}.text-slate-800{--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity))}.text-stone-600{--tw-text-opacity:1;color:rgb(87 83 78/var(--tw-text-opacity))}.text-stone-800{--tw-text-opacity:1;color:rgb(41 37 36/var(--tw-text-opacity))}.text-teal-500{--tw-text-opacity:1;color:rgb(6 148 162/var(--tw-text-opacity))}.text-teal-700{--tw-text-opacity:1;color:rgb(3 102 114/var(--tw-text-opacity))}.text-teal-800{--tw-text-opacity:1;color:rgb(5 80 92/var(--tw-text-opacity))}.text-teal-900{--tw-text-opacity:1;color:rgb(1 68 81/var(--tw-text-opacity))}.text-transparent{color:transparent}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-yellow-400{--tw-text-opacity:1;color:rgb(227 160 8/var(--tw-text-opacity))}.text-yellow-500{--tw-text-opacity:1;color:rgb(194 120 3/var(--tw-text-opacity))}.text-yellow-700{--tw-text-opacity:1;color:rgb(142 75 16/var(--tw-text-opacity))}.text-yellow-800{--tw-text-opacity:1;color:rgb(114 59 19/var(--tw-text-opacity))}.text-yellow-900{--tw-text-opacity:1;color:rgb(99 49 18/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.placeholder-cyan-700::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(14 116 144/var(--tw-placeholder-opacity))}.placeholder-cyan-700::placeholder{--tw-placeholder-opacity:1;color:rgb(14 116 144/var(--tw-placeholder-opacity))}.placeholder-green-700::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(4 108 78/var(--tw-placeholder-opacity))}.placeholder-green-700::placeholder{--tw-placeholder-opacity:1;color:rgb(4 108 78/var(--tw-placeholder-opacity))}.placeholder-red-700::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(200 30 30/var(--tw-placeholder-opacity))}.placeholder-red-700::placeholder{--tw-placeholder-opacity:1;color:rgb(200 30 30/var(--tw-placeholder-opacity))}.placeholder-yellow-700::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(142 75 16/var(--tw-placeholder-opacity))}.placeholder-yellow-700::placeholder{--tw-placeholder-opacity:1;color:rgb(142 75 16/var(--tw-placeholder-opacity))}.opacity-0{opacity:0}.opacity-50{opacity:.5}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-2,.ring-8{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-8{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-cyan-400{--tw-ring-opacity:1;--tw-ring-color:rgb(34 211 238/var(--tw-ring-opacity))}.ring-gray-300{--tw-ring-opacity:1;--tw-ring-color:rgb(209 213 219/var(--tw-ring-opacity))}.ring-gray-500{--tw-ring-opacity:1;--tw-ring-color:rgb(107 114 128/var(--tw-ring-opacity))}.ring-gray-800{--tw-ring-opacity:1;--tw-ring-color:rgb(31 41 55/var(--tw-ring-opacity))}.ring-green-500{--tw-ring-opacity:1;--tw-ring-color:rgb(14 159 110/var(--tw-ring-opacity))}.ring-pink-500{--tw-ring-opacity:1;--tw-ring-color:rgb(231 70 148/var(--tw-ring-opacity))}.ring-purple-500{--tw-ring-opacity:1;--tw-ring-color:rgb(144 97 249/var(--tw-ring-opacity))}.ring-red-500{--tw-ring-opacity:1;--tw-ring-color:rgb(240 82 82/var(--tw-ring-opacity))}.ring-white{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity))}.ring-yellow-300{--tw-ring-opacity:1;--tw-ring-color:rgb(250 202 21/var(--tw-ring-opacity))}.drop-shadow-md{--tw-drop-shadow:drop-shadow(0 4px 3px rgba(0,0,0,.07)) drop-shadow(0 2px 2px rgba(0,0,0,.06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-100{transition-duration:.1s}.duration-1000{transition-duration:1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.duration-75{transition-duration:75ms}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}video::-webkit-media-controls-panel,video:hover::-webkit-media-controls-panel{animation:color_change 0s!important;animation-delay:0s!important;background-color:#000!important;bottom:0;height:70px!important;position:absolute;width:100%}video::-webkit-media-controls-panel{opacity:0}video:hover::-webkit-media-controls-panel{opacity:.75}:is(.dark .dark\:format-invert){--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}@media (min-width:768px){.md\:format-base{font-size:1rem;line-height:1.75}.md\:format-base :where(p):not(:where([class~=not-format] *)){margin-bottom:1.25em;margin-top:1.25em}.md\:format-base :where([class~=lead]):not(:where([class~=not-format] *)){font-size:1.25em;line-height:1.6;margin-bottom:1.2em;margin-top:1.2em}.md\:format-base :where(blockquote):not(:where([class~=not-format] *)){margin-bottom:1.6em;margin-top:1.6em;padding-left:1em}.md\:format-base :where(h1):not(:where([class~=not-format] *)){font-size:2.25em;line-height:1.1111111;margin-bottom:.8888889em;margin-top:0}.md\:format-base :where(h2):not(:where([class~=not-format] *)){font-size:1.5em;line-height:1.3333333;margin-bottom:1em;margin-top:2em}.md\:format-base :where(h3):not(:where([class~=not-format] *)){font-size:1.25em;line-height:1.6;margin-bottom:.6em;margin-top:1.6em}.md\:format-base :where(h4):not(:where([class~=not-format] *)){line-height:1.5;margin-bottom:.5em;margin-top:1.5em}.md\:format-base :where(img):not(:where([class~=not-format] *)){margin-bottom:2em;margin-top:2em}.md\:format-base :where(video):not(:where([class~=not-format] *)){margin-bottom:2em;margin-top:2em}.md\:format-base :where(figure):not(:where([class~=not-format] *)){margin-bottom:2em;margin-top:2em}.md\:format-base :where(figure>*):not(:where([class~=not-format] *)){margin-bottom:0;margin-top:0}.md\:format-base :where(figcaption):not(:where([class~=not-format] *)){font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.md\:format-base :where(code):not(:where([class~=not-format] *)){font-size:.875em}.md\:format-base :where(h2 code):not(:where([class~=not-format] *)){font-size:.875em}.md\:format-base :where(h3 code):not(:where([class~=not-format] *)){font-size:.9em}.md\:format-base :where(pre):not(:where([class~=not-format] *)){border-radius:.375rem;font-size:.875em;line-height:1.7142857;margin-bottom:1.7142857em;margin-top:1.7142857em;padding:.8571429em 1.1428571em}.md\:format-base :where(ol):not(:where([class~=not-format] *)){margin-bottom:1.25em;margin-top:1.25em;padding-left:1.625em}.md\:format-base :where(ul):not(:where([class~=not-format] *)){margin-bottom:1.25em;margin-top:1.25em;padding-left:1.625em}.md\:format-base :where(li):not(:where([class~=not-format] *)){margin-bottom:.5em;margin-top:.5em}.md\:format-base :where(ol>li):not(:where([class~=not-format] *)){padding-left:.375em}.md\:format-base :where(ul>li):not(:where([class~=not-format] *)){padding-left:.375em}.md\:format-base :where(.format>ul>li p):not(:where([class~=not-format] *)){margin-bottom:.75em;margin-top:.75em}.md\:format-base :where(.format>ul>li>:first-child):not(:where([class~=not-format] *)){margin-top:1.25em}.md\:format-base :where(.format>ul>li>:last-child):not(:where([class~=not-format] *)){margin-bottom:1.25em}.md\:format-base :where(.format>ol>li>:first-child):not(:where([class~=not-format] *)){margin-top:1.25em}.md\:format-base :where(.format>ol>li>:last-child):not(:where([class~=not-format] *)){margin-bottom:1.25em}.md\:format-base :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-format] *)){margin-bottom:.75em;margin-top:.75em}.md\:format-base :where(hr):not(:where([class~=not-format] *)){margin-bottom:3em;margin-top:3em}.md\:format-base :where(hr+*):not(:where([class~=not-format] *)){margin-top:0}.md\:format-base :where(h2+*):not(:where([class~=not-format] *)){margin-top:0}.md\:format-base :where(h3+*):not(:where([class~=not-format] *)){margin-top:0}.md\:format-base :where(h4+*):not(:where([class~=not-format] *)){margin-top:0}.md\:format-base :where(table):not(:where([class~=not-format] *)){font-size:.875em;line-height:1.7142857}.md\:format-base :where(thead th):not(:where([class~=not-format] *)){padding-bottom:.5714286em;padding-left:.5714286em;padding-right:.5714286em}.md\:format-base :where(thead th:first-child):not(:where([class~=not-format] *)){padding-left:0}.md\:format-base :where(thead th:last-child):not(:where([class~=not-format] *)){padding-right:0}.md\:format-base :where(tbody td,tfoot td):not(:where([class~=not-format] *)){padding:.5714286em}.md\:format-base :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-format] *)){padding-left:0}.md\:format-base :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-format] *)){padding-right:0}.md\:format-base :where(.format>:first-child):not(:where([class~=not-format] *)){margin-top:0}.md\:format-base :where(.format>:last-child):not(:where([class~=not-format] *)){margin-bottom:0}}@media (min-width:1024px){.lg\:format-lg{font-size:1.125rem;line-height:1.7777778}.lg\:format-lg :where(p):not(:where([class~=not-format] *)){margin-bottom:1.3333333em;margin-top:1.3333333em}.lg\:format-lg :where([class~=lead]):not(:where([class~=not-format] *)){font-size:1.2222222em;line-height:1.4545455;margin-bottom:1.0909091em;margin-top:1.0909091em}.lg\:format-lg :where(blockquote):not(:where([class~=not-format] *)){margin-bottom:1.6666667em;margin-top:1.6666667em;padding-left:1em}.lg\:format-lg :where(h1):not(:where([class~=not-format] *)){font-size:2.6666667em;line-height:1;margin-bottom:.8333333em;margin-top:0}.lg\:format-lg :where(h2):not(:where([class~=not-format] *)){font-size:1.6666667em;line-height:1.3333333;margin-bottom:1.0666667em;margin-top:1.8666667em}.lg\:format-lg :where(h3):not(:where([class~=not-format] *)){font-size:1.3333333em;line-height:1.5;margin-bottom:.6666667em;margin-top:1.6666667em}.lg\:format-lg :where(h4):not(:where([class~=not-format] *)){line-height:1.5555556;margin-bottom:.4444444em;margin-top:1.7777778em}.lg\:format-lg :where(img):not(:where([class~=not-format] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.lg\:format-lg :where(video):not(:where([class~=not-format] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.lg\:format-lg :where(figure):not(:where([class~=not-format] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.lg\:format-lg :where(figure>*):not(:where([class~=not-format] *)){margin-bottom:0;margin-top:0}.lg\:format-lg :where(figcaption):not(:where([class~=not-format] *)){font-size:.8888889em;line-height:1.5;margin-top:1em}.lg\:format-lg :where(code):not(:where([class~=not-format] *)){font-size:.8888889em}.lg\:format-lg :where(h2 code):not(:where([class~=not-format] *)){font-size:.8666667em}.lg\:format-lg :where(h3 code):not(:where([class~=not-format] *)){font-size:.875em}.lg\:format-lg :where(pre):not(:where([class~=not-format] *)){border-radius:.375rem;font-size:.8888889em;line-height:1.75;margin-bottom:2em;margin-top:2em;padding:1em 1.5em}.lg\:format-lg :where(ol):not(:where([class~=not-format] *)){margin-bottom:1.3333333em;margin-top:1.3333333em;padding-left:1.5555556em}.lg\:format-lg :where(ul):not(:where([class~=not-format] *)){margin-bottom:1.3333333em;margin-top:1.3333333em;padding-left:1.5555556em}.lg\:format-lg :where(li):not(:where([class~=not-format] *)){margin-bottom:.6666667em;margin-top:.6666667em}.lg\:format-lg :where(ol>li):not(:where([class~=not-format] *)){padding-left:.4444444em}.lg\:format-lg :where(ul>li):not(:where([class~=not-format] *)){padding-left:.4444444em}.lg\:format-lg :where(.format>ul>li p):not(:where([class~=not-format] *)){margin-bottom:.8888889em;margin-top:.8888889em}.lg\:format-lg :where(.format>ul>li>:first-child):not(:where([class~=not-format] *)){margin-top:1.3333333em}.lg\:format-lg :where(.format>ul>li>:last-child):not(:where([class~=not-format] *)){margin-bottom:1.3333333em}.lg\:format-lg :where(.format>ol>li>:first-child):not(:where([class~=not-format] *)){margin-top:1.3333333em}.lg\:format-lg :where(.format>ol>li>:last-child):not(:where([class~=not-format] *)){margin-bottom:1.3333333em}.lg\:format-lg :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-format] *)){margin-bottom:.8888889em;margin-top:.8888889em}.lg\:format-lg :where(hr):not(:where([class~=not-format] *)){margin-bottom:3.1111111em;margin-top:3.1111111em}.lg\:format-lg :where(hr+*):not(:where([class~=not-format] *)){margin-top:0}.lg\:format-lg :where(h2+*):not(:where([class~=not-format] *)){margin-top:0}.lg\:format-lg :where(h3+*):not(:where([class~=not-format] *)){margin-top:0}.lg\:format-lg :where(h4+*):not(:where([class~=not-format] *)){margin-top:0}.lg\:format-lg :where(table):not(:where([class~=not-format] *)){font-size:.8888889em;line-height:1.5}.lg\:format-lg :where(thead th):not(:where([class~=not-format] *)){padding-bottom:.75em;padding-left:.75em;padding-right:.75em}.lg\:format-lg :where(thead th:first-child):not(:where([class~=not-format] *)){padding-left:0}.lg\:format-lg :where(thead th:last-child):not(:where([class~=not-format] *)){padding-right:0}.lg\:format-lg :where(tbody td,tfoot td):not(:where([class~=not-format] *)){padding:.75em}.lg\:format-lg :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-format] *)){padding-left:0}.lg\:format-lg :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-format] *)){padding-right:0}.lg\:format-lg :where(.format>:first-child):not(:where([class~=not-format] *)){margin-top:0}.lg\:format-lg :where(.format>:last-child):not(:where([class~=not-format] *)){margin-bottom:0}}.after\:translate-x-full:after{--tw-translate-x:100%;content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.after\:border-white:after{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity));content:var(--tw-content)}.first\:ml-0:first-child{margin-left:0}.first\:mt-0:first-child{margin-top:0}.first\:rounded-t-lg:first-child{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.first\:border-t-0:first-child{border-top-width:0}.first\:pt-0:first-child{padding-top:0}.last\:mr-0:last-child{margin-right:0}.last\:rounded-b-lg:last-child{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.odd\:bg-white:nth-child(odd){--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.even\:bg-gray-50:nth-child(2n){--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.hover\:cursor-not-allowed:hover{cursor:not-allowed}.hover\:border-gray-300:hover{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.hover\:bg-\[\#f4f4f4\]:hover{--tw-bg-opacity:1;background-color:rgb(244 244 244/var(--tw-bg-opacity))}.hover\:bg-cyan-100:hover{--tw-bg-opacity:1;background-color:rgb(207 250 254/var(--tw-bg-opacity))}.hover\:bg-cyan-200:hover{--tw-bg-opacity:1;background-color:rgb(165 243 252/var(--tw-bg-opacity))}.hover\:bg-cyan-800:hover{--tw-bg-opacity:1;background-color:rgb(21 94 117/var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.hover\:bg-gray-600:hover{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity))}.hover\:bg-gray-900:hover{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.hover\:bg-green-100:hover{--tw-bg-opacity:1;background-color:rgb(222 247 236/var(--tw-bg-opacity))}.hover\:bg-green-200:hover{--tw-bg-opacity:1;background-color:rgb(188 240 218/var(--tw-bg-opacity))}.hover\:bg-green-800:hover{--tw-bg-opacity:1;background-color:rgb(3 84 63/var(--tw-bg-opacity))}.hover\:bg-indigo-100:hover{--tw-bg-opacity:1;background-color:rgb(229 237 255/var(--tw-bg-opacity))}.hover\:bg-indigo-200:hover{--tw-bg-opacity:1;background-color:rgb(205 219 254/var(--tw-bg-opacity))}.hover\:bg-lime-100:hover{--tw-bg-opacity:1;background-color:rgb(236 252 203/var(--tw-bg-opacity))}.hover\:bg-lime-200:hover{--tw-bg-opacity:1;background-color:rgb(217 249 157/var(--tw-bg-opacity))}.hover\:bg-pink-100:hover{--tw-bg-opacity:1;background-color:rgb(252 232 243/var(--tw-bg-opacity))}.hover\:bg-pink-200:hover{--tw-bg-opacity:1;background-color:rgb(250 209 232/var(--tw-bg-opacity))}.hover\:bg-purple-200:hover{--tw-bg-opacity:1;background-color:rgb(220 215 254/var(--tw-bg-opacity))}.hover\:bg-purple-800:hover{--tw-bg-opacity:1;background-color:rgb(85 33 181/var(--tw-bg-opacity))}.hover\:bg-red-100:hover{--tw-bg-opacity:1;background-color:rgb(253 232 232/var(--tw-bg-opacity))}.hover\:bg-red-200:hover{--tw-bg-opacity:1;background-color:rgb(251 213 213/var(--tw-bg-opacity))}.hover\:bg-red-800:hover{--tw-bg-opacity:1;background-color:rgb(155 28 28/var(--tw-bg-opacity))}.hover\:bg-slate-50:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.hover\:bg-teal-100:hover{--tw-bg-opacity:1;background-color:rgb(213 245 246/var(--tw-bg-opacity))}.hover\:bg-teal-200:hover{--tw-bg-opacity:1;background-color:rgb(175 236 239/var(--tw-bg-opacity))}.hover\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.hover\:bg-yellow-100:hover{--tw-bg-opacity:1;background-color:rgb(253 246 178/var(--tw-bg-opacity))}.hover\:bg-yellow-200:hover{--tw-bg-opacity:1;background-color:rgb(252 233 106/var(--tw-bg-opacity))}.hover\:bg-yellow-500:hover{--tw-bg-opacity:1;background-color:rgb(194 120 3/var(--tw-bg-opacity))}.hover\:bg-gradient-to-bl:hover{background-image:linear-gradient(to bottom left,var(--tw-gradient-stops))}.hover\:bg-gradient-to-br:hover{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.hover\:bg-gradient-to-l:hover{background-image:linear-gradient(to left,var(--tw-gradient-stops))}.hover\:bg-gradient-to-r:hover{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.hover\:from-pink-500:hover{--tw-gradient-from:#e74694 var(--tw-gradient-from-position);--tw-gradient-to:rgba(231,70,148,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.hover\:from-teal-200:hover{--tw-gradient-from:#afecef var(--tw-gradient-from-position);--tw-gradient-to:rgba(175,236,239,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.hover\:via-indigo-600:hover{--tw-gradient-to:rgba(88,80,236,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#5850ec var(--tw-gradient-via-position),var(--tw-gradient-to)}.hover\:to-emerald-400:hover{--tw-gradient-to:#34d399 var(--tw-gradient-to-position)}.hover\:to-lime-200:hover{--tw-gradient-to:#d9f99d var(--tw-gradient-to-position)}.hover\:bg-clip-text:hover{-webkit-background-clip:text;background-clip:text}.hover\:\!text-gray-900:hover{--tw-text-opacity:1!important;color:rgb(17 24 39/var(--tw-text-opacity))!important}.hover\:text-cyan-700:hover{--tw-text-opacity:1;color:rgb(14 116 144/var(--tw-text-opacity))}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.hover\:text-indigo-600:hover{--tw-text-opacity:1;color:rgb(88 80 236/var(--tw-text-opacity))}.hover\:text-transparent:hover{color:transparent}.hover\:underline:hover{text-decoration-line:underline}.hover\:transition-all:hover{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.focus\:z-10:focus{z-index:10}.focus\:border-cyan-500:focus{--tw-border-opacity:1;border-color:rgb(6 182 212/var(--tw-border-opacity))}.focus\:border-green-500:focus{--tw-border-opacity:1;border-color:rgb(14 159 110/var(--tw-border-opacity))}.focus\:border-red-500:focus{--tw-border-opacity:1;border-color:rgb(240 82 82/var(--tw-border-opacity))}.focus\:border-yellow-500:focus{--tw-border-opacity:1;border-color:rgb(194 120 3/var(--tw-border-opacity))}.focus\:text-cyan-700:focus{--tw-text-opacity:1;color:rgb(14 116 144/var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:\!ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-2:focus,.focus\:ring-4:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-4:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-cyan-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(103 232 249/var(--tw-ring-opacity))}.focus\:ring-cyan-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(34 211 238/var(--tw-ring-opacity))}.focus\:ring-cyan-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(6 182 212/var(--tw-ring-opacity))}.focus\:ring-cyan-700:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(14 116 144/var(--tw-ring-opacity))}.focus\:ring-gray-200:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(229 231 235/var(--tw-ring-opacity))}.focus\:ring-gray-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(209 213 219/var(--tw-ring-opacity))}.focus\:ring-gray-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(156 163 175/var(--tw-ring-opacity))}.focus\:ring-green-200:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(188 240 218/var(--tw-ring-opacity))}.focus\:ring-green-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(132 225 188/var(--tw-ring-opacity))}.focus\:ring-green-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(49 196 141/var(--tw-ring-opacity))}.focus\:ring-green-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(14 159 110/var(--tw-ring-opacity))}.focus\:ring-indigo-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(180 198 252/var(--tw-ring-opacity))}.focus\:ring-indigo-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(141 162 251/var(--tw-ring-opacity))}.focus\:ring-lime-200:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(217 249 157/var(--tw-ring-opacity))}.focus\:ring-lime-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(190 242 100/var(--tw-ring-opacity))}.focus\:ring-lime-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(163 230 53/var(--tw-ring-opacity))}.focus\:ring-pink-200:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(250 209 232/var(--tw-ring-opacity))}.focus\:ring-pink-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(248 180 217/var(--tw-ring-opacity))}.focus\:ring-pink-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(241 126 184/var(--tw-ring-opacity))}.focus\:ring-purple-200:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(220 215 254/var(--tw-ring-opacity))}.focus\:ring-purple-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(202 191 253/var(--tw-ring-opacity))}.focus\:ring-purple-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(172 148 250/var(--tw-ring-opacity))}.focus\:ring-red-100:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(253 232 232/var(--tw-ring-opacity))}.focus\:ring-red-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(248 180 180/var(--tw-ring-opacity))}.focus\:ring-red-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(249 128 128/var(--tw-ring-opacity))}.focus\:ring-red-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(240 82 82/var(--tw-ring-opacity))}.focus\:ring-teal-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(126 220 226/var(--tw-ring-opacity))}.focus\:ring-teal-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(22 189 202/var(--tw-ring-opacity))}.focus\:ring-yellow-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(250 202 21/var(--tw-ring-opacity))}.focus\:ring-yellow-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(227 160 8/var(--tw-ring-opacity))}.focus\:ring-yellow-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(194 120 3/var(--tw-ring-opacity))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:text-gray-400:disabled{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:hover\:bg-cyan-700:hover:disabled{--tw-bg-opacity:1;background-color:rgb(14 116 144/var(--tw-bg-opacity))}.disabled\:hover\:bg-gray-800:hover:disabled{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.disabled\:hover\:bg-green-700:hover:disabled{--tw-bg-opacity:1;background-color:rgb(4 108 78/var(--tw-bg-opacity))}.disabled\:hover\:bg-purple-700:hover:disabled{--tw-bg-opacity:1;background-color:rgb(108 43 217/var(--tw-bg-opacity))}.disabled\:hover\:bg-red-800:hover:disabled{--tw-bg-opacity:1;background-color:rgb(155 28 28/var(--tw-bg-opacity))}.disabled\:hover\:bg-white:hover:disabled{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.disabled\:hover\:bg-yellow-400:hover:disabled{--tw-bg-opacity:1;background-color:rgb(227 160 8/var(--tw-bg-opacity))}.group:first-child .group-first\:hidden{display:none}.group\/body:first-child .group\/row:first-child .group-first\/body\:group-first\/row\:first\:rounded-tl-lg:first-child,.group\/head:first-child .group-first\/head\:first\:rounded-tl-lg:first-child{border-top-left-radius:.5rem}.group\/body:first-child .group\/row:first-child .group-first\/body\:group-first\/row\:last\:rounded-tr-lg:last-child,.group\/head:first-child .group-first\/head\:last\:rounded-tr-lg:last-child{border-top-right-radius:.5rem}.group\/body:last-child .group\/row:last-child .group-last\/body\:group-last\/row\:first\:rounded-bl-lg:first-child{border-bottom-left-radius:.5rem}.group\/body:last-child .group\/row:last-child .group-last\/body\:group-last\/row\:last\:rounded-br-lg:last-child{border-bottom-right-radius:.5rem}.group:hover .group-hover\:bg-cyan-200{--tw-bg-opacity:1;background-color:rgb(165 243 252/var(--tw-bg-opacity))}.group:hover .group-hover\:bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.group:hover .group-hover\:bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}.group:hover .group-hover\:bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity))}.group:hover .group-hover\:bg-green-200{--tw-bg-opacity:1;background-color:rgb(188 240 218/var(--tw-bg-opacity))}.group:hover .group-hover\:bg-indigo-200{--tw-bg-opacity:1;background-color:rgb(205 219 254/var(--tw-bg-opacity))}.group:hover .group-hover\:bg-lime-200{--tw-bg-opacity:1;background-color:rgb(217 249 157/var(--tw-bg-opacity))}.group:hover .group-hover\:bg-pink-200{--tw-bg-opacity:1;background-color:rgb(250 209 232/var(--tw-bg-opacity))}.group:hover .group-hover\:bg-purple-200{--tw-bg-opacity:1;background-color:rgb(220 215 254/var(--tw-bg-opacity))}.group:hover .group-hover\:bg-red-200{--tw-bg-opacity:1;background-color:rgb(251 213 213/var(--tw-bg-opacity))}.group:hover .group-hover\:bg-teal-200{--tw-bg-opacity:1;background-color:rgb(175 236 239/var(--tw-bg-opacity))}.group:hover .group-hover\:bg-white\/50{background-color:hsla(0,0%,100%,.5)}.group:hover .group-hover\:bg-yellow-200{--tw-bg-opacity:1;background-color:rgb(252 233 106/var(--tw-bg-opacity))}.group:hover .group-hover\:bg-opacity-0{--tw-bg-opacity:0}.group:hover .group-hover\:text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.group:hover .group-hover\:text-inherit{color:inherit}.group:focus .group-focus\:outline-none{outline:2px solid transparent;outline-offset:2px}.group:focus .group-focus\:ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.group:focus .group-focus\:ring-cyan-500\/25{--tw-ring-color:rgba(6,182,212,.25)}.group:focus .group-focus\:ring-white{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity))}:is(.dark .dark\:divide-gray-700)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(55 65 81/var(--tw-divide-opacity))}:is(.dark .dark\:border-none){border-style:none}:is(.dark .dark\:border-cyan-400){--tw-border-opacity:1;border-color:rgb(34 211 238/var(--tw-border-opacity))}:is(.dark .dark\:border-cyan-500){--tw-border-opacity:1;border-color:rgb(6 182 212/var(--tw-border-opacity))}:is(.dark .dark\:border-cyan-600){--tw-border-opacity:1;border-color:rgb(8 145 178/var(--tw-border-opacity))}:is(.dark .dark\:border-gray-600){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity))}:is(.dark .dark\:border-gray-700){--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity))}:is(.dark .dark\:border-gray-800){--tw-border-opacity:1;border-color:rgb(31 41 55/var(--tw-border-opacity))}:is(.dark .dark\:border-gray-900){--tw-border-opacity:1;border-color:rgb(17 24 39/var(--tw-border-opacity))}:is(.dark .dark\:border-green-400){--tw-border-opacity:1;border-color:rgb(49 196 141/var(--tw-border-opacity))}:is(.dark .dark\:border-green-600){--tw-border-opacity:1;border-color:rgb(5 122 85/var(--tw-border-opacity))}:is(.dark .dark\:border-indigo-600){--tw-border-opacity:1;border-color:rgb(88 80 236/var(--tw-border-opacity))}:is(.dark .dark\:border-lime-600){--tw-border-opacity:1;border-color:rgb(101 163 13/var(--tw-border-opacity))}:is(.dark .dark\:border-pink-600){--tw-border-opacity:1;border-color:rgb(214 31 105/var(--tw-border-opacity))}:is(.dark .dark\:border-red-400){--tw-border-opacity:1;border-color:rgb(249 128 128/var(--tw-border-opacity))}:is(.dark .dark\:border-red-600){--tw-border-opacity:1;border-color:rgb(224 36 36/var(--tw-border-opacity))}:is(.dark .dark\:border-teal-600){--tw-border-opacity:1;border-color:rgb(4 116 129/var(--tw-border-opacity))}:is(.dark .dark\:border-white){--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity))}:is(.dark .dark\:border-yellow-400){--tw-border-opacity:1;border-color:rgb(227 160 8/var(--tw-border-opacity))}:is(.dark .dark\:border-yellow-600){--tw-border-opacity:1;border-color:rgb(159 88 10/var(--tw-border-opacity))}:is(.dark .dark\:\!bg-gray-700){--tw-bg-opacity:1!important;background-color:rgb(55 65 81/var(--tw-bg-opacity))!important}:is(.dark .dark\:\!bg-transparent){background-color:transparent!important}:is(.dark .dark\:bg-black){--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}:is(.dark .dark\:bg-cyan-100){--tw-bg-opacity:1;background-color:rgb(207 250 254/var(--tw-bg-opacity))}:is(.dark .dark\:bg-cyan-200){--tw-bg-opacity:1;background-color:rgb(165 243 252/var(--tw-bg-opacity))}:is(.dark .dark\:bg-cyan-600){--tw-bg-opacity:1;background-color:rgb(8 145 178/var(--tw-bg-opacity))}:is(.dark .dark\:bg-cyan-900){--tw-bg-opacity:1;background-color:rgb(22 78 99/var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-200){--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-300){--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-400){--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-500){--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-600){--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-700){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-800){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}:is(.dark .dark\:bg-gray-800\/30){background-color:rgba(31,41,55,.3)}:is(.dark .dark\:bg-gray-800\/50){background-color:rgba(31,41,55,.5)}:is(.dark .dark\:bg-gray-900){--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}:is(.dark .dark\:bg-green-100){--tw-bg-opacity:1;background-color:rgb(222 247 236/var(--tw-bg-opacity))}:is(.dark .dark\:bg-green-200){--tw-bg-opacity:1;background-color:rgb(188 240 218/var(--tw-bg-opacity))}:is(.dark .dark\:bg-green-500){--tw-bg-opacity:1;background-color:rgb(14 159 110/var(--tw-bg-opacity))}:is(.dark .dark\:bg-green-600){--tw-bg-opacity:1;background-color:rgb(5 122 85/var(--tw-bg-opacity))}:is(.dark .dark\:bg-green-900){--tw-bg-opacity:1;background-color:rgb(1 71 55/var(--tw-bg-opacity))}:is(.dark .dark\:bg-indigo-200){--tw-bg-opacity:1;background-color:rgb(205 219 254/var(--tw-bg-opacity))}:is(.dark .dark\:bg-indigo-500){--tw-bg-opacity:1;background-color:rgb(104 117 245/var(--tw-bg-opacity))}:is(.dark .dark\:bg-indigo-600){--tw-bg-opacity:1;background-color:rgb(88 80 236/var(--tw-bg-opacity))}:is(.dark .dark\:bg-lime-200){--tw-bg-opacity:1;background-color:rgb(217 249 157/var(--tw-bg-opacity))}:is(.dark .dark\:bg-lime-600){--tw-bg-opacity:1;background-color:rgb(101 163 13/var(--tw-bg-opacity))}:is(.dark .dark\:bg-pink-200){--tw-bg-opacity:1;background-color:rgb(250 209 232/var(--tw-bg-opacity))}:is(.dark .dark\:bg-pink-600){--tw-bg-opacity:1;background-color:rgb(214 31 105/var(--tw-bg-opacity))}:is(.dark .dark\:bg-purple-200){--tw-bg-opacity:1;background-color:rgb(220 215 254/var(--tw-bg-opacity))}:is(.dark .dark\:bg-purple-500){--tw-bg-opacity:1;background-color:rgb(144 97 249/var(--tw-bg-opacity))}:is(.dark .dark\:bg-purple-600){--tw-bg-opacity:1;background-color:rgb(126 58 242/var(--tw-bg-opacity))}:is(.dark .dark\:bg-purple-900){--tw-bg-opacity:1;background-color:rgb(74 29 150/var(--tw-bg-opacity))}:is(.dark .dark\:bg-red-100){--tw-bg-opacity:1;background-color:rgb(253 232 232/var(--tw-bg-opacity))}:is(.dark .dark\:bg-red-200){--tw-bg-opacity:1;background-color:rgb(251 213 213/var(--tw-bg-opacity))}:is(.dark .dark\:bg-red-500){--tw-bg-opacity:1;background-color:rgb(240 82 82/var(--tw-bg-opacity))}:is(.dark .dark\:bg-red-600){--tw-bg-opacity:1;background-color:rgb(224 36 36/var(--tw-bg-opacity))}:is(.dark .dark\:bg-red-900){--tw-bg-opacity:1;background-color:rgb(119 29 29/var(--tw-bg-opacity))}:is(.dark .dark\:bg-teal-200){--tw-bg-opacity:1;background-color:rgb(175 236 239/var(--tw-bg-opacity))}:is(.dark .dark\:bg-teal-600){--tw-bg-opacity:1;background-color:rgb(4 116 129/var(--tw-bg-opacity))}:is(.dark .dark\:bg-transparent){background-color:transparent}:is(.dark .dark\:bg-yellow-100){--tw-bg-opacity:1;background-color:rgb(253 246 178/var(--tw-bg-opacity))}:is(.dark .dark\:bg-yellow-200){--tw-bg-opacity:1;background-color:rgb(252 233 106/var(--tw-bg-opacity))}:is(.dark .dark\:bg-yellow-600){--tw-bg-opacity:1;background-color:rgb(159 88 10/var(--tw-bg-opacity))}:is(.dark .dark\:bg-yellow-900){--tw-bg-opacity:1;background-color:rgb(99 49 18/var(--tw-bg-opacity))}:is(.dark .dark\:bg-opacity-80){--tw-bg-opacity:0.8}:is(.dark .dark\:fill-gray-300){fill:#d1d5db}:is(.dark .dark\:text-cyan-100){--tw-text-opacity:1;color:rgb(207 250 254/var(--tw-text-opacity))}:is(.dark .dark\:text-cyan-300){--tw-text-opacity:1;color:rgb(103 232 249/var(--tw-text-opacity))}:is(.dark .dark\:text-cyan-500){--tw-text-opacity:1;color:rgb(6 182 212/var(--tw-text-opacity))}:is(.dark .dark\:text-cyan-600){--tw-text-opacity:1;color:rgb(8 145 178/var(--tw-text-opacity))}:is(.dark .dark\:text-cyan-800){--tw-text-opacity:1;color:rgb(21 94 117/var(--tw-text-opacity))}:is(.dark .dark\:text-cyan-900){--tw-text-opacity:1;color:rgb(22 78 99/var(--tw-text-opacity))}:is(.dark .dark\:text-gray-100){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity))}:is(.dark .dark\:text-gray-200){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity))}:is(.dark .dark\:text-gray-300){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}:is(.dark .dark\:text-gray-400){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}:is(.dark .dark\:text-gray-500){--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}:is(.dark .dark\:text-gray-600){--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}:is(.dark .dark\:text-gray-800){--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}:is(.dark .dark\:text-gray-900){--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}:is(.dark .dark\:text-green-500){--tw-text-opacity:1;color:rgb(14 159 110/var(--tw-text-opacity))}:is(.dark .dark\:text-green-600){--tw-text-opacity:1;color:rgb(5 122 85/var(--tw-text-opacity))}:is(.dark .dark\:text-green-800){--tw-text-opacity:1;color:rgb(3 84 63/var(--tw-text-opacity))}:is(.dark .dark\:text-green-900){--tw-text-opacity:1;color:rgb(1 71 55/var(--tw-text-opacity))}:is(.dark .dark\:text-indigo-600){--tw-text-opacity:1;color:rgb(88 80 236/var(--tw-text-opacity))}:is(.dark .dark\:text-indigo-800){--tw-text-opacity:1;color:rgb(66 56 157/var(--tw-text-opacity))}:is(.dark .dark\:text-indigo-900){--tw-text-opacity:1;color:rgb(54 47 120/var(--tw-text-opacity))}:is(.dark .dark\:text-lime-600){--tw-text-opacity:1;color:rgb(101 163 13/var(--tw-text-opacity))}:is(.dark .dark\:text-lime-800){--tw-text-opacity:1;color:rgb(63 98 18/var(--tw-text-opacity))}:is(.dark .dark\:text-lime-900){--tw-text-opacity:1;color:rgb(54 83 20/var(--tw-text-opacity))}:is(.dark .dark\:text-pink-600){--tw-text-opacity:1;color:rgb(214 31 105/var(--tw-text-opacity))}:is(.dark .dark\:text-pink-800){--tw-text-opacity:1;color:rgb(153 21 75/var(--tw-text-opacity))}:is(.dark .dark\:text-pink-900){--tw-text-opacity:1;color:rgb(117 26 61/var(--tw-text-opacity))}:is(.dark .dark\:text-purple-600){--tw-text-opacity:1;color:rgb(126 58 242/var(--tw-text-opacity))}:is(.dark .dark\:text-purple-800){--tw-text-opacity:1;color:rgb(85 33 181/var(--tw-text-opacity))}:is(.dark .dark\:text-purple-900){--tw-text-opacity:1;color:rgb(74 29 150/var(--tw-text-opacity))}:is(.dark .dark\:text-red-500){--tw-text-opacity:1;color:rgb(240 82 82/var(--tw-text-opacity))}:is(.dark .dark\:text-red-600){--tw-text-opacity:1;color:rgb(224 36 36/var(--tw-text-opacity))}:is(.dark .dark\:text-red-800){--tw-text-opacity:1;color:rgb(155 28 28/var(--tw-text-opacity))}:is(.dark .dark\:text-red-900){--tw-text-opacity:1;color:rgb(119 29 29/var(--tw-text-opacity))}:is(.dark .dark\:text-teal-600){--tw-text-opacity:1;color:rgb(4 116 129/var(--tw-text-opacity))}:is(.dark .dark\:text-teal-800){--tw-text-opacity:1;color:rgb(5 80 92/var(--tw-text-opacity))}:is(.dark .dark\:text-teal-900){--tw-text-opacity:1;color:rgb(1 68 81/var(--tw-text-opacity))}:is(.dark .dark\:text-white){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}:is(.dark .dark\:text-yellow-600){--tw-text-opacity:1;color:rgb(159 88 10/var(--tw-text-opacity))}:is(.dark .dark\:text-yellow-800){--tw-text-opacity:1;color:rgb(114 59 19/var(--tw-text-opacity))}:is(.dark .dark\:text-yellow-900){--tw-text-opacity:1;color:rgb(99 49 18/var(--tw-text-opacity))}:is(.dark .dark\:placeholder-gray-400)::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity))}:is(.dark .dark\:placeholder-gray-400)::placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity))}:is(.dark .dark\:shadow-sm-light){--tw-shadow:0 2px 5px 0px hsla(0,0%,100%,.08);--tw-shadow-colored:0 2px 5px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}:is(.dark .dark\:ring-cyan-800){--tw-ring-opacity:1;--tw-ring-color:rgb(21 94 117/var(--tw-ring-opacity))}:is(.dark .dark\:ring-gray-400){--tw-ring-opacity:1;--tw-ring-color:rgb(156 163 175/var(--tw-ring-opacity))}:is(.dark .dark\:ring-gray-500){--tw-ring-opacity:1;--tw-ring-color:rgb(107 114 128/var(--tw-ring-opacity))}:is(.dark .dark\:ring-gray-800){--tw-ring-opacity:1;--tw-ring-color:rgb(31 41 55/var(--tw-ring-opacity))}:is(.dark .dark\:ring-gray-900){--tw-ring-opacity:1;--tw-ring-color:rgb(17 24 39/var(--tw-ring-opacity))}:is(.dark .dark\:ring-green-500){--tw-ring-opacity:1;--tw-ring-color:rgb(14 159 110/var(--tw-ring-opacity))}:is(.dark .dark\:ring-pink-500){--tw-ring-opacity:1;--tw-ring-color:rgb(231 70 148/var(--tw-ring-opacity))}:is(.dark .dark\:ring-purple-600){--tw-ring-opacity:1;--tw-ring-color:rgb(126 58 242/var(--tw-ring-opacity))}:is(.dark .dark\:ring-red-700){--tw-ring-opacity:1;--tw-ring-color:rgb(200 30 30/var(--tw-ring-opacity))}:is(.dark .dark\:ring-yellow-500){--tw-ring-opacity:1;--tw-ring-color:rgb(194 120 3/var(--tw-ring-opacity))}:is(.dark .dark\:ring-offset-gray-800){--tw-ring-offset-color:#1f2937}:is(.dark .odd\:dark\:bg-gray-800):nth-child(odd){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}:is(.dark .even\:dark\:bg-gray-700):nth-child(2n){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:border-cyan-700:hover){--tw-border-opacity:1;border-color:rgb(14 116 144/var(--tw-border-opacity))}:is(.dark .dark\:hover\:border-gray-700:hover){--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity))}:is(.dark .dark\:hover\:border-green-700:hover){--tw-border-opacity:1;border-color:rgb(4 108 78/var(--tw-border-opacity))}:is(.dark .dark\:hover\:border-indigo-700:hover){--tw-border-opacity:1;border-color:rgb(81 69 205/var(--tw-border-opacity))}:is(.dark .dark\:hover\:border-lime-700:hover){--tw-border-opacity:1;border-color:rgb(77 124 15/var(--tw-border-opacity))}:is(.dark .dark\:hover\:border-pink-700:hover){--tw-border-opacity:1;border-color:rgb(191 18 93/var(--tw-border-opacity))}:is(.dark .dark\:hover\:border-red-700:hover){--tw-border-opacity:1;border-color:rgb(200 30 30/var(--tw-border-opacity))}:is(.dark .dark\:hover\:border-teal-700:hover){--tw-border-opacity:1;border-color:rgb(3 102 114/var(--tw-border-opacity))}:is(.dark .dark\:hover\:border-yellow-700:hover){--tw-border-opacity:1;border-color:rgb(142 75 16/var(--tw-border-opacity))}:is(.dark .dark\:hover\:bg-cyan-300:hover){--tw-bg-opacity:1;background-color:rgb(103 232 249/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-cyan-700:hover){--tw-bg-opacity:1;background-color:rgb(14 116 144/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-gray-300:hover){--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-gray-600:hover){--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-gray-700:hover){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-gray-800:hover){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-green-300:hover){--tw-bg-opacity:1;background-color:rgb(132 225 188/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-green-700:hover){--tw-bg-opacity:1;background-color:rgb(4 108 78/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-indigo-300:hover){--tw-bg-opacity:1;background-color:rgb(180 198 252/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-indigo-700:hover){--tw-bg-opacity:1;background-color:rgb(81 69 205/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-lime-300:hover){--tw-bg-opacity:1;background-color:rgb(190 242 100/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-lime-700:hover){--tw-bg-opacity:1;background-color:rgb(77 124 15/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-pink-300:hover){--tw-bg-opacity:1;background-color:rgb(248 180 217/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-pink-700:hover){--tw-bg-opacity:1;background-color:rgb(191 18 93/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-purple-300:hover){--tw-bg-opacity:1;background-color:rgb(202 191 253/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-purple-700:hover){--tw-bg-opacity:1;background-color:rgb(108 43 217/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-red-300:hover){--tw-bg-opacity:1;background-color:rgb(248 180 180/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-red-700:hover){--tw-bg-opacity:1;background-color:rgb(200 30 30/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-teal-300:hover){--tw-bg-opacity:1;background-color:rgb(126 220 226/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-teal-700:hover){--tw-bg-opacity:1;background-color:rgb(3 102 114/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-yellow-300:hover){--tw-bg-opacity:1;background-color:rgb(250 202 21/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:bg-yellow-700:hover){--tw-bg-opacity:1;background-color:rgb(142 75 16/var(--tw-bg-opacity))}:is(.dark .dark\:hover\:text-gray-300:hover){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}:is(.dark .dark\:hover\:text-white:hover){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}:is(.dark .dark\:focus\:border-cyan-500:focus){--tw-border-opacity:1;border-color:rgb(6 182 212/var(--tw-border-opacity))}:is(.dark .dark\:focus\:border-green-500:focus){--tw-border-opacity:1;border-color:rgb(14 159 110/var(--tw-border-opacity))}:is(.dark .dark\:focus\:border-red-500:focus){--tw-border-opacity:1;border-color:rgb(240 82 82/var(--tw-border-opacity))}:is(.dark .dark\:focus\:border-yellow-500:focus){--tw-border-opacity:1;border-color:rgb(194 120 3/var(--tw-border-opacity))}:is(.dark .dark\:focus\:bg-cyan-600:focus){--tw-bg-opacity:1;background-color:rgb(8 145 178/var(--tw-bg-opacity))}:is(.dark .dark\:focus\:text-white:focus){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}:is(.dark .dark\:focus\:ring-cyan-500:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(6 182 212/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-cyan-600:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(8 145 178/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-cyan-700:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(14 116 144/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-cyan-800:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(21 94 117/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-gray-500:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(107 114 128/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-gray-600:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(75 85 99/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-gray-700:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(55 65 81/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-gray-800:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(31 41 55/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-green-500:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(14 159 110/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-green-700:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(4 108 78/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-green-800:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(3 84 63/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-indigo-700:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(81 69 205/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-lime-700:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(77 124 15/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-lime-800:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(63 98 18/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-pink-700:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(191 18 93/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-pink-800:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(153 21 75/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-purple-800:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(85 33 181/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-purple-900:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(74 29 150/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-red-400:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(249 128 128/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-red-500:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(240 82 82/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-red-700:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(200 30 30/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-red-800:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(155 28 28/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-red-900:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(119 29 29/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-teal-700:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(3 102 114/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-teal-800:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(5 80 92/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-yellow-500:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(194 120 3/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-yellow-700:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(142 75 16/var(--tw-ring-opacity))}:is(.dark .dark\:focus\:ring-yellow-900:focus){--tw-ring-opacity:1;--tw-ring-color:rgb(99 49 18/var(--tw-ring-opacity))}:is(.dark .disabled\:dark\:text-gray-500):disabled{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}:is(.dark .dark\:disabled\:hover\:bg-cyan-600:hover:disabled){--tw-bg-opacity:1;background-color:rgb(8 145 178/var(--tw-bg-opacity))}:is(.dark .dark\:disabled\:hover\:bg-gray-800:hover:disabled){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}:is(.dark .dark\:disabled\:hover\:bg-green-600:hover:disabled){--tw-bg-opacity:1;background-color:rgb(5 122 85/var(--tw-bg-opacity))}:is(.dark .dark\:disabled\:hover\:bg-purple-600:hover:disabled){--tw-bg-opacity:1;background-color:rgb(126 58 242/var(--tw-bg-opacity))}:is(.dark .dark\:disabled\:hover\:bg-red-600:hover:disabled){--tw-bg-opacity:1;background-color:rgb(224 36 36/var(--tw-bg-opacity))}:is(.dark .dark\:disabled\:hover\:bg-yellow-400:hover:disabled){--tw-bg-opacity:1;background-color:rgb(227 160 8/var(--tw-bg-opacity))}:is(.dark .group:hover .dark\:group-hover\:bg-cyan-300){--tw-bg-opacity:1;background-color:rgb(103 232 249/var(--tw-bg-opacity))}:is(.dark .group:hover .dark\:group-hover\:bg-gray-500){--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity))}:is(.dark .group:hover .dark\:group-hover\:bg-gray-600){--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity))}:is(.dark .group:hover .dark\:group-hover\:bg-gray-700){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}:is(.dark .group:hover .dark\:group-hover\:bg-gray-800\/60){background-color:rgba(31,41,55,.6)}:is(.dark .group:hover .dark\:group-hover\:bg-green-300){--tw-bg-opacity:1;background-color:rgb(132 225 188/var(--tw-bg-opacity))}:is(.dark .group:hover .dark\:group-hover\:bg-indigo-300){--tw-bg-opacity:1;background-color:rgb(180 198 252/var(--tw-bg-opacity))}:is(.dark .group:hover .dark\:group-hover\:bg-lime-300){--tw-bg-opacity:1;background-color:rgb(190 242 100/var(--tw-bg-opacity))}:is(.dark .group:hover .dark\:group-hover\:bg-pink-300){--tw-bg-opacity:1;background-color:rgb(248 180 217/var(--tw-bg-opacity))}:is(.dark .group:hover .dark\:group-hover\:bg-purple-300){--tw-bg-opacity:1;background-color:rgb(202 191 253/var(--tw-bg-opacity))}:is(.dark .group:hover .dark\:group-hover\:bg-red-300){--tw-bg-opacity:1;background-color:rgb(248 180 180/var(--tw-bg-opacity))}:is(.dark .group:hover .dark\:group-hover\:bg-teal-300){--tw-bg-opacity:1;background-color:rgb(126 220 226/var(--tw-bg-opacity))}:is(.dark .group:hover .dark\:group-hover\:bg-yellow-300){--tw-bg-opacity:1;background-color:rgb(250 202 21/var(--tw-bg-opacity))}:is(.dark .group:hover .dark\:group-hover\:text-white){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}:is(.dark .group:focus .dark\:group-focus\:ring-gray-800\/70){--tw-ring-color:rgba(31,41,55,.7)}@media (min-width:640px){.sm\:m-1{margin:.25rem}.sm\:m-2{margin:.5rem}.sm\:mx-auto{margin-left:auto;margin-right:auto}.sm\:my-2{margin-bottom:.5rem;margin-top:.5rem}.sm\:mb-0{margin-bottom:0}.sm\:mb-4{margin-bottom:1rem}.sm\:mb-5{margin-bottom:1.25rem}.sm\:flex{display:flex}.sm\:h-10{height:2.5rem}.sm\:h-6{height:1.5rem}.sm\:h-7{height:1.75rem}.sm\:w-10{width:2.5rem}.sm\:w-6{width:1.5rem}.sm\:max-w-\[100\%\]{max-width:100%}.sm\:max-w-\[620px\]{max-width:620px}.sm\:basis-1\/3{flex-basis:33.333333%}.sm\:basis-2\/3{flex-basis:66.666667%}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:pb-0{padding-bottom:0}.sm\:pr-5{padding-right:1.25rem}.sm\:pr-8{padding-right:2rem}.sm\:text-center{text-align:center}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}.sm\:leading-tight{line-height:1.25}}@media (min-width:768px){.md\:visible{visibility:visible}.md\:inset-0{inset:0}.md\:mx-2{margin-left:.5rem;margin-right:.5rem}.md\:mr-6{margin-right:1.5rem}.md\:mt-0{margin-top:0}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-auto{height:auto}.md\:h-full{height:100%}.md\:w-48{width:12rem}.md\:w-auto{width:auto}.md\:max-w-\[100\%\]{max-width:100%}.md\:max-w-\[85\%\]{max-width:85%}.md\:max-w-xl{max-width:36rem}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2rem*var(--tw-space-x-reverse))}.md\:rounded-none{border-radius:0}.md\:rounded-l-lg{border-bottom-left-radius:.5rem;border-top-left-radius:.5rem}.md\:border-0{border-width:0}.md\:bg-transparent{background-color:transparent}.md\:p-0{padding:0}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:py-4{padding-bottom:1rem;padding-top:1rem}.md\:pr-10{padding-right:2.5rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}.md\:font-medium{font-weight:500}.md\:leading-tight{line-height:1.25}.md\:text-cyan-700{--tw-text-opacity:1;color:rgb(14 116 144/var(--tw-text-opacity))}.md\:hover\:bg-transparent:hover{background-color:transparent}.md\:hover\:text-cyan-700:hover{--tw-text-opacity:1;color:rgb(14 116 144/var(--tw-text-opacity))}:is(.dark .md\:dark\:hover\:bg-transparent:hover){background-color:transparent}:is(.dark .md\:dark\:hover\:text-white:hover){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}}@media (min-width:1024px){.lg\:my-8{margin-bottom:2rem;margin-top:2rem}.lg\:max-w-5xl{max-width:64rem}.lg\:max-w-7xl{max-width:80rem}.lg\:pt-12{padding-top:3rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:text-xl{font-size:1.25rem;line-height:1.75rem}.lg\:leading-tight{line-height:1.25}}.\[\&\>\*\]\:first\:rounded-t-lg:first-child>*{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.\[\&\>\*\]\:last\:rounded-b-lg:last-child>*{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.\[\&\>\*\]\:last\:border-b-0:last-child>*{border-bottom-width:0}@font-face{fallback:fallback;font-family:revicons;src:url(data:font/woff;base64,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) format("woff"),url(/static/revicons-57fd05d4ae650374c8deeff7c4aae380.ttf) format("ttf"),url(/static/revicons-a77de540a38981833f9e31bd4c365cc6.eot) format("ttf")}.react-multi-carousel-list{align-items:center;display:flex;overflow:hidden;position:relative}.react-multi-carousel-track{backface-visibility:hidden;display:flex;flex-direction:row;list-style:none;margin:0;padding:0;position:relative;transform-style:preserve-3d;will-change:transform,transition}.react-multiple-carousel__arrow{background:rgba(0,0,0,.5);border:0;border-radius:35px;cursor:pointer;min-height:43px;min-width:43px;opacity:1;outline:0;position:absolute;transition:all .5s;z-index:1000}.react-multiple-carousel__arrow:hover{background:rgba(0,0,0,.8)}.react-multiple-carousel__arrow:before{color:#fff;display:block;font-family:revicons;font-size:20px;position:relative;text-align:center;z-index:2}.react-multiple-carousel__arrow:disabled{background:rgba(0,0,0,.5);cursor:default}.react-multiple-carousel__arrow--left{left:calc(4% + 1px)}.react-multiple-carousel__arrow--left:before{content:"\e824"}.react-multiple-carousel__arrow--right{right:calc(4% + 1px)}.react-multiple-carousel__arrow--right:before{content:"\e825"}.react-multi-carousel-dot-list{bottom:0;display:flex;justify-content:center;left:0;list-style:none;margin:0;padding:0;position:absolute;right:0;text-align:center}.react-multi-carousel-dot button{border:2px solid grey;border-radius:50%;box-shadow:none;cursor:pointer;display:inline-block;height:12px;margin:0 6px 0 0;opacity:1;outline:0;padding:0;transition:background .5s;width:12px}.react-multi-carousel-dot button:hover:active,.react-multi-carousel-dot--active button{background:#080808}.react-multi-carousel-item{backface-visibility:hidden;transform-style:preserve-3d}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.react-multi-carousel-item{flex-shrink:0!important}.react-multi-carousel-track{overflow:visible!important}}[dir=rtl].react-multi-carousel-list{direction:rtl}.rtl.react-multiple-carousel__arrow--right{left:calc(4% + 1px);right:auto}.rtl.react-multiple-carousel__arrow--right:before{content:"\e824"}.rtl.react-multiple-carousel__arrow--left{left:auto;right:calc(4% + 1px)}.rtl.react-multiple-carousel__arrow--left:before{content:"\e825"}ELM: Embodied Understanding of Driving Scenarios

ELM: Embodied Understanding of Driving Scenarios

*Indicates equal contribution.

 Paper Code

teaser

ELM is an embodied language model for understanding the long-horizon driving scenarios in space and time. Compared to the vanilla vision-language model (VLM) being confined to the scene description task, we expand a wide spectrum of new tasks to fully leverage the capability of large language models in an embodiment setting. ELM achieves significant improvements in various applications.

Abstract

Embodied scene understanding serves as the cornerstone for autonomous agents to perceive, interpret, and respond to open driving scenarios. Such understanding is typically founded upon Vision-Language Models (VLMs). Nevertheless, existing VLMs are restricted to the 2D domain, devoid of spatial awareness and long-horizon extrapolation proficiencies. We revisit the key aspects of autonomous driving and formulate appropriate rubrics. Hereby, we introduce the Embodied Language Model (ELM), a comprehensive framework tailored for agents' understanding of driving scenes with large spatial and temporal spans. ELM incorporates space-aware pre-training to endow the agent with robust spatial localization capabilities. Besides, the model employs time-aware token selection to accurately inquire about temporal cues. We instantiate ELM on the reformulated multi-faced benchmark, and it surpasses previous state-of-the-art approaches in all aspects.

Methodology

Model Overview

Description of the image

Systematic Pipeline of ELM. It consists of Pre-training by open-world data corpus and Fine-tuning on diverse tasks. To initialize the Space-aware Pre-training, we collect extensive image-text pairs from the world, empowering ELM with spatial localization while preserving the description ability in driving scenarios. In the fine-tuning process, the inputs to ELM are videos, timestamps, and text prompts. After encoding the inputs into tokens, ELM leverages the proposed Time-aware Token Selection to gather the appropriate tokens as instructed by prompts. Finally, the tokens are sent to the language model to generate output texts.

Space-aware Pre-training

Description of the image

Annotation workflow with human quality check in the loop. For location labeling: we first select diverse templates from the GPT generated candidates. Pixel-point pairs as annotated in the nuScenes are then sampled and filled into the templates to form our location pre-training data.For description labeling: Node 4 utilizes LLaMA-Adapter V2 to obtain diverse labels on nuScenes, Waymo, YouTube, and Ego4D with predefined prompts. Two rounds of quality check are conducted in Node 3 and 7 by inspectors to guarantee the image and caption quality.

Description of the image

Statistics of pre-training data and comparison of data collection with other VLMs. Our pre-train data surpasses that in general vision (top) and autonomous driving (middle) in terms of quantity and diversity. Anno: the type of annotations; Des: description; Loc: localization.

Experiments

Visualization on the benchmark. We provide results for ten tasks and E2E planning through videos and corresponding QA pairs.

Results

Description of the image

Comparison to State-of-the-arts. All methods are fine-tuned on the corresponding tasks. The main metrics (%) are marked in gray. Bold emphasizes top method; underline marks the runner-up. C: CIDEr; R: ROUGE-L; B: BLEU.

Citation

@article{zhou2024embodied,
     title={Embodied Understanding of Driving Scenarios},
     author={Zhou, Yunsong and Huang, Linyan and Bu, Qingwen and Zeng, Jia and Li, Tianyu and Qiu, Hang and Zhu, Hongzi and Guo, Minyi and Qiao, Yu and Li, Hongyang},
     journal={arXiv preprint arXiv:2403.04593},
@@ -19,6 +19,6 @@
           
-        
\ No newline at end of file
+        
\ No newline at end of file
diff --git a/page-data/app-data.json b/page-data/app-data.json
index 2b4d35c..53a3d9f 100644
--- a/page-data/app-data.json
+++ b/page-data/app-data.json
@@ -1 +1 @@
-{"webpackCompilationHash":"06c4d4a090b685db1141"}
+{"webpackCompilationHash":"b951fa3bccb84ad0b90f"}
diff --git a/webpack-runtime-dfac5775607138828653.js b/webpack-runtime-ac315e78b43d52d0cfdd.js
similarity index 96%
rename from webpack-runtime-dfac5775607138828653.js
rename to webpack-runtime-ac315e78b43d52d0cfdd.js
index 9928977..9cf3dfc 100644
--- a/webpack-runtime-dfac5775607138828653.js
+++ b/webpack-runtime-ac315e78b43d52d0cfdd.js
@@ -1,2 +1,2 @@
-!function(){"use strict";var e,t,n,r,o,u={},i={};function f(e){var t=i[e];if(void 0!==t)return t.exports;var n=i[e]={exports:{}};return u[e].call(n.exports,n,n.exports,f),n.exports}f.m=u,e=[],f.O=function(t,n,r,o){if(!n){var u=1/0;for(l=0;l=o)&&Object.keys(f.O).every((function(e){return f.O[e](n[c])}))?n.splice(c--,1):(i=!1,o0&&e[l-1][2]>o;l--)e[l]=e[l-1];e[l]=[n,r,o]},f.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},f.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);f.r(o);var u={};t=t||[null,n({}),n([]),n(n)];for(var i=2&r&&e;"object"==typeof i&&!~t.indexOf(i);i=n(i))Object.getOwnPropertyNames(i).forEach((function(t){u[t]=function(){return e[t]}}));return u.default=function(){return e},f.d(o,u),o},f.d=function(e,t){for(var n in t)f.o(t,n)&&!f.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},f.f={},f.e=function(e){return Promise.all(Object.keys(f.f).reduce((function(t,n){return f.f[n](e,t),t}),[]))},f.u=function(e){return{218:"component---src-pages-404-tsx",445:"1bfc9850",570:"98ea7ec2",617:"d7eeaac4",691:"component---src-pages-index-tsx"}[e]+"-"+{218:"8dda323e7d90c221b6ed",445:"7fab030cac3f5e6c7923",570:"0c1693cf947f5a91c975",617:"bd37c797f1d289fbfd31",691:"38ff6fb65105e74c32c3"}[e]+".js"},f.miniCssF=function(e){return"styles.b6a4bda7319c1b5424df.css"},f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},o="ELM:",f.l=function(e,t,n,u){if(r[e])r[e].push(t);else{var i,c;if(void 0!==n)for(var a=document.getElementsByTagName("script"),l=0;l=o)&&Object.keys(f.O).every((function(e){return f.O[e](n[c])}))?n.splice(c--,1):(i=!1,o0&&e[l-1][2]>o;l--)e[l]=e[l-1];e[l]=[n,r,o]},f.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},f.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);f.r(o);var u={};t=t||[null,n({}),n([]),n(n)];for(var i=2&r&&e;"object"==typeof i&&!~t.indexOf(i);i=n(i))Object.getOwnPropertyNames(i).forEach((function(t){u[t]=function(){return e[t]}}));return u.default=function(){return e},f.d(o,u),o},f.d=function(e,t){for(var n in t)f.o(t,n)&&!f.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},f.f={},f.e=function(e){return Promise.all(Object.keys(f.f).reduce((function(t,n){return f.f[n](e,t),t}),[]))},f.u=function(e){return{218:"component---src-pages-404-tsx",445:"1bfc9850",570:"98ea7ec2",617:"d7eeaac4",691:"component---src-pages-index-tsx"}[e]+"-"+{218:"8dda323e7d90c221b6ed",445:"7fab030cac3f5e6c7923",570:"0c1693cf947f5a91c975",617:"bd37c797f1d289fbfd31",691:"a0cbca3becbcba12f361"}[e]+".js"},f.miniCssF=function(e){return"styles.b6a4bda7319c1b5424df.css"},f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},o="ELM:",f.l=function(e,t,n,u){if(r[e])r[e].push(t);else{var i,c;if(void 0!==n)for(var a=document.getElementsByTagName("script"),l=0;l 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"ELM:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + {\"218\":\"component---src-pages-404-tsx\",\"445\":\"1bfc9850\",\"570\":\"98ea7ec2\",\"617\":\"d7eeaac4\",\"691\":\"component---src-pages-index-tsx\"}[chunkId] + \"-\" + {\"218\":\"8dda323e7d90c221b6ed\",\"445\":\"7fab030cac3f5e6c7923\",\"570\":\"0c1693cf947f5a91c975\",\"617\":\"bd37c797f1d289fbfd31\",\"691\":\"38ff6fb65105e74c32c3\"}[chunkId] + \".js\";\n};","// This function allow to reference all chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + \"styles\" + \".\" + \"b6a4bda7319c1b5424df\" + \".css\";\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t658: 0,\n\t532: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^(532|658)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkELM\"] = self[\"webpackChunkELM\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","getPrototypeOf","obj","__proto__","t","value","mode","this","then","ns","create","def","current","indexOf","getOwnPropertyNames","forEach","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","p","installedChunks","installedChunkData","test","promise","resolve","reject","error","Error","errorType","realSrc","message","name","request","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","id","chunkLoadingGlobal","self"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"webpack-runtime-ac315e78b43d52d0cfdd.js","mappings":"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","sources":["webpack://ELM/webpack/runtime/chunk loaded","webpack://ELM/webpack/runtime/create fake namespace object","webpack://ELM/webpack/runtime/load script","webpack://ELM/webpack/bootstrap","webpack://ELM/webpack/runtime/compat get default export","webpack://ELM/webpack/runtime/define property getters","webpack://ELM/webpack/runtime/ensure chunk","webpack://ELM/webpack/runtime/get javascript chunk filename","webpack://ELM/webpack/runtime/get mini-css chunk filename","webpack://ELM/webpack/runtime/hasOwnProperty shorthand","webpack://ELM/webpack/runtime/make namespace object","webpack://ELM/webpack/runtime/publicPath","webpack://ELM/webpack/runtime/jsonp chunk loading"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"ELM:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + {\"218\":\"component---src-pages-404-tsx\",\"445\":\"1bfc9850\",\"570\":\"98ea7ec2\",\"617\":\"d7eeaac4\",\"691\":\"component---src-pages-index-tsx\"}[chunkId] + \"-\" + {\"218\":\"8dda323e7d90c221b6ed\",\"445\":\"7fab030cac3f5e6c7923\",\"570\":\"0c1693cf947f5a91c975\",\"617\":\"bd37c797f1d289fbfd31\",\"691\":\"a0cbca3becbcba12f361\"}[chunkId] + \".js\";\n};","// This function allow to reference all chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + \"styles\" + \".\" + \"b6a4bda7319c1b5424df\" + \".css\";\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t658: 0,\n\t532: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^(532|658)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkELM\"] = self[\"webpackChunkELM\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","getPrototypeOf","obj","__proto__","t","value","mode","this","then","ns","create","def","current","indexOf","getOwnPropertyNames","forEach","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","prop","prototype","hasOwnProperty","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","p","installedChunks","installedChunkData","test","promise","resolve","reject","error","Error","errorType","realSrc","message","name","request","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","id","chunkLoadingGlobal","self"],"sourceRoot":""}
\ No newline at end of file
diff --git a/webpack.stats.json b/webpack.stats.json
index 84490a7..9702581 100644
--- a/webpack.stats.json
+++ b/webpack.stats.json
@@ -1 +1 @@
-{"name":"build-javascript","namedChunkGroups":{"app":{"name":"app","assets":[{"name":"webpack-runtime-dfac5775607138828653.js","size":3714},{"name":"styles.b6a4bda7319c1b5424df.css","size":128694},{"name":"framework-35afbaca6dbd7f02570d.js","size":140747},{"name":"app-6e4015bd44fd431f6814.js","size":68539}],"filteredAssets":0,"assetsSize":341694,"filteredAuxiliaryAssets":5,"auxiliaryAssetsSize":635672},"component---src-pages-404-tsx":{"name":"component---src-pages-404-tsx","assets":[{"name":"component---src-pages-404-tsx-8dda323e7d90c221b6ed.js","size":752}],"filteredAssets":0,"assetsSize":752,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":1892},"component---src-pages-index-tsx":{"name":"component---src-pages-index-tsx","assets":[{"name":"styles.b6a4bda7319c1b5424df.css","size":128694},{"name":"98ea7ec2-0c1693cf947f5a91c975.js","size":964},{"name":"1bfc9850-7fab030cac3f5e6c7923.js","size":1504},{"name":"d7eeaac4-bd37c797f1d289fbfd31.js","size":967},{"name":"component---src-pages-index-tsx-38ff6fb65105e74c32c3.js","size":41093}],"filteredAssets":0,"assetsSize":173222,"filteredAuxiliaryAssets":22,"auxiliaryAssetsSize":17423080}},"assetsByChunkName":{"app":["webpack-runtime-dfac5775607138828653.js","styles.b6a4bda7319c1b5424df.css","framework-35afbaca6dbd7f02570d.js","app-6e4015bd44fd431f6814.js"],"component---src-pages-404-tsx":["component---src-pages-404-tsx-8dda323e7d90c221b6ed.js"],"component---src-pages-index-tsx":["styles.b6a4bda7319c1b5424df.css","98ea7ec2-0c1693cf947f5a91c975.js","1bfc9850-7fab030cac3f5e6c7923.js","d7eeaac4-bd37c797f1d289fbfd31.js","component---src-pages-index-tsx-38ff6fb65105e74c32c3.js"]},"childAssetsByChunkName":{}}
\ No newline at end of file
+{"name":"build-javascript","namedChunkGroups":{"app":{"name":"app","assets":[{"name":"webpack-runtime-ac315e78b43d52d0cfdd.js","size":3714},{"name":"styles.b6a4bda7319c1b5424df.css","size":128694},{"name":"framework-35afbaca6dbd7f02570d.js","size":140747},{"name":"app-6e4015bd44fd431f6814.js","size":68539}],"filteredAssets":0,"assetsSize":341694,"filteredAuxiliaryAssets":5,"auxiliaryAssetsSize":635672},"component---src-pages-404-tsx":{"name":"component---src-pages-404-tsx","assets":[{"name":"component---src-pages-404-tsx-8dda323e7d90c221b6ed.js","size":752}],"filteredAssets":0,"assetsSize":752,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":1892},"component---src-pages-index-tsx":{"name":"component---src-pages-index-tsx","assets":[{"name":"styles.b6a4bda7319c1b5424df.css","size":128694},{"name":"98ea7ec2-0c1693cf947f5a91c975.js","size":964},{"name":"1bfc9850-7fab030cac3f5e6c7923.js","size":1504},{"name":"d7eeaac4-bd37c797f1d289fbfd31.js","size":967},{"name":"component---src-pages-index-tsx-a0cbca3becbcba12f361.js","size":41072}],"filteredAssets":0,"assetsSize":173201,"filteredAuxiliaryAssets":22,"auxiliaryAssetsSize":17423059}},"assetsByChunkName":{"app":["webpack-runtime-ac315e78b43d52d0cfdd.js","styles.b6a4bda7319c1b5424df.css","framework-35afbaca6dbd7f02570d.js","app-6e4015bd44fd431f6814.js"],"component---src-pages-404-tsx":["component---src-pages-404-tsx-8dda323e7d90c221b6ed.js"],"component---src-pages-index-tsx":["styles.b6a4bda7319c1b5424df.css","98ea7ec2-0c1693cf947f5a91c975.js","1bfc9850-7fab030cac3f5e6c7923.js","d7eeaac4-bd37c797f1d289fbfd31.js","component---src-pages-index-tsx-a0cbca3becbcba12f361.js"]},"childAssetsByChunkName":{}}
\ No newline at end of file